XXXXXXXX学院 课程设计报告书
课程名称:
软件开发工具课程设计
题 目:基于Struts的学生成绩管理系统的设计与开发
系 名: 专业班级:
姓 名: 学 号: 指导教师:
1
课 程 设 计 任 务 书
课程名称: 软件开发工具课程设计 指导教师: 班级名称: 开课系、教研室: 软件与信息安全
一、课程设计目的与任务
软件开发工具课程设计是一个综合性的设计型实验教学环节,旨在使学生通过软件开发的实践训练,进一步掌握业界流行的软件开发工具的使用;掌握使用业界流行的软件开发工具进行软件设计,开发和测试的方法与技术;进一步加深对软件工程方法和技术以及最新发展趋势和技术的了解;掌握数据的组织方法;提高软件开发的实际能力,培养创造性的工程设计能力和分析、解决问题的能力以及查阅和运用文献资料的能力。
学生将在指导教师的指导下,独立地完成从需求分析到系统设计,实现,测试和部署的全过程。
二、课程设计的内容与基本要求
本课程设计将通过软件业界流行的MyEclispe开发环境,使用Struts框架技术、JDBC数据访问技术和数据库技术设计和开发一个学生成绩管理系统,该系统具有以下功能: 1. 管理员:
1)登录:管理员登录后进入系统主界面;可以修改自己的密码; 2用户信息管理:将实现用户信息的增 、删、改、查功能; 3)学生信息管理:将实现学生信息的增 、删、改、查功能; 4)课程信息管理:将实现课程信息的增 、删、改、查功能; 5)成绩信息管理:将实现成绩信息的增 、删、改、查功能;
2. 教师:
1)登录:教师登录后进入系统主界面;可以修改自己的密码; 2)成绩信息管理:将实现成绩信息的增 、删、改、查功能;
3. 学生:
1)登录:学生登录后进入系统主界面;可以修改自己的密码; 2)学生信息管理:将实现对自己信息的改、查功能;
系统由欢迎界面进入登录界面,登录成功后,系统主界面中要求使用上导航和左导航实现不同信息管理的切换;要求使用header和footer。
要求界面美观易用, 符合用户使用习惯;功能完善,系统流程合理,数据处理正确。
三、课程设计步骤及时间进度和场地安排
本课程设计将安排在第18周, 教育技术中心。具体安排如下: 下发任务书,学生查阅资料 系统设计和原型开发
第三,四天 系统功能实现
2
第五天 系统调试 测试 打包和验收
周次 第18周 地点 星期一 第1-4节 现教222 星期二 第1-4节 现教222 星期三 第1-4节 现教222 星期四 第1-4节 现教222 星期五 第5-6节 现教222
四、课程设计考核及评分标准
课程设计考核将综合考虑学生考勤和参与度,系统设计方案正确性,系统设计和开发效果以及课程设计报告书的质量。具体评分标准如下: 设置六个评分点
(1)设计方案正确,具有可行性、创新性; 25分 (2)系统开发效果较好; 25分 (3)态度认真、刻苦钻研、遵守纪律; 10分 (4)设计报告规范、课程设计报告质量高、参考文献充分 20分 (5)课程设计答辩概念清晰,内容正确 10分 (6)课程设计期间的课堂考勤、答疑与统筹考虑。 10分 按上述六项分别记分后求和,总分按五级记分法记载最后成绩。
优秀(100~90分),良好(80~89分),中等(70~79分),及格(60~69分), 不及格(0~59分)
目录
1设计目的........................................................................................................................................ 6 2软件开发环境与技术简介 ............................................................................................................ 6
3
2.1 JSP技术 .............................................................................................................................. 6 2.2 Servlet应用程序 ................................................................................................................ 6 2.3 JDBC技术简介 .................................................................................................................. 7 2.4 MVC设计模式................................................................................................................... 7 2.5 struts框架介绍 ................................................................................................................... 7 3需求分析........................................................................................................................................ 8 4总体设计........................................................................................................................................ 9
4.1系统功能结构 ..................................................................................................................... 9 4.2数据表结构 ......................................................................................................................... 9 5详细设计...................................................................................................................................... 11
5.1struts配置 .......................................................................................................................... 11 5.2登录功能设计 ................................................................................................................... 11 5.3分页显示信息 ................................................................................................................... 12
5.3.1显示用户信息 ........................................................................................................ 12 5.3.2显示教师信息 ........................................................................................................ 13 5.3.3显示学生信息 ........................................................................................................ 14 5.3.4显示课程信息 ........................................................................................................ 15 5.3.5显示成绩信息 ........................................................................................................ 16 5.4查询信息 ........................................................................................................................... 16
5.4.1查询学生信息 ........................................................................................................ 16 5.4.2查询用户信息 ........................................................................................................ 17 5.4.3查询教师信息 ........................................................................................................ 17 5.4.4查询课程信息 ........................................................................................................ 17 5.4.5查询成绩信息 ........................................................................................................ 17 5.5添加信息 ........................................................................................................................... 18
5.5.1添加学生信息 ........................................................................................................ 18 5.5.2添加教师信息 ........................................................................................................ 19 5.5.3添加课程信息 ........................................................................................................ 19 5.5.4添加成绩信息 ........................................................................................................ 19 5.6修改信息 ........................................................................................................................... 19
5.6.1修改学生信息 ........................................................................................................ 19 5.6.2修改教师信息 ........................................................................................................ 20 5.6.3修改课程信息 ........................................................................................................ 21 5.6.4修改成绩信息 ........................................................................................................ 22 5.7删除信息 ........................................................................................................................... 22
5.7.1删除学生信息 ........................................................................................................ 22 5.7.2删除教师信息 ........................................................................................................ 23 5.7.3删除课程信息 ........................................................................................................ 23 5.7.4删除成绩信息 ........................................................................................................ 23
6系统测试...................................................................................................................................... 23
6.1测试登陆 ........................................................................................................................... 23 6.2测试页码跳转功能 ........................................................................................................... 24 6.3测试添加功能 ................................................................................................................... 25 6.4测试删除功能 ................................................................................................................... 26
4
6.5测试更新功能 ................................................................................................................... 28 6.6测试查询功能 ................................................................................................................... 28 7总结 ............................................................................................................. 错误!未定义书签。 8参考文献 ..................................................................................................... 错误!未定义书签。
5
1设计目的
软件开发工具课程设计是一个综合性的设计型实验教学环节,旨在使学生通过软件开发的实践训练,进一步掌握业界流行的软件开发工具的使用;掌握使用业界流行的软件开发工具进行软件设计,开发和测试的方法与技术;进一步加深对软件工程方法和技术以及最新发展趋势和技术的了解;掌握数据的组织方法;提高软件开发的实际能力,培养创造性的工程设计能力和分析、解决问题的能力以及查阅和运用文献资料的能力。
2软件开发环境与技术简介
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)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
2.2 Servlet应用程序
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。运行过程如图2.2所示。
6
图2.2 Servlet运行过程图
2.3 JDBC技术简介
JDBC的全称为 Java DataBase Connectivity ,是一套面向对象的应用程序接口,制定了统一访问各类关系型数据库的标准接口,为各个数据库厂商提供了标准接口的实现。它是一种可用于执行SQL语句的JavaAPI(ApplicationProgrammingInterface应用程序设计接口)。它由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。
JDBC主要提供两个层次的接口,分别是面向程序开发人员的JDBC API(JDBC应用程序接口)和面向系统底层的JDBC Drive API(JDBC驱动程序接口),它们的功能如上图2.1所示。
Java应用程序JDBC驱动程序管理器JDBC-Net驱动程序JDBC-ODBC驱动程序ODBC DriverJDBC APIJDBC Driver API驱动程序B驱动程序AJDBC中间件协议数据库专用访问协议
图2.3 jdbc功能结构图
2.4 MVC设计模式
MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
在 MVC 模式中,Web 用户向服务器提交的所有请求都由控制器接管。接受到请求之后,控制器负责决定应该调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户。
2.5 struts框架介绍
Struts最早是作为ApacheJakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。Struts
7
这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫\"Struts\",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用Struts为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。
3需求分析
本课程设计将通过软件业界流行的MyEclispe开发环境,使用Struts框架技术、JDBC数据访问技术和数据库技术设计和开发一个学生成绩管理系统,该系统具有以下功能: 1. 管理员:
1)登录:管理员登录后进入系统主界面;可以修改自己的密码; 2用户信息管理:将实现用户信息的增 、删、改、查功能; 3)学生信息管理:将实现学生信息的增 、删、改、查功能; 4)课程信息管理:将实现课程信息的增 、删、改、查功能; 5)成绩信息管理:将实现成绩信息的增 、删、改、查功能; 2. 教师:
1)登录:教师登录后进入系统主界面;可以修改自己的密码; 2)成绩信息管理:将实现成绩信息的增 、删、改、查功能; 3. 学生:
1)登录:学生登录后进入系统主界面;可以修改自己的密码; 2)学生信息管理:将实现对自己信息的改、查功能; 系统由欢迎界面进入登录界面,登录成功后,系统主界面中要求使用上导航和左导航实现不同信息管理的切换;要求使用header和footer。
要求界面美观易用, 符合用户使用习惯;功能完善,系统流程合理,数据处理正确。
8
4总体设计
4.1系统功能结构
4.2数据表结构
用户表
学生表
9
教师表
课程表
成绩表
10
5详细设计
5.1struts配置
在web.xml中添加如下代码
ass> 5.2登录功能设计 利用MVC三层构架,设计登录页面,如下图所示。 Login.action login.jsp Execute() UserDAO 当用户填写完用户名和密码之后点击登录,将信息提交给Login.action,Login.action将调用UserDAO的checkLogin方法通过访问数据库对用户名、密码以及身份进行匹配,并将处理结果返回给前端,登录成功将跳至主页,否则回到登录页面。 页面设计,登录页面如图5.2-1所示。 11 图5.2-1 登录页面 5.3分页显示信息 5.3.1显示用户信息 利用MVC三层构架,设计主页页面,主页页面能分页显示学生信息,如下图所示。 user.action 用户信息 UserDAO ausermsg.jsp Execute() 当用户登录成功之后,将信息提交给User.action的execute()方法,改方法将调用UserDAO的getUsers方法设置pageBean各个属性,从数据库导出的学生信息也在pageBean中,并将pageBean的发送给前端,让前端分页显示学生信息,并且显示分页状态。 页面设计,用户信息页面如图5.3-1所示。 12 图5.3-1 用户信息 5.3.2显示教师信息 利用MVC三层构架,设计主页页面,主页页面能分页显示学生信息,如下图所示。 teacher.action 教师信息 TeacherDAO ateachermsg.jsp Execute() 当用户登录成功之后,将信息提交给teacher.action的execute()方法,改方法将调用TeacherDAO的getTeachers方法设置pageBean各个属性,从数据库导出的学生信息也在pageBean中,并将pageBean的发送给前端,让前端分页显示学生信息,并且显示分页状态。 页面设计,用户信息页面如图5.3-2所示。 13 图5.3-2 教师信息 5.3.3显示学生信息 利用MVC三层构架,设计主页页面,主页页面能分页显示学生信息,如下图所示。 student.action 学生信息 StudentDAO astudentmsg.jsp Execute() 当用户登录成功之后,将信息提交给student.action的execute()方法,改方法将调用StudentDAO的getStudents方法设置pageBean各个属性,从数据库导出的学生信息也在pageBean中,并将pageBean的发送给前端,让前端分页显示学生信息,并且显示分页状态。 页面设计,用户信息页面如图5.3-3所示。 14 图5.3-3 学生信息 5.3.4显示课程信息 利用MVC三层构架,设计主页页面,主页页面能分页显示课程信息,如下图所示。 class.action 学生信息 ClassDAO aclassmsg.jsp Execute() 当用户登录成功之后,将信息提交给class.action的execute()方法,改方法将调用ClassDAO的getClass方法设置pageBean各个属性,从数据库导出的学生信息也在pageBean中,并将pageBean的发送给前端,让前端分页显示学生信息,并且显示分页状态。 页面设计,用户信息页面如图5.3-4所示。 15 图5.3-4 课程信息 5.3.5显示成绩信息 方法同上述一样。 5.4查询信息 5.4.1查询学生信息 利用MVC三层构架,设计查询学生信息页面,如下图所示。 Student.action 查询 slStudent() StudentDAO 当用户填好查询条件和关键字之后,将信息提交给Student.action的slStudent(),该方法将调用StudentDAO的getStudentsByWhere方法设置pageBean属性,并将pageBean的发送给前端,让前端分页显示学生信息,并且显示分页状态。 16 5.4.2查询用户信息 利用MVC三层构架,设计查询用户信息页面,如下图所示。 User.action 查询 slUser() UserDAO 当用户填好查询条件和关键字之后,将信息提交给User.action的slUser),该方法将调用UserDAO的getUsersByWhere方法设置pageBean属性,并将pageBean的发送给前端,让前端分页显示用户信息,并且显示分页状态。 5.4.3查询教师信息 利用MVC三层构架,设计查询教师信息页面,如下图所示。 Teacher.action 查询 slTeacher() TeacherDAO 当用户填好查询条件和关键字之后,将信息提交给Teacher.action的slTeacher(),该方法将调用TeacherDAO的getTeachersByWhere方法设置pageBean属性,并将pageBean的发送给前端,让前端分页显示教师信息,并且显示分页状态。 5.4.4查询课程信息 利用MVC三层构架,设计查询课程信息页面,如下图所示。 Class.action 查询 slClass() ClassDAO 当用户填好查询条件和关键字之后,将信息提交给Class.action的slClass(),该方法将调用ClassDAO的getClassByWhere方法设置pageBean属性,并将pageBean的发送给前端,让前端分页显示课程信息,并且显示分页状态。 5.4.5查询成绩信息 利用MVC三层构架,设计查询成绩信息页面,如下图所示。 Score.action 查询 slScore() ScoreDAO 当用户填好查询条件和关键字之后,将信息提交给Score.action的slScore(),该方法将调用ScoreDAO的getScoreByWhere方法设置pageBean属性,并将pageBean的发送给前端,让 17 前端分页显示成绩信息,并且显示分页状态。 5.5添加信息 5.5.1添加学生信息 利用MVC三层构架,设计添加学生信息页面,如下图所示。 Student.action addstudent.jsp addStudent() StudentDAO 当用户填写完学生信息之后,将信息提交给Student.action的addStudent()方法,Student.action将调用StudentDAO的addStudent方法把信息导入数据库,并将处理结果返回给前端。 页面设计,添加学生信息页面如图5.5-1所示。 图5.5-1 添加学生信息页面 18 5.5.2添加教师信息 利用MVC三层构架,设计添加教师信息页面,如下图所示。 Teacher.action addTeacher.jsp addTeacher() TeacherDAO 当用户填写完学生信息之后,将信息提交给Teacher.action的addTeacher()方法,Student.action将调用TeacherDAO的addTeacher方法把信息导入数据库,并将处理结果返回给前端。 页面设计,添加学生信息页面如图5.5-2所示。 图5.5-2 添加教师信息 5.5.3添加课程信息 利用MVC三层构架,设计添加课程信息页面,如下图所示。 Class.action addClass.jsp addClass() ClassDAO 当用户填写完学生信息之后,将信息提交给Class.action的addClass()方法,Class.action将调用ClassDAO的addClass方法把信息导入数据库,并将处理结果返回给前端。 页面设计,添加课程信息页面如图5.5-1所示。 图5.5-2 添加课程信息 5.5.4添加成绩信息 方法同上。 5.6修改信息 5.6.1修改学生信息 利用MVC三层构架,设计修改学生信息页面,如下图所示。 Student.action upstudent.jsp upStudent() StudentDAO 当用户修改完学生信息之后,将信息提交给Student.action的upStudent()方法,改方法将调用StudentDAO的updataStudent方法把信息导入数据库,并将处理结果返回给前端,跳转至主页面。 页面设计,更新学生信息页面如图5.6-1所示。 19 图5.6-1 更新学生信息页面 5.6.2修改教师信息 利用MVC三层构架,设计修改教师信息页面,如下图所示。 Teacher.action upTeacher.jsp upTeacher() TeacherDAO 当用户修改完教师信息之后,将信息提交给Teacher.action的upTeacher()方法,改方法将调用TeacherDAO的updataTeacher方法把信息导入数据库,并将处理结果返回给前端,跳转至主页面。 页面设计,更新教师信息页面如图5.6-2所示。 20 图5.6-2 修改教师信息 5.6.3修改课程信息 利用MVC三层构架,设计修改课程信息页面,如下图所示。 Class.action upClass.jsp upClass() ClassDAO 当用户修改完课程信息之后,将信息提交给Student.action的upStudent()方法,改方法将调用ClassDAO的updataClass方法把信息导入数据库,并将处理结果返回给前端,跳转至主页面。 页面设计,更新课程信息页面如图5.6-3所示。 21 图5.6.3 修改课程信息 5.6.4修改成绩信息 方法同上。 5.7删除信息 5.7.1删除学生信息 利用MVC三层构架,设计删除学生信息页面,如下图所示。 Student.action 点击删除 deStudent() StudentDAO 当用户点击某一条记录后面的删除按钮之后,将信息提交给Student.action的deStudent()方法,改方法将调用StudentDAO的deleteStuentById方法把数据库中的相关记录删除,并将处理结果返回给前端,刷新主页。 22 5.7.2删除教师信息 利用MVC三层构架,设计删除教师信息页面,如下图所示。 Teacher.action 点击删除 deTeacher() TeacherDAO 当用户点击某一条记录后面的删除按钮之后,将信息提交给Teacher.action的deTeacher()方法,改方法将调用TeacherDAO的deleteTeacherById方法把数据库中的相关记录删除,并将处理结果返回给前端,刷新主页。 5.7.3删除课程信息 利用MVC三层构架,设计删除课程信息页面,如下图所示。 Class.action 点击删除 deClass() ClassDAO 当用户点击某一条记录后面的删除按钮之后,将信息提交给Class.action的deClass()方法,改方法将调用ClassDAO的deleteClassById方法把数据库中的相关记录删除,并将处理结果返回给前端,刷新主页。 5.7.4删除成绩信息 利用MVC三层构架,设计删除成绩信息页面,如下图所示。 Score.action 点击删除 deScore() ScoreDAO 当用户点击某一条记录后面的删除按钮之后,将信息提交给Score.action的deScore()方法,改方法将调用ScoreDAO的deleteScoreById方法把数据库中的相关记录删除,并将处理结果返回给前端,刷新主页。 6系统测试 6.1测试登陆 现有一用户注册的用户名为“唐思文”,密码是“123456”。 测试用例一:在用户名文本框中输入“唐思文”,密码文本框中输入“12345678”, 23 点击【登录】按钮以后跳转到failure.jsp,效果如图6.2-1所示。 6.2-1 登录失败页面 测试用例二:在用户名文本框中输入“凡晓庆”,密码文本框中输入“123456”,点击【登录】按钮以后跳转到主页。 6.2测试页码跳转功能 测试用例一:首先让系统处于首页,即第一页,如图6.3-1所示。然后在页码跳转框里选择 “2”,运行结果如图6.3-2所示。 图6.3-1 第一页 24 图6.3-2 第二页 6.3测试添加功能 测试用例一:在添加页面中,输入的学号不是11位,然后就按【确定】按钮,预期运行结 果是弹出对话框,提示“学号格式不正确!添加失败!”,实际运行结果如图所示6.4-1。 图6.4-1 添加失败页面 测试用例二:已知学号为“10212812136”的学生已经存在,在学号文本框中输入“10212812136”,姓名为“唐思文”,预期结果是弹出对话框,提示“学号已存在!添加失败!”。实际运行结果如图6.4-3所示。 25 图6.4-3 添加失败页面 测试用例三:已知学号为“10212812134”的学号不存在。在学号文本框中输入“10212812134”,姓名文本框中输入“张梦华”,预期运行结果是添加成功。实际运行结果如图6.4-4所示。 图6.4-4 添加成功页面 6.4测试删除功能 删除前选中删除的学生,然后点击删除按钮。 测试用例一:删除学号为10212812457,然后点击【删除】按钮。 预期结果是弹出对话框,提示是否“确定要删除吗?”。 实际运行结果如图6.5-1所示。 然后如果点击“确定”,预期结果是选中的学生全部删除,运行结果如图6.5-2所示。然后如果点击的是“取消”,预期结果是删除操作无效,预期结果如图6.5-3所示。 26 图6.5-1 删除确认 图6.5-2 删除成功 图6.5-3 取消删除 27 6.5测试更新功能 现在更新学号为“10310112101”学生,更新前信息如图6.6-1所示。 测试用例一:将学生的性别由“男”改为“女”,专业由“制药工程”改为“生物化学”。 运行结果如图6.6-2所示。 图6.6-1 更新页面 6.6测试查询功能 测试用例一:查询条件选择“系别”,输入“经济与管理”,预期结果输出10行记录。实 际运行结果如图6.7-1所示。 28 图6.7-1 查询结果 29 30 因篇幅问题不能全部显示,请点此查看更多更全内容