




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安建筑科技大学课程设计(论文)课程设计(论文)课程名称软件工程实训课程设计题 目在线测评系统院 (系)信息与控制工程学院专业班级软件1202姓 名赵曼学 号120670211指导教师朱旭东、祁飞 2015年 09 月 20 日摘要当今时代是一个信息时代,随着互联网技术和计算机技术的发展,计算机行业起着至关重要的作用。为了更好适应地这个时代选拔人才的标准,提高人们的计算机水平,计算机在线评测系统应运而生。在线评测系统是一个针对计算机人才选拔的网站,主要提供程序设计练习和考试平台。用户可以在这个网站上查询并练习题目,然后当用户针对相应的题目编写了程序以后,可以在在线评测系统上将程序代码以相应题号为准提交到服务器端。服务器接收到提交信息后,将该程序的题号、提交时间、相应题目的信息等传送到后台测试平台,后台将根据这些信息对同学们提交上来的程序代码进行编译执行,并做出相应判断,将测试结果返回相应的数据库。 程序代码提交后,提交结果将在网页上显示出来,同时会有相应的排名数据以及解题信息。 本系统是基于JSP技术建立的药品进销存管理系统,其目标是完成对药品的进、销、存进行管理。整个项目采用MVC的架构。使用Servlet充当控制器,Jsp用来做视图层的显示。这种分层模式可以降低模块之间的耦合度。有利于系统维护、代码重用和后期增加相应的功能。关键词:JSP、SQL Server2005、Java Web、在线测评、ACM目录1系统概述11.1目的11.2开发工具和运行环境11.2.1开发工具11.2.2运行环境12软件总体结构22.1系统结构设计22.2系统权限划分32.2.1用户操作32.2.2管理员管理32.3系统功能划分32.3.1用户模块32.3.2管理员模块32.3.3在线评判模块32.3.4题库模块33详细设计43.1系统架构目标43.2构架设计53.3系统开发模式63.4数据流图73.5逻辑视图83.5.1系统类图83.5.2人员信息包内的类图93.5.3接口包内的类图93.6过程视图103.6.1 用户登录103.6.2 管理员题目管理113.6.3 用户管理123.6.4 试题评判管理134数据库设计144.1概念模型154.2逻辑模型154.3表的物理结构定义175 相关界面195.1主要功能界面196总结237参考文献251系统概述1.1目的 ACM在线评测系统是一个基于B/S结构的多用户在线系统,允许用户在线提交自己的解题代码,系统会自动编译运行给出结果,并根据用户的解题数量和分数排出名次。1.2开发工具和运行环境 1.2.1开发工具 该系统用到的主要开发工具有Dreamweaver CS6,MyEclipse。 (1)Dreamweaver CS6简介dreamweaver cs6是世界顶级软件厂商adobe推出的一套拥有可视化编辑界面,用于制作并编辑网站和移动应用程序的网页设计软件。由于它支持代码、拆分、设计、实时视图等多种方式来创作、编写和修改网页(通常是标准通用标记语言下的一个应用HTML),对于初级人员,你可以无需编写任何代码就能快速创建web页面。1.2.2运行环境系统网站部分是用HTML语言编写,数据库使用SQL server2005,而服务器用的是tomcat,在Windows系统上运行。(1)tomcat简介Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。2软件总体结构2.1系统结构设计系统架构采用分离可缩放结构。前端服务器负责Web访问,后端tomcat服务器负责编译,运行和测试程序。双方通过数据库耦合。Tomcat服务器与Internet没有连接,彻底保证测试数据不被外泄。 前端设计基于 B/S 模式进行Web服务器设计,后端tomcat服务器采用多线程,多进程并发处理机制,在保证系统稳定性的同时极大地提高系统的响应速度。整个系统采用面向对象的思想进行设计。系统结构图如下:图1 系统结构图2.2系统权限划分2.2.1用户操作 包括用户注册、登陆、用户信息修改、题型浏览、题目浏览、提交题目、查看提交结果、查看做题排名、查询分数、查找题目、账户注销等。2.2.2管理员管理 管理员主要进行的操作有:登陆、题库管理、用户管理、重测提交题目、注册功能、数据维护管理、查看用户提交的源码、账户注销。2.3系统功能划分该在线测评系统主要包括以下几个功能块:用户模块、管理员模块、在线评判模块和题库模块。2.3.1用户模块用户模块主要有用户自行操作的注册功能、登陆功能、注销功能、个人信息查询和修改等。2.3.2管理员模块管理员模块主要负责试卷添加、试卷查询和修改、修改用户权限、增加和修改试题、测试数据管理、数据库备份等功能。2.3.3在线评判模块在线评判模块主要功能是用户通过此模块有查看题目、提交代码、查看分数和排名等。2.3.4题库模块题库模块主要功能是用户能够在此查询、浏览和练习题目。系统功能图如下:图2 系统主功能模块图3详细设计3.1系统架构目标该在线测评系统要达到的软件架构目标如下:(1)可靠性(Reliable)软件产品在规定的条件下和规定的时间区间完成规定功能的能力,软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。(2) 安全性(Secure)软件系统要保证系统数据的安全性,如用户的基本信息,因为所承担的交易的商业价值极高,系统的安全性非常重要。(3)可扩展性(Extensible)在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展(4)可维护性(MAIntainable) 软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费 (5)可伸缩性(Scalable) 软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。 (6)可定制化(CuSTomizable) 同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。 (7)客户体验(CustomerExperience) 软件系统必须易于使用。 (8)市场时机(TimetoMarket) 软件用户要面临同业竞争,软件提供商也要面临同业竞争。以最快的速度争夺市场先机非常重要。3.2构架设计构架视图的图形描述称为构架设计图。设计图由以下统一建模语言图组成:逻辑视图:类图、状态机和对象图。进程视图:类图与对象图(包括任务-进程与线程)。实施视图:构件图。部署视图:配置图。用例视图:用例图描述用例、主角和普通设计类;顺序图描述设计对象及其协作关系。3.3系统开发模式 MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。a.视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Macromedia Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services.b.模型模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。c.控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。整个项目采用MVC的架构。MVC,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用将被分成三层:模型层、视图层、控制层。使用Servlet充当控制器,Jsp用来做视图层的显示。这种分层模式可以降低模块之间的耦合度。有利于系统维护、代码重用和后期增加相应的功能。图3 MVC开发模式图3.4数据流图图4 系统数据流图3.5逻辑视图逻辑视图部分主要叙述了设计阶段的工作。根据系统划分的三类包图,分别讨论人员信息包,接口包和事务包中的类图。其中,人员信息包包含用户和管理员两个类;接口包包含登录、管理员管理模块、用户管理模块、评判管理模块和题库模块五个接口模块类;事务包主要包含用户做题管理、管理员题目管理、管理员用户信息管理、管理员用户组管理等事务类,相应的类图如下各图。3.5.1系统类图图5 系统类图3.5.2人员信息包内的类图图6 人员信息包类图3.5.3接口包内的类图图7 接口信息包类图3.6过程视图3.6.1 用户登录(1)简述用户如果要进行相应操作,需要输入正确的用户名和密码。(2)基本事件流1 用户输入正确的用户名和密码登录系统2 系统进行身份验证3 进入相应页面4 结束(3)活动图 图8 用户登录活动图3.6.2 管理员题目管理(1)简述管理员进入相应管理页面,对题目进行管理。(2)基本事件流1 用户输入正确的用户名和密码登录系统2 系统进行身份验证3 进入相应页面4 管理员进行题目管理5 对题目进行增删改查6 录入数据库7 结束(3)活动图图9 管理员题目管理活动图3.6.3 用户管理(1)简述用户选择试卷,做题并提交。(2)基本事件流1 用户输入正确的用户名和密码登录系统2 系统进行身份验证3 进入相应页面4 选择试卷类型5 做题并提交6 结束(3)活动图图10 用户题目管理活动图3.6.4 试题评判管理(1)简述用户提交代码后,评测系统进行编译,并将结果录入数据库。(2)基本事件流1 用户提交代码2 评判系统存储代码并进行编译3 若编译成功,将结果存入数据库4 调出数据库答案,并进行比对5 得到相应分数6 将分数存入数据库7 结束(3)活动图图11 代码评判管理活动图4数据库设计 数据库是储存在计算机内的数据的集合。数据库存放数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构以建立数据间的内在联系与复杂联系,从而构成数据的全局结构模式。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统是用于管理和维护数据的系统软件。它是位于用户与操作系统之间的数据管理软件。数据库管理系统具有数据定义功能、数据组织功能、数据存储和管理功能、数据操纵功能、数据库的事物管理功能、运行管理功能、数据库的建立和维护等功能。4.1概念模型图12 实体E-R图4.2逻辑模型将概念结构设计阶段设计好的基本E-R图转换为关系模型,如下所示:a.管理员(登录名,密码,个人信息,编码,管理权限),此为管理员实体对应的关系模式。b.用户(编码,用户信息,登录名,密码),此为用户实体对应的关系模式。c.程序代码(提交人,题目,编号),此为程序代码实体对应的关系模式。d.题目(编号,题目内容,出题人,题型),此为题目实体对应的关系模式。e.管理员管理用户(编码,管理权限),此为管理员管理用户关系对应的关系模型。f.管理员管理题目(编码,管理权限),此为管理员管理题目关系对应的关系模型。g.管理员查看代码(编码,管理权限),此为管理员查看代码关系对应的关系模型。h.用户查看操作题目(编码,管理权限),此为用户查看操作题目关系对应的关系模型。4.3表的物理结构定义图13 表的物理结构模型图本系统使用SQL Server来设计所有的数据表,根据预先设计好的编码规则设计了以下数据表:用户信息表,管理员权限表,题目信息表,评判状态表,做题信息表,考试信息表等。用户信息表主要是存储用户的登录名、密码、做题的正确个数、提交次数、做题数量、做题的正确率、编号等个人信息。考试信息表主要是考试开始时间、结束时间、标题、考试的题目等信息。 以下只介绍做题信息表、用户信息表和用户权限信息表,其他表功能类似这里就不一一介绍。第 16 页表1 题目信息表题目信息表主要存储每个题目相关信息,包括题目编号、题型、难度、题目内容等。表2 做题信息表做题信息表主要是用户每次提交时候留下的用户记录,包括题目编号、用户编号、程序运行时间、程序运行内存、运行的结果以及提交的语言等。表3 用户登录信息表用户登录表主要储存用户登录信息,主要包括登录名、密码、编号、登陆时间,这样就能知道登录系统的人有多少。5 相关界面5.1主要功能界面图14 登录界面图登录主界面使用了表单,表单是Web中实现交互的重要方法,用于收集用户信息并提交给服务器。该界面使用了静态文本框和单行输入文本框,当用户名和密码验证正确,则进入相应的管理主界面。图15 代码运行界面图用户可以在该图TEXTAREA控件中输入程序代码,点击运行按钮就能进行程序编译。图16 程序编译图该图是对程序代码进行编译后所显示的界面,图中显示了编译后的结果,所用时间,还有编译是否成功。图17 管理员试题操作界面该界面是管理员查询试题界面,管理员可以对试题进行删除和修改操作。图18 用户查询操作界面该界面是用户浏览界面,用户可以查看试题的编号、主要信息、题目难度等信息,点击做题按钮就能进入相应程序编程页面。图19 管理员试题管理界面该界面是管理员对试题进行相应操作,输入相关试题信息,对实体进行修改或重置。6总结 完成这次在线评测系统课程设计是一件让我觉得非常有成就感的事,因为在开发这个系统过程当中,我们遇到了很多问题,有很多技术并不熟练如JSP技术,CSS技术和MVC模式等,但是在解决这些问题的过程中,我们也学习到了很多知识,下面我会一一说明。ACM在线评测系统整个项目采用MVC的架构。使用Servlet充当控制器,Jsp用来做视图层的显示。这种分层模式可以降低模块之间的耦合度。 Servlet 是一个用 Java 编写的程序,此程序在服务器上运行以处理客户端请求,处理请求的过程:接收客户端(浏览器)请求信息;调用业务处理;向客户端(浏览器)发送HTTP响应。Servlet 的生命周期就是指 Servlet 实例创建之后直到其消失(对象销毁、回收)中间的时间及各个阶段,当接收到客户端的请求时,Servlet容器负责创建 Servlet 的一个实例,以多线程的方式响应。 在这段学习过程中,我进一步学习了Java编程语言,以前在学校实践的比较少,这次的课程设计让我对Java语言有了更清晰的认识,也让我具备了更好的Java编程能力。另外,还进一步了解了SQL Server等数据库编程技术,B/S结构应用软件管理和开发经验;使我深刻理解并掌握软件工程理论和方法,熟悉常用的设计模式,掌握常用的数据结构、算法。回首整个软件开发过程,我每天都有很多新的体会,想说的很多,我总结下来主要有以下几点:1)团队意识是完成项目的必要保证。在我们整个项目完成的过程中,我充分体会到了团队合作的重要性。特别是担任项目组长的组员分配大家完成项目期间,很难想象如果大家不团结一致的结果。期间通过大家的团队合作,项目组高效且快速的完成的项目,当然最重要的是大家都参与了项目的开发。2)熟练的专业技能。提供最佳的解决方案是我们努力的方向。要熟练掌握项目的系统结构模型、架构方法、界面编程语言、JAVA语言以及对数据库系统的熟练操作等技术,这对软件开发者来说无非是一个很高的要求,需要我们不断地学习,不断的在一个个项目中去积累经验,但这也正是我们为之奋斗的目标。3)加强信心,坚持下去。虽然感觉自己学的还可以,但真的工作起来却感觉力不从心。有时候遇到事情总会着急,慌张。平常信心不足,总感觉自己做不好。或许还需要一段时间的磨练吧。只有自己的知识和能力都在提升,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租书服务的社区文化大使项目考核试卷
- 粪便资源化利用在减少化肥使用中的作用考题考核试卷
- 江西师范高等专科学校《免疫与病原生物学实验Ⅲ》2023-2024学年第一学期期末试卷
- 吉林省辽源市重点名校2025届初三第三次模拟考试语文试题含解析
- 山东省滨州市达标名校2025年中考第三次调研考试语文试题试卷含解析
- 内蒙古自治区呼和浩特市赛罕区达标名校2025届初三中考模拟卷(二)化学试题含解析
- 西安邮电大学《非诉讼实务》2023-2024学年第二学期期末试卷
- 武汉工程大学《演讲与口才》2023-2024学年第二学期期末试卷
- 辽宁省辽河油田第二中学2025年高考模拟试卷(4)化学试题含解析
- 太原科技大学《医生与病人》2023-2024学年第二学期期末试卷
- 个人代持协议书
- 人教版小学数学五年级下册期末测试卷有完整答案
- 机组启动试运行调试大纲
- 医务人员技术档案
- JBT 7387-2014 工业过程控制系统用电动控制阀
- 18文言文二则《囊萤夜读》公开课一等奖创新教学设计
- (正式版)JBT 106-2024 阀门的标志和涂装
- 期中测试卷(1-5单元)(试题)-2023-2024学年二年级下册数学人教版
- 2022高考数学全国1卷(原卷版)
- 陕西方言研究报告
- 土地永久性租赁合同
评论
0/150
提交评论