JAVA-EE--学生信息管理系统(课程设计报告)内含工程源码_第1页
JAVA-EE--学生信息管理系统(课程设计报告)内含工程源码_第2页
JAVA-EE--学生信息管理系统(课程设计报告)内含工程源码_第3页
JAVA-EE--学生信息管理系统(课程设计报告)内含工程源码_第4页
JAVA-EE--学生信息管理系统(课程设计报告)内含工程源码_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA EE课程设计报告题 目:学生信息管理系统 学 院:计算机科学与工程 专 业:计算机科学与技术 学生姓名: 学 号: 指导教师: 2015年 7月 1日目录引言2一、系统需求分析51.1功能分析51.2系统结构分析61.3系统流程分析7二、系统概要设计8三、系统详细设计83.1数据库设计83.1.1 设计原则83.1.2 数据库组成103.1.3数据库表的结构103.2系统模块设计123.2.1 登录模块123.2.2 系统管理模块133.2.3 学籍管理模块143.2.4 成绩管理模块15四、系统实现和演示154.1系统Model层实现164.2系统配置和界面174.2.1 界面实现174.2.2 显示学生所选课程信息204.2.3 显示课程成绩204.2.4 修改学生信息224.2.5 管理员管理界面224.2.6 hibernate配置文件设置234.2.7 Struts-config配置文件设置23五、开发过程中所用到的技术265.1 软件工程的思想方法265.2 MVC思想275.3 Struts2.028六、总结29参考文献30引言随着计算机技术的迅速发展和网络技术的突飞猛进,人们迫切要求利用这些新技术以减轻个人的工作负担及提高工作效率。 目前,学校工作繁杂、资料重多,管理信息系统已进入高校,但还未普及,而对于学生信息管理来说,还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。根据开发要求,它主要应用于教育系统,完成对日常学生基本信息以及成绩的录入查询更新删除等管理操作,实现学生信息管理的计算机化。开发学生信息管理系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理。因此,本文描述如何基于MVC框架,使用Hibernate和Struts,开发一个“学生信息管理系统”。其中,Model由Hibernate来负责, Control则使用Struts来实现,利用mysql建立数据库。本系统是采用B/S模式进行开发的,系统的用户权限有三种:学生、教师和系统管理员,不同权限用户登入到不同的操作界面。该系统主要由学籍维护、选课管理、成绩查询等功能模块组成,本文具体介绍了各功能模块所包含的小模块的功能,学籍维护模块主要是对学生的基本信息进行添加、查询、修改、删除;选课管理模块主要是对选修的课程进行添加、删除、统计选修人数,以及学生进行选课和更改选课;成绩查询模块主要是对必修课进行添加、删除、录入成绩,以及学生进行查询成绩等功能。一、 项目开发的工具本系统采用MyEclipse8.5+MySQL+tomcat6.0.36开发1.1 MyEclipe简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。在结构上,MyEclipse的特征可以被分为7类: 1. JavaEE模型 2. WEB开发工具 3. EJB开发工具 4. 应用程序服务器的连接器 5. JavaEE项目部署服务 6. 数据库服务 7. MyEclipse整合帮助 对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。1.2 MySql简介MySQL名字的来历MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 1.3 Tomcat简介Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。 Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。3 数据库的连接本系统采用JDBC连接方式。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。 Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。 JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库。企业也可以用 JDBC 通过 Intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和UNIX 等各种不同的操作系统)。随着越来越多的程序员开始使用Java 编程语言,对从 Java 中便捷地访问数据库的要求也在日益增加。 MIS 管理员们都喜欢 Java 和 JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务, Java 和JDBC 可为外部客户提供获取信息更新的更好方法。一、 系统需求分析1.1功能分析 (1)用户登录:用户登录(一个界面)通过验证分为管理员,学生,老 师登陆三个主页面 。学生信息管理系统采用用户名及密码验证模式,进入学生信息管理系统前,用户必须在登陆页面输入用户名及密码,只有验证通过的用户方可进入学生信息管理系统操作主页面。(2)学生信息管理:管理员对学生信息进行删除,查询和修改。 (3)课程信息管理:管理员也可以进行删除,修改和查询功能,同时学 生可以选课和查询该课程成绩,和查询课程成绩。老师根据所授课程对学生录入成绩 (4)用户管理:三种用户可进行注销进行切换,可以修改密码1.2系统结构分析登陆教师登陆学生登陆后管理员登陆录入成绩修改成绩查询成绩选课查询成绩修改密码录入基本信息修改学生信息删除学生信息修改密码1.3系统流程分析通过分析描述,可以很轻松的将系统的运行流程设计出来。系统运行流程如图所示:开始登录界面输入用户名称和用户密码是否成功成功页面错误页面对数据库进行操作显示课程信息NY结束学生信息管理系统流程图如上图所示:通过对流程的分析,即可进行下一步工作系统的概要设计。二、系统概要设计运用面向对象的设计方法,这个阶段设计一下系统的大体框架。最直接的方法就是直接将流程图直接映射成为项目文件。参照上一节的系统流程分析,直接将流程图中的流程变为JSP页面,流程之间测转换则映射成为Action和Struts的导航规则。系统中所有的数据库相关操作都由Hibernate中的DAO(数据访问对象)类来实现。由于使用了JSP页面,所以不仅可以使用HTML标签,同时还可以使用JSP中的EL语言和Struts中的标签。为了更好的配合JAVAEE开发,数据库采用MYSQL。三、系统详细设计3.1数据库设计3.1.1 设计原则(1)密码管理:学生修改学生查询密码;教师可以修改查询密码。(2)每个教师可以查看所有学生的成绩,包括每门课程的成绩、每门课程的平均成绩、每个分数段的成绩。(3)学生根据自己的学号查询本人的成绩。(4)管理员可以对学生、老师等信息进行增加、删除、修改等操作。3.1.2 数据库组成本系统中共用到了7个数据表,如下:admin表:记录管理员信息;teacher表:记录教师信息;student表:记录学生学籍信息;kechengbiao表:记录选修课信息;chegnji表:记录学生基础课信息;成绩关联表:记录学生基础课成绩信息;选课关联表:记录学生选课信息。3.1.3数据库表的结构字段名字段描述是否主键数据类型长度约束说明admin_id管理员ID是varchar20Not null主键password密码否varchar20Not null表3-1 admin表字段名字段描述是否主键数据类型长度约束说明tno教师号是varchar20Not null主键tpss密码否varchar20Not nulltname教师姓名否varchar20Not nullsex性别否varchar20Not nulljibie职称否varchar20Not nulltel电话号码否varchar20Not null表3-2 teacher表字段名字段描述是否主键数据类型长度约束说明name学生姓名否varchar20Not nullstu_id学号是varchar20Not null主键password密码否varchar20Not nullsex性别否varchar20Not nullzy专业否varchar20Not nullmz民族否char10Not nullzzmm政治面貌否varchan20Not nullcym曾用名否varchar20sfz身份证否varchar20csrq出生日期否varchar20jg籍贯否varchar20jkzk健康状况否varchar20rxnf入学年份否varchar20jtdz家庭地址否varchar50jtdh家庭电话否varchar20yzbm邮政编码否varchar10lxfs联系方式否varchar20email邮件否varchar20qtlxfs其他联系否varchar20bz备注否varchar203-3 student表字段名字段描述是否主键数据类型长度约束说明学期号学期号否varchar20cno课程号是varchar20Not null主键cname课程名否varchar20Not null学分学分否varchar20主讲教师主讲教师否varchar203-4 chengji表字段名字段描述是否主键数据类型长度约束说明cno课程号是varchar20Not null主键cname课程名否varchar20Not nulltno任课教师否varchar20星期几星期几否varchar20时间时间否varchar20classno上课教室否varchar20表3-5 kecheng表字段名字段描述是否主键数据类型长度约束说明id自动标识是int4Not null主键stu_id学号否varchar20Not nullcno课程号否varchar20Not null成绩成绩否varchar20Not null重修成绩重修成绩否varchar20Not null表3-6 成绩关联表字段名字段描述是否主键数据类型长度约束说明id自动标识是int4Not null主键stu_id学号否varchar20Not nullcno课程号否varchar20Not null表3-7 选课关联表3.2系统模块设计3.2.1 登录模块 为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。用户登录窗体中放置了两个文本框,用来输入用户名和密码;两个按钮用来确定或者重写登录。设置三个单选控件,供不同用户登录时选择用户权限,管理员拥有一切权限(包括添加删除和修改以及对用户的管理),教师和学生拥有受限制的权限(如查询及修改密码),提高了数据库的安全性。登录模块图如下图所示:3.2.2 系统管理模块 添加用户窗体的创建 进入系统后,将会出现一个主窗体,选择系统管理模块下的添加用户,就可以进入添加用户窗体,可以通过该窗体增加新的用户。在这个窗体中放置了五个文本框,用来输入用户名、密码出生时间、总学分和备注;一个下拉列表框和两个单选框用来确定专业和性别;两个按钮用来确定是否添加用户; 修改密码窗体的创建在系统管理模块下,进入修改密码窗体,用户可根据需要修改自己的密码。在这个窗体中放置了三个文本框,用来输入原始密码、新密码和确认新密码;两个按钮用来确定是否修改密码。3.2.3 学籍管理模块 添加学籍信息功能选择主窗体中学籍管理模块下的添加学籍信息,就可进入添加学籍信息的窗体,在该窗体中我们可以对学生的学号、姓名、性别、出生日期、班号等学生的信息进行添加。添加的信息将全部存储到数据库中。 在窗体上放置多个文本框和下拉式文本框,用来输入学籍信息;两个按钮用来确定是否输入学籍信息;一个按钮用来退出窗体;多个标签用来提示文本框中需要输入的内容。 修改学籍信息功能点击学籍管理模块下的修改学籍信息,就进入修改学籍信息的窗体,在该窗体中我们可以对前面添加的学籍信息进行修改。由于用户的需求不同,有的是要对学生的信息做个别的改动,有的是需要删除该条记录,所以该窗体同时包括了修改记录的功能和删除记录的功能。 查询学籍信息功能进入学籍管理模块下的查询学籍信息窗体,在该窗体中可以对学生的信息进行查询,有三种查询方式。一方面考虑到简洁的因素,用户可以只设置一种查询方式进行查询;另一方面又为了避免数据的重复,用户可以输入详细的信息,也就是同时设置多种查询方式进行查询。进入查询窗体时,会显示出所有学生的学籍信息,如果不设置查询方式就进行查询,是无效查询,系统会给出提示。在设置好查询方式后,便开始查询,将显示出用户所需的学生的学籍信息。3.2.4 成绩管理模块 成绩信息管理功能点击成绩管理模块下的成绩信息浏览,进入成绩信息浏览窗体。点击工具条中的修改、添加和查询按钮就可分别进入修改成绩信息窗体、添加成绩信息窗体和查询成绩信息窗体。这三个窗体的界面设置分别类似于学籍管理下修改学籍信息窗体、添加学籍信息窗体和查询学籍信息窗体。四、系统实现和演示要明确的是,该项目是一个基于MVC结构的,其中使用Struts2.0作为整个MVC的实现,其中的Action又充当控制器的角色(当然包括了struts.xml配置文件的导航作用),Hibernate3.1作为Model的实现。现在在MyEclipse10下新建空的web项目,然后在项目根目录src文件夹下建立两个包:action包用来存放Action类,entity用于存放从hibernate逆向过来的实体类的java文件。4.1系统Model层实现由于工程属于数据库先行的方法,因此需要将数据库逆向成为hibernate实体类,hibernate3.1中提供了这样的工具。在逆向之前,我们需要对我们建立好的数据库在MyEclipse的Hibernate视图下建立一个连接。方法是,在Hibernate视图,左边DB Browser鼠标右击-【new】,然后再弹出的对话框中填写好相关信息,点击【Finish】即新建一个数据库连接。建立好需要的数据库连接之后,就要为项目添加Hibernate组件了,方法是:方法是:在项目上点击鼠标右键-【MyEclipse】-【Add Hibernate capabilities】,然后选择Hibernate版本,这里用的是3.1,然后单击【Finish】完成Hibernate功能的添加。接下来,就可以着手将数据表逆向到Hibernate实体类了,还是要到数据库视图,双击打开之前建立好的数据库连接,选择要逆向成为实体类的数据表,鼠标右击-【Hibernate Reserver Engineering】,在弹出来的对话框中,选择实体类生成的位置也就是之前建立的com.entity包。勾选生成DAO类,其余设置保持默认即可,点击【Finish】完成数据表的逆向,此时再回到工程视图,可以看见生成好的实体类和实体的DAO类。这里,每一个实体类实际上由三个文件组成:抽象实体类、具体实体类和实体数据库访问对象(DAO)。抽象类中包含了数据表的属性和一些抽象的方法,具体实体类中则是方法的具体实现,DAO类则是实现了对数据库记录的操作。Hibernate已经为DAO类提供了一些常用的方法,而Hibernate自身实际上是用hql语句对数据库进行操作的,如果在使用过程中需要自定义新的数据库操作方法,则可以在对应的DAO文件中编写相应的方法。到此,Model层就实现了,由于使用了Hibernate,Model的实现变得非常容易。4.2系统配置和界面4.2.1 界面实现围绕系统用例,从用例出发来设计所需的Action。那么按照用例,第一个Action的作用应当是实现用户的登陆,若登陆成功,该Action应当导航到用户登陆成功界面,失败则给出提示信息并停留在登陆页面。登录页面图如下:登录页面代码如下:学生角色登录系统成功后,会出现下面的页面:页面代码如下: 您已经成功通过验证! 您可以使用如下服务 a href=/studentAction.do?method=getDisplayCourse选修课程 a href=/studentAction.do?method=geCheckmark查看成绩 a href=/studentAction.do?method=getEditStudent&self=1更改信息     a href=/login.jsp注销 4.2.2 显示学生所选课程信息4.2.3 显示课程成绩代码如下:查看成绩您所有的成绩课程名称学分成绩  <<Back 4.2.4 修改学生信息4.2.5 管理员管理界面修改学生信息修改老师信息修改课程信息修改综合4.2.6 hibernate配置文件设置4.2.7 Struts-config配置文件设置配置部分代码如下:五、开发过程中所用到的技术5.1 软件工程的思想方法使用了软件工程的来分析和设计一个系统。这样做的确加快了开发的效率,使得整个开发过程变得有条理。按照软件工程的方法思想,一开始就要先分析清楚需求。而需求又是由用户、使用者来决定的也就是说,要寻找系统的参与者。参与者找到后,开始分析参与者的需求,在需求的带动下来寻找系统需要完成的功能这就是用例模型。表现用例模型的东西就是用例图。然后进一步的细化用例,用简短的文字对用例进行描述,以后再实现用例的时候,就可以参照用例描述来编写流程。找完了用例,接下来要把用例组合、实现出来。这里结合了MVC的思想:首先通过用例分析,弄清楚用例的先后关系,绘制出整个系统的流程设计框架,其表现形式就是流程图。流程图的每一个过程实际上是由用例变化而来的,而每个参与者有其不同的流程。流程图确定了,就是真正结合MVC思想的时候了。我尝试这把流程中的每一个流程视为一个动作和该动作的一个返回(这个返回可能是页面也可能是另外一个动作),而触发该动作的条件大多数都是用户对界面的操作,比如用户点击了登陆。5.2 MVC思想由于网站系统的特点,如果软件结构不够清晰,那么随着系统越来越庞大,业务逻辑越来越复杂,开发势必越来越艰难。本系统的开发中用到MVC的思想,将模型层(负责与数据库交互)、视图和控制器解耦,使他们既能够强有力的传递信息又松散耦合。这里的model使用了Hibernate实体框架,这里面最重要的思想就是将数据表映射成为Java代码中的类,以后对Java类的对象的操作就是对对数据表中的记录的操作。不论是JPA甚至是ASP.net MVC中的EntityFrameWork(实体框架),这样的思想在众多的实体框架上都是一样的。如果需要对数据进行更加精细的操作,可以使用HQL语言。5.3 Struts2.0Struts实际上和基本的Serverlet有些相似,不如说Struts的底层实现就是Serverlet。从这次开发的角度上看,Struts相对于Serverlet提供给开发者的便利有以下几点:首先,作为MVC的一个实现框架,为MVC工程实施带来了方便。第二,struts提供了良好的前后台交互数据的方式通过类似于JavaBean的传值方式,只要有同名属性并且带有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论