ACM在线评测系统设计报告.docx

上传人:李司机 文档编号:5522392 上传时间:2023-07-18 格式:DOCX 页数:30 大小:356.10KB
返回 下载 相关 举报
ACM在线评测系统设计报告.docx_第1页
第1页 / 共30页
ACM在线评测系统设计报告.docx_第2页
第2页 / 共30页
ACM在线评测系统设计报告.docx_第3页
第3页 / 共30页
ACM在线评测系统设计报告.docx_第4页
第4页 / 共30页
ACM在线评测系统设计报告.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《ACM在线评测系统设计报告.docx》由会员分享,可在线阅读,更多相关《ACM在线评测系统设计报告.docx(30页珍藏版)》请在三一办公上搜索。

1、课程名称题 目院(系)专业班级姓 名学 号指导教师课程设计(论文)软件工程实训课程设计在线测评系统信息与控制工程学院软件1202赵曼120670211朱旭东、祁飞2022年09月20日当今时代是一个信息时代,随着互联网技术和计算机技术的发展,计算机行业起着至关重要的作用。为了更好适应地这个时代选拔人材的标准,提高人们的计算机水平,计算机在线评测系统应运而生。在线评测系统是一个针对计算机人材选拔的网站,主要提供程序设计练习和考试平台。用户可以在这个网站上查询并练习题目,然后当用户针对相应的题目编写了程序以后,可以在在线评测系统上将程序代码以相应题号为准提交到服务器端。服务器接收到提交信息后,将该

2、程序的题号、提交时间、相应题目的信息等传送到后台测试平台,后台将根据这些信息对同学们提交上来的程序代码进行编译执行,并做出相应判断,将测试结果返回相应的数据库。程序代码提交后,提交结果将在网页上显示出来,同时会有相应的排名数据以及解题信息。本系统是基于JSP技术建立的药品进销存管理系统,其目标是完成对药品的进、销、存进行管理。整个项目采用MVC的架构。使用Servlet充当控制器,JSP用来做视图层的显示。这种分层模式可以降低模块之间的耦合度。有利于系统维护、代码重用和后期增加相应的功能。关键词:JSP、SQLSerVer2005、JavaWeb在线测评、ACM目录1系统雌11.l目的11.2

3、开辟工具和运行环境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 5.3接口包内的类图93.6 过程视图101 .6.1用户登录103 .6.2管理员题目管理114 .6.3用户管理125 .6.4试题评判管理134

4、数据库设计144.1 概念模型154.2 逻辑模型154.3 表的物理结构定义175相关界面195.1主要功能界面196总结237文献251系述1.1 目的ACM在线评测系统是一个基于B/S结构的多用户在线系统,允许用户在线提交自己的解题代码,系统会自动编译运行给出结果,并根据用户的解题数量和分数排出名次。1.2 开辟工具和运行环境1.2.1 开辟工具该系统用到的主要开辟工具有DreamweaverCS6,MyEclipseo(1) DreamweaverCS6简介dreamweavercs6是世界顶级软件厂商adobe推出的一套拥有可视化编辑界面,用于制作并编辑网站和挪移应用程序的网页设计软

5、件。由于它支持代码、拆分、设计、实时视图等多种方式来创作、编写和修改网页(通常是标准通用标记语言下的一个应用HTML),对于初级人员,你可以无需编写任何代码就能快速创建web页面。1.2.2 运行环境系统网站部分是用L语言编写,数据库使用SQLserver2005,而服务器用的是tomcat,在Windows系统上运行。(1) tomcat简介Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是不少的场合下被普遍使用,是开辟和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应H

6、TML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat部份是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。2软件总体结构2.1系统结构设计系统架构采用分离可缩放结构。前端服务器负责Web访问,后端tomcat服务器负责编译,运行和测试程序。双方通过数据库耦合。Tomcat服务器与Internet没有连接,彻底保证测试数据不被外泄。前端设计基于B/S模式进行Web服务器设计,后端tomcat服务器采用多线程,多进程并发处理机制,在保证系统稳定性的同时极大地提高系统的响应速度。整个系统采用面向对象的思想

7、进行设计。系统结构图如下: 犍 息S图1系统结构图2.2系统权限划分2.2.1用户操作包括用户注册、登陆、用户信息修改、题型浏览、题目浏览、提交题目、查看提交结果、查看做题排名、查询分数、查找题目、账户注销等。2.2.2管理员管理管理员主要进行的操作有:登陆、题库管理、用户管理、重测提交题目、注册功能、数据维护管理、查看用户提交的源码、账户注销。2.3系统功能划分该在线测评系统主要包括以下几个功能块:用户模块、管理员模块、在线评判模块和题库模块。2.3.1用户模块用户模块主要实用户自行操作的注册功能、登陆功能、注销功能、个人信息查询和修改等。2.3.2管理员模块管理员模块主要负责试卷添加、试卷

8、查询和修改、修改用户权限、增加和修改试题、测试数据管理、数据库备份等功能。2.3.3在线评判模块在线评判模块主要功能是用户通过此模块有查看题目、提交代码、查看分数和排名等。2. 3.4题库模块题库模块主要功能是用户能够在此查询、浏览和练习题目。系统功能图如下:图2系统主功能模块图3详细设计3.1系统架构目标该在线测评系统要达到的软件架构目标如下:(1)可靠性(Reliable)软件产品在规定的条件下和规定的时间区间完成规定功能的能力,软件系统对于用户的商业经营和管理来说极其重要,因此软件系统必须非常可靠。(2)安全性(Secure)软件系统要保证系统数据的安全性,如用户的基本信息,因为所承担的

9、交易的商业价值极高,系统的安全性非常重要。(3)可扩展性(Extensible)在新技术浮现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展(4)可维护性(MAIntainable)软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费(5)可伸缩性(Scalable)软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。惟独这样,才干适应用户的市场扩展得可能性。(6)可定制化(CuSTomizable)同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。(7)客户

10、体验(CustomerExperience)软件系统必须易于使用。(8)市场时机(TimetoMarket)软件用户要面临同业竞争,软件提供商也要面临同业竞争。以最快的速度争夺市场先机非常重要。3. 2构架设计构架视图的图形描述称为构架设计图。设计图由以下统一建模语言图组成:逻辑视图:类图、状态机和对象图。进程视图:类图与对象图(包括任务-进程与线程)。实施视图:构件图。部署视图:配置图。用例视图:用例图描述用例、主角和普通设计类;顺序图描述设计对象及其协作关系。3. 3系统开辟模式MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视

11、图、控制器。它们各自处理自己的任务。a.视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HWL元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括MacromediaFlash和象XHTML,XML/XSL,WML等一些标识语言和Webservices.b.模型模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象口BS和ColdFusionComponents这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于

12、应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。c.控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。整个项目采用MVC的架构。MVC,即把一个应用的输入、处理、输出流程按照ModelView、Controller的方式进行分离,这样一个应用将被分成三层:模型层、视图层、控制层。使用SerVlet充当控制器,JSP用来做视图层的显示。这种分层模式可以降低模块之间的耦合度。有利于系统

13、维护、代码重用和后期增加相应的功能。3.4数据流图图4系统数据流图3.5逻辑视图逻辑视图部份主要叙述了设计阶段的工作。根据系统划分的三类包图,分别讨论人员信息包,接口包和事务包中的类图。其中,人员信息包包含用户和管理员两个类;接口包包含登录、管理员管理模块、用户管理模块、评判管理模块和题库模块五个接口模块类;事务包主要包含用户做题管理、管理员题目管理、管理员用户信息管理、管理员用户组管理等事务类,相应的类图如下各图。3.5.1系统类图VV接口管理员管理模块测试用户管理员昭用户伟班伴我录名:VarChar-? varchar -登录名:Varchar 密码:varchar 随正确外加t 提交次数

14、:rt3硫温一 dw信息管理 题目管理 用户组管 系统管理登录名:varchar 密码:varchar皆陆时间:timestr(笠录r图5系统类图3.5.2人员信息包内的类图登录名:varch4r S varchar eiiTj 题目管理() 用户纲道理() 系线理( 在城用户管理O登录名:varchar 峦码:varchar 做题正确个效:Et 提交次数:Et 正逢辜:chr4 S8 O BSV Il O图6人员信息包类图3.5.3接口包内的类图图7接口信息包类图3. 6过程视图4. 6.1用户登录(1)简述用户如果要进行相应操作,需要输入正确的用户名和密码。(2)基本事件流1用户输入正确的

15、用户名和密码登录系统2系统进行身份验证3进入相应页面4结束(3)活动图图8用户登录活动图3.6.2管理员题目管理(1)简述管理员进入相应管理页面,对题目进行管理。(2)基本事件流1用户输入正确的用户名和密码登录系统2系统进行身份验证3进入相应页面4管理员进行题目管理5对题目进行增删改查6录入数据库7结束(3)活动图3.6.3用户管理(1)简述用户选择试卷,做题并提交。(2)基本事件流1用户输入正确的用户名和密码登录系统2系统进行身份验证3进入相应页面4选择试卷类型5做题并提交6结束(3)活动图图10用户题目管理活动图3.6.4试题评判管理(1)简述用户提交待码后,评测系统进行编译,并将结果录入

16、数据库。(2)基本事件流用户提交待码评判系统存储代码并进行编译若编译成功,将结果存入数据库4调出数据库答案,并进行比对5得到相应分数6将分数存入数据库7结束(3)活动图代码说判图11代码评判管理活动图4数据库设计数据库是储存在计算机内的数据的集合。数据库存放数据是按数据所提供的数据模式存放的,它能构造复杂的数据结构以建立数据间的内在联系与复杂联系,从而构成数据的全局结构模式。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统是用于管理和维护数据的系统软件。它是位于用户与操作系统之间的数据管理软件。数据库管理系统具有数

17、据定义功能、数据组织功能、数据存储和管理功能、数据控制功能、数据库的事物管理功能、运行管理功能、数据库的建立和维护等功能。4.1概念模型图12实体E-R图4.2逻辑模型将概念结构设计阶段设计好的基本E-R图转换为关系模型,如下所示:a.管理员(登录名,密码,个人信息,编码,管理权限),此为管理员实体对应的关系模式。b.用户(编码,用户信息,登录名,密码),此为用户实体对应的关系模式。C.程序代码(提交人,题目,编号),此为程序代码实体对应的关系模式。d.题目(编号,题目内容,出题人,题型),此为题目实体对应的关系模式。e.管理员管理用户(编码,管理权限),此为管理员管理用户关系对应的关系模型。

18、f.管理员管理题目(编码,管理权限),此为管理员管理题目关系对应的关系模型。g.管理员查看代码(编码,管理权限),此为管理员查看代码关系对应的关系模型。h.用户查看操作题目(编码,管理权限),此为用户查看操作题目关系对应的关系模型。4.3表的物理结构定义图13表的物理结构模型图本系统使用SQLServer来设计所有的数据表,根据预先设计好的编码规则设计了以下数据表:用户信息表,管理员权限表,题目信息表,评判状态表,做题信息表,考试信息表等。用户信息表主要是存储用户的登录名、密码、做题的正确个数、提交次数、做题数量、做题的正确率、编号等个人信息。考试信息表主要是考试开始时间、结束时间、标题、考试

19、的题目等信息。以下只介绍做题信息表、用户信息表和用户权限信息表,其他表功能类似这里就不一一介绍。TIDTNAMETLEVELTSIDA44333333331最小公信绐!求好一般12最大公信数困难25钻石环问题难56ab难67IOo之内求和难78冒泡排序一般89归并排序难9表1题目信息表题目信息表主要存储每一个题目相关信息,包括题目编号、题型、难度、题目内容等。TSIDTSINITSOUTVli求解5和25的最大公约数卜2求解4和8的最大公倍数8I3此题待设计I新年快乐表2做题信息表做题信息表主要是用户每次提交时候留下的用户记录,包括题目编号、用户编号、程序运行时间、程序运行内存、运行的结果以及

20、提交的语言等。!UioNAfMepasswordA口。WPt123456N工IgX工N3456表3用户登录信息表用户登录表主要储存用户登录信息,主要包括登录名、密码、编号、登陆时间,这样就能知道登录系统的人有多少。5相关界面5.1主要功能界面图14登录界面图登录主界面使用了表单,表单是Web中实现交互的重要方法,用于采集用户信息并提交给服务器。该界面使用了静态文本框和单行输入文本框,当用户名和密码验证正确,则进入相应的管理主界面。hp/x.host80Domp6rOnhr/Corly/gJeVJII例物(RW);了MRbMCelmTmfpublicstaticvoid*nStrlnars)(S

21、yEQraLout.print1n%1*rd!.)图15代码运行界面图用户可以在该图TEXTAREA控件中输入程序代码,点击运行按钮就能进行程序编译。ProbentsZfUs5*rvfsfc尸F闩”.trtfe:ServerstartupuTlb$WcrosoftMindows(9t6.1.76Lf(c)MicrosoftCorporation,s”Tr.D;WograaFiles(M86)yeclipcjacBwbbleSort.jovrtrja9i253eT*:144989U215DAPrcj469n6975VJ6,S9W998u5bleSo4http:/localhosh8080/Com

22、plierOnline/CompilerServlet编在成功,使用时间:Ioo9秒返回苜页图16程序编译图该图是对程序代码进行编译后所显示的界面,图中显示了编译后的结果,所用时间,还有编译是否成功。电M柳名尔WLtTF233)M444r-J-峥t433443,1Jft*2A大公修触I,I三99拈石炸福三9r才ICI*S7I2ftf7I崂亘B拗1年-I,I,W9日的仔%,9Jjf41:图17管理员试题操作界面该界面是管理员查询试题界面,管理员可以对试题进行删除和修改操作。试麴预览试题编号试题信息试题难度对应详情ID操作4443做题3333333做题1最小公倍数求解f1做题2一最大公倍数困难2做

23、迎5钻石环间超难5做题6ab难6做题7100之内求和难7做题8冒泡排序一般8做题9归并排序难9且题图18用户查询操作界面该界面是用户浏览界面,用户可以查看试题的编号、主要信息、题目难度等信息,点击做题按钮就能进入相应程序编程页面。httolhcst8080GmplierOrlinewtiFoSeret)=uodtefttid=4试题管理iIDS5aa试题名称,33g度,33试题洋信id3图19管理员试题管理界面该界面是管理员对试题进行相应操作,输入相关试题信息,对实体进行修改或者重置。6完成这次在线评测系统课程设计是一件让我觉得非常有成就感的事,因为在开辟这个系统过程之中,我们遇到了不少问题,

24、有不少技术并不熟练如JSP技术,CSS技术和MVC模式等,但是在解决这些问题的过程中,我们也学习到了不少知识,下面我会一一说明。ACM在线评测系统整个项目采用MVC的架构。使用Servlet充当控制器,JSP用来做视图层的显示。这种分层模式可以降低模块之间的耦合度。Servlet是一个用Java编写的程序,此程序在服务器上运行以处理客户端请求,处理请求的过程:接收客户端(浏览器)请求信息;调用业务处理;向客户端(浏览器)发送HTTP响应。Servlet的生命周期就是指Servlet实例创建之后直到其消失(对象销毁、回收)中间的时间及各个阶段,当接收到客户端的请求时,Servlet容器负责创建S

25、ervlet的一个实例,以多线程的方式响应。在这段学习过程中,我进一步学习了JaVa编程语言,以前在学校实践的比较少,这次的课程设计让我对Java语言有了更清晰的认识,也让我具备了更好的JaVa编程能力。此外,还进一步了解了SQLServer等数据库编程技术,B/S结构应用软件管理和开发经验;使我深刻理解并掌握软件工程理论和方法,熟悉常用的设计模式,掌握常用的数据结构、算法。回首整个软件开辟过程,我每天都有不少新的体味,想说的不少,我总结下来主要有以下几点:1)团队意识是完成项目的必要保证。在我们整个项目完成的过程中,我充分体味到了团队合作的重要性。特殊是担任项目组长的组员分配大家完成项目期间

26、,很难想象如果大家不团结一致的结果。期间通过大家的团队合作,项目组高效且快速的完成的项目,固然最重要的是大家都参预了项目的开辟。2)熟练的专业技能。提供最佳的解决方案是我们努力的方向。要熟练掌握项目的系统结构模型、架构方法、界面编程语言、JAVA语言以及对数据库系统的熟练操作等技术,这对软件开辟者来说无非是一个很高的要求,需要我们不断地学习,不断的在一个个项目中去积累经验,但这也正是我们为之奋斗的目标。3)加强信心,坚持下去。虽然感觉自己学的还可以,但真的工作起来却感觉力不从心。有时候遇到事情总会着急,慌张。寻常信心不足,总感觉自己做不好。兴许还需要一段时间的磨练吧。惟独自己的知识和能力都在提

27、升,相信自己总有一天会很勇敢的表现自己。总之、在整个课设过程中,我有许多的收获和欢乐,但也有苦涩和教训,这些成功的经验将激励我在以后的人生路上取得更大的成绩,失败的经历将使我努力去改变需要改变的地方,可以是我更快的成长,让自己以后的日子做的更好。这些珍贵的人生经历激励我在以后的人生道路上勇于实践,敢于创新,为人生的辉煌奠定坚实的基础,成为我受益终身的珍贵财富。4)良好的沟通协调能力是实施顾问的基本修养。在课程设计过程中,往往以小组为单位进行提问、讨论、最后解决问题为学习的模式,目的就是为了能在与小组成员的相互交流过程中,提高我们的沟通能力。感谢学校能给我们提供这次难得的学习机会,通过这次课程设

28、计,我学到了不少书本上学不到的东西,也有了从无知到认知,到深入了解公司和社会,从开始的磕磕碰碰到后来的工作还算顺利的转变。除此之外,还要感谢我的项目团队成员,正是因为有大家的相互匡助和学习,共同解决遇到的问题,共同挑战艰难,我们的软件开辟过程才干够顺利完成,我更加认识到了团队精神的可贵,同时也收获了最真挚的友谊。在此再次感谢学校,感谢协助我们的所有老师和同学,我将永远铭记这些在这次学习中的点点滴滴。谢谢你们!7参考文献1王珊,萨师煽.数据库系统概论(第二版)M.北京:高等教育出版社,2022,17-206.2刘楠,孙国道.ACM在线评判系统设计与实现J.计算机时代,2022,189-242.李明洙,纪洪波.一种基于ACM程序设计竞赛在线评测系统解决方案J.微型机与应用,2022,106-185.蒋社想,戴书文.基于J2EE的ACM竞赛在线评测系统的设计J安徽理工大学学报,2022,120-187.5焦燕.在线评测系统的设计与实现D.呼和浩特:内蒙古大学出版社,2022,57-186.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号