《jsp课程设计基于struts的学生成绩管理系统的设计与开发-毕业论文.doc》由会员分享,可在线阅读,更多相关《jsp课程设计基于struts的学生成绩管理系统的设计与开发-毕业论文.doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、XXxxxxxxxxxxx学院课程设计报告书课程名称: 软件开发工具课程设计 题 目:基于Struts的学生成绩管理系统的设计与开发系 名: 专业班级: 姓 名: 学 号: 指导教师: 课 程 设 计 任 务 书课程名称: 软件开发工具课程设计 指导教师: 班级名称: 开课系、教研室: 软件与信息安全 一、课程设计目的与任务软件开发工具课程设计是一个综合性的设计型实验教学环节,旨在使学生通过软件开发的实践训练,进一步掌握业界流行的软件开发工具的使用;掌握使用业界流行的软件开发工具进行软件设计,开发和测试的方法与技术;进一步加深对软件工程方法和技术以及最新发展趋势和技术的了解;掌握数据的组织方法
2、;提高软件开发的实际能力,培养创造性的工程设计能力和分析、解决问题的能力以及查阅和运用文献资料的能力。学生将在指导教师的指导下,独立地完成从需求分析到系统设计,实现,测试和部署的全过程。二、课程设计的内容与基本要求本课程设计将通过软件业界流行的MyEclispe开发环境,使用Struts框架技术、JDBC数据访问技术和数据库技术设计和开发一个学生成绩管理系统,该系统具有以下功能:1. 管理员:1)登录:管理员登录后进入系统主界面;可以修改自己的密码;2用户信息管理:将实现用户信息的增 、删、改、查功能;3)学生信息管理:将实现学生信息的增 、删、改、查功能;4)课程信息管理:将实现课程信息的增
3、 、删、改、查功能;5)成绩信息管理:将实现成绩信息的增 、删、改、查功能;2. 教师:1)登录:教师登录后进入系统主界面;可以修改自己的密码;2)成绩信息管理:将实现成绩信息的增 、删、改、查功能;3. 学生:1)登录:学生登录后进入系统主界面;可以修改自己的密码;2)学生信息管理:将实现对自己信息的改、查功能;系统由欢迎界面进入登录界面,登录成功后,系统主界面中要求使用上导航和左导航实现不同信息管理的切换;要求使用header和footer。要求界面美观易用, 符合用户使用习惯;功能完善,系统流程合理,数据处理正确。三、课程设计步骤及时间进度和场地安排本课程设计将安排在第18周, 教育技术
4、中心。具体安排如下:下发任务书,学生查阅资料系统设计和原型开发第三,四天 系统功能实现第五天 系统调试 测试 打包和验收周次星期一星期二星期三星期四星期五第18周第1-4节第1-4节第1-4节第1-4节第5-6节地点现教222现教222现教222现教222现教222四、课程设计考核及评分标准课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。具体评分标准如下:设置六个评分点(1)设计方案正确,具有可行性、创新性; 25分(2)系统开发效果较好; 25分(3)态度认真、刻苦钻研、遵守纪律; 10分(4)设计报告规范、课程设计报告质量高、参考文献
5、充分 20分(5)课程设计答辩概念清晰,内容正确 10分(6)课程设计期间的课堂考勤、答疑与统筹考虑。 10分 按上述六项分别记分后求和,总分按五级记分法记载最后成绩。优秀(10090分),良好(8089分),中等(7079分),及格(6069分),不及格(059分)目录1设计目的62软件开发环境与技术简介62.1 JSP技术62.2 Servlet应用程序62.3 JDBC技术简介72.4 MVC设计模式72.5 struts框架介绍73需求分析84总体设计94.1系统功能结构94.2数据表结构95详细设计115.1struts配置115.2登录功能设计115.3分页显示信息125.3.1显
6、示用户信息125.3.2显示教师信息135.3.3显示学生信息145.3.4显示课程信息155.3.5显示成绩信息165.4查询信息165.4.1查询学生信息165.4.2查询用户信息175.4.3查询教师信息175.4.4查询课程信息175.4.5查询成绩信息175.5添加信息185.5.1添加学生信息185.5.2添加教师信息195.5.3添加课程信息195.5.4添加成绩信息195.6修改信息195.6.1修改学生信息195.6.2修改教师信息205.6.3修改课程信息215.6.4修改成绩信息225.7删除信息225.7.1删除学生信息225.7.2删除教师信息235.7.3删除课程信
7、息235.7.4删除成绩信息236系统测试236.1测试登陆236.2测试页码跳转功能246.3测试添加功能256.4测试删除功能266.5测试更新功能286.6测试查询功能287总结298参考文献301设计目的 软件开发工具课程设计是一个综合性的设计型实验教学环节,旨在使学生通过软件开发的实践训练,进一步掌握业界流行的软件开发工具的使用;掌握使用业界流行的软件开发工具进行软件设计,开发和测试的方法与技术;进一步加深对软件工程方法和技术以及最新发展趋势和技术的了解;掌握数据的组织方法;提高软件开发的实际能力,培养创造性的工程设计能力和分析、解决问题的能力以及查阅和运用文献资料的能力。2软件开发
8、环境与技术简介2.1 JSP技术 JSP(Java Server Pages) 技术是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的
9、主要目的是将表示逻辑从Servlet中分离出来。2.2 Servlet应用程序 Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。 一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可
10、以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。运行过程如图2.2所示。图2.2 Servlet运行过程图2.3 JDBC技术简介 JDBC的全称为 Java DataBase Connectivity ,是一套面向对象的应用程序接口,制定了统一访问各类关系型数据库的标准接口,为各个数据库厂商提供了标准接口的实现。它是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface应用程序设计接口)。它由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员、
11、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。 JDBC主要提供两个层次的接口,分别是面向程序开发人员的JDBC API(JDBC应用程序接口)和面向系统底层的JDBC Drive API(JDBC驱动程序接口),它们的功能如上图2.1所示。图2.3 jdbc功能结构图2.4 MVC设计模式 MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。 在 MVC 模式中,Web 用户向服务
12、器提交的所有请求都由控制器接管。接受到请求之后,控制器负责决定应该调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。2.5 struts框架介绍 Struts最早是作为ApacheJakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫Struts,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基
13、础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。3需求分析本课程设计将通过软件业界流行的MyEclispe开发环境,使用Struts框架技术、JDBC数据访问技术和数据库技术设计和开发一个学生成绩管理系统,该系统具
14、有以下功能:1. 管理员:1)登录:管理员登录后进入系统主界面;可以修改自己的密码;2用户信息管理:将实现用户信息的增 、删、改、查功能;3)学生信息管理:将实现学生信息的增 、删、改、查功能;4)课程信息管理:将实现课程信息的增 、删、改、查功能;5)成绩信息管理:将实现成绩信息的增 、删、改、查功能;2. 教师:1)登录:教师登录后进入系统主界面;可以修改自己的密码;2)成绩信息管理:将实现成绩信息的增 、删、改、查功能;3. 学生:1)登录:学生登录后进入系统主界面;可以修改自己的密码;2)学生信息管理:将实现对自己信息的改、查功能;系统由欢迎界面进入登录界面,登录成功后,系统主界面中要
15、求使用上导航和左导航实现不同信息管理的切换;要求使用header和footer。要求界面美观易用, 符合用户使用习惯;功能完善,系统流程合理,数据处理正确。4总体设计4.1系统功能结构4.2数据表结构用户表学生表教师表课程表成绩表5详细设计5.1struts配置在web.xml中添加如下代码strutsorg.apache.struts2.dispatcher.FilterDispatcherstruts/*5.2登录功能设计利用MVC三层构架,设计登录页面,如下图所示。Login.actionExecute()UserDAOlogin.jsp 当用户填写完用户名和密码之后点击登录,将信息提交
16、给Login.action,Login.action将调用UserDAO的checkLogin方法通过访问数据库对用户名、密码以及身份进行匹配,并将处理结果返回给前端,登录成功将跳至主页,否则回到登录页面。 页面设计,登录页面如图5.2-1所示。图5.2-1 登录页面5.3分页显示信息5.3.1显示用户信息利用MVC三层构架,设计主页页面,主页页面能分页显示学生信息,如下图所示。user.actionExecute()ausermsg.jspUserDAO用户信息 当用户登录成功之后,将信息提交给User.action的execute()方法,改方法将调用UserDAO的getUsers方法设
17、置pageBean各个属性,从数据库导出的学生信息也在pageBean中,并将pageBean的发送给前端,让前端分页显示学生信息,并且显示分页状态。页面设计,用户信息页面如图5.3-1所示。图5.3-1 用户信息5.3.2显示教师信息利用MVC三层构架,设计主页页面,主页页面能分页显示学生信息,如下图所示。ateachermsg.jspteacher.actionExecute()TeacherDAO教师信息当用户登录成功之后,将信息提交给teacher.action的execute()方法,改方法将调用TeacherDAO的getTeachers方法设置pageBean各个属性,从数据库导
18、出的学生信息也在pageBean中,并将pageBean的发送给前端,让前端分页显示学生信息,并且显示分页状态。页面设计,用户信息页面如图5.3-2所示。图5.3-2 教师信息5.3.3显示学生信息利用MVC三层构架,设计主页页面,主页页面能分页显示学生信息,如下图所示。astudentmsg.jspstudent.actionExecute()StudentDAO学生信息当用户登录成功之后,将信息提交给student.action的execute()方法,改方法将调用StudentDAO的getStudents方法设置pageBean各个属性,从数据库导出的学生信息也在pageBean中,并
19、将pageBean的发送给前端,让前端分页显示学生信息,并且显示分页状态。页面设计,用户信息页面如图5.3-3所示。图5.3-3 学生信息5.3.4显示课程信息利用MVC三层构架,设计主页页面,主页页面能分页显示课程信息,如下图所示。aclassmsg.jspclass.actionExecute()ClassDAO学生信息当用户登录成功之后,将信息提交给class.action的execute()方法,改方法将调用ClassDAO的getClass方法设置pageBean各个属性,从数据库导出的学生信息也在pageBean中,并将pageBean的发送给前端,让前端分页显示学生信息,并且显示
20、分页状态。页面设计,用户信息页面如图5.3-4所示。图5.3-4 课程信息5.3.5显示成绩信息方法同上述一样。5.4查询信息5.4.1查询学生信息利用MVC三层构架,设计查询学生信息页面,如下图所示。Student.actionslStudent()StudentDAO查询当用户填好查询条件和关键字之后,将信息提交给Student.action的slStudent(),该方法将调用StudentDAO的getStudentsByWhere方法设置pageBean属性,并将pageBean的发送给前端,让前端分页显示学生信息,并且显示分页状态。5.4.2查询用户信息利用MVC三层构架,设计查询
21、用户信息页面,如下图所示。User.actionslUser()UserDAO查询当用户填好查询条件和关键字之后,将信息提交给User.action的slUser),该方法将调用UserDAO的getUsersByWhere方法设置pageBean属性,并将pageBean的发送给前端,让前端分页显示用户信息,并且显示分页状态。5.4.3查询教师信息利用MVC三层构架,设计查询教师信息页面,如下图所示。Teacher.actionslTeacher()TeacherDAO查询当用户填好查询条件和关键字之后,将信息提交给Teacher.action的slTeacher(),该方法将调用Teach
22、erDAO的getTeachersByWhere方法设置pageBean属性,并将pageBean的发送给前端,让前端分页显示教师信息,并且显示分页状态。5.4.4查询课程信息利用MVC三层构架,设计查询课程信息页面,如下图所示。Class.actionslClass()ClassDAO查询当用户填好查询条件和关键字之后,将信息提交给Class.action的slClass(),该方法将调用ClassDAO的getClassByWhere方法设置pageBean属性,并将pageBean的发送给前端,让前端分页显示课程信息,并且显示分页状态。5.4.5查询成绩信息利用MVC三层构架,设计查询成
23、绩信息页面,如下图所示。Score.actionslScore()ScoreDAO查询当用户填好查询条件和关键字之后,将信息提交给Score.action的slScore(),该方法将调用ScoreDAO的getScoreByWhere方法设置pageBean属性,并将pageBean的发送给前端,让前端分页显示成绩信息,并且显示分页状态。5.5添加信息5.5.1添加学生信息利用MVC三层构架,设计添加学生信息页面,如下图所示。Student.actionaddStudent()StudentDAOaddstudent.jsp当用户填写完学生信息之后,将信息提交给Student.action的
24、addStudent()方法,Student.action将调用StudentDAO的addStudent方法把信息导入数据库,并将处理结果返回给前端。页面设计,添加学生信息页面如图5.5-1所示。图5.5-1 添加学生信息页面5.5.2添加教师信息利用MVC三层构架,设计添加教师信息页面,如下图所示。Teacher.actionaddTeacher()TeacherDAOaddTeacher.jsp当用户填写完学生信息之后,将信息提交给Teacher.action的addTeacher()方法,Student.action将调用TeacherDAO的addTeacher方法把信息导入数据库,
25、并将处理结果返回给前端。页面设计,添加学生信息页面如图5.5-2所示。图5.5-2 添加教师信息5.5.3添加课程信息利用MVC三层构架,设计添加课程信息页面,如下图所示。Class.actionaddClass()ClassDAOaddClass.jsp当用户填写完学生信息之后,将信息提交给Class.action的addClass()方法,Class.action将调用ClassDAO的addClass方法把信息导入数据库,并将处理结果返回给前端。页面设计,添加课程信息页面如图5.5-1所示。图5.5-2 添加课程信息5.5.4添加成绩信息方法同上。5.6修改信息5.6.1修改学生信息St
26、udent.actionupStudent()利用MVC三层构架,设计修改学生信息页面,如下图所示。StudentDAOupstudent.jsp当用户修改完学生信息之后,将信息提交给Student.action的upStudent()方法,改方法将调用StudentDAO的updataStudent方法把信息导入数据库,并将处理结果返回给前端,跳转至主页面。页面设计,更新学生信息页面如图5.6-1所示。图5.6-1 更新学生信息页面5.6.2修改教师信息Teacher.actionupTeacher()利用MVC三层构架,设计修改教师信息页面,如下图所示。TeacherDAOupTeache
27、r.jsp当用户修改完教师信息之后,将信息提交给Teacher.action的upTeacher()方法,改方法将调用TeacherDAO的updataTeacher方法把信息导入数据库,并将处理结果返回给前端,跳转至主页面。页面设计,更新教师信息页面如图5.6-2所示。图5.6-2 修改教师信息5.6.3修改课程信息Class.actionupClass()利用MVC三层构架,设计修改课程信息页面,如下图所示。ClassDAOupClass.jsp当用户修改完课程信息之后,将信息提交给Student.action的upStudent()方法,改方法将调用ClassDAO的updataClas
28、s方法把信息导入数据库,并将处理结果返回给前端,跳转至主页面。页面设计,更新课程信息页面如图5.6-3所示。图5.6.3 修改课程信息5.6.4修改成绩信息方法同上。5.7删除信息5.7.1删除学生信息Student.actiondeStudent()利用MVC三层构架,设计删除学生信息页面,如下图所示。StudentDAO点击删除当用户点击某一条记录后面的删除按钮之后,将信息提交给Student.action的deStudent()方法,改方法将调用StudentDAO的deleteStuentById方法把数据库中的相关记录删除,并将处理结果返回给前端,刷新主页。5.7.2删除教师信息Te
29、acher.actiondeTeacher()利用MVC三层构架,设计删除教师信息页面,如下图所示。TeacherDAO点击删除当用户点击某一条记录后面的删除按钮之后,将信息提交给Teacher.action的deTeacher()方法,改方法将调用TeacherDAO的deleteTeacherById方法把数据库中的相关记录删除,并将处理结果返回给前端,刷新主页。5.7.3删除课程信息Class.actiondeClass()利用MVC三层构架,设计删除课程信息页面,如下图所示。ClassDAO点击删除当用户点击某一条记录后面的删除按钮之后,将信息提交给Class.action的deCla
30、ss()方法,改方法将调用ClassDAO的deleteClassById方法把数据库中的相关记录删除,并将处理结果返回给前端,刷新主页。5.7.4删除成绩信息Score.actiondeScore()利用MVC三层构架,设计删除成绩信息页面,如下图所示。ScoreDAO点击删除当用户点击某一条记录后面的删除按钮之后,将信息提交给Score.action的deScore()方法,改方法将调用ScoreDAO的deleteScoreById方法把数据库中的相关记录删除,并将处理结果返回给前端,刷新主页。6系统测试6.1测试登陆现有一用户注册的用户名为“唐思文”,密码是“123456”。测试用例一
31、:在用户名文本框中输入“唐思文”,密码文本框中输入“12345678”,点击【登录】按钮以后跳转到failure.jsp,效果如图6.2-1所示。6.2-1 登录失败页面测试用例二:在用户名文本框中输入“凡晓庆”,密码文本框中输入“123456”,点击【登录】按钮以后跳转到主页。6.2测试页码跳转功能测试用例一:首先让系统处于首页,即第一页,如图6.3-1所示。然后在页码跳转框里选择“2”,运行结果如图6.3-2所示。图6.3-1 第一页图6.3-2 第二页6.3测试添加功能测试用例一:在添加页面中,输入的学号不是11位,然后就按【确定】按钮,预期运行结果是弹出对话框,提示“学号格式不正确!添
32、加失败!”,实际运行结果如图所示6.4-1。图6.4-1 添加失败页面测试用例二:已知学号为“10212812136”的学生已经存在,在学号文本框中输入“10212812136”,姓名为“唐思文”,预期结果是弹出对话框,提示“学号已存在!添加失败!”。实际运行结果如图6.4-3所示。图6.4-3 添加失败页面测试用例三:已知学号为“10212812134”的学号不存在。在学号文本框中输入“10212812134”,姓名文本框中输入“张梦华”,预期运行结果是添加成功。实际运行结果如图6.4-4所示。图6.4-4 添加成功页面6.4测试删除功能删除前选中删除的学生,然后点击删除按钮。测试用例一:删
33、除学号为10212812457,然后点击【删除】按钮。预期结果是弹出对话框,提示是否“确定要删除吗?”。实际运行结果如图6.5-1所示。然后如果点击“确定”,预期结果是选中的学生全部删除,运行结果如图6.5-2所示。然后如果点击的是“取消”,预期结果是删除操作无效,预期结果如图6.5-3所示。图6.5-1 删除确认图6.5-2 删除成功图6.5-3 取消删除6.5测试更新功能现在更新学号为“10310112101”学生,更新前信息如图6.6-1所示。测试用例一:将学生的性别由“男”改为“女”,专业由“制药工程”改为“生物化学”。运行结果如图6.6-2所示。图6.6-1 更新页面6.6测试查询功
34、能测试用例一:查询条件选择“系别”,输入“经济与管理”,预期结果输出10行记录。实际运行结果如图6.7-1所示。图6.7-1 查询结果7总结 通过对做这次java web网站设计,使我对数据库的应用有了更深一步的认识。又使我掌握了使用各种关系数据库为后台数据库设计一个信息管理系统。在进行课程设计的同时,我遇到了大量问题,使我实际解决问题的能力得以提高。尤其是在做实验时,对JAVA连接数据库还很陌生,但是后来通过上网,去图书馆找资料就很快的搞定了。从中理解了大学对一个人来说,最重要的不是你学了多少知识,而是快速学习的能力,同时我也知道,任何一件事不是只有知道了相关信息才去做他,即使不知道相关信息
35、也可以动手去做。一边学一边做,在信息时代里,这是一个人的生存手段。 本次设计让我对Struts2和JSP开发有了更深入的了解,而且也能熟练的在机器上调试简单程序设计的思想,方法和调试。培养具有综合应用相关知识来解决测试问题的基础理论,培养在实践中研究问题,分析问题和解决问题的能力;还让我深深的感到了我们必须坚持理论联系实际的思想,以实践证实理论,从实践中加深对理论知识的理解和掌握。实验是我们快速认识和掌握理论知识的一条重要途径。 本次设计应注意使用JDBC进行数据库连接时,要注意数据库名,表名,用户名和密码,还有注意各项Action类的配置。其实,在编程过程之中,怎样让程序和界面的结合是一个很
36、难处理的问题,因为处理不好就会有时出现触一发而动全身的现象,真的是很难处理,所以在编程开始,就要让程序函数之间不要耦合的太紧密了,这样才能处理好这种情况。总之,这次设计受益匪浅,不仅锻炼了我做事坚持不懈的心态,也慢慢地培养了我不懂就查书的好习惯,我的自学能力也有了一定的提高,我更明白了搞计算机这行,要学到真正的技术完全要靠自己,在课堂上只能学到最基本的东西,但这最基本的东西也一定要学好。8参考文献1萨师煊,王珊.数据库系统概论(第三版)M.高等教育出版社,2012年2邓良松,刘海岩,陆丽娜.软件工程M.西安电子科技大学出版社,2012年3耿冲.SQLServer2000数据库管理M.机械工业出版社,2012年4赤金,聂松编.JavaApplet实例编程M.中国水利水电出版社,2012年5蔡翠平.JAVA程序设计M.北方交通大学出版社,2012年设计过程及答辩回答问题记载:(至少三个问题)问题一:“条件查询学生信息是用的模糊查询还是精确查询?”答:“我是利用sql语句做的模糊查询。”问题二:“检查邮箱格式的正则表达式是什么?”答:“(w+(-+.w+)*w+(-.w+)*.w+(-.w+)*$)”指导教师评语: 成绩等级评定: 签名: 32