教务管理系统.docx
《教务管理系统.docx》由会员分享,可在线阅读,更多相关《教务管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
教务管理系统
教
务
管
理
系
统
班级:
java12-02
小组成员
职位
姓名
学号
完成功能模块
组员
吴贻顺
621213530233
后台数据操作函数TeacherDao.java,StudentDao.java,AdminDao.java
LoginAciton.java,数据库表操作,
组员
王帅
621213530228
后台数据表映射配置文件
Teacher.hbm.xml,Student.hbm.xml
Admin.hbm.xml
组员
喻铁朔
621213530242
后台Hibernate,struts配置文件
Hibernate.cfg.xml
Struts.xml,web.xml
组员
张高翔
621213530243
前台学生管理界面的实现
StuMain.jsp,Stutop.jsp,StumainF.jsp,Stuleft.jsp
组员
郅昌浩
621213530249
前台教师管理界面的实现TeaMain.jspTeatop.jsp,TeamainF.jsp,Tealeft.jsp
组员
辛修浩
621213530236
前台管理员界面的实现
index.jsp,register.jsp,reSuccess.jsp
1引言
1.1编写目的
编写本文档是为了明确用户的需求,用以精确软件框架结构设计,为测试提供依据。
并且是开发小组成员分工明确,让该组成员清楚将要完成的管理系统具备哪些具体功能及特点,以让成员能有一个很好的初步概念,目标明确,提高工作效率。
1.2背景
说明:
1)待开发系统软件名称:
学生成绩管理系统;
2)本项目的任务是由各组员共同讨论,共同开发,用于提升软件开发的能力
3)开发背景:
本系统属于郑州轻工业学院的教务管理模块,实现的是网络管理系统中关于学生成绩管理的子功能,通过此软件,提高用软件工程分析问题、解决问题的能力,同时增强对数据库和MyEclipse的使用能力,提高软件开发的环境搭建能力,SSH框架的应用能力。
4)针对郑州轻工业学院教务管理系统,做出的更精简的系统。
1.3定义
1)存储过程是存储在服务器上的由SQL语句和控制流语句组成的一个预编译集合。
2)触发器属于一种特殊的存储过程,可以在其中包含复杂的SQL语句。
触发器与存储过程的区别在于触发器能够自动执行并且不含有参数。
1.4参考资料
【1】《JAVAWEB技术整合应用于项目实践》清华大学出版社作者:
张志峰
【2】《数据库技术与应用》
2需求规定
2.1目标
通过软件工程的设计方法,主要采用javaEE,Struts,Hibernate,MySQL技术,以MySQL为数据库开发程序,此开发系统需实现的目标为节约资源,提高学籍信息的精确度,方便快速操作,精简人员,节约开支,结合学校管理的实际需求,实现对学生成绩等数据进行有效管理,以及对教师的课程等数据进行有效管理,提供查询分析修改等功能,做到管理方便、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等优势。
2.2用户需求分析
本系统包括两类使用用户:
一是管理员,即输入、修改和查询课程,管理学生学籍的老师,
二是用户,即查询成绩,选课,管理个人信息,的学生。
三是教师,即教学的老师,管理课程的老师。
作为教务管理系统,其主要的需求人员是学生与老师,需求人员对其的要求可以大体概括如下:
1) 学生的基本信息管理:
学号,姓名,系别,班级,分数等;
2)课程的基本信息管理:
课程号,课程名,任课老师,学分,学时,学期,学年,课程类型,课程内容简介等;
3) 登录管理:
要求使用者提供合法的用户名、密码和相关权限;
4) 成绩的录入:
要求老师(管理员)录入成绩,要用到前面的学生信息和课程信息等;
2.3功能需求系统功能需求
我们的系统需要实现的功能主要包括以下几个方面:
设计不同用户的操作权限和登录方法;
管理员可以添加、修改和查询学生的档案记录,同时可以添加、修改和查询学生的成绩记录有对学生成绩信息开放度的管理权;
管理员对学生的档案和成绩进行审查,生成学生的档案记录报表和学生成绩报表;
教师可以查询所授课程的学生信息,可以录入并查询所授课程的成绩;
学生有查询个人档案信息和成绩信息的权利;
用户界面的直观性和成绩查询结果的可视化。
在查询结果的可视化方面,着主要是尤其针对当前众多的成绩管理系统的“通病”,我们所涉及的利于查询用户的一项新功能,除了带来便捷性之外,在数据的统计分析等方面也有很大的帮助。
满足上述要求的系统应该包括以下几个模块:
基本数据维护功能;数据库管理功能;基本业务功能。
2.4数据需求
通过调查,总结出用户对数据的需求如下:
基本数据的维护功能
添加学生的档案信息
修改学生的档案信息
删除学生的档案信息
删除学生的成绩信息
修改学生的成绩信息
添加学生的成绩信息
查询结果的可视化管理
(1)学生信息包括:
学号、学生姓名、性别、出生日期、所在学院、专业、班级等。
(2)课程信息包括:
课程编号、课程名称、所属专业等。
(3)选课信息包括:
学生姓名、课程名称、开课时间、成绩等。
一、基本数据维护功能
1、添加学生的档案信息。
2、修改学生的档案信息。
3、删除学生的档案信息。
4、添加学生的成绩信息。
5、修改学生的成绩信息。
6、删除学生的成绩信息。
7、查询结果的可视化管理。
描述图如下:
二、数据库管理功能
1、档案和成绩信息管理。
2、帐户信息管理。
3、档案和成绩信息查看管理。
三、基本业务功能
1、查看档案信息和成绩信息。
2、添加成绩信息。
由此,学生成绩管理系统的总体用例图设计如下:
2.5性能需求
通过分析,系统性能需求如下:
1.系统的高速性、稳定性、安全性。
2.系统的体系结构能够方便添加功能模块,适应业务、办公的发展。
3.系统人机界面友好,易学易用。
4.系统维护成本较低。
5出错处理需求
出错处理的任务是及时有效的避免或纠正错误:
1.接受到从另一个系统发来的违反协议格式的消息时要及时拒绝。
2.发现系统自己出现错误时要及时提出出错处理需求
2.6可行性分析
(1)经济可行性
教务管理系统对教务管理进行统一管理,实现教务管理工作的系统化,规范化和人性化,为教务管理提供便利。
与传统教务管理相比,教务管理系统提高了工作效率。
(2)技术可行性
现在社会对jsp+servlet+hibernate+struts的技术使用较为成熟的人才已
经很多,并且现在的各大高校和学生都拥有电脑。
(3)运行可行性
该系统需要搭建JVM即JAVA虚拟机和Tomcat,MyEclipse开发环境,在此环境下系统,并且在正确连接数据库后可以正常运行。
2.7用例图
学号
姓名
院系
年龄
课程
课程号
成绩
教师ID
姓名
选课人数
学生供
老师
管理员ID
密码
用户名
管理员
维护日志
教务管理系统的精简例图
2.8E-R图:
2.9数据库需求分析设计
表名
功能说明
管理员表(admin)
用于管理管理员账号和密码
课程表表(classes)
用于管理课程的信息
学生表(student)
保存学生的有关信息
学生选课表(student_classes)
保存学生成绩,学生标识和课程号,是把学生成绩与学生表和课程表关联起来的一个中间表
教师表(teacher)
保存教师的相关信息
admin表
字段名
类型
长度
是否允许为空
是否主键
是否外键
字段含义
id
int
20
否
是
否
标识
username
int
50
否
否
否
用户名
password
varchar
50
否
否
否
密码
classes表
字段名
类型
长度
是否主键
是否外键
字段含义
是否为空
cs_id
int
30
是
是
课程号
否
tea_id
int
50
否
否
教师号
是
chooseMax
int
11
否
否
最大选课人数
是
chooseCurNum
int
11
否
否
已选人数
是
room_id
varchar
50
否
否
教师号
是
cour_time
varchar
50
否
否
上课时间
是
cmark
varchar
50
否
否
学分
是
cname
varchar
60
否
否
课程名
是
学生表(student)
字段名
类型
长度
是否允许为空
是否主键
是否外键
描述
st_id
int
50
否
是
是
学生标识
sno
varchar
50
否
否
否
学号
username
varchar
50
是
否
否
用户名
sex
varchar
10
是
否
否
性别
password
varchar
20
是
否
否
密码
department
varchar
30
是
否
否
院系
jiguan
varchar
60
是
否
否
籍贯
mark
varchar
50
是
否
否
学分
email
varchar
50
是
否
否
电子邮件
image
varchar
100
是
否
否
照片
tel
varchar
50
是
否
否
电话
maxClasses
int
11
是
否
否
最大选课数
学生选课表
字段名
类型
长度
是否允许为空
是否主键
是否外键
描述
cscore
int
11
是
否
否
成绩
st_id
int
50
否
是
是
学生标识
cs_id
int
50
否
是
是
课程号
字段名
类型
长度
是否主键
是否外键
是否为空
字段含义
tid
int
50
是
是
否
教师号
tname
varchar
50
否
否
否
教师姓名
age
int
50
否
否
是
年龄
email
varchar
50
否
否
是
电子邮件
tel
varchar
50
否
否
是
电话
tpassword
varchar
50
否
否
是
教师密码
tea_id
varchar
50
否
否
是
教师类型
教师表
3任务概述及系统功能概述
3.1教务管理系统的系统特点
(1)、简洁美观的操作界面
美观又简单的操作界面对于一个教务网站,起着至关重要的作用。
操作过于复杂或网站的设计过于沉闷都会使使用者感到疲惫。
本系统通过工作人员的精心打造,使教务管理系统操作解密那的既时尚典雅,又动感十足。
(2)、教务管理模式
系统管理员系统分为4个模块:
系统管理员身份认证模块、教师管理模块、学生理模块。
3.2系统功能说明
3.2.1功能划分
1)、管理员管理系统
主登陆界面的:
标题部分截图:
学生管理模块部分截图:
2)、教师管理系统
教师管理模块界面截图:
3)、学生管理管理系统
学生管理功能模块部分截图:
4运行环境规定
4.1设备
运行本软件服务器端要在装有Tomcat服务器的系统上的计算机。
运行本软件客户端要安装IE浏览器或其它浏览器
4.2支持软件
本系统只是的操作系统包括:
WindowsXP/Win7Win8Linux。
本系统支持的数据库:
MySQL
本系统的开发工具:
tomcat7.0MyEclipse10.6。
5系统设计
项目结构:
后台:
部分代码的实现展示:
1.
2.
登录Action.Login类的具体实现:
packageAction;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpSession;
importorg.apache.struts2.ServletActionContext;
importAdmin.admin;
importDao.AdminDao;
importDao.TeacherDao;
importDao.Usermanager;
importStudent.student;
importTeacher.teacher;
importcom.opensymphony.xwork2.ActionSupport;
publicclassLoginextendsActionSupport{
privateStringusername;
privateStringsno;
privateIntegerid;
privateStringpassword;
privateIntegerradiobutton;
privateHttpServletRequestrequest;
Usermanagersm=newUsermanager();
publicStringgetUsername(){
returnusername;
}
publicvoidsetUsername(Stringusername){
this.username=username;
}
publicStringgetSno(){
returnsno;
}
publicvoidsetSno(Stringsno){
this.sno=sno;
}
publicIntegergetId(){
returnid;
}
publicvoidsetId(Integerid){
this.id=id;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
publicIntegergetRadiobutton(){
returnradiobutton;
}
publicvoidsetRadiobutton(Integerradiobutton){
this.radiobutton=radiobutton;
}
@Override
publicStringexecute()throwsException{
//TODOAuto-generatedmethodstub
if(radiobutton==1){
students=newstudent();
s.setSno(getSno());
s.setPassword(getPassword());
if(sm.stuLogin(s)){
request=ServletActionContext.getRequest();
HttpSessionsession=request.getSession();
studentsn=sm.getStudent1(sno);
session.setAttribute("username",sn.getUsername());
session.setAttribute("sno",this.sno);
session.setAttribute("id",sn.getStId());
returnSUCCESS;
}
returnINPUT;
}elseif(radiobutton==2){
TeacherDaotd=newTeacherDao();
teachertc=newteacher();
tc.setTeaId(sno);
tc.setTpassword(password);
if(td.tcLogin(tc)){
request=ServletActionContext.getRequest();
HttpSessionsession=request.getSession();
teachertec=td.getteacher(sno);
session.setAttribute("tname",tec.getTname());
session.setAttribute("tid",tec.getTid());
return"tsuccess";
}
returnINPUT;
}elseif(radiobutton==3){
AdminDaoad=newAdminDao();
adminam=newadmin();
am.setUsername(sno);
am.setPassword(password);
if(ad.adminLogin(am)){
request=ServletActionContext.getRequest();
HttpSessionsession=request.getSession();
adminadm=ad.getAdmin(sno);
session.setAttribute("username",adm.getUsername());
session.setAttribute("id",adm.getId());
return"asuccess";
}
returnINPUT;
}else{
returnINPUT;
}
}
@Override
publicvoidvalidate(){
//TODOAuto-generatedmethodstub
super.validate();
}
}
1.
2.
3.
4.
HibernateSessionFactory类的具体实现:
packageconf;
importorg.hibernate.HibernateException;
importorg.hibernate.Session;
importorg.hibernate.cfg.Configuration;
publicclassHibernateSessionFactory{
privatestaticStringCONFIG_FILE_LOCATION="/hibernate.cfg.xml";
privatestaticfinalThreadLocalthreadLocal=newThreadLocal();
privatestaticConfigurationconfiguration=newConfiguration();
privatestaticorg.hibernate.SessionFactorysessionFactory;
static{
try{
configuration.configure(CONFIG_FILE_LOCATION);
sessionFactory=configuration.buildSessionFactory();
}catch(Exceptione){
e.printStackTrace();
}
}
privateHibernateSessionFactory(){
}
publicstaticSessiongetSession()throwsHibernateException{
Sessionsession=(Session)threadLocal.get();
if(session==null||session.isOpen()){
if(sessionFactory==null){
rebuildSessionFactory();
}
session=(sessionFactory!
=null)?
sessionFactory.openSession():
null;
threadLocal.set(session);
}
returnsession;
}
publicstaticvoidrebuildSessionFactory(){
try{
configuration.configure(CONFIG_FILE_LOCATION);
sessionFactory=configuration.buildSessionFactory();
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticorg.hibernate.SessionFactorygetSessionFactory(){
returnsessionFactory;
}
publicstaticConfigurationgetConfiguration(){
returnconfiguration;
}
}
1.
2.
3.
AdminDao类的具体实现:
packageDao;
importjava.util.ArrayList;
importjava.util.List;
importorg.hibernate.Query;
importorg.hibernate.Session;
importorg.hibernate.Transaction;
importStudent.student;
importClass.Classes;
importconf.HibernateSessionFactory;
publicc