摘要:
参考文献[1] CraigLarman. Applying UML and Patterns. 北京:机械工业出版社,2006.9[2] 李建忠. .net框架程序设计(修订版)[M]. 北京:清华大学出版社,2003.11[3] MatinFowler. UML精粹. 北京:清华大学出版社,2005.5[4]LarsPowers, MikeSnell. Microsoft Visual Stud... 阅读全文
摘要:
4.9.1Div+Css布局任何系统都要和最终的用户交互才能体现它的价值。在线考试系统也不例外。因为本系统是基于web的系统因此系统和用户交互的就是通过html来完成的。因为界面的设计需要布局和美化。下面我们介绍下本系统是如何利用div+css来给用户界面布局和美化的。下图4-19展示了系统的大致布局。图4-19 整体布局如图4.20所示。该布局分四大块。上面是标题显示部分。中间分两部分。左边是菜... 阅读全文
摘要:
在线考试系统提供了老师在线批阅试卷的功能。并提供了客观题的自动改卷功能。下面介绍一般的改卷功能是如何实现的。首先还是要把学生的Paper显示给老师。但是老师想看到的试卷和学生看到的试卷肯定是不同的。学生的试卷是不会有标准答案的。老师的试卷为了简单只想显示每个题目的标准答案和学生的答案。我们知道学生的Paper显示是通过将Paper的XML格式转换成html来实现的。老师的当然也是了。用一个Pape... 阅读全文
摘要:
因为在线考试必须在Web上进行而不是在本地进行。所以要想学生能在浏览器里进行考试必须将Paper对象转换成html格式才行。除了这个还有一些问题。那就是如何让学生能够在考试期间保存试卷和提交试卷。前面提到了本系统不是通过Asp.net控件来绑定试题的。而是通过将Paper对象转换成XML格式,再通过xslt转换成html的。这样可以方便地生成想要的html但是却无法利用Asp.net视图状态在浏览... 阅读全文
摘要:
有了出题策略和试卷就可以进行考试了。下面用类图4-16说明考试模块的主要类。图4-16 考试模块类图该图描述了考试相关的属性和方法。首先看看Examinatinon类。该类表示一次考试。考试有开始时间StartTime、结束时间EndTime、迟到时间LateMinutes。迟到的学生不准参加考试。PermitSubmitMinutes表示允许交卷的最迟时间。IsStudentLate方法判断学生... 阅读全文
摘要:
在线考试系统提供了根据教师制定的出题策略随机生成试卷的功能。下面看看出题策略部分的详细类图4-15 图4-15 出题策略模块类图可以看出该部分和试卷部分的类图有些相似。这里PaperStrategy和Paper类对应。PaperStrategy(出题策略)是用来生成Paper的。StrategyContainer是用来生成QuestionContainer的。而StrategyItem(策略项)是... 阅读全文
摘要:
前面介绍了题库的实现。有了题库就可以出题考试了。下面介绍试卷部分的设计和实现。首先看下这部分的详细类图4-13。图4-13 试卷模块类图首先Question对象包含分值、得分、学生答案和一个表示是否批改过的IsScored属性。并有一个对QuestionContent的引用。Questioin对象代表了某学生一张试卷上的一道题。QuestionContainer类表示的是试卷上的一个大题。比如单选... 阅读全文
摘要:
试题管理是整个系统的核心。为了尽量的从逻辑上组织试题和尽量的减少数据冗余。在线考试系统把领域对象划分地非常细。下图4-7说明了试题库相关领域类的设计图4-7 试题库模块类图这些领域类最终都要保存到数据库表里。为了方便管理将所有QuestionContent类的所有子类全部保存到QuestionContent表中。并用Type字段来区分不同的题型。Choice侧以XML的格式保存到Choices字段... 阅读全文
摘要:
在线考试系统总共包括三种用户(学生、教师、管理员)。他们分别有自己的操作权限。而这些操作分别包含在不同的页面中。为了简单的划分。系统将三种用户的操作页面分别放到了不同的路径下。下图4-5是三个用户各自的文件夹内容。图4-5 不同用户的文件组织类图因为每个用户都不能访问其他用户的页面。所以我们除了要检查用户的登陆还要检查用户的权限,看是否允许用户访问特定的页面。首先介绍下用户登陆的设计和实现。下图4... 阅读全文
摘要:
对领域类的添加、删除、修改是每个系统的主要任务。下面介绍系统是如何在实现这些操作,以及如何利用泛型来减少重复代码。根据前面说到的业务层和数据访问层的关系。要添加,删除,修改信息,必需先在业务层定义业务层用到的数据访问层接口。比如要操作Student、Teacher对象,应该在业务层定义两个Dao接口。IStudentDao、ITeacherDao.下图4-1说明了这两个Dao接口的部分持久化操作的... 阅读全文