学生在线考试系统的设计与实现-毕业论文.doc
《学生在线考试系统的设计与实现-毕业论文.doc》由会员分享,可在线阅读,更多相关《学生在线考试系统的设计与实现-毕业论文.doc(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 本科毕业论文(设计)模板本科毕业论文(设计)论文题目: 在线考试系统的设计与实现 学生姓名: 罗 伟 学 号: 1205290203 专 业: 软 件 工 程 班 级: 软 件 1202 指导教师: 王 命 宇 完成日期: 2016年 5 月 30 日在线考试系统的设计与实现内 容 摘 要学生在线考试系统旨在提高考试的质量和效率,充分发挥网上考试的灵活性,不局限于考生所在地理位置,同时,在大规模考生同时线上考试的环境和压力下,以提升考试系统的高并发连接、大数据处理的性能。这也是顺应国内O2O线上线下服务的潮流,如阿里巴巴的淘宝、京东商城、1号店、蘑菇街等几大线上线下巨头,促进社会经济的快速发
2、展。为了适应在大规模考生同时在线参与考试的压力下,既保证后端服务器的性能和效率,又能良好地处理大量客户连接来保证高并发.系统采用C+编写在Linux环境下运行的后端服务器,使用轻量级的nginx反向代理服务器,nginx相对于Apache的好处在近几年O2O概念下应运而生并取得压倒性的优势取代用Apache作为web反向代理服务器.nginx的高性能、高并发、大数据处理方面表现极佳。采用f-cgi框架来支撑动态网站的开发,比jsp开发动态网站有更加充分的依据,比如服务器可以更高效地与客户端浏览器交互,而不需要安装JVM(java虚拟机)。另外,对于一些html web文档,不需要开发者大量手动
3、的编辑,而使用模板引擎在cgi程序中就可以帮我们完成,大大提高了开发效率.此外,任何项目没有绝对的好坏优劣之分,系统的大部分功能都可以在现有技术下完成。一些其他功能也可以通过日后的需求而完善.总之,系统的可扩展性也是值得肯定的。关键词:C+ nginx fcgi框架 模板引擎 O2ODesign and Implementation of Online Examination SystemAbstract Students online examination system aimed at improving the quality and efficiency of the examina
4、tion, give full play to the flexibility of the online exam, the candidates are not limited to geographical location, while at the same time a largescale environment and pressure candidates online exam to improve examination system high concurrent connections, the performance of large data processing
5、。 This is the tide domestic O2O online and offline services, such as Taobao, Jingdong Mall, Shop No。 1, Street giant mushrooms at several major online and offline Alibaba, promote the rapid development of social economy.In order to meet the candidates at the same time under the pressure of largescal
6、e participation in the online exam, both to ensure the performance and efficiency of the backend servers, and can handle a large number of customers with good connections to ensure high concurrency。 System written in C + backend servers running the Linux environment, the use of lightweight nginx rev
7、erse proxy server, nginx Apache with respect to benefits in recent years, O2O concept came into being and made an overwhelming advantage substituted with Apache as a web reverse proxy server。 nginx highperformance, high concurrency, high data processing performance is excellent。 Using fcgi framework
8、 to support the development of dynamic websites, there are more than sufficient basis jsp development of dynamic Web sites, such as server more efficiently interact with the client browser, without the need to install the JVM (java virtual machine).In addition, for some html web documents, the devel
9、oper does not need a lot of manual editing, and using a template engine cgi program can help us to complete, greatly improving the efficiency of development。 In addition, any project there is no absolute good or bad points, most of the functions of the system can be done in the prior art under. Some
10、 other features can also improve future needs。 In short, the systems scalability is also worthy of recognition。Key words: CPlusPlus Nginx Framework-offcgi Template-Engine OTOIII目 录绪 论1(一)系统开发的目的1(二)系统开发的意义1一、系统简介2(一)环境简介2(二)nginx简介3(三)cgi与f-cgi原理简介4(四)memcached简介4(五)mysql数据库简介5二、可行性研究6(一)经济可行性6(二)技术
11、可行性6(三)法律可行性6(四)系统流程图7(五)数据流图DFD7(六)数据字典DD9三、需求分析12(一)功能需求12(二)性能需求12(三)ER图13四、总体设计(概要设计)14(一)系统概要设计141。WBS图142.系统功能模块与界面设计14(二)数据库概要设计151。ER模型152.关系模型设计15五、详细设计17(一)功能设计171。学生功能模块(StudentModule)172.网站管理员模块(AdminModule)21(二)数据库表详细设计26六、编码与单元测试29(一)单元编码29(二)界面展示30(三)单元测试33七、系统测试35八、系统维护37(一)项目部署与网站发布
12、37(二)性能调优和运维37结 论38参 考 文 献39绪 论(一)系统开发的目的随着C+、java、C等面向对象编程语言的出现。OOP的编程模式深入软件工程师们的内心。但是在大多数网站应用似乎被java structs框架、jsp框架、.net框架所垄断,尽管如此,这些框架在一些领域因为其执行效率的低下而被用户诟病。比如,java需要在JVM环境下运行,对大量内置数据类型进行过度封装,其在效率、性能方面的不足也体现出来.C/C+一直在效率方面表现出色,被广泛应用于系统、驱动、服务器和游戏行业软件的开发.C+同样也适合于开发网站,并因其效率方面的优点,本系统就是为了在这方面做进一步尝试。C+对
13、开发者的技术要求高、难度大,所以在开发web应用方面,应用极少。通过本系统介绍用C+进行开发web应用,期望可以推广C+在web领域得到程序员们的青睐,激发广大编程初学者对C+的热爱,敢于迎难而上,攻克难关,推动我国乃至世界软件业的发展.除了为了推广C+在不同的领域、业务中的应用外。开发此系统是为那些打算开发出高并发、高性能、稳定健壮网站的程序员们提供一个示例和样本。改善大量用户同时在线访问时,出现的服务器崩溃、宕机、响应延时高、不稳定、产生错误的瓶颈。(二)系统开发的意义本系统开发的意义不仅仅在其对C+语言的推广,鼓励更过的后来者勇于登上计算机科学的高峰,解决一个接一个的难题,最终推动计算机
14、科学的发展的学术性意义.更重要的是,它也具有很大的商业价值和实际意义。相对于传统的线下考试,在线考试不需要安排实际的物理考场.安排大量的考场,设置过多的考点、密切关注对考场秩序的调度.这会带来大量的人力资源成本,并且效率低下,不符合信息时代对效率的要求.在线考试也不局限于地理位置的分布而呈现出任何差异,所有参加考试的考生只需登录到系统就可以进行答题。这方便了考生合理安排自己的答题环境。对教师而言,减轻了大量手工批阅试卷的负担,客观题部分完全自动化阅卷。主观题则只需和管理员沟通制定相应的评分细则,系统采用类似于标准答案关键词匹配比例的算法即可比较公正地批改试卷.非常轻松简捷,方便,降低了人工阅卷
15、的难度。44一、系统简介随着大数据、云存储、云计算、高并发、集群与分布式计算这些新技术的出现,使得人们对效率和性能的关注度也急剧升温。本系统是拟为学生参加在线编程技术考试而开发的.系统采用B/S架构,nginx反向代理服务器部署在Linux后端服务器集群系统中,使用memcached高性能分布式缓存技术,在大量考生同时参与考试时,使得服务器正常工作的同时,还保证了效率和性能.这相比线下考试具有更大的灵活性和稳定性。另外,在日常生活中中我们访问的大量的web应用程序都是使用java structs、jsp、asp、。net等框架开发架构的。而本系统则是使用C+语言开发web后端服务器程序。C+因
16、其面向对象编程特性(OOP)及向前兼容C面向过程式编程,这使得C+在程序执行效率上与C语言处于同一水平。众所周知,C语言主要用于开发系统级别的应用或驱动程序,而C+语言则用在服务器、部分系统级别的底层开发(尤其是游戏服务器).之所以使用C+语言是因为C不适合大型项目或具有通用性和代码可高度可重用性的开发。国内外的web网站几乎都会用到程序连接访问数据库,而大量地访问数据库,会给应用程序带来很多负担,解决方案是除了使用memcached高性能的分布式缓存服务器外,可以在语言上做出选择。大部分数据库对于C/C+语言都提供了源码级别的支持,再加上C/C+程序执行效率高,这对于频繁访问数据库的web应
17、用是一个不错的选择。和前文提到的类似,由于web应用需要大量地访问数据库,可以考虑在服务器端部署memcached分布式缓存服务器以减少应用程序对数据库的访问次数,从而提高web动态应用的响应速度和可扩展性。本文主要是为了在C/C+开发高并发响应的web应用方面做出一些尝试。(一)环境简介整个考试系统涉及的开发语言、开发平台、运行平台、运行环境要求及限制、使用的技术手段的详细信息参见表11.表1-1系统环境汇总表开发语言 C+开发平台 Linux(Centos 6。6 64 bits)Web反向代理服务器 nginx数据库 mysqlWeb文档 Html 2。0 (=)缓存服务器 memcac
18、hed其他辅助开发工具 模板引擎、js/css fcgi后端服务器运行环境 任何unixlike的操作系统。本系统使用的是Centos 6。6.Web客户端运行环境 操作系统平台: Win all/Linux/Unixlike/Mac-OS浏览器: Google(推荐)、IE 、firefox 等主流浏览器。 (二)nginx简介Nginx (“engine x”) 最早是由俄国软件工程师Igor.Sysoev 采用C语言、Linux系统平台的epoll IO多路复用技术、kqueue网络IO模型编写的http web反向代理服务器。在高并发大数据量连接的场景下,nginx是Apache 非常
19、好的不二选择。并且具有效率高、稳定性好、高并发、负载均衡、内存、CPU等硬件资源消耗低的优点,以至于Nginx 在国内外众多的互联网门户网站的应用已经呈现出锐不可当之势.比如Facebook、腾讯3G下载、网易新闻、迅雷安全中心、新浪博客播客、酷六、豆瓣、六间房、水木社区、新华网RSS订阅频道等国内外知名的门户网站.Nginx在http代理和反向代理服务器方面的应用几乎会取代Apache(本文并没有任何诋毁和轻蔑Apache在行业中的地位,仅仅是个人的预测).同其他的http服务器和反向代理服务器一样,Nginx既可以响应静态页面请求(即http服务器),又可以响应动态页面请求(通过与后端服务
20、器fcgi或cgi交互,把数据返回给客户端浏览器).下面归纳总结了使用nginx相对于其他老牌服务器(Apache为例)的优缺点对比,参见表32。表1-2 各服务器优缺点对比nginxApache是否轻量级是(线程级别) 否,重量级(进程级别)静态页面处理能力约平均是Apache的3倍性能高并发性能nginx 处理请求是异步非阻塞的,因此支持高并发.Apache则是阻塞型的,高并发连接下会出现大量错误或拒绝客服端访问。资源消耗内存,CPU消耗低高并发下,资源消耗非常大是否支持负载均衡是否是否支持热部署是否Rewrite模块逊于Apacherewrite,比nginx 的rewrite 强大对动
21、态页面的响应不太好非常好因为,两者都支持http服务和反向代理、正向代理。又基于两者各自的优缺点,在一些应用场景下,已经考虑让nginx和Apache共存,以提供给客户端更优质的响应。在性能方面,Nginx是专门为性能优化而开发的,在实现上非常注重效率.Nginx在高并发连接和大量静态页面请求下,性能出众,稳定性好。基于效率优先的前提,本系统采用nginx作为http服务器和反向代理服务器.(三)cgi与f-cgi原理简介在说明FastCGI之前,先说说CGI的前世今生。CGI 即Common Gateway Interface公共网关接口。CGI后端服务器程序的原理是:每次当客户请求到来时(
22、即请求CGI),http服务器或反向代理服务器就会fork+exec生成替换一个新的CGI进程处理客户请求。当CGI执行完毕后,该CGI子进程将会被服务器进程kill掉。也就是说由服务器管理着处理客户请求的CGI子进程。显而易见,当高并发连接环境下,这样的工作模式是很受程序员诟病的。因为频繁地创建和销毁子进程将加大系统的开销和负担。FastCGI(即fcgi,后文将用fcgi简言之),本质上是对CGI的改进。其工作原理是将用于处理客户连接请求的子进程,即CGI解释器进程长期驻留于内存中并因此获得在性能上的提高。fcgi克服了CGI的弊病,CGI解释器的反复加载是CGI性能低下的主要原因,相反,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 在线 考试 系统 设计 实现 毕业论文
限制150内