3.3数据库设计
3.3.1需求分析
数据库设计的好坏直接影响到系统的执行功效和日后的文护[12],《C++面向对象程序设计》课程考试系统主要用于实现学生的在线考试功能和管理员的后台管理功能,设计的数据库应该包括学生信息、管理员信息、题库信息、章节信息、学生成绩信息。
3.3.2概念结构设计
E-R模型的组成元素:实体、属性、联系。E-R模型用E-R图表示,其中实体是用户工作环境中所涉及的事物,用矩形表示;属性是对实体特征的描述,用椭圆图形表示;联系表明实体与实体之间的相互关系,用菱形表示。
根据系统需求,实体及实体间的关系E-R图,如图2所示。
图2 系统E-R图
管理员实体对课程实体、题库实体、学生实体和成绩实体都是一对多的关系,即一个管理员可以同时实现对多个章节、题库、学生实体和成绩实体的管理;学生实体和成绩实体是一对多的关系,与题库实体是多对多的关系,即一个学生实体可以测试多个章节的试卷、查看多个章节的测试成绩,每个章节的试题可以由多个学生进行测试,而成绩信息只允许测试学生进行查看。
3.3.3逻辑结构设计
数据库逻辑结构设计就是将E-R图转换为关系模型的过程,即将所有实体和关系转换成一系列的关系模式,具体描述如下。
(1)管理员(编号,姓名,密码,性别)。
(2)学生(编号,姓名,密码,性别,管理员编号)。
(3)章节(编号,章节名,加入时间,管理员编号)。
(4)成绩(学生编号,测试章节编号,学生姓名,学生成绩,管理员编号)。
(5)题库(编号,所在章节编号,类型,问题,分值,答案,管理员编号)。
(6)测试(题库编号,所在章节编号,学生编号)。
3.3.4物理结构设计
数据库是信息管理的后台,存储着所有的数据信息。基于以上的需求分析、概念结构设计和逻辑结构设计,C++在线考试系统的实现需要创建数据库db_Examination,主要数据表的设计如下所示。
(1)用户信息表,存储用户基本信息,如表1所示。
表1 用户信息表
字段名 数据类型 是否允许为空 描述
userNum varchar(50) 否 用户编号
userName varchar(10) 是 用户姓名
userPwd varchar(10) 是 用户密码
userSex nchar(1) 是 用户性别
(2)章节信息表,存储C++在线考试系统的测试章节信息,如表2所示。
表2 章节信息表
字段名 数据类型 是否允许为空 描述
ID int 否 编号
lesson_Name varchar(50) 否 章节名
joinTime datatime 是 加入时间
(3)题库信息中的选择题信息表,存储选择题基本信息,如表3所示。
表3 选择题信息表
字段名 数据类型 是否允许为空 描述
ID int 否 题目编号
which_Lesson varchar (50) 否 所在章节编号
que_Type varchar (50) 是 题目类型
optionA varchar (50) 是 选项A
optionB varchar (50) 是 选项B 《C++面向对象程序设计》课程考试系统的设计与实现(3):http://www.youerw.com/jisuanji/lunwen_2426.html