1.2主要功能概叙:
1.2.1 学生档案的管理:
即录入、修改、查询、输出学生档案信息,这些信息包括学生基本情况、学生简历情况、学生奖励情况、学生处分情况、学生家庭信息、学生体检情况。
1.2.2 学生学籍管理:
即录入、修改、查询、输出学生学籍信息,这些信息包括学生奖贷学金情况、学生注册、学生变动情况、学生军训情况、学生毕业情况。
1.2.3 学生成绩管理:
即录入修改、查询、输出学生入校成绩,各学期、各门课程的成绩信息,并支持按年级、班级等条件的统计、查询、报表输出。
三.设计部分:
1设计框架
1.1实现数据和页面效果的分离
对于这个管理系统而言,各种用户对系统进行操作,无论是修改密码还是获得自己的信息,操作的本质事实上只有两种,数据和页面效果,当然我们可以利用jsp把所有的操作都包含在页面中,但这样产生的结果是我们的一个页面或者几个页面的代码会很多,很复杂,无论是处理静态操作的html代码还是处理动态事务的jsp代码,对于以后程序的修改和功能的扩充都很难操作,数据分离图
如下:
图:1 页面数据分离图
1.2静态页和处理页
对于静态页面只负责实现超连接功能,而处理页则实现对于提交表单后,表单的数据处理,当处理完后再跳回静态页面,静态页面是显示的,而对于处理页我们不愿意让用户知道处理的细节,所以我们把它设置为隐藏的,具体实现图如下:
图:2 页面处理图
1.3 优化和代码及模块重用
1.3.1 模块重用:
对于低权限用户,例如:学生,老师等。我们允许他们对自己的各种私人信息进行修改和更新,但是对于管理员最高权限者我们也可以对其他低权限用户的信息进行改动和更新,这样我们就可以重用这些模块,当管理员要修改某个学生的信息时,我们需要提供要被修改学生的学号,这样我们可以利用模块重用功能实现他需要修改和更新的功能,具体如下图:
图 3: 模块重用实例
1.3.1 代码重用及优化:
对于实现相同功能操作或者类似操作的类我们没有必要重复的去写代码,例如学生 和 老师都需要修改自己的私人信息,这两个类的方法都基本相同,只是数据成员不同而已,修改后我们都需要对数据库进行更新,只是字段名和表名有区别,这样我们可以设计一些基本类来完成相似的操作,具体原理如图:
图4 : 代码优化
1.4数据和页面处理:
用户对于页面的访问可以通过两种方式,一种从服务器读取静态的html页面,这样的页面主要是登陆,基本信息,或者是各种情况的录入,这样的页面由只包含静态html代码的jsp页面处理。
对于第二种情况,我们需要对于数据进行处理,例如:更改学生的密码以后我们需要对数据库进行操作,这样我们就要用到javabeans了,这样包含有beans的jsp页面来处理这些事务,处理完成以后我们就需要跳回原来的请求页面。相关原理图如下:
图5:页面处理图
图6: 数据处理图
![](https://p-blog.csdn.net/images/p_blog_csdn_net/ainibaobao/5.gif)
2.程序框架设计
2.1基础类设计:
对于数据库的操作都是用beans实现,同时对于密码的修改(无论是学生,老师还是管理员)和在jsp中中文的处理及数据库,我们都需要用到相同的操作,最后是登陆的操作,所以在设计基础类的时候我把这四个类作为了基础类,其他类只需要实现所需要完成的功能,具体的基础类的功能如下图:
表 1:基础类功能表
Bean名称 | 功能 |
Login | 所有用户登陆功能 |
ChangePassword | 所有用户的密码修改 |
ChineseProcess | 处理所有页面的中文问题 |
DataBase | 所有对数据库的操作 |
2.2包设计:
设计五个功能包,分别用于不同模块的操作,具体功能请参看下图。
![](https://p-blog.csdn.net/images/p_blog_csdn_net/ainibaobao/7.jpg)