JAVA课程管理系统的设计与测试

上传人:无*** 文档编号:79096107 上传时间:2022-04-22 格式:DOC 页数:33 大小:898.54KB
收藏 版权申诉 举报 下载
JAVA课程管理系统的设计与测试_第1页
第1页 / 共33页
JAVA课程管理系统的设计与测试_第2页
第2页 / 共33页
JAVA课程管理系统的设计与测试_第3页
第3页 / 共33页
资源描述:

《JAVA课程管理系统的设计与测试》由会员分享,可在线阅读,更多相关《JAVA课程管理系统的设计与测试(33页珍藏版)》请在装配图网上搜索。

1、JAVA课程管理系统设计与测试摘 要高校学生课程管理工作是高等教育中的一个极为重要的环节,是院校学生管理的基础。面对种类繁多的数据和报表,手工处理方式已经很难跟上现代化管理的步伐,传统的文件管理方式进行成绩管理,效率很低,耗时费力,容易出错,安全性也存在问题。特别是在查询上,由于文件过多,带来很多不便。随着计算机及通讯技术的飞速发展,高等教育对教务管理工作提出了更高的要求。尽快改变传统的管理模式,运用现代化手段进行科学管理。本设计研究的是基于J2EE的高校课程管理系统的设计与实现。本系统是基于J2EE开发的成绩管理系统,弥补了人工管理的不足,提高了一定的效率。主要功能包括管理员对教师、学生。课

2、程的管理,教师提交开课申请、查看选课情况、录入成绩。学生查询相关的课程信息、选课、退课、查看课表。该系统为教务处人员提供了强大的课程管理功能,为教师提供了对平时成绩和期末成绩方便的管理,为学生提供了一个方便快捷的查询功能。本设计的开发工具使用MyEclipse,数据库使用的MySQL,框架是struts整合hibernate。关键词:J2EE;课程管理;MySQL;MyEclipseCourse Management System Design and ImplementationAbstractCollege course management is a very important asp

3、ect of higher education,is the foundation of college students management. Faced with a wide variety of data and statements, the manual processing methods have been difficult to keep up with the pace of modern management, the traditional document management about grade management, is inefficient, tim

4、e-consuming effort, error-prone, and also existing security issues. Because too many documents, it brings a lot of inconvenience in the query. With the computer and the rapid development of communication technology, higher education must meet a higher demand. We should change the traditional mode of

5、 management and use modern means of scientific management as soon as possible. The design based on J2EE technology mainly research about Implementation of course management system of universities. The system is based on J2EE platform, cover the deficiencies of manual management, and improve the effi

6、ciency of management. Main features including: teachers record the grade of students in the term examines, generate the report card to examine. Students can query their information at any time with this system. Administrator can manage the students, teachers, curriculum, classes together. The system

7、 for the Registry staff with a powerful performance management capabilities, provide teachers with the usual results and final results for the management, provide students with a convenient and efficient enquiry function. The development tools is MyEclipse, database is MySQL, integrated framework is

8、 struts and hibernate.Key words: J2EE; Grade Management; MySql; MyEclipse目 录第一章绪 论51.1系统开发背景51.2课题研究的内容合意义51.3本文的组织结构6第二章J2EE平台及其支撑技术72.1 J2EE平台72.2 MVC模式72.3 struts92.4 hibernate10第三章需求分析133.1管理员功能133.2学生功能133.3教师功能13第四章 总体设计144.1系统设计基础144.2系统模块划分144.3主要模块设计154.3.1管理模块154.3.2学生模块154.3.3教师模块15第五章 详细

9、设计165.1系统体系结构165.2登陆模块设计165.3教师开课申请165.4录入成绩175.5学生选课、退课17第六章 数据库设计196.1数据库概念模型设计196.2数据库逻辑模型设计20第七章实现237.1登陆模块的实现237.2开课申请247.3学生选课26第八章系统测试298.1测试环境的搭建298.2系统可能出现的问题与不足298.3采用的测试类型298.4采用的测试用列308.5测试结果30致谢32参考文献33课程管理系统设计与测试第一章绪论1.1系统开发背景高校学生成绩管理工作是高等教育中的一个极为重要的环节,是院校学生管理的基础。面对种类繁多的数据和报表,手工处理方式和传统

10、的文件管理方式已经很难跟上现代化管理的步伐,主要表现在以下几个方面:1.易于出错,效率较低安徽大学有学院19个,本科专业66个,在校本科生多达2万以上,各专业四年所上课程总数多达数千,由于采用学分制,在管理这些课程与学生信息的同时,还得统计各个学生选修情况,学分获取情况,仍然采用文件管理形式,手工填表,这种方式的可靠性不高,因为手工填表一不小心就会造成数据遗漏,同时由于学生的档案、学籍数量繁多,手工处理工作量极大,效率低下,进行数据的维护和检索都非常的不便,不能满足日常的管理工作的要求。2. 数据更新不够及时以前由于没有采用Web结构的网络传送方式,所以在数据的更新上,仍采用各系部或各班级将数

11、据上报,并由专门的数据录入人员进行手工录入。这种方式不仅加大了学生信息管理的工作量,而且很容易遗漏信息,并且造成信息的更新不及时。3.信息共享度低,数据冗余大由于没有一个完善的系统,各个部门之间的数据共享度低,数据分散存放,定义的格式往往会各不相同。如表示姓名的字段在这里取名为“name,,到了另一个表中就变成了“xm,这种不一致的数据格式在数据处理时往往需要进行转换,给工作带来很大的不方便,增大了错误发生的机会。1.2课题研究的内容合意义安徽大学最近几年花费十几万元引入一套教务管理系统,我们学生经常接触的便是课程管理系统,该系统采用技术实现,通过几年的使用,我们切实感受到了它的方便性,该系统

12、实现了学生,教师,课程等信息的管理工作,学生可以方便地进行选课,退课,查看学分等等。教师可以进行成绩录入,提交调课申请,查看选课学生的操作。但该系统也存在一些问题,首先是可移植性差,运行平台只能是windows操作系统,而该系统作为服务器系统并不被看好。其次是系统稳定性和安全性不够好,在该系统的使用期间曾频繁发生自动退课情况,导致选修该课程的学生成绩无法录入,本人就遇到这种情况。本系统在功能和界面风格上模仿现有系统,是对现有系统的肯定。但采用了不同的实现技术。系统的运行平台是J2EE+Tomcat,采用了strut+hibernate框架,该系统具有很好的移植性。同时由于所采用的技术框架都是开

13、源的,这使得系统的稳定性和安全性有了很大的提高,也便于以后的扩展和维护工作。1.3本文的组织结构本文共分八章,各章的主要内容如下第一章绪论,主要说明系统开发背景,课题研究的内容和意义。第二章J2EE平台及其支撑技术,介绍本系统的运行平台并简要介绍开发本系统所用到的相关技术。第三章需求分析,从系统的不同用户出发分析系统的功能需求。第四章总体设计,介绍系统设计基础,对系统进行模块划分,并设计各个模块的层次图。第五章详细设计,介绍系统体系结构,设计各个功能模块的系统流程图。第六五章数据库设计 重点介绍数据库概念模型设计和逻辑模型设计,给出了数据库的E-R图第七章实现 主要介绍系统运行时的界面截图和核

14、心代码。第八章系统测试,首先是介绍测试环境的搭建,然后介绍系统采用的测试技术,最后列出测试用列。第二章J2EE平台及其支撑技术2.1 J2EE平台J2EE是一个开放的、基于标准的开发和部署的平台,用于构建N层的、基于Web的、以服务端计算为核心的、模块化的企业应用。J2EE同时也是所有兼容J2EE标准的应用服务器产品的统一标识。Sun公司领导着J2EE规范和标准的制定,但同时很多公司如IBM、BEA也为该标准的制定贡献了很多力量,所以J2EE每一个新规范的推出,都体现着整个业界对技术的共同认同。大家都遵守着“在标准上进行合作,在产品上进行竞争”的原则,从而使J2EE在技术规范上日臻完善和进步,

15、同时又有各厂家实现J2EE规范的应用服务器产品在市场上推出,在性能上、价格上互相竞争,为最终用户提供多样化的选择。图1 Ja2EEa平台体系架构从图1中可以看出,J2EE技术是在J2SE的基础之上,提供了企业计算所必须的服务如事务、安全性、消息服务等。J2SE平台提供Java运行时环境的标准功能,如对跨平台开发的支持和内存管理等。J2EE应用的组件如企业JavaBean(EJB)、JSP和Servlet运行于J2EE容器之中,通过连接器访问企业信息系统,如数据库系统、ERP系统和其他应用程序系统。J2EE应用可以集成一系列的客户端,包括独立运行的台式客户端、无线客户端,以及基于Web浏览器的客

16、户端等。J2EE平台为开发企业应用提供了高性能、高可靠性和可伸缩性的运行支撑环境。2.2 MVC模式MVC模式是Model-View-Controller的缩写,中文翻译为模式-视图-控制器。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC模式最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。smalltalk语

17、言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC模式作为开发Web应用的架构模式。MVC模式是一种架构模式,其实需要其他模式协作完成。在J2EE模式目录中,通常采用service to worker模式实现,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式组成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中。MVC模式是一个复杂的架构模式

18、,其实现也显得非常复杂。但是,我们已经总结出了很多可靠的设计模式,多种设计模式结合在一起,使MVC模式的实现变得相对简单易行。Views可以看作一棵树,显然可以用Composite Pattern来实现。Views和Models之间的关系可以用Observer Pattern体现。Controller控制Views的显示,可以用Strategy Pattern实现。Model通常是一个调停者,可采用Mediator Pattern来实现。现在让我们来了解一下MVC三个部分在J2EE架构中处于什么位置,这样有助于我们理解MVC模式的实现。MVC与J2EE架构的对应关系是:View处于Web Ti

19、er或者说是Client Tier,通常是JSP/Servlet,即页面显示部分。Controller也处于Web Tier,通常用Servlet来实现,即页面显示的逻辑部分实现。Model处于Middle Tier,通常用服务端的javaBean或者EJB实现,即业务逻辑部分的实现。2.3 struts一、为什么要使用Struts Struts是一个WEB开发框架。WEB从一开始的静态HTML开发,到后来的动态页面。从繁琐的、代码及其混乱的Model1,逐步到MVC模式。在技术上和结构上都发生了极大的变化。MVC模式结构清晰,现今已被大量运用。Struts 通过提供一个控制器Servlet

20、实现了Sun 的 Model 2 架构,这个控制器可以用来管理JSP 页面和其他表现设备之间的流程。Struts 通过使用ActionForward和ActionMapping来保证表现层之外的控制流决策来实现 MVC层 模式。同时通过xml配置文件实现几个层次间的关系,大大简化了开发人员的工作量。二、Struts是怎么工作的 我们用一个图示来描述Struts的工作情况 上图以UML以次序图的方式展示了Struts 请求-响应流程。我们来按这个请求-响应流程走一遍。 1、客户请求匹配Action URI 样式的路径 2、容器将请求传递给ActionServlet. 3、如果这个是模块化应用,A

21、ctionServlet 选择响应的模块。 4、ActionServlet 查询路径的映射。(来自于配置文件) 5、如果映射标明了一个form bean,ActionServlet 看是否已经有一个实例,或者创建一个新的实例。如果已经有一个form bean,ActionServlet 重设它,并根据HTTP 请求重新组装它。 6、如果 mapping 的 validate 属性设置为 true, 它将调用 form bean 的validate 方法 7、如果失败,Servlet 将控制转发到input 属性标明的路径,控制流终止。 8、如果mapping 标明一个Action 类型,如果它

22、已经存在或已经实例化,它将被重用 9、Action 的perform 或 execute 方法被调用,并传递一个实例化的form bean(或者 null)。 10、Action 组装form bean, 调用业务对象,以及其他需要做的事情。 11、Action 返回一个ActionForward 给ActionServlet 12、如果ActionForward 指向另一个 Action URI,重新开始; 否则,显示页面或者其他资源,流程结束。通常,结果是一个JSP 页面,或者Jasper, 或其它类似技术 (非Struts)渲染的页面。 13、如果JSP 中使用了Struts HTML

23、标记, 并且在请求中看到正确的ActionForm,他们会从ActionForm 中组装HTML 控件。否则, 标记将创建一个。从Struts 1.1 开始, 如果form 标记自行创建一个ActionForm ,它将调用ActionForm 的Reset 方法。如果你只是想创建一个空白的表单,你可以使用标准的ForwardAction来通过Action 传递控制,然后离开页面2.4 hibernate一 Hibernate定义Hibernate是一种Java语言下的对象关系映射解决方案。 它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL 的关系模型结构中去,为面向对象的领

24、域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。 二 Hibernate的作用Hibernate 不仅管理Java 类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL 和JDBC 处理数据的时间。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。三 Hibernate的应用Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hib

25、ernate可以应用在任何使用JDBC的场合,它既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。最具革命意义的是,Hibernate可以在应用EJB(Enterprise JavaBeans是Java应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。四 Hibernate API简介1 Hibernate API中的接口可以分为以下几类:(1) 提供访问数据库的操作的接口,包括session、Transaction、Query接口;(2) 用于配置Hibernate的接口,Configuration;(3) 间接接口,使应用程序接受Hi

26、bernate内部发生的事件,并作出相关的回应,包括:Interceptor、Lifecycle、Validatable;(4) 用于扩展Hibernate功能的接口,如UserType、CompositeUserType、IdentifierGenerator接口。Hibernate内部还封装了JDBC、JTA(Java Transaction API)和JNDI(Java Naming And Directory Interface)。其中,JDBC提供底层的数据访问操作,只要用户提供了相应的JDBC驱动程序,Hibernate可以访问任何一个数据库系统。JTA和JNDI使Hibernat

27、e能够和J2EE应用服务器集成。2Hibernate的核心接口框图五Hibernate的优缺点(1)优点:a.Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性。b.Hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。c. 它支持各种关系数据库,从一对一到多对多的各种复杂关系。 (2)缺点:Hibernate限制您所使用的对象模型。例如,一个持久性类不能映射到多个表。第三章需求分析高校课程管理系统角色是管理员、学生和教师,管理员对学生、教师、课程、学研、专业和班级信息进行维护,学生选择想要上的课程,查看所选的学分以及修改个人信息,教师开课申请

28、查看选课情况以及给学生打学分。根据以上操作,所作需求分析如下:3.1管理员功能登录:登录学生管理:列表、增加、修改、删除。教师管理:列表、增加、修改、删除。课程管理:列表、增加、修改、删除。学院管理:列表、增加、修改、删除。专业管理:列表、增加、修改、删除。班级管理:列表、增加、修改、删除。3.2学生功能登录:登录。选课:选课、退课、查看个人课表。学分:查看。个人信息:修改。3.3教师功能登录:登录。开课申请:课程列表、选择上课时间、选择上课教室公布成绩:课程列表、学生列表、成绩。第四章总体设计4.1系统设计基础系统功能实现应遵循的基本准则是:易于维护合扩展。本课题研究中采用了以下技术方案。系

29、统体系结构:采用Java语言开发,基于J2EE Struts框架的多层B/S应用系统架构。J2EE是个开放的、基于标准的平台,可以开发、部署和管理的N层结构的、面向Web的,以服务器为中心的企业级应用,它是利用JAVA2平台来简化多级企业解决方案的开发、部署和管理相关的诸多复杂问题的应用体系结构,J2EE包括JSP、Servlet、EJB、Web Service等多项技术。Struts框架就是基于Model2的框架,也是基于MVC模式的框架技术4.2系统模块划分系统主要划分为三大模块:管理员模块,面向学校管理人员。教师模块,面向在校教师。学生模块,面向在校学生。系统层次图如下:系统包结构图如下

30、:com.ahu.hibernate.beans 中存放数据库中表映射的java对象com.ahu.struts.actions 中存放actionservlet的子类com.ahu.struts.forms 封装用户提交的数据的类com.ahu.struts.resources 存放配置文件com.ahu.util 存放常量,公用数据结构和方法4.3主要模块设计4.3.1管理模块该模块的主要功能是维护系统常用信息,确保系统能正常运行。当新生注册是,管理员需要插入新生信息,老生毕业,则需注销这些学生的信息,教师的去留,新学院专业的成立,也要涉及数据的增删修改,以保证数据的及时和准确性。该模块的

31、层次图如下所示:4.3.2学生模块学生模块的主要功能是查看课程列表,获知可选课程,选课,退课,查看个人课表,查看学分等功能。该模块的层次图如下所示:4.3.3教师模块该模块的功能主要是查看课程信息,提交开课申请,查看选课情况,录入成绩。该模块的层次图如下所示:第五章 详细设计5.1系统体系结构5.2登陆模块设计系统的用户包括:学院领导(管理人员)、教师、学生。这些用户既是系统的参与者,又是系统的管理对象,还要控制用户对系统的行为。当用户每次进入系统时,首先要验证用户的合法性。根据用户的类型转向不同的功能页面。系统流程图如下:5.3教师开课申请教师开课是教师模块这要功能之一,教师首先填写开课申请

32、表,输入检查合法过后,申请表处于待审核状态,审核通过,学生则可以选修该课程,同时向教师发送审核合格通知,否则发送不通过通知,学生在课程列表中不可见该开课记录,系统流程图如下:5.4录入成绩录入成绩是教师模块另一重要功能,教师首先选择相关课程,系统列出选修该课程的学生,教师再选择学生,输入成绩,单击提交按钮,进行输入合法性检查,检查通过则成绩录入成功,否则报错。系统流程图如下:5.5学生选课、退课该功能是学生端的主要功能,学生首先选择开课学院,专业,系统列出可选课程,学生选择课程,系统列出上该课的教师,学生选择自己喜欢的教师,点击选课按钮,系统进行合法性检查,检查通过则选课成功,否则报错。退课和

33、选课类似。第六章 数据库设计该系统保存的主要信息有学生信息,教师信息,学院、专业、班级信息以及课程信息,教师开课信息,学生选课信息。6.1数据库概念模型设计6.1.1系统管理数据库概念模型设计系统管理即对用户的管理,包括教师和学生,学院,专业以及班级,课程的管理。系统管理对应的实体有教师,学生,学院,专业,班级,课程。其概念数据模型如下图所示:6.1.2教师开课信息管理数据库概念模型设计需要记录的信息有课程号,教师号,上课时间,上课教室。其概念数据模型如下图所示:6.1.3学生选课信息管理数据库概念模型设计需要记录的数据有学号,开课号,平时成绩,考试成绩其概念数据模型如下图所示:6.2数据库逻

34、辑模型设计学生表字段名数据类型长度是否允许空说明xueHhaoVarchar20否学号(主键)xingMingvarchar20否真实姓名miMavarchar20否密码xingBievarchar2否性别csnyDate否出生年月zcrqDate否入学日期banJiInt11否所属班级教师表字段名数据类型长度是否允许空说明jghvarchar20否教工号xingMingvarcha20否真实姓名miMavarchar20否密码xingBievarchar2否性别csnyDate否出生年月zhiChengvarchar20否职称ssxyint11否所属学院课程表字段名数据类型长度是否允许空说明

35、kcdmInt11否课程代码KcmcVarchar100否课程名称KcxzVarchar20否课程性质Kcxfint11否课程学分KcxqInt11否开课学期KcxyInt11否开课学院学院表字段名数据类型长度是否允许空说明XyhInt11否学院号XymcVarchar100否学院名称XyjjVarchar10000是学院简介专业表字段名数据类型长度是否允许空说明ZyhInt11否专业号ZXymcVarchar100否专业名称ZXyjjVarchar10000是专业简介SsxyInt11否所属学院班级字段名数据类型长度是否允许空说明BjhInt11否班级号BjmcVarchar100否班级名称

36、BjjjVarchar10000是班级简介SszyInt11否所属专业教室表字段名数据类型长度是否允许空说明JshInt11否教室号JsmcVarchar100否教室名称syqkVarchar1000是使用情况开课记录表字段名数据类型长度是否允许空说明KkhInt11否开课号JghVarchar20否教工号KcdmInt11否课程代码SksjVarchar50否上课时间SkjsInt11否上课教室选课记录字段名数据类型长度是否允许空说明XuehaoVarchar20否学号KkhInt11否开课号PscjInt11是平时成绩KscjInt11是考试成绩第七章实现7.1登陆模块的实现界面核心代码:

37、public class LoginAction extends DispatchAction public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) LoginForm loginForm = (LoginForm) form;request.getSession().setAttribute(ID, loginForm.getUsername();if(loginForm.getType().eq

38、uals(student)/学生用户,转向学生界面XueShengDAO xsDAO = new XueShengDAO();XueSheng xs = xsDAO.findById(loginForm.getUsername();List list = xsDAO.findAll();if(xs!=null&xs.getMiMa().equals(loginForm.getPassword()return mapping.findForward(student);elsereturn mapping.findForward(failure);else if(loginForm.getType

39、().equals(teacher)/教师用户,转向教师界面JiaoGongDAO jgDAO = new JiaoGongDAO();JiaoGong jg = jgDAO.findById(loginForm.getUsername();if(jg!=null&jg.getMiMa().equals(loginForm.getPassword()return mapping.findForward(teacher);elsereturn mapping.findForward(failure);return mapping.findForward(failure);7.2开课申请界面核心代

40、码:public class KkxxAction extends DispatchAction public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) KkxxForm kkxxForm = (KkxxForm)form;if(kkxxForm.getTarget().equals(xueyuan)/返回学院信息request.getSession().setAttribute(xueyuan, k

41、kxxForm.getXueyuan();return mapping.findForward(continue);else if(kkxxForm.getTarget().equals(zhuanye)/返回专业信息request.getSession().setAttribute(zhuanye,kkxxForm.getZhuanye();return mapping.findForward(continue);else if(kkxxForm.getTarget().equals(kch)/返回课程信息request.getSession().setAttribute(kch,kkxxF

42、orm.getKch();return mapping.findForward(continue);else if(kkxxForm.getTarget().equals(louhao)/返回教室信息request.getSession().setAttribute(bjh, kkxxForm.getBanji();request.getSession().setAttribute(louhao, kkxxForm.getLouhao();request.getSession().setAttribute(zhou0, kkxxForm.getZhou0();request.getSessio

43、n().setAttribute(node0,kkxxForm.getNode0();request.getSession().setAttribute(zhou1, kkxxForm.getZhou1();request.getSession().setAttribute(node1,kkxxForm.getNode1();/检测在该时间段内可用教室return mapping.findForward(continue);else if(kkxxForm.getTarget().equals(submit)/提交开课申请KkjiluDAO kkjlDAO = new KkjiluDAO();

44、KeChengDAO kcDAO = new KeChengDAO();KeCheng kc = kcDAO.findById(kkxxForm.getKch();int zks = kc.getZks();if(zks%3=0)zks = 3;elsezks = 2;Kkjilu kkjl = new Kkjilu();kkjl.setJgh(String)request.getSession().getAttribute(ID);kkjl.setKch(kkxxForm.getKch();kkjl.setSkjs(kkxxForm.getJshao();String sksj = ;if(

45、kkxxForm.getZhou0()!=null)sksj = sksj+kkxxForm.getZhou0()+_+kkxxForm.getNode0()+_+zks;if(kkxxForm.getZhou1()!=null)sksj = sksj+ +kkxxForm.getZhou1()+_+kkxxForm.getNode1()+_+zks;kkjl.setSksj(sksj);kkjl.setYuliang(new Integer(kkxxForm.getMaxcount();if(kkxxForm.getKch()!=null&!kkxxForm.getKch().equals(

46、0)&kkxxForm.getBanji()!=null&!kkxxForm.getBanji().equals(0)kkjlDAO.save(kkjl);request.getSession().setAttribute(msg, 开课成功!);request.getSession().setAttribute(xueyuan,null);request.getSession().setAttribute(zhuanye,null);request.getSession().setAttribute(zhuanye,null);request.getSession().setAttribut

47、e(kch,null);request.getSession().setAttribute(louhao,null);request.getSession().setAttribute(zhou,null);request.getSession().setAttribute(node,null);request.getSession().setAttribute(bjh,null);request.getSession().setAttribute(jshao,null);elserequest.getSession().setAttribute(msg, 请将信息填充完整!);request

48、.getSession().setAttribute(jshao,kkxxForm.getJshao();return mapping.findForward(continue);return null;7.3学生选课界面核心代码:public class AddCourseAction extends DispatchAction public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) AddCou

49、rseForm addCourseForm = (AddCourseForm) form;String xh = (String) request.getSession().getAttribute(ID);String kkh = addCourseForm.getKkh();String kch = addCourseForm.getKch();if(kkh=null|kch=null)return null;if(addCourseForm.getBtnSubmit().equals(提交)/进行选课操作XuekeJiluDAO xkjlDAO = new XuekeJiluDAO();

50、XuekeJilu xkjl = new XuekeJilu();xkjl.setXueHao(xh);xkjl.setKkh(new Integer(kkh);xkjl.setKch(kch);if(xkjlDAO.find(from XuekeJilu where xueHao=+xh+ and kch=+kch+).size() = 0)xkjlDAO.save(xkjl );KkjiluDAO kkjlDAO = new KkjiluDAO();Kkjilu kkjl = kkjlDAO.findById(new Integer(kkh);kkjl.setYuliang(kkjl.ge

51、tYuliang()-1);kkjlDAO.update(kkjl);XueShengDAO xsDAO = new XueShengDAO();XueSheng xs = xsDAO.findById(xh);String kcb = xs.getKcb1();StringTokenizer st = new StringTokenizer(kkjl.getSksj();while(st.hasMoreTokens()kcb = kcb+ +st.nextToken()+_+kkh;xs.setKcb1(kcb);xsDAO.update(xs);request.getSession().s

52、etAttribute(msg, 选课成功!);elserequest.getSession().setAttribute(msg, 你已经选了该课程!);else if(addCourseForm.getBtnSubmit().equals(退选)/进行退课操作XuekeJiluDAO xkjlDAO = new XuekeJiluDAO();List list = xkjlDAO.find(from XuekeJilu where xueHao=+xh+ and kch=+kch+);if(list!=null&list.size()!=0)XuekeJilu xkjl = (XuekeJ

53、ilu) list.get(0);xkjlDAO.delete(xkjl);KkjiluDAO kkjlDAO = new KkjiluDAO();Kkjilu kkjl = kkjlDAO.findById(new Integer(kkh);kkjl.setYuliang(kkjl.getYuliang()+1);kkjlDAO.update(kkjl);XueShengDAO xsDAO = new XueShengDAO();XueSheng xs = xsDAO.findById(xh);String kb = xs.getKcb1();StringTokenizer st = new

54、 StringTokenizer(kkjl.getSksj();while(st.hasMoreTokens()int index = kb.indexOf(st.nextToken();if(index!=-1)kb = kb.substring(0, index)+kb.substring(index+19);xs.setKcb1(kb);xsDAO.update(xs);request.getSession().setAttribute(msg, 退课成功!);return mapping.findForward(kcck);第八章系统测试8.1测试环境的搭建本系统采用B/s结构,选用一

55、台IBMSystemx3400主机搭建服务器端,选用一台普通电脑用作客户端,网络环境在校园网里进行。8.1.1运行环境(1)服务器端CPU:AMD 1.6G内存2 G操作系统:Mierosoft WindowsXP数据库系统:Mysql5.0应用服务器:aPache一tomcat一5.5.25(2)客户端 CPU:IntelPentiu 2.0内存:256M操作系统: Mierosoft WindowsXP浏览器:IE6.0及其以上版本8.1.2环境配置(l)下载并安装JDK。本测试环境是用的jdk一lesseso12.windows一1586一版本(2)下载并安装APacheTomcat(3

56、)安装Mysql5.0(4)完成以下学工管理系统的部署操作:1、在Mysql中导课程管理系统系统数据库2、将系统war格式部署文件文件放到Tomcat_homewebapps中启动Tomcat服务器。3.在IE中输入http:/localhost:8080/kechengguanlixitong即可访问8.2系统可能出现的问题与不足8.3采用的测试类型本系统我决定采用一下几种类型的测试(1).单元测试这是测试中的最小单位,测试特殊的功能或代码模块。我将对设计的学生信息管理系统的各个代码模块进行测试。在开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可

57、能隐藏着错误和缺陷,不经:周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是软件开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占软件开发总工作量的以上。因此,必须重视测试工作。由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的.因此测试不是为了表明程序正确成功测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。从产品角度看,测试计划中的测试项目包括软件结构

58、中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的(2). 增量型的集成测试增量型的集成测试随着新功能的增加,不断的对应用程序进行测试。在程序的所有部分完成之前,需要一个应用程序的各个部分之间能够相对独立的进行工作。(3)系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题以及检测系统是否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!