总体需求
- 在线组卷功能
- 审核功能
- 日志功能
- 试卷编辑功能
- 组卷算法
- 试卷的导入导出功能
- …
需求分析
一、选定基本框架
由于本系统是多用户、多视图、基于网页呈现的,因此,对数据对象的传输很频繁。
故选定MVC4作为后端框架,并以jQuery为前端框架。其中,MVC框架的设计便于快速开发。
以Entity Framework及LINQ实现ORM,做到不用手写SQL代码。
二、确定基本功能
基于需求,可归纳出以下功能:
- 用户管理
- 用户组管理
- 试题管理
- 试卷管理
- 出卷
- 日志查看
- 试卷导出
- …
设计与实现
一、实现基本功能的思路
ORM方面,将基本功能如用户、用户组等,实体化为ER图,建立联系,代入Entity Framework中,交给程序处理。CURD时,利用EF的LINQ功能实现。
前后端同步方面,运用MVC的Razor渲染工具,并做一定扩展,嵌入页面跳转代码,进而用Model绑定前后端。
导出成Word利用库Aspose实现。
审核功能,则将用户操作映射成修改标志位,审核即置标志位为有效,此为“假删”功能。
权限管理,利用MVC自带的Authorize特性。
核心功能,出卷。将试题依照其难度1-10分成3个等级,用户输入简单、中等、难,即为确定这3个等级的所占比例,最后按比例随机抽题,不足则以其他补上。
二、具体功能实现
数据库建立是以代码插入的。
详见https://github.com/bajdcc/AutoGenPaper