中南大学JAVA课程设计报告
- 格式:docx
- 大小:346.39 KB
- 文档页数:12
1 / 12
中南大学
Java课程设计报告
简单学籍管理系统
学 院:
专业班级:
指导老师:
姓 名:
学 号:
时 间:
2 / 12
目录
需求分析·········································3
总体设计·········································3
详细设计·········································8
调试与测试·······································8
测试结果·········································9
心得体会········································19
3 / 12
1.需求分析:
本课题要求完成一个简单学籍管理系统,实现学生学籍的简单管理。
要求实现的功能有:
不同操作人员权限管理,本系统暂定为两类操作人员:学生和管理员。
学生部分:基本信息的查询和修改、个人成绩查询;
管理员部分:初始化学生信息、重置学生密码、按姓名或学号查询学生基本信息、按课程号和分数段查询学生成绩。
对于该系统,可以采用C/S结构也可以采用B/S结构,因为题目要求有前端页面和后台,所以这里默认采用B/S结构构建系统,其中前端使用HTML和JSP编写,后台使用Java语言编写。
2.总体设计:
方案设计:本系统采用B/S结构进行设计,前端页面使用Layui框架进行设计,后台则使用Servlet和Javabean进行控制。系统结构图,如图1.1
图1.1 系统架构图 4 / 12
图1.2 系统后台类图
子模块共分为:登录模块,学生修改信息模块,学生查询成绩模块,管理员操作模块。
(1) 登陆模块 5 / 12
图1.3 登录模块流程图 6 / 12
(2)学生修改信息模块
图1.4 学生修改信息模块流程图
(3)学生查询成绩模块 7 / 12
图1.5 学生查询成绩模块流程图
(4)管理员操作模块
图1.6管理员操作模块流程图 8 / 12
3.详细设计:
(1) 登陆模块:打开登录页面,以已存在的帐号和密码和身份进行登录,此时在jsp页面上会使用一个js函数做判断,当帐号密码和身份为空时不得提交。当可以提交时,会将表单提交给HelloServlet,servlet利用jdbc连接对得到的三个值进行数据库查询userlist表,若结果集中不为空,则允许登录,并按不同身份重定向至不同的主界面。若结果集为空,则返回登录页面。
(2) 学生修改信息模块:进入学生操作主界面后,可以选择修改信息,此时转入alter.jsp,即为修改信息页面,部分重要信息如学号、姓名、性别不可修改,其余信息可以修改。在此页面有一个函数对要修改的密码做了限制,要求密码不能为空且两次密码必须一致,否则表单将无法提交。表单提交给HelloServlet,servlet会调用StudentService类的方法分别对userlist表和student表的相关内容进行修改。
(3) 学生查询成绩模块:在学生操作主界面选择查询成绩,转到一个新页面,上部分可以选择学期然后点击查询,在下部分页面会显示查询结果,若是没有符合要求的内容,则只显示一个表头。其中查询成绩需要调用StudentService类的方法,该方法还需使用Sc类的对象来表示sc表中的信息。
(4) 管理员操作模块:以管理员身份登录系统后即进入管理员操作主界面,在左边点击管理员操作,跳转到新的页面。与学生查询成绩相似,该页面上部分可以选择多种操作,在下部分显示操作结果。执行操作后,该Jsp页面利用Javabean调用AdminService的各种方法来完成操作。提交表单到结果显示页面,根据不同的操作来使结果显示页面有不同的显示。同时还使用了一个Js函数控制查询时的输入不能为空,避免出错。
4.调试与测试:
调试方法:
由于我的主要任务是进行数据库连接和编写后台程序,为了能与前端有良好的交互,我编写了几个简单的前端页面,在页面上先用Javabean调用需要用到的方法,传入基本的参数来检查结果,当全部检查完可用后,再用servlet
进行登录、修改、注销功能的测试。当这些也都正常运行后,再加上限制条件,规范输入和输出的形式,最后完成任务。
主要问题:
(1) 有些操作通过servlet来完成会相当麻烦,如查询成绩等操作,要进行多次的参数传递才能将结果传到目标页面。虽然这样做能更好地将前端和后台功能分离,便于修改程序时不会互相影响,但是这种做法也降低了运行的速度,鉴于这是一个简单的系统,故改为在jsp页面中 9 / 12
直接使用Javabean来完成部分操作,减少编写代码的工程量。一些不需要传递多余参数的操作,如登录、修改、注销等仍旧通过servlet完成。
(2) 当查询成绩获得多条成绩记录,不便输出。为了解决这个问题,使用了一个Sc类来接收记录,然后以List类将各个Sc对象依次保存,然后在Jsp页面上写Java语句来读出List中的所有内容,再利用循环列在表格中。
(3) Jsp页面中的中文在发送到Java中时会变成乱码。究其原因,是因为页面字符集编码的问题,所以在接收到中文的时候要将其转换格式使之能够正常显示。
5.测试结果:
(1)在数据库中查询userlist、student、sc表的内容,如图2.1,2.2,2.3
select * from userlist;
图2.1 userlist表内容
select * from student;
图2.2 student表内容
select * from sc;
图2.3 sc表内容
(2)打开登录页面,输入userlist表中第一个用户的信息,如图2.4
图2.4 登陆界面
(3)点击登录,进入学生操作主界面,如图2.5
图2.5 学生操作主界面
(4)点击右侧头像,选择查看个人信息,结果如图2.6
图2.6 查询信息界面
(5)点击右侧头像,选择修改个人信息,修改内容如图2.7(其中密码改为000000)
图2.7 修改信息界面 10 / 12
(6)点击提交,然后再次查看个人信息,结果如图2.8
图2.8 再次查询个人信息
(7)查询userlist表和student表中的内容,如图2.9,2.10
图2.9 userlist表内容
图2.10 student表内容
(8)点击左侧成绩查询,跳转到的界面如图2.11,选择第一学期进行查询,结果如图2.12;选择第四学期进行查询,结果如图2.13
图2.11 成绩查询页面
图2.12 第一学期成绩查询结果
图2.13 第四学期成绩查询结果
(9)返回登录页面,输入一个管理员帐号,如图2.14
图2.14 登陆界面
(10)以管理员身份登录后,结果如图2.15
图2.15 管理员操作主界面
(11)点击管理员操作,跳转到另一个界面,点击按学号查询,如图2.16
图2.16 按学号查询输入为空时
(12)在学号文本框里输入****,点击按学号查询,结果如图2.17
图2.17 按学号查询
(13)在姓名文本框里输入“李子明”,点击按姓名查询,结果如图2.18
图2.18 按姓名查询
11 / 12
(14)输入课程号105和分数段60-99,得到的结果如图2.19
图2.19 课程号为105的成绩
输入课程号为空和分数段60-99,得到的结果如图2.20
图2.20 所有课程的成绩
(15)对学号为****的学生进行密码重置,结果如图2.21
图2.21 密码重置
查询数据库中userlist表,结果如图2.22
图2.22 密码重置后userlist表内容
对学号为****的学生进行信息初始化,结果如图2.23
图2.23 用户初始化
查询数据库中userlist表,结果如图2.24
图2.24 用户初始化后student表内容
6.心得体会:
本次课程设计是上大学至今最特别的一次,因为这是第一次合作进行上机课程设计,同时题目的要求是要做一个完成度较高的系统,所以我从中得到了极大的收获。
我和队友所选的题目是学籍管理系统,这是一个基于B/S结构的系统,这是我们以前从未动手实现过的,所以对我们来说是一个不小的挑战。为此,我们学习了与HTML、JSP、CSS相关的一些知识,看了很多实例,在之后才慢慢开始我们的工作。
因为一开始分工不明确,导致我们没有分配好各自的时间和任务,两个人都在学习前端的相关知识,直到前端开始做了一段时间之后我才想起来去做后台编程。同时因为对题目要求理解的问题,我们迟迟都定不下来最终所需的功能,最后只好按照自己的理解完成一个相对简单但功能完整的系统。这个问题的根本原因是我们没有做好前期的规划,抱着一种想到什么就做什么的想法去做,导致没有一个清晰的设计思路,最终出来的作品也不够好。
通过这次课设设计,我对项目开发有了更多的体会。在项目开发中,通常是一个团队很多人一起工作的,这时候分工合作就很重要了,这需要一个好的领导