学员管理系统详细分析文档.docx
- 文档编号:2207023
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:27
- 大小:1.81MB
学员管理系统详细分析文档.docx
《学员管理系统详细分析文档.docx》由会员分享,可在线阅读,更多相关《学员管理系统详细分析文档.docx(27页珍藏版)》请在冰豆网上搜索。
学员管理系统详细分析文档
学员管理系统项目需求文档
第一部分需求描述
1.1需求描述:
为将教务从繁琐、无序、低端的工作中解放出来,处理更有价值、更重要的事务,整体提高教务办事效率和对学员信息的可控性,使学员管理趋于完善,提高执行力,特开放此套学员管理系统。
现在要开发一套学员管理系统,要求如下:
1)管理员登录以及验证;
2)管理课程,实现添加、删除、批量删除、修改、查询以及分页;
3)管理班级,实现添加、删除、批量删除、修改、查询以及分页;
4)管理教师,实现添加、删除、批量删除、修改、查询以及分页。
第二部分开发环境
WindowXp;MyEclipse5.5.1GA;MySql5.0;tomcat6.0
第三部分技能点描述
(1)会使用Ext+Spring+Hibernate+Struts搭建框架;
(2)会使用Mysql数据库操作数据;
(3)会使用Visio进行需求分析;
(4)会使用Hibernate对关系型数据库进行持久化操作;
(5)会使用Struts进行前台页面交互;
(6)会使用Sring作为控制层
(7)会使用Ext开发富客户端。
第四部分概要设计
4.1功能清单
标号(Ref#)
功能
R1.1
用户登录
R1.2
查询课程
R1.3
修改课程
R1.4
添加课程
R1.5
查询班级
R1.6
修改班级
R1.7
添加班级
R1.8
查询教师
R1.9
修改教师
R1.10
添加教师
4.2功能详细说明
(1)用户登录
用户登录界面,如图1.1所示:
图1.1用户登录
用户登录验证,如图1.2所示:
图1.2用户登录验证
(2)管理课程
查询所有课程,如图1.3所示:
图1.3查询所有课程
分页显示,如图1.4所示:
图1.4课程分页显示
修改课程名称,如图1.5所示:
图1.5修改课程名称
修改是否已选,如图1.6所示:
图1.6修改是否已选
删除课程,如图1.7所示:
图1.7删除课程
批量删除课程,如图1.8所示:
图1.8批量删除课程
添加课程,如图1.9所示:
图1.9添加课程
(3)管理班级
分页查询班级,如图1.10所示:
图1.10分页查询班级
修改班级,如图1.11所示:
图1.11修改班级
删除(或批量删除)班级,如图1.12所示:
图1.12删除班级
添加班级,如图1.13所示:
图1.13添加班级
(4)管理教师
分页查询教师,如图1.14所示:
图1.14分页查询教师
修改教师,如图1.15所示:
图1.15修改教师
删除(或批量删除)教师,如图1.16所示:
图1.16删除教师
添加教师,如图1.17所示:
图1.17添加教师
4.3系统数据库设计
根据需求设计业务数据库表。
如表1.1:
表1.1SCCE协同工作平台系统业务表设计
Name
Code
账号表
ACCOUNT
课程表
COURSE
班级表
TEAMS
教师表
TEACHER
各表明细如下:
账号表
Name
Code
用户ID
USER_ID
用户名称
USER_NAME
用户密码
PASSWORD
用户性别
SEX
注册时间
REG_DATE
用户组
GRADE
课程表
Name
Code
编号
COURSE_ID
课程名称
COURSE_NAME
是否选择
CHOICES
班级表:
Name
Code
班级ID
TEAM_ID
专业
SPECIALTY
班级名称
TEAM_NAME
老师名称
TEACHER_NAME
老师编号
TEACHER_NUM
教师表:
Name
Code
教师ID
TEACHER_ID
教师编号
TEACHER_NO
教师姓名
TEACHER_NAME
教师性别
SEX
出生日期
TEACHER_DATE
职称
TEACHER_LEVEL
学历
TEACHER_GRADE
工龄
TEACHER_LOS
第五部分实现步骤
(1)建立数据库;
数据库见数据库设计
(2)搭建SSH工程,添加Ext支持
(3)编写基类BaseDAO,代码如下:
publicclassBaseDAOextendsHibernateDaoSupport{
//实体对象全路径名称,包括包名
privateStringpoName="";
//把实体对象增加或者修改同步到数据库
publicvoidsaveOrUpdate(BasePOpo){
getHibernateTemplate().saveOrUpdate(po);
}
//根据实体对象删除数据记录
publicvoiddelete(BasePOpo){
this.getHibernateTemplate().delete(po);
}
//根据主键ID删除数据记录
publicvoiddelete(Integerid){
BasePOpo=findById(id);
this.delete(po);
}
//根据主键ID值查找实体对象
publicBasePOfindById(Integerid){
if(id==null){
returnnull;
}
BasePOpo=null;
try{
po=(BasePO)this.getHibernateTemplate().get(poName,id);
}catch(Exceptione){
e.printStackTrace();
}
returnpo;
}
//查询对象的所有记录
publicListgetObjects(){
ListpoList=null;
try{
Stringhql="from"+poName;
poList=this.getHibernateTemplate().find(hql);
}catch(Exceptione){
e.printStackTrace();
}
returnpoList;
}
//HQL,多条件查询
publicListsearchByHQL(Stringhql,Object[]params){
Queryquery=this.getSession().createQuery(hql);
for(inti=0;i query.setParameter(i,params[i]); } returnquery.list(); } //HQL,单个条件查询 publicListsearchByHQL(Stringhql,Objectparam){ returnsearchByHQL(hql,newObject[]{param}); } /** *根据HQL进行分页查询,有一个参数或者没有参数的 *@paramhql *@paramparas查询的参数 *@paramoffset当页的第一条记录是整个数据第几条数据 *@parampagesize每页显示的条数 *@return */ publicPageModelsearchByHQL(Stringhql,Objectparas,intoffset,intpageSize){ returnsearchByHQL(hql,newObject[]{paras},offset,pageSize); } /** *根据HQL进行分页查询,有多个参数的 *@paramhql *@paramparas查询的参数,用对象数组表示 *@paramoffset当页的第一条记录是整个数据第几条数据 *@parampagesize每页显示的条数 *@return */ publicPageModelsearchByHQL(Stringhql,Object[]paras,intoffset,intpageSize){ PageModelpm=newPageModel(); Sessionsession=this.getSession();//取得session StringcountHQL=this.getCountQuery(hql);//获得记录总数HQL Queryquery=session.createQuery(countHQL); if(paras! =null){ for(inti=0,j=paras.length;i query.setParameter(i,paras[i]); } } inttotal=((Long)query.uniqueResult()).intValue(); //获取当前的结果集 query=session.createQuery(hql); if(paras! =null){ for(inti=0,j=paras.length;i query.setParameter(i,paras[i]); } } query.setFirstResult(offset); query.setMaxResults(pageSize); Listdatas=query.list(); pm.setDatas(datas);//设置当页的数据集合 pm.setTotal(total);//设置总的记录 session.close(); returnpm; } //封装查询语句,对传入的HQL语句进行组装,封装查询所有记录的HQL privateStringgetCountQuery(Stringhql){ Stringsql=""; intnum=hql.indexOf("from"); if(num! =-1){ sql="selectcount(*)"+hql; } returnsql; } publicvoidsetPoName(StringpoName){ this.poName=poName; } } (4)编写课程DAO(教师DAO,班级DAO略),代码如下: publicclassCourseDAOextendsBaseDAO{ /** *
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学员 管理 系统 详细 分析 文档