题库管理系统设计文档
高校试题库管理系统分析初步设计

高校试题库管理系统分析及初步设计摘要:本文采用sql server2000数据库管理系统,以 开发工具为技术平台,系统集试题管理和试卷组题等功能为一体,实现试题的维护和试卷有效组成。
教师可对试题查询、增加、删除和修改,选择手动或自动方式进行组卷。
可以便捷地对试卷库中的试题进行管理,按要求生成试卷以及对试卷质量做综合评价,每套试卷都具有结构合理性和全面性。
关键词:管理信息系统;试题库;组卷计算机网络、多媒体与现代软件开发等计算机技术的发展,大大地促进了试题库的发展,声、像等多媒体技术的应用,使得它已逐步深入到教学的各个环节。
国外各个大学都设计自己的试题库系统以减轻老师的工作压力并节省教学时间。
由于技术与基础条件的差距,国内各大学的试题库的实际使用起步较慢[1]。
为适应教学发展,改革教学模式,考试制度和形式的改变也在同步进行,试题库系统应运而生。
高校试题库建设是现代化教育的需要,是提高办学效益、实行标准化考试的需要。
从组织出卷到试卷的印制及试卷的管理等工作非常繁琐,工作量很大,而且试卷的标准化程度、难易程度、题量大小等各方面难以控制。
随着国家教育信息的高速化发展,利用网络进行教学和研究将是一个新的发展趋势,而在线考试的发展又必须建立在强大的试题库基础上。
一、技术介绍专业课试题库系统拟采用编程语言是在visual studio上运行的。
是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术。
专业课试题库系统采用的是sql server 2000做为数据库的支持。
sql server 2000是一个关系数据库管理系统,它提供的功能非常强大,不仅包括一般数据库管理系统中都有的sql语言查询外,而且支持数据的完整性和约束 [2]。
在实际编程中开发人员还可以结合查询分析器,对以编写的程序代码进行正确性分析。
iis是微软公司主推的服务器,iis与windows nt server完全集成在一起,因而用户能够利用windows nt server和ntfs内置的安全特性,建立强大,灵活而安全的internet和intranet站点。
核电厂操纵员考试题库管理系统设计

产业科技创新 Industrial Technology Innovation58Vol.2 No.15产业科技创新 2020,2(15):58~59Industrial Technology Innovation 核电厂操纵员考试题库管理系统设计罗 鸣,陈雨翔,陈 蓄(中核霞浦核电有限公司,福建 宁德 355100)摘要:根据核电厂运行人员操纵员考试的考核需求,针对目前运行人员在备考阶段面临的试题题量大,知识涵盖面广、学习任务繁重等问题,参考了同类考试软件系统的设计经验,开发了一套专门为核电厂运行人员服务的题库管理系统。
本系统通过将题库电子化管理、借由用户模拟考试、用户错题集管理等功能模块为运行人员提供一种简单可行且高效的学习办法,使运行人员在取照考试备考过程中可以提高对题库的熟悉程度,加深记忆理解,缩短备考时间,提高学习效率,从而达到事半功倍的效果。
关键词:运行人员;操纵员考试;笔试题库;管理系统中图分类号:TP311.52 文献标志码:A 文章编号:2096-6164(2020)15-0058-02随着我国对能源需求的提升,核能行业的发展逐渐步入快车道。
核电厂的安全运行离不开高素质的运行人员,培养高素质的运行人员也越来越重视,考试难度也越来越高。
目前核电厂操纵人员考试分为笔试,口试和实操三部分,笔试题量大,涵盖面广,共涉及反应堆基础理论、核电厂系统组成、核电厂仪表控制以及核电厂法律法规四个部分,每部分题目有各电厂规定的合格分数,而总分必须达到80分以上才能通过考试。
目前取照人员在笔试考核过程中遇到的问题有以下两点:1)笔试题量大,题库题目总量一般多达2 000道以上,甚至某一部分的题量就达上千道之多,要对上千题目理解背诵,这对取照人员是个不小的挑战。
2)笔试题涵盖面广,取照人员在记忆过程容易出现题目记忆不牢,知识点混淆,往往在考试过程中文不对题,卯不对榫。
以上两点导致是导致运行人员在对操纵员题库学习过程中学习进度缓慢,无法有效掌握相关知识点的主要原因,如果是仅靠死记硬背很容易遗忘,不能巩固理解,常常答非所问。
题库管理系统课程设计

题库管理系统课程设计一、课程目标知识目标:1. 让学生理解题库管理系统的基本概念,掌握其功能与作用;2. 使学生掌握数据库的基本操作,如创建、查询、更新和删除数据;3. 帮助学生了解数据库设计原则,学会设计简单的题库表结构。
技能目标:1. 培养学生运用所学知识,独立完成题库管理系统的设计与实施;2. 提高学生解决问题的能力,使其能够针对实际问题进行需求分析和系统设计;3. 培养学生的团队协作能力,通过小组合作完成题库管理系统的开发。
情感态度价值观目标:1. 激发学生对计算机科学的兴趣,培养其主动学习的积极性;2. 培养学生的创新意识,使其敢于尝试新方法,解决问题;3. 培养学生具备良好的信息素养,遵守网络道德规范,尊重他人知识产权。
本课程针对高年级学生,结合学科特点和教学要求,注重理论与实践相结合,培养学生具备实际操作能力和团队合作精神。
通过本课程的学习,学生将能够掌握题库管理系统的相关知识,提高自身技能,并形成正确的情感态度价值观。
教学过程中,将根据课程目标分解具体学习成果,以便进行教学设计和评估。
二、教学内容1. 数据库基础知识:介绍数据库的基本概念、类型、特点及应用场景,以教材第一章内容为基础,帮助学生建立数据库的基本认识。
2. 关系型数据库:讲解关系型数据库的原理、设计方法,结合教材第二章,使学生掌握表结构设计、数据完整性约束等知识。
3. SQL语言:教授SQL语言的基本语法,包括查询、插入、更新和删除数据,以教材第三章内容为参考,让学生熟练掌握数据库操作。
4. 题库管理系统需求分析:分析题库管理系统的功能需求,引导学生了解实际项目开发过程中的需求分析方法,参考教材第四章内容。
5. 数据库设计:讲解数据库设计原则,以题库管理系统为例,让学生学会设计简单的数据库表结构,结合教材第五章内容。
6. 题库管理系统的实现:根据教材第六章内容,教授如何使用数据库技术实现题库管理系统的功能,包括数据存储、查询和界面设计等。
试题库管理系统

试题库管理系统1:系统概述1.1 背景试题库管理系统是为教育机构和培训机构等提供试题管理、组卷、考试等功能的软件系统。
通过该系统,用户可以方便地管理试题库、自动试卷,并进行在线考试。
1.2 目标试题库管理系统的目标是提高教学和考试的效率,简化试题和试卷管理的流程,并提供稳定可靠的在线考试服务。
1.3 功能- 试题管理:包括试题录入、试题分类、试题检索等功能。
- 试卷管理:包括试卷组卷、试卷审核、试卷发布等功能。
- 考试管理:包括考试安排、考试监控、成绩统计等功能。
- 用户管理:包括教师管理、学生管理、权限管理等功能。
2:系统架构2.1 技术选型- 前端技术:、CSS、JavaScript- 后端技术:Java、Spring框架、MySQL数据库- 设计模式:MVC架构2.2 系统组成- 前端页面:包括试题管理页面、试卷管理页面、考试管理页面、用户管理页面等。
- 后端服务:包括试题管理服务、试卷管理服务、考试管理服务、用户管理服务等。
- 数据库:存储试题、试卷、考试信息等数据。
3:功能详细说明3.1 试题管理3.1.1 试题录入教师可以通过该功能录入试题,并填写试题的题目、选项、答案等信息。
3.1.2 试题分类教师可以将试题按照学科、章节等分类进行管理,方便后续的试题检索和试卷组卷。
3.1.3 试题检索教师可以根据试题的关键词、学科、章节等信息进行试题检索,以便快速找到需要的试题。
3.2 试卷管理3.2.1 试卷组卷教师可以根据需求,从试题库中选择试题进行组卷,自动试卷,并进行相应的格式排版。
3.2.2 试卷审核管理员可以对教师组卷的试卷进行审核,确保试卷的合规性和质量。
3.2.3 试卷发布管理员可以将审核通过的试卷发布到系统中,供学生参加考试。
3.3 考试管理3.3.1 考试安排管理员可以根据需要,安排考试的时间、地点等信息,并通知相关教师和学生。
3.3.2 考试监控系统提供考试监控功能,教师可以实时监控学生的考试情况,包括答题情况、考试时间等。
试题库管理系统的设计与实现

试题库管理系统的设计与实现试题库管理系统是一种能够解决试题管理难题的软件系统,它能够管理各类试题,如选择题、填空题、判断题等等。
下面是该系统的设计和实现。
1. 系统需求分析试题库管理系统的需求分析包括功能需求和非功能需求两方面。
功能需求包括试题录入、试题编辑、试题查询、试题删除、试题导入和导出等功能。
非功能需求包括系统可靠性、系统安全性、系统易用性等。
2. 系统架构设计试题库管理系统的架构设计包括前端界面设计和后端数据库设计两方面。
前端界面采用网页形式,用户可以通过各种设备访问该系统。
后端数据库采用关系型数据库,如MySQL等,数据表包括试题、用户、试题分类等表。
3. 系统模块设计试题库管理系统的功能模块包括试题录入、试题编辑、试题查询、试题删除、试题导入和导出等模块。
其中,试题导入和导出模块具有批量操作的功能,可一次性导入或导出多个试题。
4. 系统数据流程设计试题库管理系统的数据流程包括试题录入流程、试题编辑流程、试题查询流程、试题删除流程、试题导入流程和试题导出流程等。
其中,试题录入流程包括输入试题内容、审核试题内容和保存试题内容等步骤。
5. 系统测试和上线试题库管理系统的测试分为单元测试、集成测试和系统测试三个阶段。
单元测试检查各个模块的代码是否符合规范;集成测试检查各模块之间的集成是否正常;系统测试模拟用户使用该系统的场景,检查系统是否完整;上线后需要进行一定时间的排错和维护。
以上就是试题库管理系统的设计和实现,通过科学的设计和规范的开发流程,可以确保该系统能够满足用户需求,具有高可用性和安全性。
题库管理系统-需求分析

需求分析报告目录1.引言1.1编写目的编写本文档的目的是根据系统分析设计人员和客户沟通的结果,对用户需求进行了全面细致的分析,深入描述《题库管理系统》软件的功能和性能与界面,确定该软件设计的限制和定义软件的其他有效性需求。
1.2项目背景题库管理系统作为现代化教学手段的必要组成部分,其主要使用范围为各学科的习题管理。
题库管理系统软件是一套功能较为完善的数据管理软件,对习题的管理具有较好的分类处理功能,能够完善习题种类,并具有相当强的组卷能力。
该软件采用功能强大的数据库软件开发工具进行开发,具有很好的可移植性,可在应用范围较广的WINDOWS系列操作系统上使用。
除此以外,可通过访问权限控制以及数据备份功能,确保数据的安全性。
2.任务概述2.1目标题库管理系统作为现代化教学手段的必要组成部分,其主要目标为(1).用户管理:①.管理员要为每个课程负责人、学生建立账户,并进行用户的身份验证。
②.课程负责人权限包括增加试题、删除试题、修改试题、查询试题和试卷。
③.学生权限为查看试卷及其答案。
(2).试题管理:①.课程负责人可以按章节、知识点与难度进行试题的输入与维护(包括增加试题,删除试题,修改试题,查询试题)。
②.管理员对试题的删除进行重复验证。
(3).试卷管理:①.课程负责人可以向系统提出要求(按章节、知识点与难度设定习题数目),生成小测验,并可以对测验进行管理。
②.系统通过生成的试卷,给出试卷答案。
(4).数据库备份管理:①.管理员进行数据库的备份和维护(恢复)。
2.2运行环境操作系统:Microsoft Windows 2005 Server 和Microsoft Windows XP等支持环境:Microsoft VS 2008数据库:Microsoft SQL Server 20052.3数据库定义学生表(student)学号stu_no姓名stu_name密码stu_pwd专业stu_discipline年级stu_grade课程负责人表(teacher)工号tea_no密码tea_pwd姓名tea_name专业tea_discipline邮箱tea_mail管理员表(manager)账号mana_no姓名mana_name密码mana_pwd习题表(problem)编号pro_no题目pro_detail习题答案编号pro_ansno关键字pro_keyw难度系数pro_dif所属章节编号cha_no所属章节标题cha_title所属章节要点cha_mpiont习题类型pro_type试卷表(test):试题编号tst_no试题名称tst_name生成时间tst_time试题类型tst_type试题难度tst_dif试题数量tst_num试题分数tst_score试题内容tst_detail答案(answer):答案编号ans_no答案内容ans_detail答案对应习题编号pro_no3.功能介绍1.总体功能该软件具有如下主要功能:1.登陆验证功能;2.浏览功能;3.查询功能;4.插入功能;5.修改功能;6.删除功能;7.组卷功能8.试题管理9.试卷管理10.题库管理11.用户管理2. 功能详述1.登录验证功能:管理员通过将用户输入帐号密码与系统中存储的内容进行比对,进行用户登录信息验证2.浏览功能:列出所选课程习题类型;点击习题类型,列出相应章节信息;点击章节信息,列出该类型该章节的所有知识点设置导出按钮,可导出试题3.查询功能:用户可通过关键字查找相应习题;4.插入功能:课程负责人插入一条新的习题信息记录;5.修改功能:修改某一已存在的记录内容,提供确认机制6.删除功能:删除一个记录,提供确认机制;7.组卷功能课程负责人通过选择各类型习题,确定习题数量,系统形成试卷;学生通过点击试卷进行浏览试卷和查看答案;8.试题管理(1)能实现试题录入输入内容:将试题的题目和答案内容,包括文字、图片及表格等通过键盘输入到试题编辑框,当然一般情况下最为便捷的方法是将试题内容直接从其它程序如Word等拷贝到试题编辑框。
通用试题库管理系统需求规格说明书2

通用试题库管理系统需求规格说明书一编写目的:在编写通用试题库管理系统之前,对同类型产品的市场进行了前期调查,与多位软件设计者和使用者进行了探讨和分析,之后由软件项目小组向系统分析人员与软件设计人员提出了这分需求规格说明书.该需求规格说明书对通用试题库管理系统软件进行了全面细致的用户需求分析,明确所要开发的软件应具有的功能,性能与界面.该需求规格说明书供概要设计人员阅读. 二目标:软件需求规格说明书描述了“试题库管理系统”软件功能性需求和非功能性需求。
项目开发团队成员根据这一文档来实现和验证系统的正确功能。
在本文档中所指的需求都具有高优先级(除非在其他地方另有说明),而且都必须在本系统中加以实现。
三数据描述:1 静态数据:通用试题库管理系统的静态数据包括以下内容:试卷:试卷题型,试卷答案。
读者:读者姓名,ID,联系方式。
管理员:口令,姓名。
试题访问记录;访问日期。
2 动态数据:输入数据:查询方式、查询关键字。
登记新图书、新读者。
操作权限密码。
输出数据:查询出的记录集。
统计资料输出文件。
四数据库描述:数据库采用Microsoft Access数据库。
1数据流图:2 数据字典;数据源点及汇点描述。
·名称:读者。
简要描述:浏览、查询、及登记注册。
有关数据流;登记ID,所浏览试卷。
·名称:日历。
简要描述:当日日期。
有关数据流:年月日。
·数据流名:试卷。
说明:记录试卷的主要相关信息。
数据流来源:读者。
数据流去向:下载。
数据流组成:试卷=卷号+卷名+出题者+状态。
卷号=“00000001”..“99999999”卷名=2{字母}24出题者=2{字母}24状态=1{字母}·数据流名:访问记录信息。
说明用于记录读者浏览信息。
数据流来源:访问记录,登记。
数据流去向:下载。
数据流组成:访问记录=卷号+下载ID+下载日期下载日期=日期实体联系图(ERD):“试题库管理系统”的部分数据模型,它描绘了系统中数据之间的关系。
(完整版)数据库课程设计-试题库管理系统

《数据库系统概论》课程设计实验报告题目试题库管理系统学院商学院专业信息管理与信息系班级信息101学号201052275130学生姓名杨贵文同组成员周杭施建炉王于宾指导教师宣军英编写日期2012-06-19——2012-06-29一、课题名称:试题库管理系统二、课题要求:结合所学知识,开发一个简易的试题库管理系统。
三、实验目的:结合本学期所学知识,使学生温故而知新,并在实践操作上增加对数据库系统设计的认识和理解。
四、实验步骤:五、1、需求分析2、概念结构设计3、逻辑结构设计4、物理结构设计5、数据库实施6、数据库运行和维护六、课程开发内容:5.1 需求分析5.1.1 系统调查对现行的试题库管理业务进行了详细的调查和研究是了解系统需求和进行系统分析和设计的重要基础工作,因此要对我们的试题库管理工作进行全面的细致的调查研究。
首先与相关的老师进行了交流和沟通,了解他们对试题库管理的看法,看看有没有什么新的要求,在这个基础上,结合自身所掌握的知识水平,量力而行开发相应的试题库管理系统。
在调查中我们可以发现,高校的试题库是极其庞大的,如果没有一个智能的系统将人们从手工阶段解放出来,那么一个庞大的、完整的试题库是无法有效运行的,甚至出题的老师也无法有效、准确地在试题库中抽取自己所需要的试题,这等于说是一个没有实际运用价值的试题库。
所以说,他们对希望有这样的一个可以详细地表示试题属性的这样的一个试题库。
那么今天我们就围绕着这样的一个目标展开我们的工作。
5.1.2 用户需求要设计一个性能良好的管理系统,明确用户的应用环境对系统的要求是首要的和基本的。
本系统从以下四个方面对用户需求进行了分析:1)用户的需求信息:出题老师可以看到题目所属的类型和题目所考察的内容以及试题的分值和难度等级。
当然这个权限也给管理员和系主任。
2)用户的处理要求:管理员可以对试题库进行插入和删除操作,出题老师可以凭借自己自定义的选题要求在试题库中选择自己需求的试题,这个权限也对系主任开放。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(此文档为word格式,下载后您可任意编辑修改!)华南农业大学软件开发技术实践课程设计实验报告小组成员:教师:林毅申提交日期: 2013年11月30日华南农业大学信息学院课程设计1、基本信息1.1 小组基本信息1.2 项目基本信息这次我们小组开发的是一个面向一所大学内的任课老师以及在校学生的题库管理系统。
作为数字化校园的一部分,该系统的主要的功能包括为教师用户提供的查阅题库,新组试卷功能和面向学生的在线考试功能。
题库分为两部分,一部分是之前教师利用组卷功能得到并保存的试卷,一部分是不同类型的题目。
题目范围为学校内各门课程期末考试的试题,包括公共基础课以及各学院开设的不同课程。
题目不仅包括普通的文字类题目,还包括一些包含复杂元素如图片,特殊公式等的题目,做到基本兼容现在学校内能看到的题目。
考虑到小组成员的技术水平以及项目的实际需要,该系统是采用C/S模式。
为提高效能,服务器方面采用IOCP模型,客户端采用WPF技术来改善Winform在界面上的劣势。
1.3 项目技术信息2、系统架构图注:实线表示数据传输方向,虚线表示模块间调用关系,由被调用者指向调用者服务器程序:数据加密模块:采用一种加密算法,(具体哪种算法等系统实现时,再进行确定),将即将发送的数据进行加密。
保证数据再传输过程中的安全性。
与客户端中的数据加密模块原理一样。
数据解密模块:采用与加密算法相对应的解密算法,将接受到数据,进行解密,还原得到原始的数据。
与客户端中的数据解密模块原理一样。
消息队列:为了能实现同时让尽量多的客户连接到服务器,所以不使用一线程处理一客户模型的服务器。
这里的消息队列是将所有用户对服务器的各种请求按照先进先出的规则排列起来。
等待处理。
如果实现是使用windows io完成端口和对应的SOCKET进行绑定,这个消息队列是由系统生成和维护的。
工作者线程池:线程池用于维护和管理服务器中所有以工作者身份存在的线程,工作者线程就是用来处理客户请求的线程。
线程池的线程会互斥的到消息队列中取出对应的客户请求进行处理。
没有请求时候,所有线程都处于阻塞状态等待消息队列中出现客户请求。
当工作者线程获得客户请求的时候会按顺序去调用数据解密模块,数据传输格式解析模块,业务逻辑处理模块,加密发送数据模块。
数据传输格式解析模块:数据在网络传输的过程中,我们给它规定特定的格式。
通过该模块,服务器可以清楚的知道,客户需要服务器为他实现哪些功能。
但是这里解析的数据需要通过解密之后,才能解析。
对应的客户端想要与服务器进行交互,就需要使用这个特定的格式发送数据。
业务逻辑处理模块:这个模块就是服务器具体工作的模块,模块中包含服务器能够为客户端提供的所有服务。
工作者线程通过解析数据格式,知道客户的需求,再从这个模块中调用指定的服务。
这个模块也是直接和数据库进行交互的模块。
数据发送加密模块:业务逻辑模块处理完客户的请求的服务之后,需要为客户返回处理后的结果。
可能是简单的操作成功和失败的返回结果,也可能是直接数据的传输。
和加密模块结合在一起,说明数据发送前需要进行加密。
数据库模块:采用sql server做数据库管理,技术实现面向业务层的接口。
3、系统功能客户端:学生:在这个题库管理中心中,我们设定的学生功能有查看试卷、导出试卷和在线考试并评分。
查看试卷:学生可以查看不同科目的试卷,选择科目时需要先选择科目分类、学院等上级目录,试卷包括历年考试卷和各学科老师自己组合试题的模拟卷。
导出试卷:学生查看了试卷之后如果需要带出,可以选择导出试卷,导出的试卷根据学生选择存储位置以WORD文档存储。
老师:老师可以使用的功能包括:查看题目、组卷。
组卷分为按要求自动组卷和手动组卷两个部分。
查看题目:跟学生的一样,首先选择科目分类、学院等目录,选择了科目之后还需要选择章节和知识点、或者选择某一套题(具体的操作在编码时确定),进入单个题目可以看到题目分类、难易度、内容和答案,还可以把该题目加入到组卷区里(类似网络购物加入购物车的形式)。
组卷:自动组卷:老师选择科目、难易度,填入试卷总分和考试时间,选择题数目和选择题总分,填空题数目和填空题总分,客观题视科目需要而定,可以选择简答题、计算题、材料分析题等题型,最后各题总分要跟试卷总分相同,全部填写好之后就可以进行自动组卷,组卷成功之后老师看是否满意,不满意可以重来或者可以留下某一些需要的题其他题目随机加入。
数据传输:用户进行操作需要读取数据的时候发出命令传给服务器,服务器传过来的数据接受后给用户看。
服务器:提取数据:根据客户端传来的命令来进行数据库的读取,读取后给传输模块。
数据传输:数据提取出来之后,经过格式化以后再进行加密,之后就可以传输给客户端进行解密并呈现给用户。
4、数据库设计PDM图数据字典清单表名:QB_ACCOUNTS 解释:用户信息表表名:QB_CHAPTERS 解释:章节信息表表名:QB_COLLEGES 解释:学院信息表表名:QB_COURSES 解释:课程信息表表名:QB_ORIGIN 解释:题目来源表表名:QB_PAPERS 解释:试题信息表表名:QB_POINTS 解释:知识点信息表表名:QB_PUBLICKINDS 解释:公共课信息表表名:QB_QUESTIONS 解释:题目信息表表名:QB_STUDENTS 解释:学生信息表表名:QB_TEACHERS 解释:教师信息表5、程序结构整个系统的数据流大致如上图。
用户在客户端上进行操作时,某些需要用到数据库里的数据的操作,客户端就会编写对应的命令编号以及相应的参数,转换成字节流,经过加密发送到服务器。
服务器收到之后经过解密,并且转换回字符串,可以得到相应的命令和参数,根据这个可以进行对应的操作,操作之后返回的是一个布尔值的字符串或者整型数组、字符串数组、题目数组,转换为字节流之后发送给客户端,跟服务器一样接收之后解密转换得到原有的数组或字符串,再分别绑定到对应的控件上。
这是一次完整的客户端和服务器之间的数据传输。
Client:客户端类,与服务器传输的代码。
Parse:服务器返回的数据的转换。
Paper:试卷的类。
Questios:题目的类,里面有选择题、填空题、简答题继承题目类。
SecuritySystem:加密解密。
Download:下载文件,利用Tomcat进行传输。
Login:登录Page。
MainWindow:主界面,Grid加载Login。
SelectCourse:选择科目的Page。
Look:查看题目或试卷的Page。
AutoPaper:自动组卷的窗口。
QLMain、QLMainStu:老师、学生的界面,加载科目和查看的Page。
Detail:题目详情窗口。
PaperDetailxaml:试卷详情窗口。
BufferManager:缓冲区管理器。
SecuritySystem:加密解密。
Paper:试卷的类。
Questios:题目的类,里面有选择题、填空题、简答题继承题目类。
Parser:客户端发送的数据的转换。
Server:服务器类,与服务器传输的代码。
Function:跟数据库打交道,利用SQL语句取数据。
Database:数据库打开、链接等基本操作。
SocketAsyncEventArgsPool:管理栈。
AsyncUserToken:记录客户端信息的类。
Program:程序入口。
6、关键功能及代码实现6.1多并发量的实现为了实现尽量多的并发量,一般不会使用阻塞的socket模型去编写服务器。
因为阻塞的socket操作,需要大量的线程,才能让每个客户都能及时的得到响应,因此cpu在进行频繁的线程切换的过程就浪费了不少cpu的资源。
所以必须要选择一个异步的socket模型,在windows中,IOCP(完成端口)是最适合用来实现网络服务器的,所以就选择IOCP。
在.net的平台中MSDN中对SocketAsyncEventArgs 的描述是:”SocketAsyncEventArgs 类就是这一组增强功能的一部分。
该类专为需要高性能的网络服务器应用程序而设计。
应用程序可以完全使用增强的异步模式,也可以仅仅在目标热点区域(例如,在接收大量数据时)使用此模式。
”所以这次实现选择了SocketAsyncEventArgs 类来实现服务器。
具体会有以下几个方面的实现6.1.1 实现 SocketAsyncEventArgsPool (SocketAsyncEventArgs 对象池)这个对象池用于存放SocketAsyncEventArgs 对象。
对象池中的对象都是预先分配的,而且也是可重用的,当有客户连接的时候,就在对象池中给客户取出一个对象使用。
当客户退出时就回收客户使用的SocketAsyncEventArgs 对象,放回对象池当中,使用这个对象池的好处是在服务器运行阶段,减少了对象申请释放的操作。
对于多客户的连接中,就需要多次分配。
也为服务器运行的过程节省一些cpu时间。
主要代码如下,简单的实现对象池的效果,实际上就是用栈来管理对象using System;using System.Collections.Generic;using System.Linq;using System.Text;using .Sockets;namespace Server_{class SocketAsyncEventArgsPool{// SocketAsyncEventArgs 管理栈private Stack<SocketAsyncEventArgs> pool_;public SocketAsyncEventArgsPool(int capacity){pool_ = new Stack<SocketAsyncEventArgs>(capacity);}// 回收没用的SocketAsyncEventArgspublic void Push(SocketAsyncEventArgs item){if (item == null){throw new ArgumentNullException("Items added to a SocketAsyncEventArgsPool cannot be null");}lock (pool_){pool_.Push(item);}}// 分配SocketAsyncEventArgspublic SocketAsyncEventArgs Pop(){lock (pool_){return pool_.Pop();}}// 返回可用SocketAsyncEventArgs的个数public int Count{get { return pool_.Count; }}}}6.1.2 实现缓冲区管理(BufferManager类)自定义的一个类,因为在每一个SocketAsyncEventArgs对象中,都必须为其指定一个缓冲区。