《课程设计实验报告--综合软件设计.docx》由会员分享,可在线阅读,更多相关《课程设计实验报告--综合软件设计.docx(50页珍藏版)》请在三一办公上搜索。
1、课程设计实验报告模块名称综合软件设计专业信息工程设计题目1 .基于WEB的在线考试系统2 .基于WEB的网上商城系统3 .五子棋小游戏任务要求L实验报告要求写出实验目的、实验内容、实验过程及结果。2 .对环境安装的要求写出工具选择、使用,写出安装步骤;3 .分析与实验体会、实验中遇到的问题及改进的设想。4 .实验报告要书写规范、文字简练、语句通顺、图表清晰。实验设备及软件WINDOW7+JDK1.8.O+Myeclipse+MySQLServer+Mysql-Front+Tomcat同组人员学号及姓名参考文献1孙印杰等编著.JaVa编程案例精解.北京:电子工业出版社,20052向学哲,柳庆勇,
2、王桂娟编著.JSP程序设计教程.北京:人民邮电出版社,2006目录1 .基于WEB的在线考试系统一.设计要求Ll设计要求1.2原理说明二.需求分析1. 1功能需求2. 2性能需求三.流程图设计3. 1系统用例图3.2系统总结构图四.程序设计4.1 数据库结构设计4.2 系统功能设计与实现五.设计小结1.基于WEB的在线考试系统一.设计要求1.1设计要求编辑生成试题库,随机生成本次考试试题,同时提供在先评分并保存结果。1.2原理说明运用编程工具开发,采用C/S结构,设计数据库模型。二.需求分析2.1 功能需求首先,因为考试是面向特定的某些对象的,所以考试者进入系统应该进行身份验证。考试者进入考试
3、系统后,可以查询到需要参加的考试项目。在线考试于一般的单机考试是不同的。鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的题型和题量都应是相同的,但试题并不相同。在线考试基于网络环境,试卷应该从服务器的数据库随机抽取试题后动态生成的,不过也能手工生成试卷。此外,应该能够方便、快捷的对在线考试系统进行管理,用户只有在试卷结束后才能查询到自己的成绩。综上所述。在线考试系统需要有如下的综合需求:1 .适合的用户权限综合考虑各种因素后,我只设了二种合法用户:管理员、学生,合法用户要经过有效的身份验证方可登录。这二种用户必须在被授权以后才能使用本系统的资源。合
4、法用户可以使用的系统资源根据用户身份的不同而定,管理员主要负责系统后台的管理,包括题库管理、试卷管理、课程管理、学生信息管理、成绩统计等。学生可以进行登录、参加考试、查询成绩等操作。2 .适合的网络环境在线考试系统能够方便地运行在网络环境下,用户使用客户机可以方便简捷地访问考试系统。管理员用户可以通过网络来管理题库、管理学生用户、安排考试、查询考试成绩和查看试卷分析结果等,学生用户可以通过网络来参加网上考试和查询考试成绩等。3 .完备的考试功能在线考试系统应该具有和在线考试密切相关的基本功能,用户可以方便的完成在线考试的常规基本操作。参加考试:在学生登录系统以后,可以查询到需要参加的考试项目,
5、选择参加考试后即进入考试中。考试的题目按格式列出,完成答卷后,学生可以提交答卷。学生管理:管理员登录后,可以对学生的信息进行维护。课程管理:管理课程的一些信息,包括课程录入、删除等操作。题库管理:管理员登录后对题库进行维护,可以进行题目的添加,修改和删除操作。试卷管理:从题库中抽取题目,形成试卷。考卷评分:对考试完毕的考生的考卷进行自动评分操作。2.2 性能需求对于一个系统来说,要注意以下几个很关键的因素:实用性:对于在线考试系统的开发,实用性应该放在首位。能够满足一般客观题型的要求,比如:单项选择题,多项选择题,填空题,问答题等题型。在详细了解一组基本的需求定义后,我们可以快速地建立起一个目
6、标系统的初级版本,再根据各种用户使用和评价的结果,经过修改补充后,形成改进的版本,反复以上的过程,直至达到用户满意为止,最终得到的完善的版本。可靠性:服务质量的一个重要方面就是能够在期望的响应时间内访问信息。对需要通过Internet的应用程序或信息的单位用户来说,还意味着必须在用户期望的时间内为用户提供其需要的信息。试想一个同时有几百甚至几千人访问的考试系统,一旦服务器发生阻塞或者崩溃,会带来怎样的不可想象的麻烦。另外太长的延迟时间也会给考生带来不便。可扩展性:可扩展性是指系统能保证可持续增长以满足用户需求和业务复杂性要求,Web系统为动态变化的模型,它们通常一开始很小,但随着需求的增长而呈
7、指数级增长。这种增长非常迅速,不仅表现在支持的用户的数量上,而且表现在提供的用户服务的复杂性和集成性方面。对于考试系统而言,这种扩展性就显得尤为重要,因为考试系统的功能完善是一个渐进的过程,我们目前开发的这个系统需要随着考生的要求和技术的发展而需要不断改进。所以可扩展性是非常必要的。安全性:安全性是指系统能够保护数据或基础结构避免受恶意攻击或者盗用O安全性是通过为信息的机密性,完整性和可靠性提供充分的保护来预防风险,保障系统安全,是任何系统成功的基本要素。可管理性:可管理性是指可以很方便地对系统进行管理,确保系统的正常运行管理和运作涉及以下几个因素:维护系统服务及其服务正常工作所需的基础结构,
8、工具以及管理员和技术人员。考试系统的主机是放在学校的远程教育学院机房中,但是对考试教务的管理员也许并不在远程教育学院中,因此,系统的管理和监控必须能够远程完成。三.流程图设计3.1 系统用例图根据需求分析,系统的用例图如下:3.2 系统总结构图同样由上章得需求分析,可以设计出本系统的总体结构包括二个子系统:管理员模块、学生模块。系统结构如图所示。四.程序设计4.1数据库结构设计根据在线考试系统的需求,设计对应的数据表及功能如下:学生信息表:存放与学生信息相关的信息数据。题库信息表:存放系统所有的题目的基础信息数据。试卷信息表:存放系统所生成的试卷的信息数据。管理员信息表:存放管理员的账号、密码
9、等数据。课程信息表:存放课程的相关信息数据。交卷信息表:存放考生考试完毕后的交卷相关信息数据。分数信息表:存放考生分数的相关信息数据。数据库的物理设计(1)学生信息表记录学生的相关信息,如表4.1所示。表4.1学生信息表列名数据类型长度允许空是否主键说明stu_idint20否是IDstu_xuehaovarchar50看否学号stu_realnamevarchar50否否姓名stu_sexvarchar50否否性别stu_agevarchar50否否年龄loginnamevarchar50否否登录账号login_pwvarchar50否否登录密码(2)课程信息表(tkecheng):记录课程
10、的相关信息,如表4.2所示。表4.2课程信息表列名数据类型长度允许空是否主键说明kecheng_idint20否是IDkecheng_namevarchar50否否课程名称(3)题库信息表(t_timu):记录考试题目的相关信息,如表4.3所示。表4.3题目信息表列名数据类型长度允许空是否主键说明timu_idint20否是IDtimunamevarchar50否否题目名称timu_leixingvarchar50否否题目类型timu_xuanxiangavarchar50否否选项Atimu_xuanxiangbvarchar50否否选项Btimu_xuanxiangcvarchar50否否选
11、项CtimuXuanxiangdvarchar50否否选项Dtimu_daanvarchar50否否题目答案timu_fenshuvarchar50否否题目分数kecheng_idvarchar50否否课程ID(4)试题信息表(t_shiti):记录试卷的相关信息,如表4.4所示。表4.4试卷信息表列名数据类型长度允许空是否主键说明shiti_idint20否是IDshiti_namevarchar50否否试题名称shiti_jieshaovarchar50否否试题介绍timuIdListvarchar50否否题目ID列表shiti_shijianvarchar50否否发布时间(5)交卷信息表
12、(t_jiaojuan):记录试卷的相关信息,如表4.5所示。表4.5交卷信息表列名数据类型长度允许空是否主键说明W数据类型长度允许空是否主键jiaojuan_idint20否是IDstu_idint20否否学生IDshiti_idint20否否试题IDtimuidint20否否题目IDtimu_daanvarchar50否否考试答案(6)分数信息表(Lfenshu):记录考试分数的相关信息,如表4.6所示。表4.6分数信息表列名数据类型长度允许空是否主键说明fenshuidint20否是IDstu_idint20否否学生IDshiti_idint20否否试题IDfenshuint20否否分数
13、(7)管理员信息表主要记录的管理员的账号信息,包括用户名和密码,表结构如表4.7所示。表4.7管理员信息表(t_admin)列名数据类型长度允许空是否主键说明useridint4否是编号UserNamevarchar50否否用户名UserPwvarchar50否否密码4.2系统功能设计与实现4.2.1 登陆页面实现1 .描述:为了保证系统的安全性,要先使用本系统必须先登陆到系统中,用户需要正确的账号和密码登录本系统。2 .程序运行效果图如图4.8所示:基于Web的在线考试系统管理员账号m类型图4.8系统登陆页面设计3 .在登陆页面输入用户名和密码以,点击提交按钮,跳转到登陆的SerViCC中,
14、在该SerViCe中会对用户名,密码,验证码进行判断,验证通过进入对应的页面,loginservice关键代码:publicStringlogin(StringuserName,StringuserPw,intuserType)(Stringresult=no;if(USerTyPe=0)系统管理员登陆Stringsql=/fromTAdminwhereuserName=?andUSerPW=?;Objectcon=userName,userPw;ListadminList=adminDAO.getHibernateTemplate().find(sql,con);if(adminList.s
15、ize()=0)result=no;elseWebContextctx=WebContextFactory.get();HttpSessionsession=ctx.getSession();TAdminadmin=(TAdmin)adminList.get(O);session.SetAttribUte(userType”,O);session.SetAttribUte(admin”,admin);result=z*yes,z;if(userType=l)if(userType=2)学生登陆Stringsql=zzfromTStuwhereIoginName=?andIoginPw=?”;O
16、bjectcon=userName.trim(),userPw.trim();ListadminList=adminDAO.getHibernateTemplate().find(sql,con);if(adminList.size()=0)result=no;elseWebContextctx=WebContextFactory.get();HttpSessionsession=ctx.getSession();TStustu=(TStu)adminList.get(O);session.SetAttribute(,userType,2);session.SetAttribute(,stu,
17、stu);result=zyesz,;returnresult;)4.2.2 功能模块介绍L描述:系统主页面:左方页面展示了管理员可操作的几大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示,每个管理模块下面都有相应的子菜单。2.程序运行效果图如图4.9所示:注销退出基于Web的在线考试系统图4.9管理员主页面在每个J2EE页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面:if(session.getAttributeCuserz,)=null)out.print(alert(请先登录!,);window,open(./index.J2EE,
18、-self,);4.2.3课程信息管理4. 2.3.1课程信息添加1 .描述:管理员输入课程信息后点击录入按钮,如果是没有输入完整的课程信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法OnSUbmit=returnCheCkFOrm()来检查,CheCkFOrm()函数中是各种的校验输入数据的方式。2 .程序效果图如下图4.10所示课程名称:提交重置图4.10课程信息添加4.2,3.2课程信息管理1 .描述:管理员点击左侧的菜单”课程信息管理”,页面跳转到课程信息管理界面,调用后台的action类查询出所有的课程信息,并把这些信息封转到数据集合LiSt中,绑定
19、到request对象,然后页面跳转到相应的JSP,显示出课程信息。2 .程序效果图如下图4.11所示1涮图4.11课程信息管理课程信息管理关键代码:publicStringkechengAdd()(TKechengkecheng=newTKechengO;kecheng.SetKechengName(RechengName);kecheng.setDel(no);kechengDAO.save(kecheng);this.SetMeSSage(操作成功);this.setPath(zzkechengMana.action);returnsucceed”;)publicStringRecheng
20、Mana()(Stringsql=zfromTKechengwheredel=no;ListkechengList=kechengDAO.getHibernateTemplate().find(sql);Maprequest=(Map)ServletActionContext.getContext().get(request);request,put(,kechengListzz,kechengList);returnActionSupport.SUCCESS;publicStringkechengDel()(TKechengkecheng=kechengDAO.findById(kechen
21、gld);kecheng.setDel(yes);kechengDAO.attachDirty(kecheng);this.SetMeSSage(操作成功);this.setPath(zzkechengMana.action);returnsucceed”;4.2.4题库信息管理4.2.4.1题目添加L描述:管理员输入题目信息后点击录入按钮,如果是没有输入完整的题目信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法OnSUbmit二returnCheCkForm()来检查,CheCkFonn()函数中是各种的校验输入数据的方式。2.程序效果图如下图4.12所示:
22、图4.12题目信息添加4. 2.4.2题目信息管理1 .描述:点击左侧的菜单“题目信息管理”,页面跳转到题库信息管理界面,调用后台的action类查询出所有的题目信息,并把这些信息封转到数据集合LiSt中,绑定到request对象,然后页面跳转到相应的JSP,显示出题目信息。点击题目标题,系统弹出窗口显示题目的详细信息2 .程序效果图如下图4.12所示居翻翅知济删1犍Rl游酬?20蝴即姓册年?10三J继WM撇翅104三P嘘-柳湖擦的雕露10j辘10图4.12题库管理界面设计题目管理关键代码:publicStringtimudanxuandd()(TTimutimu=newTTimu();tim
23、u.setTimuName(timuName);timu.SetTimuXuanxianga(timuXuanxianga);timu.SetTimuXuanxiangb(timuXuanxiangb);timu.setTimuXuanxiangc(timuXuanxiangc);timu.SetTimuXuanxiangd(timuXuanxiangd);timu.setTimuDaan(timuDaan.trim();timu.SetTimuFenshu(timuFenshu);timu.SetTimuLeixing(timuLeixing);timu.SetKechengId(keche
24、ngld);timu.setDel(no);timuDAO.save(timu);this.SetMeSSage(操作成功);this.setPath(z,admintimutimuLeixing.jsp,z);returnsucceed”;)publicStringtimuduoxuanAdd()(HttpServletRequestFequest=ServletActionContext.getRequest();StringClaAn=;StringtimuDaan=request.getParameterValues(z,timuDaa11z);for(intj=0;jtimuDaan
25、.length;j+)(daAn=daAntimuDaanj;)TTimutimu=newTTimu();timu.setTimuName(timuName);timu.setTimuXuanxianga(timuXuanxianga);timu.SetTimuXuanxiangb(timuXuanxiangb);timu.SetTimuXuanxiangc(timuXuanxiangc);timu.setTimuXuanxiangd(timuXuanxiangd);timu.setTimuDaan(daAn);timu.SetTimuFenshu(timuFenshu);timu.SetTi
26、muLeixing(timuLeixing);timu.SetKechengId(kechengld);timu.setDel(no);timuDAO.save(timu);this.SetMeSSage(操作成功”);this.setPath(z,admintimutimuLeixing.jsp,z);return“succeed”;)publicStringtimu_jianda_Add()(TTimutimu=newTTimu();timu.setTimuName(timuName);timu.setTimuDaan(timuDaan.trim();timu.setTimuFenshu(
27、timuFenshu);timu.SetTimuLeixing(timuLeixing);timu.SetKechengId(kechengld);timu.setDel(no);timuDAO.save(timu);this.SetMeSSage(操作成功”);this.setPath(z,admintimutimuLeixing.jsp,z);returnsucceed”;publicStringtimuMana()(Stringsql-z,fromTTimuwheredel,no,orderbykechengld,timuLeixing”;ListtimuList=timuD0.getH
28、ibernateTemplate().find(sql);for(inti=0;itimuList.sizeO;i+)TTimutimu=(TTimu)timuList.get(i);timu.SetKecheng(kechengDAO.findById(timu.getKechengId();Maprequest=(Map)ServletActionContext.getContext().get(request);request,put(,timuListzz,timuList);returnActionSupport.SUCCESS;publicStringtimuDel()TTimut
29、imu=timuDAO.findById(timuId);timu.setDel(yes);timuDAO.attachDirty(timu);this.SetMeSSage(操作成功”);System,out.println(timu.getKechengld()+&);this.setPath(,ztimuMana.action,z);returnsucceed”;J4.2.5试卷信息管理4.2.5.1试卷信息添加L描述:管理员输入试卷信息后点击录入按钮,如果是没有输入完整的试卷信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法OnSUbmit-return
30、CheCkForm()来检查,CheCkForm()函数中是各种的校验输入数据的方式。2.程序效果图如下图4.13所示逾锚:隔值:践重孟图4.13试卷信息添加4. 2.5.2试卷信息管理1 .描述:击左侧的菜单“试卷信息管理”,页面跳转到试卷信息管理界面,调用后台的action类查询出所有的试卷信息,并把这些信息封转到数据集合LiSt中,绑定到request对象,然后页面跳转到相应的JSP,显示出试卷信息。点击“题目浏览”超练级,系统弹出页面显示改试卷所有的题目信息。2 .程序效果图如下图4.14所示图4.14试卷信息管理试卷信息管理关键代码:publicStringshitiAdd()TSh
31、itishiti=newTShiti();shiti.SetShitiName(shitiName);shiti.SetShitiJieshao(shitiJieshao);shiti.SetTimuIdList(/,/);shiti.SetShitiShijian(newSimpleDateFormat(,yyyy-W-ddz,).format(newDate();shiti.setDel(no);shitiDAO.save(shiti);this.SetMeSSage(操作成功);this.setPath(z,shitiMana.action);returnsucceed”;publicS
32、tringshitiMana()(Stringsql=zfromTShitiwheredel=no;ListshitiList=shitiDAO.getHibernateTemplate().find(sql);Maprequest=(Map)ServletActionContext.getContext().get(request);request.PUt(shitiList”,shitiList);returnActionSupport.SUCCESS;publicStringshitiDel()(TShitishiti=shitiDAO.findById(shitiId);shiti.s
33、etDel(yes);shitiDA0.attachDirty(shiti);this.SetMeSSage(删除成功);this.setPath(zzshitiMana.action);returnsucceed”;4.2.6 学生信息管理学生信息管理实现思路和课程管理基本类似,在此就不多作介绍。4.2.7 修改个人密码L描述:输入用户名和用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。2.程序效果图如图4.15所示:登录名:匚新密冷修改重青图4.15修改密码4.2.8安全退出系统1 .描述:点此按钮回到系统的主页面。2 .关键代码:主要是通过javascript语句来实现,it
34、emjord84二退出系统;itemlink84=zzjavascript:window,open(,./index.J2EE,self,)94.2.9学生在线考试1 .描述:学生凭借管理员分配的账号和密码,登录系统后,点击左侧的菜单“在线考试”,页面跳转到所有的试题信息,然后点击“开始考试”超连接,进入到考试界面。2 .程序运行效果图如图4.16所示:查看我的信息 查看我的信息 试题信息列亮 试题信息列表 查询我的成绩 查询我的成绩基于Web的在线考试系统注意:每道题目都有默认值。清不要被默认值所误导1:JaVa是那个公15的?(单选题,本题2阴)A:snlB:jbuderC:microso
35、ftD:im2:户雁生于那一年?(单选题,本题10分)A: 1980B: C1981CL1982D:119S33:下面哪些是Java的基本数据类型(多选题,本题10分)A:intB:厂stringC:FfloatD:double4:Java是一种面向对象的编程语言(判断题.本题1。分)A是B:否交卷考试题目关键代码:formaction=zzshitijiaojuan.actionz,name=zzform,method=z,postzz注意:每道题目都有默认值。请不要被默认值所误导GfontXtdXtr$sta.index+1:$timu.timuName(单c:iftest=$timu.t
36、imuLeixing,duoxuan,“多选题判断题填空题本题$timu.timuFenshu分)A: $timu.timuXuanxianga)B: $timu.IimuXuanxiangbC:$timu.IimuXuanxiangcD:$timu.IimuXuanxiangdA:Stimu.timuXuanxianga)B:Jtimu.timuXuanxiangbC:$timu.timuXuanxiangcD:Jtimu.timuXuanxiangdA:$timu.timuXuanxianga)B:$timu.timuXuanxiangbtableCelISPaCing=CeIIPaddi
37、ng五.设计小结本系统的目标是建立一个高效,安全,可靠的无纸化在线考试系统,本系统采用的是B/S三层体系结构,开发语言是JSP,使用的数据库是Mysql,以Windows7作为操作系统,以tomcat作为Web服务器。从最开始的方案选择,到后来的需求分析、概要设计,详细设计以及最后的系统实现与开发,我从中学到了不少知识,积累了宝贵的经验。目录2.基于WEB的网上商城系统一.设计要求L1设计要求1.2原理说明二.需求分析2.1业务需求分析2.2用户需求分析2.2功能需求分析三.流程图设计3.1 前台用户界面实现流程图3.2 后台管理员对系统的管理流程图四.程序设计4.1系统部分主要代码五.设计小
38、结2.基于WEB的网上商城系统一.设计要求1.1设计要求根据一个网上商城系统的应用,从需求出发,分析实际系统的数据模型,进行数据库系统设计及基于WEB的开发,功能包括在线购物、支付、商品信息发布、登录、在线评价等。经过测试、调整,实现数据库相关编程及基于WEB的实现技术,以理解掌握如何应用相关的编程技术来实现与数据库系统的连接及操作。1. 2原理说明设计网上商城系统的基本功能并实现;设计数据模型并在OraCle中建立表。二.需求分析1.1 业务需求分析网站的制作已经不单单是把企业想要表达的内容摆放在网站上那么简单,当今的网站设计包含了更多的设计元素,给予浏览者更多的视觉享受。现在企业营销商需要用一些更新颖更有效的方式增强竞争力。建设一个宣传自身商品形象的电子商务营销模式的网站是一种有效的方法。另外,通过电子商务网站,广阔自己的营销方式和市场,能够帮助企业营销商从鱼龙混杂的市场中脱颖而出,完善企业销售与服务的环节,最终提升企业的价值与经济效益。1.2 用户需求分析这个网站以上面的业务需求为基础,进一步提出网站需要完成的以下任务:网站需要让供应商、客户以及浏览者能看到商城的信息