网上家教预约系统课程设计.docx
《网上家教预约系统课程设计.docx》由会员分享,可在线阅读,更多相关《网上家教预约系统课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
网上家教预约系统课程设计
课程设计
课程名称:
信息系统开发方法与建模
题目:
家教预约服务系统
院(系):
专业班级:
姓名:
学号:
指导教师:
2012年6月12日
西安建筑科技大学课程设计(论文)任务书
专业班级:
学生姓名:
指导教师(签名):
一、课程设计(论文)题目
家教预约服务系统
二、本次课程设计(论文)应达到的目的
1.针对一个实际系统的开发,使学生深刻理解和掌握管理信息系统系统分析、系统设计和系统实施的理论和方法;
2.巩固和加深理解所学编程语言、开发工具,提高综合应用能力;掌握系统UML建模、界面设计、数据库设计、程序代码设计,提高实践能力;
3.初步了解学术研究的基本方法与步骤,并通过设计报告(论文)的撰写,了解学术报告(论文)的写作方法。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)
1、设计内容:
根据现行家教服务的实际情况,开发一套符合需求的家教预约服务系统,将所有家教资源信息发布于网站,使学员能够便捷的找到合适的家教资源。
2、设计过程:
按照系统设计目的、系统需求、系统功能分析与设计、用户界面设计、源程序设计、使用说明等环节整理课程设计的成果,形成设计报告,设计报告应包括的内容:
(1)系统需求分析:
需求描述、系统UML主要用例、主要类图、主要活动图、状态及部署图(如果必要)、业务流程图、数据流图、数据字典附必要的文字说明
(2)系统设计:
功能结构设计、I/O设计、代码设计、界面设计、数据库设计、网络环境。
撰写设计总结报告。
3、设计成果提交:
A.设计报告;B.源程序。
报告要符合学校格式规范要求。
四、应收集的资料及主要参考文献:
[1]覃钊璇,曾一,柴艳欣,等.基于UML活动图的多态性测试用例生成[J].计算机工程,2010
[2]李留英,王戟,齐治昌.UMLstatecharts的测试用例生成方法[J].2011,
[3]RobertVB.面向对象系统的测试[M].华庆一,王斌君,陈莉,译.
五、审核批准意见
教研室主任(签字)
目录
1系统概述3
1.1需求描述3
1.2可行性分析3
2系统模型5
2.1系统类图5
2.2系统对象图5
2.3系统用例图6
2.4系统时序图8
2.5系统协作图8
2.6系统活动图9
3系统分析10
3.1功能需求分析10
3.2.系统流程分析10
4系统实现12
4.1搭建开发环境12
4.2界面设计14
4.3数据库设计16
4.4功能实现18
5.总结25
参考文献26
设计总说明
随着信息技术与网络的普及,高校对勤工俭学的大力支持,开发一个高校家教服务平台迫在眉睫,本系统采用“自上而下总体规划,自下而上应用开发”的策略开发高校家教服务系统,前台应用JSP技术开发界面,后台选取MySQL为数据库管理系统,以Hibernate技术实现对后台数据的访问。
本系统采用B/S架构模式,采用Java语言和Struts2+Hibernate+Spring(即SSH2)集成框架技术搭建开发平台,整个系统分成了三层:
即表示层、中间层、持久层。
使得系统具有较好的移植性和扩展性能。
本系统主要功能有公共模块和注册用户模块。
公共模块为广大用户提供大量的家教信息资源,并设置了强大而全面的搜索功能,使得用户更容易找到适合自己的资源信息。
系统界面友好,操作简单。
关键字:
家教;jsp;MySQL;B/S;SSH2
1系统概述
1.1需求描述
根据网络家教服务系统的实际情况,该系统需求的主要功能包括:
公共模块和用户模块两大模块。
1、公共模块:
为广大用户提供大量的家教资源信息,同时,该系统设置了全方位的查询功能,用户不用登陆,直接就能进入本站,通过多条件的筛选,就能方便的得到适合自己的信息资源。
2、用户模块:
用户通过简单地注册,就能获得自己的账户,通过登陆,就能进入到个人的主界面。
主界面有以下主要功能:
(1)查看个人信息
(2)修改个人信息
(3)填写个人简历进行信息的发布
(4)可申请一个或多个职位
(5)账户管理,可修改个人的密码,可注销该账户
1.2可行性分析
1.2.1技术可行性
随着社会的不断发展,家教服务系统也日益成为一个复杂的管理系统。
而这个系统尽管其在组织关系上存在着很大的复杂性,繁琐性,但是就整个系统的技术构成上来看,它还是属于一个数据库应用类的系统,其基本操作还是对存在数据库进行添加、删除、修改等。
所以就单纯的数据库应用来看,暂时不存在太大的技术问题。
本系统采用B/S架构模式,采用Java语言和Struts2+Hibernate+Spring(即SSH2)集成框架技术搭建开发平台,整个系统分成了三层:
即表示层、中间层、持久层。
使得系统具有较好的移植性和扩展性能。
本系统主要功能有公共模块和注册用户模块。
公共模块为广大用户提供大量的家教信息资源,并设置了强大而全面的搜索功能,使得用户更容易找到适合自己的资源信息。
系统界面友好,操作简单。
1.2.2经济可行性
主要表现有以下几个方面:
第一,本系统可以代替人工重复性劳动,从而节省人力财力资源;
第二,本系统可以异地操作简单化,大大提高工作效率和质量;
第三,本系统可以为营运成本计划提供辅助决策性信息。
2系统模型
2.1系统类图
1、根据对家教服务基本情况的调查,本家教服务系统由公共模块和用户模块两方面组成的。
因此,可设计出以下类图:
图2.1系统类图
2.2系统对象图
根据上述类图,直接画出本系统的对象图
图2.2系统对象图
2.3系统用例图
在前期课业项目工作的基础上,根据项目业务需要,撰写项目的需求特性列表
(1)根据家教预约服务系统的需求分析和业务需求的分析,项目需求列表如下表所示:
表2.1项目需求列表
编号
说明
FEAT01
查询家教资源信息
FEAT02
注册用户
FEAT03
登录本系统
FEAT04
查看个人信息
FEAT05
查看个人简历
FEAT06
修改个人简历
FEAT07
修改密码
FEAT08
注销账户
(2)本系统涉及到的用户只有两类,及学员和教员,因此,可以抽象出两个个用例,具体的用例图如下所示:
图2.3系统用例图
2.4系统时序图
本系统的主要流程就是教师用户,其流程为:
注册-填写个人信息-进入主界面-填写简历-申请职位。
因此,该系统的时序图如下图所示。
图2.4系统时序图
2.5系统协作图
通过时序图可以画出该流程的协作图:
图2.5系统协作图
2.6系统活动图
本系统中,教师用户注册的活动图如下所示:
图2.6系统活动图
3系统分析
3.1功能需求分析
通过对用户需求的分析,本系统的功能主要教员管理和学员管理。
各个功能的具体描述如下:
1、教员管理的功能主要有:
学员查询、教员注册、教员登录、查看个人信息、修改个人信息、填写简历、修改简历、修改密码等功能设置。
2、学员管理的主要功能是:
查询家教资源信息。
3.2.系统流程分析
1、本系统的主要流程是教员操作,教员的操作如下:
(1)填写注册信息
(2)用户自己的账户
(3)登录系统
(4)查看个人信息
(5)修改个人信息
(6)填写个人简历
(7)查看个人简历
(8)修改个人简历
(9)修改密码
(10)注销账户
因此,教员操作流程图如下:
图3.1系统流程图
4系统实现
4.1搭建开发环境
4.1.1页面开发技术
页面开发技术采用JSP,所有的页面文件都是jsp文件。
如下图所示:
图4.1页面文件
4.1.2核心开发技术
采用Struts2.3+Hibernate3.3+Spring2.5集成框架;如下图所示:
图4.2核心开发包
该集成框架中共有3类配置文件,分别为Spring的配置文件,Struts的配置文件如上图所示,还有web.xml配置文件以及三大框架所用到的部分jar包如下图所示:
图4.3核心jar
4.1.3服务器技术
本系统采用的服务器为Tomcat7.0.26版本:
图4.4在myeclipse中部署服务器
4.1.4数据库
本系统采用MySQL数据库,其数据源的配置如下:
图4.4Mysql的数据源配置
4.2界面设计
4.2.1用户注册界面
图4.5系统注册界面
4.2.2用户登录界面
当用户注册成功之后,会拥有自己的用户名和密码,然后进行登录,如下图所示:
图4.6用户登录界面
4.2.3用户主界面
图4.7用户主界面
4.2.4用户系统菜单
图4.8用户系统菜单
4.3数据库设计
1、建立数据库模型如下图所示
图4.9数据库模型
2、建立表结构如下:
tb_user
tb_teacher
tb_profile
tb_city
4.4功能实现
4.4.1用户注册功能
(1)填写注册信息
(2)注册成功提示
(3)部分实现代码
/**
*添加新用户
*@return
*/
publicStringadd(){
Stringrealpath=ServletActionContext.getServletContext().getRealPath("/images");
Filefile=newFile(realpath);
if(!
file.exists())file.mkdirs();
try{
FileUtils.copyFile(uploadFile,newFile(file,this.uploadFileFileName));
}catch(IOExceptione){
e.printStackTrace();
}
teacher.setPic(uploadFileFileName);
booleanret=userServiceImpl.save(user,teacher,prov,region,clgsName);
if(ret){
ActionContextctx=ActionContext.getContext();
ctx.getSession().put("user",user.getUsername());
return"add";
}
return"error";
}
4.4.2用户登录功能
(1)登录系统
(2)登录成功
(3)部分实现代码
publicStringlogin(){
Stringusername=user.getUsername();
Stringpassword=user.getPassword();
Stringpwd=userServiceImpl.getPassword(username);
if(pwd!
=null&&pwd.equals(password)){
ActionContextctx=ActionContext.getContext();
ctx.getSession().put("user",username);
return"jump";
}
return"error";
}
4.4.3查询家教资源功能
(1)选择筛选条件
(2)显示查询结果
(3)部分实现代码
publicListqueryTeachersByScroll(Stringprovince,intregion,
intpageSize,intpageNow){
Stringhql=null;
if(region==0){
hql="fromTeacherwhereprov.name='"+province+"'";
}else{
hql="fromTeacherwhereregion.id="+region+"";
}
Queryquery=sessionFactory.getCurrentSession().createQuery(hql);
query.setFirstResult(pageSize*(pageNow-1));
query.setMaxResults(pageSize);
Listteachers=query.list();
returnteachers;
}
4.4.4查询个人信息功能
(1)个人信息显示
(2)部分实现代码
publicStringquery(){
ActionContextctx=ActionContext.getContext();
Stringuser=(String)ctx.getSession().get("user");
ctx.put("teacher",userServiceImpl.getTeacher(user));
return"teacher";
}
4.4.5修改密码功能
(1)修改界面
(2)修改成功
(3)部分实现代码
publicStringmodify(){
Stringusername=(String)Struts2Utils.getSession().get("user");
Stringpass=userServiceImpl.getPassword(username);
if(pass.equals(user.getPassword())){
booleanret=userServiceImpl.updatePassword(username,newPassword);
if(ret){
Struts2Utils.getSession().remove("user");
return"modify";
}
}
return"modifyerr";
}
4.4.6注销用户账户功能
(1)注销提示
(2)部分实现代码
publicStringcancel(){
Stringusername=(String)Struts2Utils.getSession().get("user");
Stringpass=userServiceImpl.getPassword(username);
if(pass.equals(user.getPassword())){
booleanret=userServiceImpl.cancelUser(username);
if(ret){
Struts2Utils.getSession().remove("user");
return"cancel";
}
}
return"error";
}
5.总结
本系统采用Struts2.3+Hibernate3+Spring2.5集成框架开发而成,在开发业务的时候,遇到了许多技术层面的问题,有些BUG很明显,很快就能修正;但有些BUG就不是那么明显了,让人无从下手,需要花费很大的心思才能发现问题所在,才能准确定位错误。
经过重重艰难,这个系统终于全部实现了,最重要的是让我对三大框架技术有了一个更深的认识,积累了许多开发经验。
在开发业务过程中还有一个很重要的收获就是学会了一门新技术,那就是AJAX,这个技术我之前学过,但没有自己实际操作过,这次通过实现一个下拉联动功能,让我学会了如何去使用这项技术。
总之,本次课程设计给予了我很大的收获。
从中学到了课本上没有的知识和技能。
或许,以后还会遇到更大的困难,但我依然信心百倍。
参考文献
[1]王先国.UML统一建模实用教程.清华大学出版社,2011.
[2]徐锋.UML面向对象建模基础.中国水利水电出版社,2010.
[3]邱郁惠.UML和OOAD快速入门.机械工业出版社,2010.