基于Java EE平台项目管理系统的设计与实现(论文 + 源码)

news2024/12/26 22:40:44

【免费】基于javaEE平台的项目管理系统.zip资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/JW_559/89267688

基于Java EE平台项目管理系统的设计与实现

摘  要

随着社会信息化的发展,很多的社会管理问题也一并出现了根本性变化,项目公司的报表及文件管理也发生了变化,以前的管理是一个分布式的信息,然后围绕中心由通过简单的来传输信息,这使得办事效率非常低下,所以需要需要适用信息货的发展,开发一套项目的管理信息系统。

此在这个系统中我综合应用了MySQL、Servlet、JSP等知识。网页界面的结构设计以实用性出发,具有易于操作、简洁、方便等特点。在设计中,首先,运用HTML语言对网站的静态页面进行精细的加工并且在网站的美工方面取得了良好的效果。其次,对于Java编程、JSP的动态编程以及MySQL数据库进行努力学习和大量实践,并运用到了网站的建设中。

本论文就项目管理系统进行了论述。访问本系统的用户主要是管理员,管理员的主要功能有:项目信息管理、项目资源、经费、进度、成果等信息的管理

关键词:项目管理;JSP;MySQL;Myeclipse

 Design and Implementation of Project Management System Based on Java EE Platform 

Abstract

 With the development of social information, a lot of social management problems also followed a fundamental change, the project company's report management has also changed, the previous management is a distributed information, and then around the center to transfer information from the Simple manual transmission, which makes inefficient service, so the need for information product development, enterprise project management information system development.

In this system, I integrated the MySQL application Servlet, JSP and other knowledge. In practice, the structure of Web interface structure, simple and convenient operation, simple operation, convenient and so on. In the design, first of all, the use of language HTML page fine processing and art website static page has achieved good results. Second, Java programming, dynamic programming JSP and MySQL database efforts to learn and practice, and to be implemented.

This paper discusses the enterprise project management system. Who is the user who visits the system is mainly the administrator, the administrator's main responsibilities are: enterprise information projects, project resources, funds, progress, results and other information management management.

Key word: project management, JSP, MySQL, MyEclipse

绪论

  1. 课题背景

随着社会信息化的发展,社会上很多事务的管理也跟着相应发生了根本的变化,项目申报管理也跟着发生了变化,以前的管理是一种各地信息分散然后再集中到中央,信息的传送途径是通过简单人工传送,这样使办事效率低。此外,各个分散机构的项目申报在办理后不能及时集中到中央数据中心,不利于管理层的信息统计与决策。二十一世纪是信息技术的时代,信息量高度膨胀,人们对于信息的需求和控制欲越发强烈,各行各业对信息自动化和控制自动化的需求日益强烈。随着计算机和计算机网络的普及,使人们具有了处理大量的、繁琐的、复杂的、无序的信息的能力,并且随着数据库技术的逐步成熟和逐步深入到社会科学的各个领域,人们可以对以前无法解决或无法在短时间内解决的信息问题做出迅速的判断和解决。

  1. 目的和意义

基于以上现状,采用先进的信息化管理系统可以解决这些问题。这样就方便了管理层的统一管理和决策,同时提供了工作效率。本系统用于对辖区内单位项目申报立项流程的管理,传统模式的管理花费很多的精力,采用信息新技术优化管理手段,强化申报流程,加强项目监管,提高工作效率。

本论文主要包括软件,数据库和网络技术,可以对信息快速的收集整理,在这个过程中,考察了学生在大学期间所学的知识以及综合知识学习能力,并且在解决问题的水平有了很大提高,而且增强了对项目管理方面的理解与认识。我们运用和掌握了科学的研究方法,首先,我们确立了正确的设计思想,独立的进行思考,积极探索,勇于发现错误并及时改正,对今后的学习生活而言是一个难能可贵的经历。

  1. 开发设计思想

此在这个系统中我综合应用了MySQL、Servlet、JSP等知识。网页界面的结构设计以实用性出发,具有易于操作、简洁、方便等特点。在设计中,首先,运用HTML语言对网站的静态页面进行精细的加工并且在网站的美工方面取得了良好的效果。其次,对于Java编程、JSP的动态编程以及MySQL数据库进行努力学习和大量实践,并运用到了网站的建设中。

工程管理是一种遵循客观经济规律的管理活动,是系统的全方位的对工程建设项目从追踪各类项目信息开始,然后编制项目书,进行研究,开展设计和施工等工作,直到项目竣工投产或投入使用的全过程的管理。

  1. 开发目标

    高校是科技发展的重要力量,而企业中文件与项目管理更为重要,因此为了促进高校科研发展、提高企业管理水平及服务水平的管理在日常管理中的作用日益凸现。传统的手工管理和计算机的辅助管理越来越不能满足新形势下发展的要求,有必要对管理信息进行计算机的网络管理。

在我国,某些高校或企业一直使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对文件档案信息进行管理,具有手工管理所无法比拟的优点。所以建立项目管理系统,使管理自动化,提高信息处理的速度和准确性十分必要。

1 开发工具和环境简介

2.1 Java Server Page 简介

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点:

(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。

(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。

(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

(4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下

(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

内部对象说明:request 客户端请求,此请求会包含来自GET/POST请求的参数; response 网页传回客户端的响应;pageContext 网页的属性是在这里管理; session 与请求有关的会话; application servlet正在执行的内容;out 用来传送响应的输出流; config 代码片段配置对象;page JSP网页本身; exception 针对错误网页,未捕捉的例外。

2.2 MySQL简介

MySQL是目前属于Oracle旗下,由瑞典公司MySQL AB开发的关系型数据库管理软件。目前,MySQL在互联网上的中小型网站上得到了广泛的应用。由于其体积小、速度快、整体拥有成本低,则许多中小型网站选择MySQL作为网站,这样可以很大程度的降低网站整体拥有成本。

数据库物理设计阶段的目标是指实际的计算机系统(硬件和数据库管理系统),给指定的数据库模型(database model)确立恰当的存储结构以及存取方法。其中“恰当”含有两种含意:其一,数据库使用的存储空间要尽可能的少;其二,数据库反应时长要尽可能的短。

以作出令人满意的数据库设计为目标,数据库设计人员应该掌握数据库管理系统的核心规则;能很好的运用DBMS的实际运行环境,尤其注意数据应用管理的反应时长以及频率的需求;明确外部存储设施的特性。

物理结构设计阶段的目标是在确定数据库的存储结构和访问方法之前提供有关DBMS提供的信息要做到充分的熟悉,做到能合理优化数据库中物理设计的参数。这种优化的有效性直接关系着DBMS的性能,被称为数据库系统的内模式。

数据库事务的四大特性(简称ACID)是:

原子性(Atomicity) 

事务的原子性是指,事务所包含的被当做数据库逻辑工作个体的程序,对数据的操纵要求“一针见血”,即没有完全确定要修改的内容时一个不改,一旦确定目标就要全部都改,这种特性被称为原子性。 

例如添加图片事务分为2个步骤(1)上传图片(2)添加图片所在的相册类型。不可能添加了图片类型,却没有上传。2个步骤必须同时完成才能实现添加图片事务。 

(2)一致性(Consistency)    

事务一致性意味着数据库不会随着事务更改而更改。此属性称为事务一致性。如果是的话,说数据库是一致的。数据库中事务一致性的标准则要求数据库的状态需要满足所有完整性约束。

例如完整性约束图片的删除,如果图片删除事务发生更改,则数据库中的数据也必须删除。 

(3)分离性(亦称独立性Isolation) 

分离性指的是并发的事务是相互隔离的。即对并发事务正在关联的数据以及内部动作进行分割,远离其他交易。这是为了防止并发事务的发生,而同样的数据操作可能会出现死锁现象。 

(4)持久性(Durability)

持久性意味着已持久化的事务不会因为外部环境关闭或其他异常现象的发生而发生改变。即只要事务进行了持久化操作,则数据库数据的改变就会在数据库管理系统的管理下恒久不变,还可以还原已提交事务的更改。

MySQL数据库提供了一些强大的功能,可以在帮助使用者获取信息的同时,对数据进行多样的数据处理。除此之外,便利的数据库分享功能使管理人员可以更好的作出恰到的决策。

不过,单独的DBMS并不能完全满足信息系统的开发者对数据处理的需求,又或是需要更加便捷的方式去实现。

因此,开发者们会在某种在DBMS中,DIY需要自己的应用程序来形成一个应用程序信息系统,以满足应用需求和尽可能简单。这就是所谓的两个发展。

MySQL 还具有以下特点:

1.更便宜的查询和操纵数据

MySQL提供了简化查询和操纵数据的工具。

2.提供信息共享功能(web功能)

MySQL简化了数据库功能,他将桌面以及网址的数据库功能进行了整合,使得它可以轻易将数据库运用到浏览器中。这样它就能仅通过内网的Internet就能实现信息共享。

3.有关于信息处理方面的问题

用户和开发人员可以结合MySQL接口(客户端)的易用性和SQL Server的可扩展性和可靠性来对信息进行创建解决方案。

4.DIY数据库窗口

MySQL可以持久化新的对象,这样很大程度上提升了MySQL 数据库的便捷性。

5.名称自动更改功能

当用户对数据库对象进行重新命名的时候,,MySQL会自动更改与它关联的名称信息,方便数据库的扩展和维护。

6.可以建立子数据表功能

可以在同一窗口中实现可嵌套式的视图子表功能,方便开发者能够只关注相关的数据并对其进行操作。

7.方便快捷的数据库连接导出方式

数据的导出只需要将MySQL对象加载到JDBC-ODBC桥即可实现。

8.数据访问页功能

该功能可使用户快捷方便地创建数掂 HTML页,通过将数据库加载到Intranet Internet连接中,可以高效、快捷地实现信息的共享。

9.集成共享组件

MySQL为了实现多种查询和管理数据则运用Web组件和浏览器中的COM控件。

交互性

MySQL支持OLE DB,让用户结合使用与后台数据库如SQL Server2000的扩展MySQL接口方便。

2.3 MyEclipse 简介

本系统是跨越平台限制和跨越浏览器限制的充满动感的网页。构建项目管理系统所用的网页编辑器为MyEclipse, MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。

    1. MySQL 数据库

MySQL数据库是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被升阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购升阳微系统公司,MySQL成为Oracle旗下产品。MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。

    1. JAVA 简介

在我们大学的课程中了解到,Java其实和c++差不多,在本质上都是面向对象进行设计开发的语言。在跟c语言相比较之后,你会发现,对于开发者而言Java是更趋向于简单易懂的模式。在java中,所有的程序,不论简单与否,都必须构建对象才会有接来下的操作。并且java的源代码必须先经过编译之后才能传递到客户端去执行。Java中的所有变量必须在声明之后才可以使用。并且java是一种与html无关的一种格式,java中的代码是以字节码的形式存在的。他们都是独立的保存在文档中。在java中始终都是先编译后运行,java的引用对象必须是在编译时才会用到。

Java语言的特点:

1.平台无关性

平台无关性是Java语言的一大特色,它是指编写好的Java程序无需任何修改就可以在不同的平台上进行运行。我们知道,.exe文件是windows系统下的可执行文件,类似的,.class文件就是JVM(Java虚拟机)上的“可执行文件”。Java代码在第一次编写的时候所存储的后缀为.java的文件经过编译后,会生成一个后缀为.class的文件,而该文件则独立于平台。怎么说呢?我们的Java程序在平台上不是直接运行于系统上的,而是通过JVM来运行,不同平台的JVM是不同的,但是对外都提供相同的接口,这样.class文件不管在什么平台下都能和这些“相同的”接口正确“嵌合”。

2.安全性

一是java有一种garbage collection机制,也就是垃圾回收机制,garbage collector会让你所编写的程序不容易出现内存泄露。如果内存泄露是很危险的,在内存泄露的时候,黑客有可能会借此对你的电脑进行攻击。二是java中存在异常类,也就是exception类,它可以在程序出错的时候让程序员停止程序的运行,保护程序的安全。三是java里面没有指针,可以防止程序员access错误的内存,从而保护程序的安全。

3.面向对象

想知道什么是面向对象的话,首先需要知道什么是面向过程。面向过程允许在程序中定义函数或者方法。而面向对象更近一步,允许你将这个“过程”,也就是函数或者方法以及和它们所关联的数据封装成对象,而这个对象,又通过继承和派生以及类型限定符,使开发者无法全部的访问和修改其包含的整个内容。

4.分布式

 分布式和多处理器的系统不同,分布式系统中每个节点运行独立的操作系统。而多机系统所有的节点在单一的操作系统的控制下。

5.可移植性

Java的可移植性主要体现在你在一个操作系统上编译生成的.class文件,可以直接在另外一个操作系统上运行,当然这些操作系统上都应该安装JDK,其实准确的说,只需要有JRE就可以。

    1. Tomcat简介

Tomcat 服务器是一个轻量级应用服务器,它所占用的资源特别少,在用户和系统所需资源不是很多的情况下经常被使用,是开发和调试JSP 程序的首选。由于sun公司对tomcat发展的支持,所以最新的JSP规范一定会在Tomcat中得以体现。Tomcat的技术十分先进,而且使用也很方便,性能也是相当的稳定,多数的程序开发人员都很喜欢使用tomcat。Tomcat虽然是一个小型的服务器,但它的发展已经相当成熟,并且它是免费的,但是它的效率根本不会输给竞争对手。同样,我们可以把Tomcat看做是Apache服务器的一种扩展,所以当我们在运行tomcat时,本质上它是以一个独立的Apache进程来运行。

2.7 MVC模式

为了满足系统对先进性、安全性、跨平台性、可扩展性、可移植性、分布式等方面的要求,系统总体架构设计采用先进的基于javaB/S的三层体系结构。MVC

三个单词的缩写,分别为: 模型(Model)视图(View)和控制Controller)[9] MVC模式的目的就是实现Web系统的职能分工。Model 实现系统中的业务逻辑,通常可以用JavaBeanEJB来实现。 View 用于与用户的交互,通常用JSP来实现。 Controller层是ModelView之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。Web浏览技术已经广泛地应用于Internet,并被广大用户接受和使用。Web技术是随httphtml一起出现的。Web服务器利用http传递html文件,Web浏览器使用http检索html文件。Web服务器一旦检索到信息,Web浏览器就会以静态和交互(如文本、图像)方式显示各种对象。在电子商务业务进行过程中,需要在各种贸易角色之间浏览和交换各种信息,此时就要使用Web浏览技术。 这种模型使系统结构更加清楚,分工更加明确,有利于整个系统后期的维护和升级。

MVC(Model View Controller)模型(model)-视图(view)-控制器(controller)MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC 的目的是将MV的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别用柱状图、饼图来表示。C存在的目的则是确保MV的同步,一旦M改变,V应该同步更新。模型-视图-控制器(MVC)Xerox PARC在八十年代为编程语言Smalltalk80发明的一种软件设计模式,至今已被广泛使用。最近几年被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用 ColdFusion  PHP 的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。 

三层体系结构由浏览器、web服务器和数据库组成,并结合HTML语言、jspJavaScript脚本语言、AjaxODBC等技术,后台数据库采用微软的SQL Server 2005,系统一般的MVC

2-7  系统MVC结构图

如图1-1可知,用户界面层是用户和整个系统的接口,客户端只需安装通用的浏览器即可建立与本系统的连接。业务逻辑层负责处理用户输入的信息,或将这些信息发送给数据库层进行保存,或调用数据库层中的函数再次读出这些数据。数据访问层是整个分层体系的最底层,它主要用来实现与数据库的交互,即完成查询、插入、删除和修改数据库中数据的功能MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。分层概念视图,模型,控制器。

视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTMLXML/XSLWML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBsColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。MVC模型还可以实现软件工程的高内聚,低耦合的终极目标。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求自己本身并不参与业务逻辑处理,然后再确定用哪个视图来显示返回的数据。

MVC的优点:

1)低耦合性

2)高重用性和可适用性

3)较低的生命周期成本

4)快速的部署

5)可维护性

6)有利于软件工程化管理

3 系统功能分析

我需求分析是理解真实世界中的问题和用户需求,并能找出能满足这些需求的解决方案的过程。需求分析的目标是在开发活动开始之前,对问题的解决方法得到更好的认识。由此可见,需求分析在整个项目运行过程中具有举足轻重的地位。它甚至决定了以后开发活动的大方向。能否得到一个准确全面的需求分析结果将直接影响软件开发项目的质量和成败。

3.1 可行性研究

对于可行性研究而言,其任务就是用最低的代价在最短的时间内做出一个判断当前系统实现后的价值。为了避免在花费了大量的资源之后才发现该功能的实现完成不了或者完成了之后也没有多少实用性的价值。从而造成更多的浪费。在这个过程中,我们进行大量的问卷调查,网上调研等,深刻的考虑了这个系统的可行性,以免开发不必要的功能,对时间和资源等的浪费。

①技术可行性

由于主要接触的是Java编程语言,因此对Java语言比较有深刻的了解,尤其是在实习期间掌握了一些项目经验。在我看来,这次项目管理系统系统于我来说是一项比较大的软件开发工作。在这个开发过程中,我们为了系统的成功开发以及功能的全面实现,采取严谨的开发态度。同时,我们也需要采取科学的、工程化的系统开发方法。并且在这个过程中,我们也会研究一些符合工程化标准的开发方法,以适应我们的开发过程,保证系统功能的实现。研究这些方法意图是为了我们掌握更好的开发方法,并且在保证开发的速度较快的同时保证系统功能的质量,而且还可以更多的降低开发成本,节约时间。

②操作可行性

    现在的生活中计算机已经普遍到每个家庭的生活当中,因而也就越来越多的人掌握了使用计算机的基本使用方法和技能。而本系统操作简单,输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对用户的要求很低,只需对WINDOWS操作熟练,而且本系统可视性非常好,所以在技术上不会有很大难度。

③经济可行性

服务器端的安装简洁明了,客户机无需再装任何软件,通过浏览器就可以直接访问,可以直接接入Internet,无论您身在何处,只要您可以访问Internet都可以使用本系统。本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要,所以在经济上具有完全的可行性

④ 法律的可行性

此系统开发期间,所有工作完全是独立完成,本人具有开发此软件的能力,因此不存在抄袭等盗版侵权的问题。因此具有法律可行性。

综上所述,开发此系统十分有利于我们学习或工作当中的文件或项目管理,使之能够更加方便,快捷,准确,并能够降低成本,这是很多高效或大公司在未来所需要的一款系统。因此,此系统的开发是完全可行的。

⑤运行环境:

   此项目管理系统的运行环境包括硬件、操作系统、数据库等软件:

硬件:对于硬件的要求不是很高,基本的中央处理器(CPU):i5-3230M;

硬  盘:硬盘容量需要80 GB以上硬盘;

内  存:8G;

操作系统: Windows7,

关系数据库: MySQL;

3.2 需求分析

"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。可以说,在软件工程当中的“需求分析”就是确定要计算机“做什么”,要达到什么样的效果。可以说需求分析是做系统之前必做的。

而对于项目管理系统开发来言,我们了解的就是将来管理者会有什么样的具体要求,同时在管理者运行上也需近乎流畅。在考虑系统的性能的时候,方便用户的前提下,我们应该去实现什么样的功能。

(1)用户的需求分析:

首先用户需要在此网站进行在用户注册成功登录后,用户可以在知道自己原密码的前提下修改自己的登录密码。其次用户可以添加新项目,同时删除旧项目或创建错误的项目,同时,用户可以进行项目经费,资源,进程,成果进行管理以及对这些操作的查看以便进行确认。

(2)系统性能分析:

对数据的安全性、完整性要求:我们需要对用户的信息进行严格保密,防止非法用户对信息进行恶意删改。以下是系统性能需求:

(a)首要的则是系统的安全性和可靠性;

(b)保证安全的同时尽可能完善系统的功能,易于用户的操作;

(c)为了不断地进步发展,系统同时需要进行维护和不断地升级完善功能;

(d)由于多用户同时操作,所以数据库需要满足多次访问,保证其效率处于较高的水平。

3.3 系统功能的分析

如果我们的系统已经初步成型,我们需要对其进行分析时,则需要通过分析系统的功能和实现去确定系统的即将要达成的目的。因此,我们要收集足够的信息去验证我们的分析结果,在该次毕业设计中,我们获取的信息大多都是从网上,书库中了解到的。在任何的实践中获取的信息其实才是最可靠,最具有说服力的信息,所以,我们浏览其它的项目管理系统,然后来具体管理以便获得更可靠的信息。从而得到以下的功能模块:

从管理员角度看:

用户登入系统后,可以修改管理员的密码。同时具有以下功能:

1、管理员可以管理具体项目信息。

2、管理员可以管理项目经费信息。

3、管理员可以管理项目资源信息。

4、管理员可以管理项目进度信息。

5、管理员可以管理项目成果信息。

     

从员工角度看:

员工可以注册,然后可以进行密码以及信息的管理。同时也具有以下功能:

  1. 员工可以查看具体项目信息
  2. 员工可以查看具体经费信息
  3. 员工可以查看具体资源信息
  4. 员工可以查看具体进度信息
  5. 员工可以具体查看成果信息

3.4 数据字典

字典最重要的作用是作为分析阶段的工具。日常生活中,任何的字典都是供人查询未知的词条或条目,起到答疑解释的目的。而在系统设计结构化分析中,数据流图上每个成分的定义和说明则依靠数据字典来完成。在数据字典中建立的这种严密且一致的定义对改进分析员和用户的通信有很大的帮助。数据字典由数据项,数据结构,数据流,数据存储以及处理过程组成,在系统分析中有很大的作用。

4 项目管理系统的总体设计

4.1 系统的功能设计目标

理论系统功能设计目标如下:

(1) 实用性强:在设计系统时,做到最大化的贴近实际,操作简单,针对各层次的人群都能够快速学习并运用。

(2) 先进的程序结构:使用先进的程序结构,利于提高整个系统的效率,而且便于维护及管理,以增强系统的使用周期。

 (3) 使用模块化设计的方法:首先系统可以具有特别好的可扩充性,便于进一步完善系统,其次,对于系统后期的维护也很方便。

(4) 操作简单,维护方便:系统的维护功能在每个子系统都具备。

4.2 项目管理系统功能模块

我们详细考虑了系统所需要的大致功能,并且大体分为以下几个模块:

1.登录界面:这样的背景下,用于存储系统信息后,必须先进入到执行相应的操作管理系统,登录需要用户通过输入引进正确的用户名,密码,两者都是必要的,管理员在后台识别,后台模块的入口,背景识别模块主要用于验证管理员的身份和密码。

判断管理员身份的部分代码:

public String login(String userName,String userPw,int userType)

{

String result="no";

if(userType==0)//系统管理员登陆

{

String sql="select * from t_admin where userName=? and userPw=?";

Object[] params={userName,userPw};

DB mydb=new DB();

mydb.doPstm(sql, params);

try

{

ResultSet rs=mydb.getRs();

boolean mark=(rs==null||!rs.next()?false:true);

if(mark==false)

{

 result="no";

}

else

{

 result="yes";

 TAdmin admin=new TAdmin();

 admin.setUserId(rs.getInt("userId"));

 admin.setUserName(rs.getString("userName"));

 admin.setUserPw(rs.getString("userPw"));

 WebContext ctx = WebContextFactory.get();

 HttpSession session=ctx.getSession();

 session.setAttribute("userType", 0);

             session.setAttribute("admin", admin);

}

rs.close();

}

catch (SQLException e)

{

System.out.println("登录失败!");

e.printStackTrace();

}

finally

{

mydb.closed();

}

}

return result;

}

2.主页:进入主页后可以点击左侧项目信息管理、资源信息管理、进度信息管理、个人密码修改等图标,进入相应的管理页面

3.项目管理:本模块实现对企业项目信息的管理操作,包括企业项目信息的添加、删除操作。

点击企业项目信息管理菜单,进入企业项目信息管理页面,该页面通过列表列出已添加的企业项目信息,包括项目名称、立项时间、负责人等。点击列表的删除按钮,实现企业项目信息的删除操作。

图4-1

点击添加按钮,进入企业项目信息添加页面,输入符合条件的企业项目信息,完成添加

图4-2

该模块的主要功能xiangmu_servlet类 实现的,该类的主要功能是与数据库交互,查询或保存企业项目信息,并通过request跳转,打开相应的jsp页面。部分代码是:

public void xiangmuDel(HttpServletRequest req,HttpServletResponse res)

{

String id=req.getParameter("id");

String sql="update t_xiangmu set del='yes' where id=?";

Object[] params={id};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();

req.setAttribute("message", "操作成功");

req.setAttribute("path", "xiangmu?type=xiangmuMana");

        String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}

public void xiangmuMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException

{

String sql="select * from t_xiangmu where del='no'";

req.setAttribute("xiangmuList", getxiangmuList(sql));

req.getRequestDispatcher("admin/xiangmu/xiangmuMana.jsp").forward(req, res);

}

public void xiangmuSele(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException

{

String sql="select * from t_xiangmu where del='no'";

req.setAttribute("xiangmuList", getxiangmuList(sql));

req.getRequestDispatcher("admin/xiangmu/xiangmuSele.jsp").forward(req, res);

}

private List getxiangmuList(String sql){

List xiangmuList=new ArrayList();

Object[] params={};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

while(rs.next())

{

TXiangmu xiangmu=new TXiangmu();

xiangmu.setId(rs.getInt("id"));

xiangmu.setMingcheng(rs.getString("mingcheng"));

xiangmu.setShijian(rs.getString("shijian"));

xiangmu.setFuzeren(rs.getString("fuzeren"));

xiangmuList.add(xiangmu);

    }

rs.close();

}

catch(Exception e)

{

e.printStackTrace();

}

mydb.closed();

return xiangmuList;

}

4.项目资源管理:本模块实现对项目资源信息的管理操作,包括项目资源信息的添加、删除操作。

点击项目资源信息管理菜单,进入项目资源信息管理页面,该页面通过列表列出已添加的项目资源信息,包括项目名称、资源名称、添加时间等。

图4-3

图4-4

     部分代码:public void ziyuanAdd(HttpServletRequest req,HttpServletResponse res)

{

String xiangmu_id=req.getParameter("xiangmu_id");

String shijian=req.getParameter("shijian");

String mingcheng=req.getParameter("mingcheng");

String miaoshu=req.getParameter("miaoshu");

String sql="insert into t_ziyuan (xiangmu_id,mingcheng,miaoshu,shijian) values(?,?,?,?)";

Object[] params={xiangmu_id,mingcheng,miaoshu,shijian};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();

req.setAttribute("message", "操作成功");

req.setAttribute("path", "ziyuan?type=ziyuanMana");

        String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}

public void ziyuanMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException

{

String sql="select ta.*,tb.mingcheng xmmc from t_ziyuan ta,t_xiangmu tb " +

   "where ta.xiangmu_id=tb.id and del='no'";

List ziyuanList=new ArrayList();

Object[] params={};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

while(rs.next())

{

TZiyuan ziyuan=new TZiyuan();

ziyuan.setId(rs.getInt("id"));

ziyuan.setXmmc(rs.getString("xmmc"));

ziyuan.setShijian(rs.getString("shijian"));

ziyuan.setMingcheng(rs.getString("mingcheng"));

ziyuan.setMiaoshu(rs.getString("miaoshu"));

ziyuanList.add(ziyuan);

    }

rs.close();

}

6.项目经费管理:本模块实现对项目经费信息的管理操作,包括项目经费信息的添加、删除操作。点击项目经费信息管理菜单,进入项目经费信息管理页面,该页面通过列表列出已添加的项目经费信息,包括项目名称、经费金额、追加时间等。      

图4-5

图4-6

    部分代码:public void jingfeiAdd(HttpServletRequest req,HttpServletResponse res)

{

String xiangmu_id=req.getParameter("xiangmu_id");

String shijian=req.getParameter("shijian");

String jine=req.getParameter("jine");

String sql="insert into t_jingfei (xiangmu_id,jine,shijian) values(?,?,?)";

Object[] params={xiangmu_id,jine,shijian};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();

req.setAttribute("message", "操作成功");

req.setAttribute("path", "jingfei?type=jingfeiMana");

        String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}

public void jingfeiMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException

{

String sql="select ta.*,tb.mingcheng from t_jingfei ta,t_xiangmu tb " +

   "where ta.xiangmu_id=tb.id and del='no'";

List jingfeiList=new ArrayList();

Object[] params={};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

while(rs.next())

{

TJingfei jingfei=new TJingfei();

jingfei.setId(rs.getInt("id"));

jingfei.setXmmc(rs.getString("mingcheng"));

jingfei.setShijian(rs.getString("shijian"));

jingfei.setJine(rs.getString("jine"));

jingfeiList.add(jingfei);

    }

rs.close();

}

7.项目进度管理:本模块实现对项目进度信息的管理操作,包括项目进度信息的添加、删除操作。点击项目进度信息管理菜单,进入项目进度信息管理页面,该页面通过列表列出已添加的项目进度信息,包括进度描述、添加时间、百分比等。

       

图4-7

 

图4-8

    部分代码:public void jinduAdd(HttpServletRequest req,HttpServletResponse res)

{

String xiangmu_id=req.getParameter("xiangmu_id");

String shijian=req.getParameter("shijian");

String miaoshu=req.getParameter("miaoshu");

String baifenbi=req.getParameter("baifenbi");

String sql="insert into t_jindu (xiangmu_id,shijian,miaoshu,baifenbi) values(?,?,?,?)";

Object[] params={xiangmu_id,shijian,miaoshu,baifenbi};

DB mydb=new DB();

mydb.doPstm(sql, params);

mydb.closed();

req.setAttribute("message", "操作成功");

req.setAttribute("path", "jindu?type=jinduMana");

        String targetURL = "/common/success.jsp";

dispatch(targetURL, req, res);

}

public void jinduMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException

{

String sql="select ta.*,tb.mingcheng from t_jindu ta,t_xiangmu tb " +

   "where ta.xiangmu_id=tb.id and del='no'";

List jinduList=new ArrayList();

Object[] params={};

DB mydb=new DB();

try

{

mydb.doPstm(sql, params);

ResultSet rs=mydb.getRs();

while(rs.next())

{

TJindu jindu=new TJindu();

jindu.setId(rs.getInt("id"));

jindu.setXmmc(rs.getString("mingcheng"));

jindu.setShijian(rs.getString("shijian"));

jindu.setMiaoshu(rs.getString("miaoshu"));

jindu.setBaifenbi(rs.getString("baifenbi"));

jinduList.add(jindu);

    }

rs.close();

}

8.项目成果管理:本模块实现对项目成果信息的管理操作,包括项目成果信息的添加、删除操作。点击项目成果信息管理菜单,进入项目成果信息管理页面,该页面通过列表列出已添加的项目成果信息,包括进度描述、添加时间、百分比等。

  

图4-9

图4-9

9.退出后台管理:后台管理模块的出现主要用于来自后台系统管理。当从后台管理系统出来,然后单击[退出]按钮,虽然它仍然在后台,但不能做任何事情;点击其他工作的模块,将打开登录窗口的背景下,要求用户介绍了正确的用户名,密码。

4.3 项目管理的体系结构

主要结构:

图4-10

即:JSP技术 + JavaBeans + MySQL 数据库 

                        

4.4 系统总体结构图

图 4-11 系统总体结构图

数据流图:

数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。在结构化开发方法中,数据流图是需求分析阶段产生的结果。

数据流图英文缩写DFD(Data Flow Diagram)它是描绘信息流和数据从输入移动到输出的过程中所经受的变换。

数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程。

数据流程图包括:

a.指明数据存在的数据符号,这些数据符号也可指明该数据所使用的媒体;

b.指明对数据执行的处理的处理符号,这些符号也可指明该处理所用到的机器功能;

c.指明几个处理和(或)数据媒体之间的数据流的流线符号;

d.便于读、写数据流程图的特殊符号。

在处理符号的前后都应是数据符号。数据流程图以数据符号开始和结束(除9.4规定的特殊符号外)

图4-12系统流程图

4.5项目管理系统用例图

图4-13 管理员用例图

图4-14 员工用例图

5 数据库设计

5.1 数据库系统概述

数据库是“按照数据结构来组织、存储和管理数据的仓库”。作为网络的一个重要应用,数据库在网站建设中发挥着重要的作用,与普通网站相对而言,具有数据库功能的网站网页我们通常称为动态页面,也就是说页面不是一层不变的,页面上内容(或部分内容)是动态生成的,它可以根据数据库中相应部分内容的调整而变化,使网站内容更灵活,维护更方便,更新更便捷。SQL Server数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,具有较大的用户群体。

本系统数据库采用SQL Server数据库,系统数据库名称为db_yyw,下面分别给出数据表概要说明、主要数据表的结构。

5.2 数据库逻辑结构设计

系统数据库db_xmgl中含有7张数据表,项目信息表t_xiangmu、资源信息表t_ziyuan、经费信息表t_jingfen、进度信息表t_jindu、成果信息表t_chengguo、管理员信息表t_admin、员工信息表t_admin。

1.项目结构表:项目信息表主要用于保存项目的基本信息,如项目名称、立项时间、项目负责人等

表5-1项目结构表

字段名

数据类型

长度

是否主键

描述

id

int

4

自动编号

mingcheng

int

4

项目名称

shijian

int

4

立项时间

fuzeren

varchar

50

项目负责人

2.资源信息表:资源信息表主要用于保存项目涉及到的资源信息,如资源名称、描述、添加时间等

表5-2项目信息表

字段名

数据类型

长度

是否主键

描述

id

int

4

自动编号

xiangmu_id

int

4

项目信息

mingcheng

varchar

50

资源名称

miaoshu

varchar

50

资源描述

shijian

varchar

50

添加时间

3.经费信息表:经费信息表主要用于保存项目经费信息,如经费金额、追加时间等

表5-3经费信息表

字段名

数据类型

长度

是否主键

描述

id

int

4

自动编号

Xiangmu_id

int

4

项目信息

jine

varchar

50

经费金额

jine

varchar

50

追加时间

  

4.进度信息表:进度信息表主要用于保存项目进度信息,如时间、进度描述、百分比等

表5-4进度信息表

字段名

数据类型

长度

是否主键

描述

id

int

4

自动编号

Xiangmu_id

int

4

项目信息

shijian

varchar

50

时间

miaoshu

varchar

50

进度描述

baifenbi

varchar

50

百分比

5.成果信息表:成果信息表主要用于项目产生的成果信息,如成果描述、时间、成果相附件等

表5-5成果信息表

字段名

数据类型

长度

是否主键

描述

id

int

4

自动编号

xiangmu_id

int

4

项目成果

miaoshu

varchar

50

成果描述

shijian

varchar

50

时间

fujian

varchar

50

附件路径

fujianYuanshiming

varchar

50

附件原始名

6.管理员信息表:管理员信息表主要用于保存管理员的基本信息

表5-6管理员信息表

字段名

数据类型

长度

是否主键

描述

id

int

4

自动编号

userName

varchar

50

登录账号

userPw

varchar

50

登录密码

7.员工信息表:员工信息表主要用于保存员工的基本信息

表5-7员工信息表

字段名

数据类型

长度

是否主键

描述

id

int

4

自动编号

name

varchar

50

员工姓名

sex

varchar

50

员工性别

tel

varchar

50

员工电话

userN

varchar

50

员工登录账号

userP

varchar

50

员工登录密码

6 系统实现

6.1程序说明

本系统都是以面向对象的方法进行设计实现,我们以Java 语言为基础进行开发,在实现此系统功能时,我们是采用JSP技术,JavaBeans组件和MySQL数据库进行开发实现的。

6.2 网页主页面模块  

6-2-1 网页主页模块

      

7 系统测试

7.1 软件的安装与配置

软件安装的环境:操作系统Windows 7

MySQL

JDK安装:

在我们大学的课程以及实践中,我们有很多次JDK安装的经验,JDK的安装也特别简单,易于操作。

JDK的配置:

设置JAVA_HOME环境变量:JDK 安装目录 例:C:\j2sdk1.4;

设置CLASSPATH环境变量:JDK安装目录\lib\tools.jar 例:

C:\j2sdk1.4\lib\tools.jar;.

设置PATH环境变量:JDK 安装目录\bin;例:C:\j2sdk1.4\bin;

服务器的安装:Tomcat 5.0

设置TOMCAT_HOME环境变量:Tomcat安装目录  例:C:\Tomcat 5.0;

(2)Tomcat5.0 安装时注意在选择Java虚拟机路径是切记要选择安装的JSDK的目录,之后再进行安装。

(3)在安装完毕后,我们随后就可以运行TOMCAT,可以在浏览器中输入http://localhost:8080,成功的TOMCAT的欢迎页面,。

7.2 软件调试

人无完人,我们在软件开发的过程中难免会发生一些错误,而软件调试则是为了发现程序和系统中的出现的问题,并对其及时的加以修改和修正,得以更好的完善系统,更准确的贴近系统开发的预期功能。

我们在项目管理系统中所采用的调试方法包括以下几种:

(1) 程序调试

程序调试的方法主要包含语法调试和逻辑检查两种,在测试过程中,我们不能单单运用正常的数据资料来进行调试,这样的调试并不能保证系统的全面性,我们选用的资料必须全面,从各种方面和角度对系统进行核查调试,这样对系统的功能完善具有很准确的判断。

①首先我们会用正常的数据资料来对系统进行调试。正确的资料是系统完成功能的首要标准,检查系统是否实现了基本功能,正常的数据资料在系统调试中的地位相当重要。

②其次,我们还需要运用有异常的数据资料对系统进行调试,检查系统的容错性,防止系统在遇到异常时无法处理而崩溃,影响用户的使用及体验,此项调试也十分重要。

③最后我们也会用有明显错误的数据资料对系统进行核查调试。在系统接收到错误的资料信息时,是否会返回一定的信息,而不是一味地不作回应。错误的资料对检验系统功能也是必不可少。

7.3 软件测试

软件测试对于系统开发而言是十分重要的一部分,它保证了系统的质量与可靠性。我们在进行软件测试时,最重要的目的是检查是否能够实现该系统的各项功能,是否能够满足消费者的各项需求。

软件测试是对整个系统开发过程的最终审查,若错误没被及时发现,则会给后续开发工作造成很严重的后果。

    黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。

    白盒测试,又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。

采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。在动态分析技术中,最重要的技术是路径和分支测试。下面要介绍的六种覆盖测试方法属于动态分析方法。

对于此系统,采取黑盒测试与白盒测试相联系,其中黑盒测试为主,我们将白盒测试则应用于主要的功能模块。

测试用例:

1.登录的测试用例

功能A描述

登录界面

用例目的

测试管理员能否正常登录

前提条件

操作系统正常运行,以及各硬件配置恰当

输入/动作

期望的输出/相应

实际情况

输入:管理员ID:a,  密码:1

登录成功

与期望相吻合

输入:管理员ID:a,  密码:1111

密码错误

吻合

                     

2用户查询的测试用例

功能B描述

查询界面

用例目的

测试能否正常查询

前提条件

操作系统正常运行,以及各硬件配置恰当

查询/动作

期望的输出/相应

实际情况

查询:项目,项目名称:项目A,立项日期:20170511,负责人:许楠楠

查询成功

吻合

查询:项目,项目名称:项目B,立项日期:20170606,负责人:某人

查询成功

吻合

查询:项目,项目名称:项目C ,立项日期:20170606,负责人:

负责人不显示

吻合

查询:项目,项目名称:项目D,立项日期:     ,负责人:某某人

立项日期不显示

吻合

测试结果:

★可能会有部分的中文数据从数据库中取出后,出现一些乱码的现象。

★系统的参数时而会出现错误,无法再进行传递

★系统在遇到大量用户同时进行访问时,数据库的效率可能没有想象中那么高。会造成部分用户访问失败,影响用户的体验以及系统的运行效率。

主要的解决方法:

我使用一部分代码方法来解决乱码问题:

其次我会对各个模块的参数模式进行统一规划。

这个系统是以中小型为根本,在使用JDBC连接数据库时,这些因素会造成一些问题。

7 结束语

在毕业设计和开发期间,经过老师的指导和三个多月的认真学习,同时翻阅了大量的资料,终于完成了项目管理系统的开发设计。其功能基本符合用户需求,能够完成课题的提交。我感觉自己从理论到实践都有了长足的进步和很大的提高,使我在数据库设计方面、JSP编程技术方面有了长足的进步,对项目管理系统开发过程、步骤有了比较深刻的认识。

通过毕业设计,我还明白了一点,合作是至关重要的。虽然我是自己一个人为一组,但是在设计过程中也经常和同学们商量,相互借鉴。一个完整软件程序需要若干个人的通力合作。在项目管理系统开发过程中,我加强和同学们的沟通和交流,使得对每一个问题的解决获得较优的方案,从而保证项目管理系统的合理性、完整性,为该平台的进一步完善和扩充打下了良好的基础。

撰写毕业论文期间,我深刻体会到,实践到理论的重要性。在实践到理论的转化中,我将自己的工作过程清晰的展现在面前,而且增强了自己查阅资料的能力,获得了一些必要的知识。

总之,在完成该系统的过程中学到很多在大学的教室学不到的东西,不仅仅是专业知识增加了学到了很多,也锻炼了我的意志,让我更坚强。

参考文献

[1] 张志豪.基于Java EE的里程碑科技项目管理系统的设计与实现[D].电子科技大学,2014.

[2] 康蒋伟,周爱玲,邱建林.高校科研项目管理系统的设计与实现[J].科技创新与应用,2016年36期

[3] 刘亚宾,精通Eclipse--JAVA技术大系,电子工业出版社,2005.

[4] 于万波,网站开发与应用案例教程,清华大学出版社,2009.

[5] 杨学瑜,高立军,软件开发过程与项目管理,电子工业出版社,2008.

[6] 张洁才,Java web应用开发教程,科学出版社,2005.

[7] 戴维尔,JavaScript程序员教程,电子工业出版社,2010.

[8] 黎连业、王华、李淑春,软件测试与测试技术,清华大学出版社,2009.

[9] 黄梯云著.管理信息系统.北京.电子工业出版社.2006 .

[10].James D. McCaffrey等著.NET软件测试自动化之道[M]. 北京.电子工业出版社.2007.

[11].甘仞初著.信息系统开发.北京.经济科学出版社.2007.

[12].马赫著. Dreamweaver MX 2004 网页设计经典108例.中国青年出版社.2005.

[13].唐友国 湛洪波著.JSP网站开发详解.电子工业出版社2008年10月.

[14].卫红春等著.信息系统分析与设计[M].北京.清华大学出版社.2009.

[15].张大方 李玮等著.软件测试技术与管理[M].湖南.湖南大学出版社,2007.

[16]. (美) H.M.Deitel,P.Jdeitel著.Java程序设计教程(第五版). 清华大学出版社.2004.

[17]. (美) Elliotte Rusty Harold著.Java Network Programming.东南大学出版社 .2005.

[18] 孙卫琴等著.精通struts:基于MVC的Java Web设计与开发. 电子工业出版社.2005.

[19] 张文静 林琪著.JSP程序设计.人民邮电出版社.2005.

[20] 孙卫琴 李洪成著.Tomcat与Java Web开发技术详解. 电子工业出版社.2005.

[21](美)John J.Patrick著.SQL基础(第二版).清华大学出版社.2004.

[22](美)David flanagan著.Java技术手册(第五版).东南大学出版社.2006.

[23]黄裴、徐汀荣,电子商务原理与技术(第二版),科学出版社,2006年10月

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1644181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux网络部分——DHCP、FTP

目录 一、DHCP动态主机配置协议 1. DHCP工作原理(流程) 2. 使用DHCP的好处 3.DHCP的分配方式 4.DHCP安装和配置【☆】 二、FTP文件传输协议 1. FTP传输模式 2.FTP安装与配置【☆】 3. FTP设置白名单和黑名单【☆】 一、DHCP动态主机配置协议 DH…

自动驾驶融合定位系列教程五:惯性导航误差分析

自动驾驶融合定位系列教程五:惯性导航误差分析 一、概述 在定位领域的几乎所有多传感器融合系统中,都有IMU存在,而且,IMU是定位系统的主线与核心(对此可能很多人并不同意,但是我仍然坚定地坚持这一观点&a…

GPU通用计算介绍

谈到 GPU (Graphics Processing Unit,图形显示卡)大多数人想到的是游戏、图形渲染等这些词汇,图形处理确实是 GPU 的一大应用场景。然而人们也早已关注到它在通用计算上的巨大潜力,并提出了 GPGPU (General-purpose co…

【精品毕设推荐】基于JSP物流信息网的设计与实现

点击免费下载原文及代码、PPT 摘要 本文讲述了基于JSP物流信息网的设计与实现。该系统使用java语言开发,使系统具有更好的平台性和可扩展性。 该系统实现了用户登录、注册、查询快递信息、快递公司注册成为合作伙伴以及系统管理员对信息进行管理等功能。系统的主…

【网络原理】HTTPS 的工作过程

系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】网络编程中的基本概念及Java实现UDP、TCP客户端服务器程序(万字博文) 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制(CRC算法、MD5算法) 【网络…

libcity笔记:参数设置与参数优先级

1 参数优先级 高优先级的参数会覆盖低优先级的同名参数 Libcity中的优先级顺序维: 命令行参数(命令行python run_model.py时导入的) > 用户定义配置文件(命令行python run_model.py时由config_file导入的) >…

变老相机app

变老相机app 在手机上使用“变老相机”app,其中的时光穿梭功能可以生成10岁、20岁、50岁、70岁的照片 目的 得到未来自己的照片,能够更有效地督促我们为老年的自己存款。

CMakeLists.txt语法规则:改变行为的变量说明二

一. 简介 前面一篇文章学习了 CMakeLists.txt语法中的 部分常量变量,具体学习提供信息的变量,文章如下: CMakeLists.txt语法规则:提供信息的变量说明一-CSDN博客 CMakeLists.txt语法规则:提供信息的变量说明二-CSD…

苍穹外卖项目---------收获以及改进(1-2天)

①Nginx反向代理 概念&#xff1a; 优点&#xff1a; 反向代理配置方式&#xff1a; 负载均衡配置方式&#xff1a; ②MD5加密,使用Hutool工具 ③ThreadLocal 封装线程操作的类&#xff1a; //线程操作封装类 public class BaseContext {public static ThreadLocal<Long>…

EasyImage2.0 简单图床开源源码

特点 支持API 支持仅登录后上传 支持设置图片质量 支持压缩图片大小 支持文字/图片水印 支持设置图片指定宽/高 支持上传图片转换为指定格式 支持限制最低宽度/高度上传 支持上传其他文件格式 在线管理图片 支持网站统计 支持设置广告 支持图片鉴黄 支持自定义代码 支持上传IP…

CI/CD笔记.Gitlab系列.新用户管理

CI/CD笔记.Gitlab系列 新用户管理 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_285502…

Linux —— 信号初识

Linux —— 信号初识 什么是信号测试几个信号signal函数函数原型参数说明返回值注意事项示例 后台程序前台转后台检测输入中断向量表 我们今天来继续学习Linux的内容&#xff0c;今天我们要了解的是Linux操作系统中的信号&#xff1a; 什么是信号 信号是操作系统内核与进程之…

45. UE5 RPG 增加角色受击反馈

在前面的文章中&#xff0c;我们实现了对敌人的属性的初始化&#xff0c;现在敌人也拥有的自己的属性值&#xff0c;技能击中敌人后&#xff0c;也能够实现血量的减少。 现在还需要的就是在技能击中敌人后&#xff0c;需要敌人进行一些击中反馈&#xff0c;比如敌人被技能击中后…

Mac基于Docker-ubuntu构建c/c++编译环境

编译环境安装和使用被充分验证&#xff0c;如有期望补充的内容欢迎留言评论。 目录 前言 Docker desktop下载安装 修改镜像源 选择ubuntu镜像 docker容器启动 参数说明: 宿主机与docker容器文件共享 宿主机与docker容器拷贝文件 为 Ubuntu 配置 ssh、vim、make 相关工…

基于Springboot的校园生活服务平台(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园生活服务平台&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

Maven 在项目的 pom.xml 文件中 指定 阿里云的景象仓库

配置 在 项目的 pom.xml 文件中添加如下配置即可 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation&…

计数排序,基数排序,桶排序

目录 计数排序: 基数排序&#xff1a; 桶排序: 计数排序: 计数排序是一种非比较型整数排序算法&#xff0c;特别适用于一定范围内的整数排序。它的核心思想是使用一个额外的数组&#xff08;称为计数数组&#xff09;来计算每个值的出现次数&#xff0c;然后根据这些计数信…

Nginx 从入门到实践(2)——Rewrite重写

Nginx Rewrite Rewrite重写 Nginx Rewriteurl组成说明Rewrite基本概述Rewrite使⽤场景rewrite优点 Rewrite配置语法location匹配概述 if指令if 判断指令语法nginx以及if 判断可使用的全局变量 set命令return指令 url组成说明 https://cn.bing.com/search?qNginxRewrite&P…

VMware虚拟机忘记密码重置--centos7x

centos7虚拟机重置root密码 操作流程 操作流程 重启虚拟机&#xff0c;在如下页面键入e键&#xff1a; 2. 在如下位置添加&#xff1a;init/bin/sh&#xff0c;添加完成后键入Ctrlx启动 依次键入下列命令&#xff1a; mount -o remount,rw / #重新挂载/目录 passwd root #修改…

【微服务】分布式事务(通过Seata解决分布式事务问题)

分布式事务 分布式事务Seata微服务集成SeataXA模式XA模式使用 AT模式AT模式实现 分布式事务 在分布式系统中&#xff0c;如果一个业务需要多个服务合作完成&#xff0c;而且每一个服务都有事务&#xff0c;多个事务必须同时成功或失败&#xff0c;这样的事务就是分布式事务&am…