javaee课程设计信息管理系统需求分析.docx
- 文档编号:5594256
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:10
- 大小:19.79KB
javaee课程设计信息管理系统需求分析.docx
《javaee课程设计信息管理系统需求分析.docx》由会员分享,可在线阅读,更多相关《javaee课程设计信息管理系统需求分析.docx(10页珍藏版)》请在冰豆网上搜索。
javaee课程设计信息管理系统需求分析
Java-ee课程设计
——学生信息管理系统
专业软件工程
学号201107111362
学生姓名张力阳
任课教师白彦峰
完成日期2014年6月20日
摘要
进行学生信息管理是高校重要工作之一。
传统的学生信息管理由于是手工操作,工作量大且容易出错。
随着计算机和网络技术的迅速发展,越来越多的院校都拥有自己的学生信息管理系统,而采用B/S架构的科研管理系统进行学生信息管理则是其趋势。
J2EE技术的基础就是核心Java平台,它有许多优点,例如:
“编写一次、随处运行”的特性、方便存取数据库的JDBCAPI,CORBA技术以及能够在Internet应用中保护数据的安全模式等等。
J2EE体系结构提供中间层集成框架用来满足高可用性、高可靠性以及可扩展性的应用需求,为搭建具有可伸缩性、灵活性、易维护性的网络应用系统提供了良好的机制。
本文基于J2EE平台技术、采用Browser/Server结构,设计并实现了该系统中的项目管理系统。
论文首先介绍了系统开发涉及的相关技术,主要围绕J2EE的相关技术和系统的体系结构。
其次,介绍了高校学生管理系统的总体分析与设计,包括需求分析、功能模块分析和数据库设计。
最后,利用JSP+JavaBean模式对项目管理系统进行了实现,并作了详细描述,主要采用图片与代码结合的方式详细地叙述了系统功能的实现。
关键词:
学生信息管理系统,J2EE,JSP,J2EE框架
1.项目背景
随着计算机技术的不断发展,网络技术的普及范围越来越广,网络能够提供的服务多样、便捷,已经成为人们生产生活中不可缺少的重要组成部分。
越来越多的人依靠电子产品生活,而他们的日常工作也是离不开这些电子产品的。
传统的学生信息管理由于是手工操作,工作量大且容易出错,所以开发出一款学生信息管理系统系统,就显得必不可少了。
同时,也为了进一步巩固所学的J2EE语言基础知识,达到熟练编写、运用的程度;锻炼自己的面向对象的程序设计思想,能够深刻认识面向过程与面向对象两种设计方法之间的区别;熟练掌握具体软件开发平台下的动手能力,掌握J2EE应用程序设计的方法与技巧,实现从传统面向过程程序设计思维到面向对象程序设计思维的转型。
2.系统需求分析
2.1系统概述
学生信息管理系统采用jsp做前台,后台数据库采用sqlsever2008,本系统提供了三大模块,分别为学生信息管理、课程信息管理、成绩信息管理。
这三个模块里又有相应的子模块,通过这些模块之间的连接配合,完成操作员发出的各种指令。
本项目采用了MVC架构模式,通过对struts+hibernate+spring的整合,实现了项目model、view和controller层的分离,大大提高了对于系统的维护性和可扩展性。
2.2系统的组成及各模块的功能
本系统主要包括两大模块:
学生信息管理,课程信息管理,成绩信息管理。
其中,学生信息管理子模块中包括:
学生信息录入,学生信息查询;
课程信息管理子模块包括:
课程信息录入,所有课程信息查询
成绩信息管理子模块中包括:
成绩信息录入,学生成绩查询。
其中,1.学生信息录入的功能为:
可以录入学生的基本信息,包括学号、性别、
姓名、专业等,其中,还可以上传学生照片。
学生信息查询的功能为:
可以查询学生的基本信息,并且可以进行详细
信息查询,对信息的修改和删除,可以分页查询。
2.课程信息录入的功能是:
录入课程号、课程名、开课学期、学时和
分;
课程信息查询:
查询所有课程的录入课程号、课程名、开课学期、学时
和学分;还可以删除和修改课程信息。
3.成绩信息录入的功能为:
可以录入学生姓名、课程和成绩。
学生成绩查询的功能为:
可以查询学生的成绩、学分,并且可以进行删
除。
2.3系统的运行环境
2.2.1硬件环境
处理器:
InterPentium166MX或更高
内存:
32M以上
硬盘空间:
1GB以上
显卡:
SVGA显示适配器
2.2.2软件环境
操作系统:
Windows98/ME/2000/XP
运行环境:
MyEclipse、SqlSever、浏览器
3.系统设计
3.1总体结构设计
本系统开发采用目前一种广泛流行的软件设计模式MVC。
MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征。
这种抽象结构能有助于将应用程序分割成若干逻辑部件,事应用程序设计变得更加容易。
把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层----模型层、视图层、控制层。
3.2数据库设计
整体表:
XSB表:
表3-1
CJB表:
表3-2
DLB表:
表3-3
KCB表:
表3-4
ZYB表:
表3-5
KCB表:
表3-6
4.系统实现
4.1登录模块的设计与实现
进入主界面是为登入之前用户点击左侧任意一个功能都会在右侧跳转到登陆界面;用户输入学号和口令,即可进入系统进行操作,界面如图4-1所示:
图4-1
4.2学生信息管理模块的设计与实现
用户登录成功后,进入主页,界面如图4-2所示:
图4-2
4.2.1学生信息录入的设计与实现
用户点击“学生信息录入”,可以录入学生的基本信息,包括学号、性别、姓名、专业等,其中,还可以上传学生照片。
界面如图4-3所示:
图4-3
4.2.2学生信息查询的设计与实现
用户点击“学生信息查询”,可以查询学生的基本信息,并且可以进行详细信息查询,对信息的修改和删除,可以分页查询。
界面如图4-4所示:
图4-4
用户点击“详细信息”,可以查询学生的详细信息,界面如图4-5所示:
图4-5
用户点击“修改”,可以修改学生信息,界面如图4-6所示:
图4-6
4.3课程信息管理模块的设计与实现
4.3.1课程信息录入的设计与实现
管理者点击课程信息录入,可以实现对于课程信息的录入功能,界面如图4-7所示:
图4-7
4.3.2课程信息查询的设计与实现
管理者点击课程信息查询,可以查询所有课程信息,界面如图4-8所示:
图4-8
点击删除、修改可以实现相应的删除和修改操作,界面如图4-9所示:
图4-9
输入课程号可以查询相应的课程详细信息,如图4-10所示:
图4-10
4.4成绩信息管理模块的设计与实现
4.4.1成绩信息录入的设计与实现
用户点击“成绩信息录入”,可以录入学生姓名、课程和成绩,界面如图4-7所示:
图4-11
4.3.2学生成绩查询的设计与实现
用户点击“学生成绩查询”,可以查询学生的成绩、学分,并且可以进行删除,界面如图4-8所示:
图4-12
点击学号可以查看详细信息,如图4-13所示;
图4-13
5.总结
通过对这次项目的实践,整合了SSH,并应用到系统中,开发过程中遇到各种各样的错误。
在这个发现错误,了解错误出现的原因,查询资料,并且亲手去解决错误并使系统运行起来的过程,是一个不断自我提高的过程,不仅仅在技术方面,也包括在忍耐力和其他品质方面。
虽然这次采用了MVC的设计模式,将应用作为三层分开,但是对其意义还不是很明确,希望在以后的学习中能慢慢领悟。
同时,对于学生信息管理系统的功能开发还不完善,在今后会继续完善功能。
6.源代码
6.1项目截图
图6-1图6-2
6.2项目主要代码
6.2.1.CjAction.java主要代码
publicclassCjActionextendsActionSupport{
privateCjbcj;privateCjServicecjService;
publicCjbgetCj(){returncj;
}publicvoidsetCj(Cjbcj){this.cj=cj;}
publicvoidsetCjService(CjServicecjService){
this.cjService=cjService;}
privateintpageNow=1;privateintpageSize=8;
privateXsServicexsService;privateKcServicekcService;
publicvoidsetXsService(XsServicexsService){
this.xsService=xsService;}
publicvoidsetKcService(KcServicekcService){
this.kcService=kcService;}
publicStringexecute()throwsException{
Listlist1=xsService.findAll(1,xsService.findXsSize());
Listlist2=kcService.findAll(1,kcService.findKcSize());
Maprequest=(Map)ActionContext.getContext().get("request");
request.put("list1",list1);request.put("list2",list2);
returnSUCCESS;}
publicStringaddorupdateXscj()throwsException{
Cjbcj1=null;CjbIdcjId1=newCjbId();
cjId1.setXh(cj.getId().getXh());
cjId1.setKch(cj.getId().getKch());
if(cjService.getXsCj(cj.getId().getXh(),cj.getId().getKch())==null){
cj1=newCjb();cj1.setId(cjId1);}else{
cj1=cjService.getXsCj(cj.getId().getXh(),
cj.getId().getKch());}
Kcbkc1=kcService.find(cj.getId().getKch());
cj1.setCj(cj.getCj());
if(cj.getCj()>60||cj.getCj()==60){
cj1.setXf(kc1.getXf());}elsecj1.setXf(0);
cjService.saveorupdateCj(cj1);returnSUCCESS;}
publicStringfindXscj()throwsException{
Listlist=cjService.getXsCjList(cj.getId().getXh());
if(list.size()>0){
Maprequest=(Map)ActionContext.getContext().get("request");
request.put("list",list);returnSUCCESS;
}elsereturnERROR;}
publicStringdeleteOneXscj()throwsException{
Stringxh=cj.getId().getXh();Stringkch=cj.getId().getKch();
cjService.deleteCj(xh,kch);returnSUCCESS;}
publicStringxscjInfo()throwsException{
Listlist=cjService.findAllCj(this.getPageNow(),this.getPageSize());
Maprequest=(Map)ActionContext.getContext().get("request");
request.put("list",list);
Pagerpage=newPager(this.getPageNow(),cjService.findCjSize());
System.out.println(cjService.findCjSize());
request.put("page",page);returnSUCCESS;}
publicintgetPageNow(){returnpageNow;}
publicvoidsetPageNow(intpageNow){this.pageNow=pageNow;}
publicintgetPageSize(){returnpageSize;}
publicvoidsetPageSize(intpageSize){
this.pageSize=pageSize;}}
6.2.2.DIAction.java主要代码
publicclassDlActionextendsActionSupport{
privateDlServicedlService;privateDlbdl;
publicDlbgetDl(){returndl;}
publicvoidsetDl(Dlbdl){this.dl=dl;}
publicDlServicegetDlService(){returndlService;}
publicvoidsetDlService(DlServicedlService){
this.dlService=dlService;}
publicStringexecute()throwsException{
Dlbuser=dlService.find(dl.getXh(),dl.getKl());
if(user!
=null){
Mapsession=(Map)ActionContext.getContext().getSession();
session.put("user",user);
returnSUCCESS;}else
returnERROR}}
6.2.3.XsAction.java主要代码
publicclassXsActionextendsActionSupport{
privateintpageNow=1;privateintpageSize=8;privateXsbxs;
privateXsServicexsService;privateZyServicezyService;
privateFilezpfile;privateListlist;
publicvoidsetList(Listlist){this.list=list;
System.out.println(list.size()+"----------------------");}
publicListgetList(){returnzyService.getAll();}
publicFilegetZpfile(){returnzpfile;}
publicvoidsetZpfile(Filezpfile){this.zpfile=zpfile;}
publicXsbgetXs(){returnxs;}
publicvoidsetXs(Xsbxs){this.xs=xs;}
publicXsServicegetXsService(){returnxsService;}
publicvoidsetXsService(XsServicexsService){
this.xsService=xsService;}
publicintgetPageNow(){returnpageNow;}
publicvoidsetPageNow(intpageNow){this.pageNow=pageNow;}
publicintgetPageSize(){returnpageSize;}
publicvoidsetPageSize(intpageSize){this.pageSize=pageSize;}
publicStringexecute()throwsException{
System.out.println(this.getPageNow());
Listlist=xsService.findAll(pageNow,pageSize);
Maprequest=(Map)ActionContext.getContext().get("request");
Pagerpage=newPager(getPageNow(),xsService.findXsSize());
request.put("list",list);request.put("page",page);
returnSUCCESS;}
publicStringgetImage()throwsException{
HttpServletResponserequest=ServletActionContext.getResponse();
Stringxh=xs.getXh();Xsbxs3=xsService.find(xh);
byte[]img=xs3.getZp();
response.setContentType("image/jpeg");
ServletOutputStreamos=response.getOutputStream();
if(img!
=null&&img.length!
=0){
for(inti=0;i os.write(img[i]);}os.flush();}returnNONE;} publicStringfindXs()throwsException{ Stringxh=xs.getXh();Xsbstu2=xsService.find(xh); Maprequest=(Map)ActionContext.getContext().get("request"); request.put("xs",stu2);returnSUCCESS;} publicStringdeleteXs()throwsException{ Stringxh=xs.getXh();xsService.delete(xh);returnSUCCESS;} publicStringupdateXsView()throwsException{ Stringxh=xs.getXh();XsbxsInfo=xsService.find(xh); Listzys=zyService.getAll(); Maprequest=(Map)ActionContext.getContext().get("request"); request.put("xsInfo",xsInfo);request.put("zys",zys); returnSUCCESS;} publicStringupdateXs()throwsException{ Xsbxs1=xsService.find(xs.getXh()); xs1.setXm(xs.getXm());xs1.setXb(xs.getXb()); xs1.setZyb(zyService.getOneZy(xs.getZyb().getId())); xs1.setCssj(xs.getCssj());xs1.setZxf(xs.getZxf()); xs1.setBz(xs.getBz()); if(this.getZpfile()! =null){ FileInputStreamfis=newFileInputStream(this.getZpfile()); byte[]buffer=newbyte[fis.available()]; fis.read(buffer);xs1.setZp(buffer);} Maprequest=(Map)ActionContext.getContext().get("request"); xsService.update(xs1);returnSUCCESS;} publicStringaddXsView()throwsException{returnSUCCESS;} publicStringaddXs()throwsException{ Xsbstu=newXsb();Stringxh1=xs.getXh(); if(xsService.find(xh1)! =null){returnERROR;} stu.setXh(xs.getXh());stu.setXm(xs.getXm()); stu.setXb(xs.getXb());stu.setCssj(xs.getCssj()); System.out.println(xs.getCssj()); stu.setZxf(xs.getZxf());stu.setBz(xs.getBz()); stu.setZyb(zyService.getOneZy(xs.getZyb().getId())); if(this.getZpfile()! =null){ FileInputStreamfis=newFileInputStream(this.getZpfile()); byte[]buffer=newbyte[fis.available()]; fis.read(buffer);stu.setZp(buffer);} xsService.save(stu);returnSUCCESS;} publicZyServicegetZyService(){returnzyService;} publicvoidsetZyService(ZyServicezyService){ this.zyService=zyService;}} 6.2.4其他的详细代码 关于其他的详细代码、配置文件、struts、hebernate、spring能留开发包均在xscjManage文件夹中。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaee 课程设计 信息管理 系统 需求 分析