一个cs架构的在线考试系统

简介: --------------------------------------------------------------------------------------------------------- 注意:在这个例子里我采用了拼SQL语句的方法,因此是不安全的,无法抵御SQL注入式攻击。
+关注继续查看

---------------------------------------------------------------------------------------------------------

注意:在这个例子里我采用了拼SQL语句的方法,因此是不安全的,无法抵御SQL注入式攻击。!有时间再改进吧。

                       ——hoodlum1980           2008年10月7日12:32:14

---------------------------------------------------------------------------------------------------------

最近很多人讨论数据库和面向对象,使我想起这个我在暑假里帮别人做的在线考试系统,由于需求中提到要提醒考生时间快到了,而我考虑bs不好控制(并且不熟),所以采用了是cs架构。数据库拟采用的是sqlserver,但考虑到为了演示时部署方便,我也添加了使用access数据库的接口(仅用于演示)。

其他需求还有随机抽取题目组成一张试卷。题目的重要属性有题干,选项,答案,难度,相关章节等。考试的属性有难度,时间等。系统角色有学生,教师,管理员。
试卷的属性有所有题目ID字符串,正确答案字符串,用户答案字符串,所得分数等。

我希望用最快速度把它写出来,基本功能我写了4天以后可以在我本机上演示了。由于很多属于数据库操作,所以写起来很烦琐。。。
核心的逻辑主要是随机抽取试题,这里我使用了在程序用random函数。当然在sql语句里面也可以用newid()生成一个随机顺序。需求中要求题目涉及面均衡,我使用把所有题目按照相关章节的顺序排列,然后在里面随机抽取来实现。因此试卷的章节分布和题库的章节比例相一致。但这样可能并不一定是真正的需求,另外一种选择是尽可能使不同章节的题目数量相同。

时间提醒,由于考试时处于紧张状态,显然不希望受到干扰,所以为了不妨碍考生答题,但又能醒目的提供提醒,我引入了一个模仿msn提醒的浮出窗口(它是来源于codeproject.com上的源码)。

程序截图:


教师的登录后界面:


在系统中使用了一些UserControl页面,例如题目页面,每次装载不同题目。用户选择的答案是一个字符,如果用户已经选择答案,则是ABCD中的一个,如果为选,则设为‘X’,表示还没做答。(这里都是单选题目,尚未设置多选题目的界面。)在用户交卷时,系统检查是否有未答题目,如果有,则提醒考生。

所有角色的测试帐号:123456 密码:123456
教师可以增加学生,管理员可以增加教师。

最后是源代码(code of vs03 & vs05)下载的链接:
http://files.cnblogs.com/hoodlum1980/ExamSys.rar

目录
相关文章
|
1天前
|
运维 Cloud Native Serverless
|
3天前
|
运维 Java 微服务
阿里技术专家,紧跟潮流,解读spring微服务架构技术的演进
Spring Cloud是企业进行微服务架构开发的极好选择,为了能帮助大家更好的学习,今天小编给大家推荐一本spring cloud最好的学习书籍。
|
8天前
|
Kubernetes Java 微服务
Spring Boot与Kubernetes结合:构建高可靠、高性能的微服务架构
Spring Boot与Kubernetes结合:构建高可靠、高性能的微服务架构
|
3月前
|
存储 前端开发 安全
【面试题】: bs架构与cs架构的区别以及各自优缺点
bs架构与cs架构的区别以及各自优缺点
207 0
|
7月前
|
Web App开发 JavaScript 前端开发
TE二次开发:BS和CS的架构说明
skyline二次开发,BS和CS的架构说明
|
10月前
|
负载均衡 Kubernetes 安全
1.4 CS架构模型
1.4 CS架构模型
1.4 CS架构模型
|
Web App开发 安全
热门文章
最新文章
推荐文章
更多