2.1需求规定
通过该系统的实施,将部分考试通过系统来实施,其中包括对学生信息,教师信息,试卷信息的管理等等,减少考试中花费的人力物力,来提高课程考试等的效率。
按照需求分析文档中的要求,用学生学号和教师编号进行登陆区分,系统最大限度地实现易安装,易维护,易操作,运行稳定,安全可靠。
2.2运行环境
Microsoft Visual Studio 2008
SQL Server Management Studio
2.3基本设计概念和处理流程
2.3.1基本设计概念
开发在线考试系统时,为了灵活地维护系统,设计了后台管理员模块,通过后台管理员模块可以方便地对整个在线考试系统进行维护。这时,必须建立一个数据表用于存储所有的管理员信息。管理员信息实体E-R 图如图2.1所示。
当考生成功登录在线考试系统后,可以根据需要选择考试的科目,考生不同可能选择的考试科目会不同,系统必须提供一些参加考试的科目,供考生选择。这时,在数据库中应该建立一个存储所有参加考试科目的数据表。考试科目信息实体E-R 图如图2.2所示。
考生选择考试科目,开始在线考试。在规定时间内必须完成考试,否则系统会自动提交试卷,并且将考生的考试成绩保存在数据表中。这样,方便后期查询考生是否参加过考试,以及查询历史考试得分。考试记录信息实体E-R 图如图2.3所示。
在数据库中建立一个用于存储考生各项信息的数据表。其中包括考生登录时账号(考生编号或考生学号)及密码。若某个考生参加了考试,系统会将考生答卷的最后得分保存到此数据表中,以便教师或考生对考试历史记录进行查询。考生信息实体E-R 图如图2.4所示。
为了方便教师对考试试题及考生考试结果进行管理,在数据库中必须建立一个数据表用于存储所有的教师信息,其中包括教师登录后台管理系统时需要的账号及密码,以及教师负责的科目名称。教师信息实体E-R 图如图2.5所示。
在线考试系统中考试试题是通过对数据库中存储的所有试题随机抽取产生的,所以必须在数据库中建立一个数据表用于存储所有参与考试的试题信息,其中包括试题题目、试题的 4 个备选答案、正确答案以及所属的科目。试题信息实体E-R 图如图2.6所示。
2.3.2处理流程
2.4系统功能结构
在线考试系统前台功能结构图如图2.8所示。
在线考试系统后台功能结构图如图9.3所示。
2.5系统数据结构设计
2.5.1逻辑结构设计要点
管理员信息表Tb_Admin(系统编号,管理员编号,管理员姓名,管理员登录密码)
考试科目信息表 Tb_Lesson(系统编号,考试科目名称,添加日期)
考试记录信息表 Tb_score (系统编号,参加考试的考生编号,考试科目名称,考生得分,参加考试的考生姓名,考生试题答案,试题正确答案)
考生信息表 Tb_Student(系统编号,考生编号,考生姓名,考生登录密码,考生性别)
老师信息表 Tb_Teacher(系统编号,老师编号,老师姓名,老师登录密码,老师负责的科目)
试题信息表 Tb_test (系统编号,试题编号,试题备选答案A,试题备选答案B,试题备选答案C,试题备选答案D,试题正确答案,试题是否发布,试题所属科目)
2.5.2物理结构设计要点
根据设计好的E-R 图在数据库中创建各表,系统数据库中各表的结构如下。
tb_Admin(管理员信息表)
表tb_Admin用于保存所有管理员信息,该表的结构如表2.1所示。
| 字段名 | 数据类型 | 长度 | 主键 | 描述 |
| ID | int | 4 | 是 | 系统编号 |
| AdminNum | varchar | 50 | 否 | 管理员编号 |
| AdminName | varchar | 50 | 否 | 管理员姓名 |
| AdminPwd | varchar | 50 | 否 | 管理员登录密码 |
tb_Lesson(考试科目信息表)
表tb_Lesson用于保存所有考试科目信息,该表的结构如表2.2所示。
| 字段名 | 数据类型 | 长度 | 主键 | 描述 |
| ID | int | 4 | 是 | 系统编号 |
| LessonName | varchar | 50 | 否 | 考试科目名称 |
| LessonDataTime | datetime | 8 | 否 | 添加日期 |
表tb_score用于保存所有参加过考试的考生的考试记录,该表结构如表2.3所示。
| 字段名 | 数据类型 | 长度 | 主键 | 描述 |
| ID | int | 4 | 是 | 系统编号 |
| StudentID | varchar | 50 | 否 | 参加考试的考生编号 |
| LessonName | varchar | 50 | 否 | 考试科目名称 |
| score | int | 4 | 否 | 考生得分 |
| StudentName | varchar | 50 | 否 | 参加考试的考生姓名 |
| StudentAns | varchar | 50 | 否 | 考生试题答案 |
| RightAns | varchar | 50 | 否 | 试题正确答案 |
表tb_Student用于保存所有考生信息,该表结构如表2.4所示。
| 字段名 | 数据类型 | 长度 | 主键 | 描述 |
| ID | int | 4 | 是 | 系统编号 |
| StudentNum | varchar | 50 | 否 | 考生编号 |
| StudentName | varchar | 50 | 否 | 考生姓名 |
| StudentPwd | varchar | 50 | 否 | 考生登录密码 |
| StudentSex | varchar | 50 | 否 | 考生性别 |
表tb_Teacher用于保存所有教师信息,该表结构如表2.5所示。
| 字段名 | 数据类型 | 长度 | 主键 | 描述 |
| ID | int | 4 | 是 | 系统编号 |
| TeacherNum | varchar | 50 | 否 | 教师编号 |
| TeacherName | varchar | 50 | 否 | 教师姓名 |
| TeacherPwd | varchar | 50 | 否 | 教师登录密码 |
| TeacherCourse | varchar | 50 | 否 | 教师负责的科目 |
表tb_test用于保存所有考试试题信息,该表结构如表2.6所示。
| 字段名 | 数据类型 | 长度 | 主键 | 描述 |
| ID | int | 4 | 是 | 系统编号 |
| testContent | varchar | 200 | 否 | 试题题目 |
| testAns1 | varchar | 50 | 否 | 试题备选答案A |
| testAns2 | varchar | 50 | 否 | 试题备选答案B |
| testAns3 | varchar | 50 | 否 | 试题备选答案C |
| testAns4 | varchar | 50 | 否 | 试题备选答案D |
| rightAns | varchar | 50 | 否 | 试题正确答案 |
| pub | int | 4 | 否 | 试题是否发布 |
| testCourse | varchar | 50 | 否 | 试题所属科目 |
数据结构为关系型数据库,所以,在程序中可以通过标准的SQL语句与数据结构进行交互,交互过程中采用通用的数据访问接口。为了保持良好的程序架构,对数据库访问采用DAO设计模式实现,提高维护性急扩展性。
实验体会:
首先,在开始动手开始做项目的时候,由于能力有限,由一开始上报的网上书店变成现在的在线考试系统。虽然简单,但在线考试所应具备的最基础的功能我们还是成功的完成了,起初我们考虑的地方有很多,也具有我们独特的特色,但由于能力有限,并不能很好完整的在项目实现中表现出来,所以我们会在以后的学习生活中多加练习,填补自己不足的地方,以便自己能完成项目并具有自己的特色,更能想得出,做得到!
其次,我们按照老师的要求完成了项目的需求分析、总体设计、详细设计。这次我们得到了一个大的轮廓,然后一步一步的按照要求往下做。在寝室长的安排下,我和寝室另外一成员主要是完成项目的总体设计,通过项目的需求分析,我们逐步设计出项目的处理流程并通过ER图设计数据库等等。
最后就是项目实现及运行。其实代码并不完全是我们一个一个敲出来的,主要还是参考别人的,但我们有认真的看,不懂就问别人,通过不断的调试、讨论、分析与研究后,我们寝室六人都对该项目了解得很彻底。
老师验时指出了一些不足的地方,虽然该系统具备了在线考试诸多的功能,但在安全性这方面考虑的地方不是很全面,以后将会继续努力完善此方面的功能,做出一个全方面的在线考试系统。
项目完成后,我们进行的总结,我们各自都认真踏实完成了各自所负责的部分,以至在调换项目的时候我们能及时、完善的在老师规定的时间内顺利完成。下载本文