中南大学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相关的一些知识,看了很多实例,在之后才慢慢开始我们的工作。

因为一开始分工不明确,导致我们没有分配好各自的时间和任务,两个人都在学习前端的相关知识,直到前端开始做了一段时间之后我才想起来去做后台编程。同时因为对题目要求理解的问题,我们迟迟都定不下来最终所需的功能,最后只好按照自己的理解完成一个相对简单但功能完整的系统。这个问题的根本原因是我们没有做好前期的规划,抱着一种想到什么就做什么的想法去做,导致没有一个清晰的设计思路,最终出来的作品也不够好。

通过这次课设设计,我对项目开发有了更多的体会。在项目开发中,通常是一个团队很多人一起工作的,这时候分工合作就很重要了,这需要一个好的领导