[软件管理系统类精品]基于面向对象的在线考试系统.doc
《[软件管理系统类精品]基于面向对象的在线考试系统.doc》由会员分享,可在线阅读,更多相关《[软件管理系统类精品]基于面向对象的在线考试系统.doc(65页珍藏版)》请在三一办公上搜索。
1、摘要目前大多数在线考试系统都是采用结构化的分析和设计实现的,这样不免在代码的复用性和可读性方面有不足,而且全部的功能都是在服务器端实现的,在性能和用户体验方面也有欠缺。本系统采用了面向对象的分析和设计,整体上采用了三层架构的设计方式,并结合了Ajax技术在客户端实现部分逻辑,使用了NHibernate作为数据访问层,大大改善了代码的重用性和可读性并改善了用户体验和系统性能,而且简化了系统的开发。本系统实现了试题管理、根据知识点制定出题策略、根据出题策略随机抽题、考试计时、自动交卷、客观题自动阅卷、在线阅卷、查看分数等功能。关键字:三层架构;面向对象;NHibernate;Ajax;XSLTAb
2、stractRecently, most of Examination Systems are implemented with structural style design and analyse which is unavoidable to cause lack in codes reusability and readability. And their functions are implemented in server side. So they are also lack in the Users experience and performance. This system
3、 applied Object-Oriented analysis and design, and applied three layer architecture on the whole, and combines Ajax to realize some logic in the client side, and use NHibernate as data access layer. All above improves the codes reusability and readability, the users experience and the performance of
4、system. Also simplified the development of system. This system implemented question manage, making selecting strategy according knowledge, randomly selecting question according to selecting strategy, examination timing, automatic submitting paper, auto scoring for objective question, score online, c
5、heck score and other functions.Keywords:three layer architecture;OO;NHibernate;Ajax;XSLT目 录第1章 绪论11.1 系统的研究目的和意义11.2 系统的开发背景11.2.1开发工具和平台介绍11.2.2 NHibernate介绍11.2.3 XML,XSLT 生成xhtml介绍21.2.4 A和Jquery2第2章 需求分析32.1 需求说明32.2 用例说明32.3用例图4第3章 系统的总体设计53.1 系统的业务流程53.2系统的分层设计53.3系统的包的设计63.4 各层之间的依赖关系93.5 抽象工
6、厂和反射实现对数据访问层的依赖注入103.6 各层之间的交互103.7系统的领域模型113.8系统的数据库设计13第4章 在线考试系统详细设计和实现144.1信息管理的设计和实现144.2用户登陆和安全验证204.3 试题库的设计和实现254.4 试卷的设计和实现304.5 出题策略的设计和实现354.6 考试的设计和实现394.7 学生在线考试表示层的设计和实现434.8 改卷的设计和实现494.9 用户界面的设计和实现544.9.1 Div+Css布局544.9.2 可编辑的树形控件56第5章 总结61参考文献61致谢61第1章 绪论1.1 系统的研究目的和意义随着标准化考试的日益普及,在
7、各种考试中越来越多地采用了计算机考试的方式。相对于传统的卷面考试而言,由于传统的卷面考试从出题印刷到下发试卷等环节需要较长的时间,接触的人员相对较多,因而在保密方面具有一定的困难。而计算机考试系统采用试题库方式提供试题来源,考前无任何成套试卷,考试时考卷由计算机现场随机生成,各考生试卷不完全相同,从而避免了互相参看等作弊现象或不公平成绩的出现。目前国内在线考试系统多数都是基于asp、jsp等服务器端技术实现的。这就不免在保存答案时候要刷新考试页面和重新生成试卷。这种方式的考试系统使用起来给用户的体验非常的糟糕,而且效率不高。另外大多数的考试系统都是结构化的方式分析设计的。结构化的代码组织方式在
8、代码复用和代码可维护性方面显然不如面向对象的方式。所以本系统在考试模块的实现上利用了Ajax方式来保存答案。并在系统分析和设计上采用了面向对象的方式。 1.2 系统的开发背景1.2.1开发工具和平台介绍本系统采用了基于.net平台的A 2.0框架。使用到了A和 Jquery作为javascript类库。使用了基于XML和xslt的转换视图来显示html考试页面。使用了NHibernate作为数据访问层框架。开发工具主要是Visual Studio 2005。使用了Visual Source Safe 2005作为源代码和版本控制工具。数据库使用的是Sql Server 2005 Express
9、。单元测试工具使用的是NUnit。1.2.2 NHibernate介绍在企业应用开发中使用面向对象和关系数据库可能是一件非常笨重耗时的事情。NHibernate是一个针对.net平台的对象关系映射工具。NHibernate不仅可以映射.net 类到数据库表中。也提供了灵活的数据查询取回的功能。与使用sql和手工处理数据相比,有了NHibernate可以大大的减少开发时间。本系统的使用NHibernate做为数据访问层的框架,而不是直接使用ADO.NET。有NHibernate只需要编写映射文件。当使用NHibernate来做数据操作的时候NHibernate会自动生成sql语句来操作数据库的内
10、容。映射文件会告诉NHibernate将类保存到那个表,将那个属性保存到那个字段中。NHibernate处理了所有的数据持久化工作。我们就可以专注于对象的业务逻辑。这正是面向方面编程(AOP)所提倡的把系统的职责(方面)划分到不同的模块中。NHibernate就是封装了数据持久化的这方面的任务。这样在编写核心的业务逻辑类的时候就不用关心持久化的任务了。这让代码更加的清晰容易理解。也容易修改。1.2.3 XML,XSLT 生成xhtml介绍在表示层的经典架构MVC中 ,强调Model(模型)、View(视图)、Controller(控制器)三个角色的分离。这一框架已经得到了A的默认的支持。其中a
11、spx文件就是View,aspx.cs就是Controller ,领域类则是Model。按照Martin Flower的定义aspx算是模板视图,aspx.cs则是页面控制器。在开始设计试卷显示问题的时候,开始考虑的也是使用A 控件来生成试卷。但是试验发现由于多个试卷对象间嵌套比较复杂,将试卷绑定到控件上代码比较复杂和混乱。于是采用了另一种视图。转换视图。就是将试卷对象表示成 XML,然后用xslt将XML转换成xhtml再呈现给浏览器。这种视图使用起来比较直观。试卷对象先用XML 表示。然后通过xslt换成xhtml表示。这种方法还可以将试卷格式化成其它不同的表示,只要有不同的xslt转换就
12、行了。1.2.4 A和JqueryAjax是一种的改善web应用程序用户体验的技术。就是在浏览器中能够向后台向服务器发出异步请求,并根据返回内容不刷新页面而更新页面的技术。它是几个老技术的综合应用。包括Javascript、XML、XMLHttpRequest对象、DOM和CSS。Javascript则是将这几种技术粘合在一起的胶水。但是浏览器之间对Javascript、DOM、CSS的支持不一致。给Ajax编程带来了很大的难度。A和Jquery正是一个提供了跨浏览器的Javascript库。它们对Ajax的支持都差不多。但是A由于是微软自己的产品,所以它可以很好的和服务器端的技术集成。比如A
13、提供了客户端访问web服务的内置支持。Jquery 则是一个非常流行的Javascript库。它提供了非常简练操作DOM的功能。提供了非常方便获取DOM节点引用的选择器。选择器类似CSS中的选择器。链式表达式的应用也让代码更加简洁优雅。所以在系统中同时使用了这两个库。A主要用于和服务器端的通信。Jquery用来操作修改界面。相互取长补短。1.3 可行性分析 本系统属于数据信息管理系统类。用户对功能上的要求不是很复杂。加上有这么强大工具可框架支持。所以本系统十分可行。第2章 需求分析2.1 需求说明本系统统是一个基于bs结构的考试系统,它用来给学校提供无纸化考试的平台,利用本系统管理员可以管理建
14、设各个科目的试题库,并通过章节难度来组织试题。教师可以根据题库来指定考试策略。然后根据考试策略随机的生成试卷供学生考试。试卷的题型可以包括单选题,多选题,判断题,填空题,简答题5中基本题型。也可以是这五种题的组合题型。学生参加考试应包括基本的考场规则,比如,迟到多少分钟不能进入考场,不能提前交卷。每次考试可以允许多个班级参加,不属于参加班级的学生不能参加考试。每次考试指定一个考试策略,并根据考试策略为参加考试的学生生成试卷。考试时间到后不再允许交卷。考试结束后老师可以在线的批改试卷。客观题允许自动阅卷。学生可以在线查看自己的考试成绩!2.2 用例说明1. 管理班级:管理员登陆后可以添加,删除班
15、级。考试将要指定允许参加的班级,只要属于参加班级的学生才能参加考试。班级信息包括班级名称等信息。2. 管理教师信息:管理员登陆后可以添加修改教师信息。教师信息包括登陆名,密码等信息。将作为教师登陆验证的依据。3. 管理学生:管理员登陆后可以给班级添加学生信息,学生信息包括学号,姓名,密码等信息。密码初始为学号。学生登陆后可以修改自己信息。4. 管理题库:教师登陆后可以添加,修改,删除科目、章节、题目等信息。其中科目可以包括若干章节。科目章节是用来组织题库的。章节可以包括多个试题。试题有难度,内容,答案等信息。5. 制定出题策略:教师登陆后可以添加,删除,修改考试策略、考试题型、策略项等信息。考
16、试策略包括若干考试题型,考试题型包括多个策略项。策略项包括题目出题范围和分值,出题数等信息用来从指定题中随机抽取一定的题目。6. 建立考试:教师登陆后可以建立一次考试,考试信息包括考试的名称,开始时间,结束时间,参加班级,迟到时间,交卷时间,和一个考试策略等信息,在线考试时候将根据考试信息模拟真实的考场规则。7. 该卷子:教师登陆后选择学生的考卷,根据学生输入的答案和标准答案给学生的每个题打分。系统允许自动给客观题打分和合计总分。8. 参加考试:学生登陆后选择参加的考试。考试根据考试规则判断是否允许学生参加。如果允许将根据指定的考试策略为学生随机生成试卷。学生考试时候可以随时保存自己的试卷。如
17、何学生掉线重新登陆参加考试可以从上次保存后的试卷状态继续答卷。学生做完试卷可以交卷。如果交卷时间不到不允许交卷。如果考试结束也不允许交卷。9. 查看分数:学生输入学号和密码选择查看分数,系统显示所有学生所有考试的成绩单。10. 修改密码:所有用户登陆后都可以修改自己的登陆密码。2.3用例图图2-1 系统用例图第3章 系统的总体设计3.1 系统的业务流程根据用户需求,本系统业务流程的设计如图3-1。登陆管理员页面教师页面管理管理员管理学生管理教师管理班级添加考试制定出题策略管理题库管理科目学生页面批改试卷页面参加考试修改密码查看成绩单图3-1 系统业务流程图3.2系统的分层设计在软件体系架构设计
18、中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层、表示层。本系统也采用了这种分层的方式。下图3-2为本系统分层架构图。图3-2 系统架构图数据访问层:主要负责数据库的访问。简单的说就是实现对数据表的Select,Insert,Update, Delete的操作。在线考试考试系统的数据访问层中使用了NHbiernate作为OR映射工具。业务逻辑层:是整个系统的核心,它与这个系统的业务(领域)有关。在线考试的业务逻辑主要是关于考试规则的逻辑。比如考试迟到不能参加考试、不能提前交卷等。如果涉及到数据库的访问,则调用数据访问层。表示
19、层:是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。在线考试中,是利用A来设计的,因此包含了许多Web控件和相关逻辑。3.3系统的包的设计包在.net中对应的术语是命名空间。在线考试系统划分了三个大的命名空间,分别是Web(包括表示层的内容)、BLL(包括业务逻辑层的内容)和DAL包括了数据访问层的内容。其中BLL包括了5个子命名空间,分别是Domain、 DataInterface、Service、Utils和Exception。系统还使用了其他的外部类库,包括A,Jquery,NHibernate,Log4
20、Net等。图3-3是系统包图,展示了包之间的依赖关系。另外两个是工具类和自定义异常包,由于与核心设计关系不大图上没有说明。图3-3 系统包图下图3-4是vs解决方案中对应的项目组成。其中一个项目是个程序集。Test是个单元测试项目。图3-4 解决方案图Domain包含了所有的领域类和映射文件,比如Student、Question等。大部分为数据类,没有什么行为。如图3-5所示图3-5 领域包的文件组织图DataInterface包含了数据访问层的接口IDao、IDaoFactiory工厂接口和DaoManage。DaoManage是用来注入具体Dao工厂的简单工厂类,该类同时是访问Dao对象的
21、门面类。如图3-6图3-6 DataInterface包的文件组织图Service 包含的是对一个对业务层的简单封装的外观类,Service类本身没有任何业务逻辑。它总是将数据访问的职责委托给Dao对象。将业务逻辑委托给Domain对象。如图3-7。图3-7 Service包的文件组织图DAL包含了具体的数据Dao实现类和使用到的几个NHiernate帮助类。该包的Dao对象利用NHibernate实现了ExaminationSystem.BLL.DataInterface中定义的数据访问接口和Dao工厂接口.如图3-8所示。图3-8 DAL包文件组织图Web包含了表示层用到的Web页面和js
22、脚本、WebService、Css、xslt等内容。还有一些UI相关类和HttpModule 类。NhibernateSessionModule用来实现Open Session in View。SecurityModule用来实现安全检查。3.4 各层之间的依赖关系由于BLL层是整个系统的核心部分,所以表示层和数据访问层都应该依赖与BLL层。就是说要实现数据访问层对业务层的依赖倒置,这需要使用分离接口来实现。如图3-9所示,左图为业务层依赖数据访问层。右图为分离接口后倒置的依赖关系。图3-9 各层依赖图业务层和表示层的关系和以前的一样这里就不多介绍了。3.5 抽象工厂和反射实现对数据访问层的依
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件管理系统类精品 软件 管理 系统 精品 基于 面向 对象 在线 考试
链接地址:https://www.31ppt.com/p-2385732.html