




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二九 届学生毕业论文(设计) 存档编号: 毕业论文(设计)论文题目 在线考试系统的设计与实现(英文) Design and implementation of online examination system 学 院 物理与信息工程学院 专 业 电子信息工程 姓 名 学 号 指导老师 2013 年 5 月 30 日在线考试系统的设计与实现 学生:连恒,江汉大学物理与信息工程学院电子信息工程系指导老师:钟晓桢,江汉大学物理与信息工程学院电子信息工程系内容摘要高校在线考试系统的出现能够解决传统考试模式的浪费人力、财力、低效率、周期长、误差大等缺点,将教学中繁重的考试流程交给计算机来处理,在线考试系统的优点有:便于管理、取消人为干预、方便学生复习、效率高、节约人力财力、减少纸张的浪费等。本文中主要介绍java中web程序的开发流程,研究程序的结构的重要性,探讨MVC模式中strust2.0、hibernate、spring的良好运用,设计出比较智能的在线考试系统,并对在线考试系统的考试试卷的抽取设计出一个不同于其他项目的新设计方案。关键词: Java;MVC;strust;hibernate;spring Design and implementation of online examination systemStudent: Lian Heng, Electronic Information Engineering College of physics and information engineering of Jianghan University Teacher: Zhong Xiaozhen, Department of Electronic Information Engineering College of physics and information engineering of Jianghan University AbstractOnline examination system in Colleges and universities can solve the traditional test mode, the waste of human resources, low efficiency, long cycle, big error and other shortcomings, will be teaching heavy examination process to the computer to processing, the advantages of online examination system: easy to manage, cancel the artificial intervention, convenient for the students to review, high efficiency, save manpower financial resources, reduce paper waste. This paper mainly introduced the web program in java development process, the importance of the program structure, good use of MVC mode of strust2.0, hibernate, spring, online examination system design more intelligent, and the online examination system examination paper extraction design out a different from other projects of the new design scheme.Key words: java、MVC、strust、hibernate、spring目录1.绪论11.1在线考试系统的概述11.2 在线考试系统研究目的和意义11.3 国内外研究现状22.需求分析42.1 现状分析42.2 功能需求分析52.3 用例分析52.4 数据流程分析62.5 可行性分析72.5.1经济可行性72.5.2 技术可行性82.5.3操作可行性82.6 开发环境配置83.相关技术简介103.1 MVC模式102.2.1 MVC模式的优缺点103.2 SSSH框架123.2.1 struts框架133.2.2 hibernate框架133.3.3 spring框架133.3.4 小结154.数据库设计164.1 数据库需求分析164.2 数据库设计概要164.3 数据库逻辑设计184.4 数据库表设计185.系统详细设计225.1系统设计概要225.2 登录模块245.2.1 spring对hibernate框架的支持275.3 主界面275.4 科目成绩管理275.5考试功能285.5.1 动态时间的生成285.6 试题的生成295.6.1 抽取试卷实现步骤305.6.2 生成试卷的注意点326.测试336.1 测试目的336.2 测试方法336.3 测试流程336.3.1登录测试336.3.2主界面测试346.3.3科目成绩测试346.3.4科目成绩管理测试346.3.5进入考试功能测试346.3.6试卷功能测试和阅卷测试357.系统优缺点分析367.1 优点367.2 缺点368.总结37致谢38参考文献39第一章 绪论基于java语言的web开发已经在全世界范围类非常流行,目前java语言在web开发上面的优势不言而喻了,java开发的程序使用与不同的平台,例如:linux、unix、windows、mac等,因此java编写的程序可以实现一次编译到处执行的优势,java中插件比较多、开源框架多,我们开源利用那些优秀的开源框架实现完美程序,java与其他web开发语言相比具有:安全性高、可复用性高、易维护性强、可移植性强、可扩展性强等优点,不过正是由于这些原因造成java程序前期开发分析周期长、费用高、开发时间长等“缺点”,但是综合利与弊我们不难得出java语言在web开发上还是我们的首选。1.1在线考试系统的概述高校在线考试系统是以大学为单位,学校可以通过网络技术设置校园网外用户无法进入网页,这样可以避免有人恶意攻击网站,也可以免去不必要的登录检查,毕竟去数据库检查数据时一个消耗数据库资源的工作,特别是数据访问过于频繁的情况下,对数据库系统的伤害更加大,在完成基本操作的同时也要注重保护数据库和服务器,如果数据库和服务器的性能下降,会影响学生的使用。此系统可以根据学生的的学号和密码进入系统,在登录页面选择院系和专业,将信息验证统一在一个页面,进入考试系统后可以查看每学期的考试科目和可以考试的科目,通过时间来验证是否能够考试,进入考试系统后答题完毕选择题和判断题由系统判断,论述题、简答题、综合体由老师参与改卷,将分数保存到数据库,学生下次进入考试时可以查看考试信息,帮助复习。1.2 在线考试系统研究目的和意义随着社会的不断发展与进步,对人才的要求也越来越高,考试成为衡量人才水平的一种重要方式,而考试的地位也随着社会的发展在人们心中不断提高,现在社会上各种资格证书都是通过考试来获得,考试不仅是在学校而且也深入到社会当中了。传统的考试都是纸质媒介,近年来计算机网络不断发展,计算机已经深入到社会各个角落,它推动了社会的快速发展,其原因在于计算机的高效率、出错率低,防止人为干预等特点,因此考试的手段和考试的媒介都发生了重大了变化。现在很多的考试已经由过去的笔试转为网络考试,例如全国计算机二级考试、托福考试等重要考试,与传统的笔试相比,我们不难发现计算机在线考试系统在很多方面都有较大的优势,传统的笔试中,要经历出题,在出题时还有试题泄露的风险,现在社会上各种考试都有泄题的舆论,究其原因在于传统出题方式需要大量人力物力、时间周期过长、团队过于复杂、程序过于繁琐,一旦某一环节出现漏洞就会被不法分子钻了空子,造成了很多不公平的因素。再有印刷试卷会浪费大量的纸张,纸质物品会减少大量的植被面积,植被的减少与印刷的过程都会对环境造成很大的影响,在很多发达国家,政府已经开始重视纸质物品的生产对环境的损害以及效率低的问题,美国学校都不提倡书本,在美国书本甚至比学费还贵,政府鼓励奖励将课程重点印刷为课件发放给同学,这样大大的节约了资源。计算机在信息处理方面又比人更加快速更加准确,例如建立海量的题库、保存海量的考生信息,在阅卷方面的优势更是不言而喻,在试卷过多的情况下,由人力来完成难免会有些出入,而计算机不会出现错误,使得分数更加有说服力。在我国,虽然在线考试已经有一定规模,但是大多数学校与组织任然采用的是传统的考试方式,因此需要大量的人力来处理出题、监督考试、阅卷、试卷分析等步骤,这让教师的工作量十分繁重,很容易出错。因此在线考试比起传统模式具有高效率、节省人力物力、安全度高、处理能力强等特点,从这个角度来看,传统的考试方式已经不再适用于现在的考试的需求,考试系统势必会进行改革。1.3 国内外研究现状NCOLLEGE都是十分典型的网络教育范例。网络化在线考试作为网上远程教育的重要组成 对于网络考试系统的前身-计算机辅助测验系统的研究,国外很早就开始了,并且在题库建设、统计测量等方面取得很多显著理论成果,如我们熟知的经典测量理论和项目反应理论、题库理论、自适应测验理论等。由于互联网技术最近几年才发展起来,关于Internet环境下的网络考试测评系统的研究目前还处于发展阶段,在设计、开发方面缺乏系统的理论指导。关于网络考试测评系统开发规范与标准的研究方面,世界世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于教育,作为民族发展的重要推动力。在国外,美国政府提出了“教育技术规划(EducationalTechnologyInitiative)”,指出到21世纪初让全美国的每间教室和每个图书馆都将联上信息高速公路,让每个孩子都能在“21世纪教师”网络服务。澳大利亚国家公共资源管理局已于1995年4月建立“澳大利亚教育网”,并联通Internet,该网络不仅包括全部高等院校,而且还覆盖全澳大利亚所有的中小学。在1995年底,国外开始出现支持网上教学的系统和平台。美国的NTU、英国的OPE部分和发展分支,己经在国外一些发达国家得到蓬勃发展,人们选学课程和考试都是通过网上进行。特别是Internet业务的普及,构筑高性能、低成本的计算机网络化在线考试,从技术条件和经济条件上己经成熟。在国内,普遍地看,绝大多数远程教育的考试还停留在传统考试方式。在此方式下,组织一次考试至少要经过5个步骤,即人工出卷、考生考试、人工阅卷、试卷分析和成绩评估。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且这样工作将是一件十分烦琐和非常容易出错的事情。但是对互联网的真正应用仅限于网上报名工作和网上成绩查询,还没有真正形成上网考试的规模。而在国外一些国家,网上提交作业和网上考试已经相当普及了。所以说传统的考试方式已经不能适应现代考试的需要。到1998年后,随着国内网络教育的兴起,各高校纷纷开发了自己的网络教学平台,作为网络课程重要组成部分的网络考试系统也相继问世,如北京师范大学的网络教学平台、上海交大的网络考试平台。第二章 需求分析需求分析的目的是为了分析系统的整体要求,确定系统的数据结构,建立系统的业务逻辑,初步完成系统的整体开发步骤。2.1 现状分析现今大多数的考试模式都是手工进行,考生报名时由老师负责统计学生的信息,然后上交给学校的考试管理中心,老师出题,印刷试卷,安排考场,参加考试,阅卷。传统考试模式如下图2.1所示: 阅 卷 , 统 计 成 绩 学 生 参 加 考 试 安 排 考 试 印 刷 试 卷 出 题 图2.1这种考试模式存在很多问题:1.出题阶段,由于考试必须要达到规定的筛选度和难易度,这样才能保证考试的目的性,又由于考试的时间的统一,因此出题阶段必须非常谨慎小心,难度太大或者太容易都不能保证考试的目的,因此如何出题一直都困扰老师,每年大型考试的出题阶段都要花费很长时间,这样的出题方式又容易泄题。2. 印刷试卷阶段,有的考试规模庞大,一次考试会用到大量的纸张,在前面也讨论过,这种方式对资源的消耗非常大,因此在线考试系统可以节约大量资源,如果考生面积很大,还要讲试卷运输到各个考点,在分发试卷时又要根据每个考点的考生量来统计。3. 安排考试,考试监管部门会根据每个报名点获得的报名考生的信息来确定考场的人员安排,这需要报名点、监管中心、考场这3个部门来协调,不能漏掉一个考生,考场的确定也要多次核对。4. 学生参加考试,传统模式中考试的作弊问题一直都是最大的困扰,目前人们想出很多办法,例如增加监考老师人数、座位间隔增大、试卷的类型打乱,但这些都不能解决作弊问题,很多地方的监管度不一样,造成考试的客观性下降,作弊也违背公平竞争原则。5. 阅卷,阅卷环节是考试中最担心的,由于涉及到考生的利益,判分时的一点误差会造成很大的偏差,由于人为因素也会造成考试的不公正性。2.2 功能需求分析分析传统考试模式中我们可以得出,相比于计算机的高处理能力,传统模式的效率很低、公平性难以保证、阅卷效率低、信息统计率低,而计算机端的在线考试系统加入了数据库后,可以提高信息统计效率和阅卷效率,出题阶段也可以不用那么复杂,整个流程时间十分短暂,不用花费太多精力。具体功能需求如下:表2.2登录判断在登录页面能确定考生基本信息,也是对考生的信息的初步核定信息查询保证考生的详细信息的正确,老师能够根据班级查询该班级所有的学生的详细信息和考试信息组装试卷考生根据科目进入考试时,系统能自动进行试卷的组装在线考试考生登录进入后,信息核对完毕后,能够在线考试,在规定时间内才能进入考试,并且有倒计时功能,提示考生交卷时间自动评分点击交卷时,系统自动判分,保存分数,与考生一一对应2.3 用例分析将程序的业务逻辑以系统的观点来阐述,使用计算机逻辑来描述系统的本身,系统的组成、业务逻辑的流程、功能模块的作用,通过用例图,我们可以直观的获取系统的详细功能和流程。用例图能够准确的描述用户需要的功能,建立用例图可以很清晰的逐步完成代码的编写,不至于在程序开发中边思考业务边编写代码。图2.3.1为管理人员用例图:组装试卷考生管理考务管理试卷管理 图2.3.1 图2.3.2为考生用例图: 修改信息 登录系统 查询信息 查看分数进入考试 考生考试详情 图2.3.2因此建立用例图后,再去编写程序我们就可以一步步完成数据结构建立和也业务流程。2.4 数据流程分析数据流程分析是描述系统数据流程的工具,它将数据独立抽象出来,通过图形方式描述信息的来龙去脉和实际流程。数据流程通过外部流程输入源出发,按照业务逻辑的流程,建立更加详细的业务逻辑的进程,在业务流程中完成数据的分析与判断,并将有效的数据保存,完成一个封闭式的输入-输出过程。下图为管理员的数据流程图: 试卷管理 管理员 登录 账号、密码 人员管理图2.4.1第三层数据流程(试卷管理): 管理员 试题 试题信息添加处理添加试题修改试题删除试题 管理员登录信息 图2.4.2第三层数据管理(人员管理): 人员列表 管理员 人员列表修改删除添加 管理员登录信息 图 可行性分析2.5.1经济可行性目前基本上判卷还是完全采用纯人工方式完成,进行报表制作,对数据进行综合分析等,因此耗用工时较多,且效率低下。而当采用计算机进行管理时,不但可以为企业节省大量的人力物力,而且效率要比手工高得多,还可以让人力资源得到充分的利用。由此可见,开发此系统在经济上的是完全可行的。2.5.2 技术可行性目前全球范围类java语言的流行度已经非常广泛,java在web应用上的前景十分广泛,借助互联网的发达与计算机的高处理能力,我们已经能够完成很多web应用,java的方便快捷,用户体验,跨平台等优势使得用java编写的程序能够在不同的平台上安全运行,而java里面提供的许多框架能够提高程序的安全性、灵活性、效率,因此我们需要对程序进行修改时也十分方便,不用对程序代码进行大刀阔斧的修改。而数据库方面,目前很多优秀的数据库已经能够满足对程序的要求,本程序是用mysql完成数据的保存,虽然mysql在很多方面不及oracle、DB2、sql server等大型数据库的性能,但是作为个人使用,mysql还是有很多优点,例如:耗费内存小、安装快捷等,因此在做程序设计时不妨先用mysql来完成,等到程序需要应用时再去换安全性更高、稳定性更佳的大型数据库,mysql里面提供的功能与其他大型数据库相似,完全能够满足个人编程使用。运用数据库后,将用户信息、试卷答案、学校内的院系、班级等保存,这样比起传统的利用人力来分类、统计方便很多,也不容易出错,在传统考试模式中,如果某一个环节出错,那么需要找到该错误的工作量非常大,基本上出错了也不会再去查找错误的,因为试卷过多,从新将试卷分类、统计是不可行的,而在数据库中,后台管理人员只需要对数据库操作就可以找到任意一位学生的试卷或学生信息。在硬件方面,开发本程序对硬件有一定要求,由于涉及到服务器与数据库的应用,因此对电脑的内存、cpu等有一定要求,不过目前市场上的电脑一般都能满足条件。2.5.3操作可行性Java语言在用户体验度上的良好性能和安全的架构,能够让考生很轻易的掌握对该系统的操作。2.6 开发环境配置Windows系统在市场上的占有率毋庸置疑,windows的良好性能让越来越多的企业选择作为PC平台,从程序开发的角度来看,在windows系统上对程序的开发和部署都十分高效;在应用阶段时则不考虑应用环境的配置,因为java语言的跨平台型十分良好,无论是linux、unix、mac还是windows系统都可以执行,java语言具有“一次编译到处执行”的优点。下面是开发环境的具体配置:1.开发工具:MyEclipse 10.02.辅助开发工具:Dreamweaver 83.数据库:MySQL5.04.服务器:Apache Tomcat6.05.运行环境:安装JDK1.6支持Java运行。6.开发技术:JSP,SSH框架。MVC和B/S模式。 第三章 相关技术简介3.1 MVC模式 Model Controller View 图3.1图3.1为MVC编程模式结构图,全名为Model View Controller,这是一种软件设计典范,这种模式将业务逻辑与数据显示分离,传统的web开发中,将地址的处理、页面参数的处理和页面的转向集合到一个类中,在地址处理中用大量的if-else语句然后再if语句中处理页面参数并完成页面转向,这种开发模式适用于小型项目,在大型项目中这种模式不利于项目的维护,而且会使得程序的结构十分繁重。随着编程技术不断进步,人们急需一种编程思想解决这种问题,于是MVC模式的诞生解决了这些问题,目前MVC编程模式在全世界范围内十分流行,MVC模式中将数据处理、逻辑处理封装到Model里面,将页面交给jsp完成,而Controller的任务是负责Model中数据处理完毕后选择合适的页面。这种模式完全符合人们希望将程序中不同功能的模块分开的愿望,这样使得程序前期分析变得十分清晰,所以一旦完成了程序分析阶段,再根据MVC模式中每个模块的任务编程,就使得程序员的任务变轻,也不容易出错,更重要的是程序的维护变得方便,在修改程序时按照程序所需要修改的地方来改,不会影响其他部分的功能,程序的结构一旦清晰,使得程序分析、数据关系建立、程序编写、代码维护甚至在与客户沟通的时候也十分容易理解。2.2.1 MVC模式的优缺点1.耦合度降低将界面层和业务层分开后,更改界面层的代码就不用改变模型和控制器的代码,同理,改变一个程序的业务逻辑只需要修改MVC中模型层的代码就可以。由于模型与控制器还有视图这三个层次之间是相互分离的,因此改变业务逻辑变得十分方便。模型中的细则是由自己来定义的,并且是和控制器、视图相分开,因此改变应用程序中业务逻辑非常容易。例如把数据库从MySQL改变为Oracle,只需要改变模型的代码就行了。模型一旦正确的定义出来,那么不管数据是来自数据库或者是服务器,视图都将正确的显示这些信息。由于MVC模式中程序的三个层面是相互独立,改变其中一个不会影响其它两个,因此MVC模式可以构建出非常良好的松耦合的部件。2.重用性高由于网络信息的不断发展,传统中WEB应用只能在PC端操作,而现在我们可以用更多的方式来访问应用程序。MVC模式中三个层次互不影响这个特点让程序能够使用不同样式的视图来访问同一个服务器,因为一个模型可以被多个视图共同利用,它包括任何WEB浏览器或者无线浏览器,例如,用户可以在电脑上订购某个产品也可以在手机上来完成订购,订购方式虽然不一样,但是程序中处理订购产品这个逻辑是一样的。模型中返回的处理数据并没有被格式化,所以同样的数据能被不同的界面使用。比如,信息数据可以用html页面来显示也可以用WAP显示,而改变数据的传导方向只需要改变视图选择的命令就可以,因此模型中的代码并没有被改变。所以数据和业务处理逻辑从视图中分离可以保证模型中代码的复用。模型中有状态管理和数据持久性处理的功能,比如,在电子商务网站中,购物车是基于回话,而其中的电子商务过程可以被Flash网站和无线联网的应用程序复用。3.生命周期成本低使用MVC模式可以让模型中处理业务过程的接口的实现变得简单。4.部署快在没有MVC模式之前,程序员需要完成数据处理、界面制作、数据传递等,而现在程序员可以分工协作,专注于界面的程序可以将精力集中在表现形式上面,而处理逻辑的程序员只需要专注于业务,这样的分工协作使得程序的开发变得更加效率,开发时间得到相当大的缩减。5.可维护性高由于每个模块中的功能单一,因此当需要改变某一部分时只需要找到该模块进行修改即可,对其他模块并没有影响。6.有利软件工程化管理在MVC模式中每个层次的功能十分明显,而每一层中的应用都有相同的特点,因此有利于实现程序的工程化、工具化管理。其中控制器就有一个好处,它可以用来连接不通的模型和视图来完成用户所需要的软件,控制是够着应用程序的一个非常重要的部分。如果设计好了模型和视图,控制器就可以根据用户的需求进行模型和视图的组合,将数据处理结果通过所需要的视图显示给用户。缺点:1.没有明确的定义MVC并没有一个完整的定义,所以并不容易完全理解MVC模式。在使用MVC之前是需要精心的计划的,虽然MVC模式理解起来很简单,但是它的内部原理十分复杂,因此需要花费一些时间去思考。同时由于模型和视图要严格的分开,这样就给调试应用程序带来了一定的困难。所以必须在完成某一小部分模块时就进行测试,保证每个模块的正确性,这样在进行模块组合时才能保证程序的正确性,不然再将代码组合后再测试就会非常麻烦。2.不适合小型、中等规模的应用程序MVC模式的诞生是由于现在项目的规模越来越高,MVC模式只适合大型项目,小、中型的应用程序并不适合,用了MVC模式后反而会适得其反。3.增加了系统的结构复杂性界面相对简单的程序中,如果使用MVC模式,让模型和视图与控制器分离,会使得结构的复杂性变高,这样还会降低程序的运行效率。4.视图与控制器间的过于紧密的连接视图与控制器虽然看似是相互分离的,其实不然,他们是联系紧密的部件,视图如果没有控制器的存在,其应用是非常有限,这样反而妨碍了他们的独立重用。5.视图对模型数据的低效率访问在MVC模式中视图与模型中数据处理之间要经过很多步骤,因此视图中要想获得数据需要在程序中进行多次接口的调用,因此如果数据并没有改变,反而会使得不必要的频繁访问数据库,这样程序的性能会降低。6.一般高级的界面工具或构造器不支持模式很多高级界面工具并不支持MVC模式,所以改变这些工具来适应MVC模式中建立模块的相互分离的代价是很高的,会造成MVC使用的困难。3.2 SSH框架SSH框架指的是strusts、hibernate、spring这3大框架,利用SSH框架实现良好的MVC模式编程和完全的面向对象编程,既可以最大限度的实现程序的“低耦合”,又可以有效的减少程序员不必干预的计算机底层处理任务,例如数据库的连接、数据的处理,让程序员集中精力去实现程序的业务逻辑即可,在代码维护阶段也有较大的优势,不必去更改程序的代码。3.2.1 struts框架在没有strust框架之前,程序员编写的web程序都是在一个servlet中将参数处理、逻辑处理、视图选择封装到一个类中,在编写小型程序时确实是使得程序的封装性很好,功能性很集中,但是随着项目的规模越来越大,人们发现这样的方式使程序开发十分不便,结构复杂,不便于维护,也并不遵循程序开发中的功能单一原则,于是应MVC模式的号召,strust框架将web程序中的请求响应的处理、业务流程处理、视图的选择分开。这样即使遇到大型项目也不会对程序开发者造成很大的困扰,也使得程序的灵活度更好。3.2.2 hibernate框架Hibernate中间件是连接Java对象和关系型数据库的桥梁,将java对象映射为各种关系型数据库中的二维关系,或者反之,将关系数据库中所存储的关系映射为java对象,这便是Hibernate的主要职责。同时,Hibernate还屏蔽了Java对于各种关系型数据库的操作,使得程序员对数据库的编程变得更加容易。Hibernate是一种中间件工具,在ORM(对象与关系映射)框架中,是接数据库与实体类之间的桥梁,在没有中间件这个概念之前,程序员直接与最底层的软件和硬件打交道,由于越底层的东西越负责,因此程序员不得不面对很多问题,比如数据库源的不同、复杂的网络环境、数据库的存储格式、不同的操作系统等,这些问题与程序没有直接关系,在软件思想中不符合程序员将大量精力集中到业务逻辑的开发的规则,因此中间件在应用软件与硬件和操作系统之间解决了这个问题。3.3.3 spring框架Spring框架式一个轻量级的控制反转(IOC)技术和面向切面编程(AOP)技术的容器框架,利用Spring框架中的IOC技术可以实现J2EE平台中所倡导的由容器实现对象的生命周期管理,而利用Spring框架中的AOP技术可以实现J2EE平台中所倡导的分离应用系统中业务逻辑组件和通用的技术服务组件。应用系统的开发者在应用系统中应用Spring框架后能够达到“解耦”和“脱离容器”的设计和实现的目的。图为传统MVC模式: 图不难得出缺点如下:对于连接逻辑处理和视图选择的控制器,通过代码来完成十分繁琐;如果客户希望逻辑的实现方式改变或者在程序维护和升级时需要改变实现方 式,那么需要改动原代码;数据库的连接、关闭需要程序员手动完成,那么数据库一旦改变,又不得不改动原代码,而且在数据库存储时的代码量大。图为SSH框架整合的MVC模式: 图利用SSH框架后,可以解决上述3个缺点,视图与逻辑处理的连接用strusts框架完成,因此改变连接方向不必改动原代码,只需要在strusts框架的配置文件中更改;对象的调用方式发生改变时,只需要在spring的配置文件中更改;数据库连接、关闭、数据保存等交给计算机来完成,即使数据库改变了,也只需要去hibernate配置文件中更改即可。3.3.4 小结1.在软件开发的历史过程中,人们不断的发现缺点,不断的提出新的思想,最终认为一个优秀的软件系统要有以下几个特点:2.结构非常清晰,系统具有控制、业务处理、数据存储3个大的构架,在业务逻辑中将功能单一化,能够提高代码的重用率。3/在程序更新和维护时尽量不要去更改原代码,因为原代码的改动就需要进行大量的分布测试,框架技术将每个模块建立连接后交给计算机来完成,可以避免出错。4.数据存储过程是程序员不必关心的,程序员的主要任务是完成具有应用价值的业务逻辑。第四章 数据库设计数据库的设计关系到业务逻辑的编写,因此在进行数据库分析时应根据规范要求来严格完成数据库的创建,必须要减少不必要的数据,建立数据之间良好的关系结构,大致有以下要求:1. 数据库结构要层次分明,每个表的包含的信息能够体现出某一功能;2. 数据的设计要求要符合国家标准,在进行程序大致分析时,对数据访问量进行评估,访问量的评估则关心到数据库的性能、消耗,根据业务逻辑添加”锁“机制,保证事务的完整性。3. 减少不必要数据的创建,数据库在系统中起到”系统源“的地位,因此一个优秀的系统必须要能”保护数据库“。4. 数据库之间的关系要非常明确,易于维护。4.1 数据库需求分析根据业务逻辑中所产生的数据存储,确定数据库的设计,数据库需求分析的目的就是为了确定系统中的数据存储和关系。根据分析,可以确定该系统的集中信息存储,即:学生信息、老师信息、专业信息、院系信息、试卷分数、科目信息。4.2 数据库设计概要概要设计是将需求分析所获得的存储信息转换为抽象的关系模式,在概要设计中可以大体得出该数据表的具体功能和负责存储的信息。图4.2.1为学生的E-R图:学生id专业学号 学生院系密码姓名 图4.2.1图4.2.2为老师的E-R图:老师id姓名 老师教师编号密码 图4.2.2图4.2.3为院系E-R图:院系id 院系名称 图4.2.3图4.2.4为专业E-R图:专业id专业名称院系id 专业 图4.2.4图4.2.5为考试科目E-R图:状态专业id科目id结束时间科目名称 科目开始时间考试日期 学分 图4.2.5图4.2.6为分数管理E-R图: 科目id id 成绩 分数 学生id 图 数据库逻辑设计数据库设计概要中描述的关系模型是比较抽象的一种关系,设计出这种抽象模式后可以很方便的设计出数据库中的逻辑关系模型,在逻辑关系模型中主要是建立每个表之间的关系:逻辑设计图如图4.3所示: 图4.34.4 数据库表设计下面列出数据库表结构:Exam_score表保存考试成绩:表4.5.1Exam_score列名类型长度描述IdInt2科目成绩idExam_nameVarchar5科目成绩Student_idVarchar10学生idScoreInt5分数Student表用来保存考生信息:表4.5.2Student列名类型长度描述IdInt2学生idStudent_idVarchar20学号Student_nameVarchar20学生姓名Dept_nameVarchar20院系名称Class_idVarchar20专业idJ_teacher表用来保存老师信息:表4.5.3J_teacher列名类型长度描述IdInt5老师idTeacher_nameVarchar5老师姓名Teacher_pwdVarchar10密码Teacher_idVarchar10老师编号Dept表用来保存院系列表:表4.5.4Dept列名类型长度描述IdInt2院系idDept_nameVarchar8院系名称J_class表用来保存专业信息:表4.5.5J_class列名类型长度描述IdInt2专业idClass_nameVarchar12专业名称Dept_idInt5院系idJ_exam用来保存考试科目信息:表4.5.6J_exam列名类型长度描述IdInt2科目idExam_nameVarchar8科目名称NatrueVarchar2科目类型creditInt2学分dateVarchar10日期Start_timeVarchar10开始时间End_timevarchar10结束时间Class_idint3专业idYNVarchar2考试状态 表的设计直接关系到系统的设计流程,在程序开发中占有最重要的地位,表的设计要经过多人的讨论,不断的修改,这样才能得出最简洁最效率的表结构,表的设计关系到开发人员的思路,程序员必须严格遵循数据库表结构来实现。数据库表设计过于简单,那么不能保证信息的完整,而且关系如果建立得不够严谨,会造成在操作数据库时有很多不必要的麻烦,这直接影响了系统的系能,使得程序不够完美。由于利用到Hibernate框架技术,在Hibernate框架技术中已经有了很多表关系的技术支持,那么一个良好的程序员必须要合理的利用这些现有的技术,掌握不好会“画蛇添足”,HIbernate框架主要是为了将数据库操作这一块简化,而且能提高性能,不过使用不好也会产生额外的系统消耗,降低数据库的性能,严重的话会造成系统的崩溃,例如在编写程序时一定要慎用连接查询这个技术,连接查询虽然能够将两个表之间的信息连接到一起,在建立数据结构时我们遵循的功能单一化、信息单一化,因此连接查询不可避免,所以把握住数据库关系是非常重要的。由于水平有限,表的设计并不是很满意,但是能满足基本的实现要求,表与表之间的关系清晰,按照正常逻辑流程来设计,在用UML建模时也遇到一些问题,设计完成之后对比专业人士设计的项目结构中的E-R图,感觉差距还是很大,还需要学习。第五章 系统详细设计5.1系统设计概要该项目在登录时分两个方向,一个是教师登录,另外一个是学生登录,先从学生登录分析,学生登录时,以往都是通过学号直接登录,在此项目中加入了院系和专业选择,院系只是为了绑定专业,而专业绑定试卷,因此在选择院系时通过数据库将该院系的专业查出,选择专业后,通过学号、密码、专业来判断用户,院系就不用参与判断了,这样一来实际上试卷已经定了,在后面的系统中就可以直接抽取试卷,由于大学中分为8个学期,考虑到大四下学期有些同学会有重修或清考,因此在菜单中有一个类似于分页的下拉列表,选择学期来查看该学期的课程,课程上显示该课程的学分、类别,老师阅卷后显示分数,根据时间来判断是否可以进行考试,如果不能进行考试会提示学生时间未到或者考试已经结束,进入考试时不是像其他的考试系统那样将试卷保存到数据库中,因此一个学校的班级过多,因此试卷的信息量过大,而且学生在考试时,会有大量的考生同时对数据库操作来抽取试卷,这样对数据库的消耗非常大,会出现很多学生进入考试时等待时间过长或者无法进入考试,将试卷用文本的形式保存,在程序中通过该考生的专业来选择合适的试卷,将试卷用编程中对象的形式保存为指定格式,这样在页面中形成试卷时也比较方便,免去了数据库的各种连接查询,连接查询是一项很耗时的工作,在设计程序时能不用连接查询尽量不用,学生考试完毕点击提交后将答案保存到数据库中,答案与课程还有学生学号相关联。老师登录方向则比学生登录方向简单许多,主要是老师在此系统中的作用是负责对填空题、问答题、综合题的阅卷,其他方面则无关紧要,老师进入菜单后根据学号到数据库中将学生的答案抽取到试卷上,老师给予相应的分数后将分数保存到数据库中。图5.1为项目流程图: 图5.15.2 登录模块登录页面验证考生信息,考生信息验证是在服务器端验证,为了提高页面的用户友好度和系统效率,所以用到了ajax技术增强了用户友好度,在登录页面直接将考生所需要验证的信息全部确认,在后面的页面的无须再验证,将信息验证功能统一到一个页面处理。关键字之:ajaxAjax全名为:“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种后台通讯技术,在进行ajax验证时可以不打断用户在当前页面的其他操作,是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。通过 AJAX,可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与Web服务器交换数据。AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。AJAX 可使因特网应用程序更小、更快,更友好。AJAX 是一种独立于 Web 服务器软件的浏览器技术。AJAX 基于下列 Web 标准:JavaScriptXMLHTMLCSS在 AJAX 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。AJAX 应用程序独立于浏览器和平台。Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。通过 AJAX,因特网应用程序可以变得更完善,更友好。界面图:学号框和密码框在进行光标移动时用到js中的onblur方法,在光标移动时自动检验该输入框的内容是否合法,代码如下:$(function()$(#name).blur(f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 通风排烟安装工程合同
- 2022学年上海交大附中高一(下)期中政治试题及答案
- 宇宙之谜探索诗歌中的艺术特色与灵感教学教案
- 春季活动策划方案
- 无锡2025高三期末语文作文(9篇)
- 词句积累与运用:古诗词赏析与记忆训练初中英语课教案
- 宇宙探索与科幻文学:初中语文拓展教学教案
- 公交公司联欢会活动方案
- 物质的三种状态及其性质:九年级科学物理教案
- 公众号售卖活动方案
- 北京市顺义区2023-2024学年五年级下学期数学期末试卷(含答案)
- 2024年佛山市顺德区龙江社区卫生服务中心招聘真题
- 2025年宁夏银川灵武市选聘市属国有企业管理人员招聘笔试冲刺题(带答案解析)
- 机关内部制度管理制度
- 2025年高纯硫酸锶项目市场调查研究报告
- 2025年汽车驾照考试科目一考试题库及参考答案
- 广东省广州市天河区2023-2024学年七年级下学期期末考试英语试题(含答案)
- 2025年防范和打击非法金融活动竞赛题库300题(含答案)
- 北京2025年04月中国工程院战略咨询中心招考10名劳动合同制人员笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 汽车故障试题解析与解读试题及答案
- 2024北京丰台区初一(下)期末英语试题和答案
评论
0/150
提交评论