用户设计
-|学生
-|老师
-|管理员
学生结构设计
-|个人信息管理
-|修改个人信息
-|修改登录密码
-|选课中心
-|显示所有老师所开课的信息可进行选课
-|显示自己已选课程
-|在线考试
-|对已选老师开设的课程选择进行考试
-|成绩查询
-|查看自己考试成绩
老师结构设计
-|个人信息管理
-|修改个人信息
-|修改登录密码
-|课程管理
-|显示学校开设的课程(老师可选择添加课程)
-|显示老师开设的课程
-|考试管理
-|显示老师自己开设的课程
-|对课程添加试题(选择、填空、简答)
-|查看所开设课程的考试信息(查看该课程学生考试情况)
管理员结构设计**
-|初始教师信息(写入老师编号,老师根据编号才能注册)
-|初始课程信息(写入课程信息,老师可选择课程进行开设)
数据库支撑:
管理员表
老师表
学生表
选择题表 XZe_yi存放正确答案,在前台进行调整选项,减少数据冗余。
XZe_Type:该选择题属于哪个科目,直接写课程ID。XZe_Zl:是真题还是练习题。XZe_Zj:题目章节。
填空题表 这里TK_k1, 该题第一个空的答案,TK_k2 第二个空的答案,类推
【这里TK_F字段,判断这几个答案是否可以乱序回答,例如,请说出四书是那四书,那么此时的答案可能是乱序的。答辩时碰到导师问道这个问题//0.0,后加上的】
简答题表
课程表
老师选课表
学生选课表
界面支撑:
其他页面不在展示......
总结点(大牛勿喷):
在本次实训中,对学过的ASP.net进行了实践,个人感觉关键点:对整体考试系统的把握、数据库的分析与创建、在线考试页面的技术支撑。
再细一点,整个系统运行的流程,三个不同角色的功能。数据库表的分析,尽量的“优”。各个页面技术的实现细节。
整个系统不再赘述。数据库要分析好【如果读者觉得本次数据库设计还有什么好的意见请留言博主,先谢谢】。
各页面技术的实现。
对数据的操作封装,代码设计细节参见:http://www.cnblogs.com/A--Q/p/5172009.html
前台三个角色的登录,设计细节参见:http://www.cnblogs.com/A--Q/p/5323971.html
在线考试页面,设计细节:
附加函数:
1 public Random a = new Random();//对试卷选项进行排序生成随机顺序 2 public int[] PaiXu() //随机排序,返回一个整形数组,长度为4,值为3 4 5 6,不确定值的顺序,用于选择题的选项排序 3 { 4 int[] i = new int[4]; 5 6 i[0] = a.Next(3, 6); 7 switch (i[0]) 8 { 9 case 3: i[1] = a.Next(4, 5); i[2] = 6; i[3] = 9 - i[1]; break; 10 case 4: i[1] = a.Next(5, 6); i[2] = 3; i[3] = 11 - i[1]; break; 11 case 5: i[1] = a.Next(3, 4); i[2] = 7 - i[1]; i[3] = 6; break; 12 case 6: i[1] = a.Next(3, 4); i[2] = 5; i[3] = 7 - i[1]; break; 13 } 14 return i; 15 }