同且编号在其后的题目的ID。
(5)"添加新题目": 弹出"添加或修改题目"。初始值均为空,在该窗口可以为新题目设置题型、难度、所属章节、内容和答案,其中题型和内容为必填项,设置完成后点击"确定"按钮系统将自动把新题目添加到题库,并根据其题型、难度和所属章节三个属性为该题目分配ID。
图 3.12 修改试题
(6)"删除当前题目":弹出对话框询问用户是否确定删除当前选中的题目,若确定删除系统将从题库中删除该题目,并修改与该题目属性相同且编号在其后的题目的ID。
(7)"清空试题(慎用)":弹出对话框询问用户是否确定删除题库中全部试题,若确定删除系统将从题库中删除所有试题。
注:用户希望对另一科目试题库进行管理时要先单击"关闭当前题库"按钮后才能再次选择科目。
6.题型管理:题型管理窗口如图3.13所示。
图 3.13 题型管理
只有管理员级别的用户可进入该模块。
该界面主要由两部分组成,分别是左侧题型信息栏和右侧添加新题型栏。
该模块的主要功能如下:
(1)"添加新题型":用户在题型名称栏输入新题型的名称后单击"确认添加"按钮添加。添加新题型要求题型名称不能为空并且必须是题型库中不存在的题型。
(2)"删除题型":选中题型列表中的某一题型项后单击"删除题型"按钮删除。删除题型要求在各个科目的试题库中均不存在该题型的题目方可删除,用户确认后系统将从数据库中删除该题型所有信息。
7.科目管理:科目管理窗口类似与题型管理窗口。
只有系统管理员可进入该模块。
该界面主要由两部分组成,分别是左侧科目信息栏和右侧添加新科目栏。
该模块的主要功能如下:
(1)"添加新科目":, 用户在科目名称栏输入新科目的名称后单击"确认添加"按钮添加。添加新科目要求科目名称不能为空并且必须是库中不存在的科目。
(2)"删除科目": 选中科目列表中的某一科目项后单击"删除科目"按钮删除。删除科目要求被删除科目的试题库、试卷库均为空方可删除,用户确认后系统将从数据库中删除该科目信息及其试题库和试卷库。
8.修改密码:修改密码窗口如图3.14所示。
图 3.14 修改密码
各权限的用户均可进入该模块。
该界面主要由三个编辑框和两个按钮组成。操作步骤如下:要求用户正确输入原密码、输入新密码再次输入新密码。单击"确定修改"后,系统首先核对原密码输入是否正确,再判断两次输入的新密码是否一致,完全正确则将数据库中的当前用户密码修改为新密码并返回系统主界面,下次该用户登录以新密码为准。若单击"取消"则放弃修改返回系统主界面。
3.4系统详细设计
3.4.1 类的静态设计
组成该《试卷生成与题库管理系统》的类可以分为两类:一类是组织数据和完成数据各种操作的类,另一类是辅助各种数据操作实现的交互界面类。
3.4.1.1 组织数据和操作数据的类
这些类中包括组织和封装数据信息和对数据库进行操作的数据库类CADODatabase,组织和封装记录集信息和对记录集进行操作的记录集类CADORecordset。这两个类的属性和操作如下:
图 4.1 CADODatabase类 图 4.2 CADORecordset类
1. CADODatabase类,如图4.1所示。
用于对数据库进行操作。
属性:
m_pConnection 用于连接数据库,数据连接智能指针对象成员。
m_strConnection 用于记录连接串,CString类对象成员。
m_strLastError 用于记录错误信息,CString类对象成员。
操作:
CADODatabase 构造函数。
~CADODatabase 析构函数。
Open 用于打开数据库连接。
Close 用于关闭数据库连接。
IsOpen 用于判断数据库是否连接成功。
Execute 用于执行不返回记录的SQL命令。
BeginTransaction 用于开始事务。
CommitTransaction 用于执行事务。
RollbackTransaction 用于在出错时回滚事务操作。
GetActiveConnection 用于获得连接指针。
SetConnectionString 用于设置连接串。
GetConnectionString 用于获得连接串。
GetLastError 用于获得错误信息。
dump_com_error 用于捕捉错误信息。
2. CADORecordset类,如图4.2所示。
用于对记录集进行操作。
属性:
m_pConnection 用于连接数据库,数据连接智能指针对象成员。
m_pRecordset 用于对记录集进行控制,记录集智能指针对象成员。
m_nSearchDirection 用于记录搜索方向,int类型成员。
m_strLastError 用于记录错误信息,CString类对象成员。
m_strQuery 用于记录查询串,CString类对象成员。
操作:
CADORecordset 构造函数(重载)。
~CADODatabase 析构函数。
Open 用于打开记录集(多态)。
Close 用于关闭记录集。
GetRecordCount 用于获得记录集中记录的个数。
SetFieldValue 用于设置字段值(多态)。
GetFieldValue 用于获得字段值(多态)。
MoveTo 用于将记录指针移到指定的某条记录上。
Update 用于更新记录集信息。
AddNew 用于在记录集中添加记录。
IsEOF 用于判断是否已经是末记录。
IsBOF 用于判断是否已经是记录头。
MoveFirst 用于将记录指针移到第一条记录。
MoveNext 用于将记录指针移到下一条记录。
MovePrevious 用于将记录指针移到上一条记录。
MoveLast 用于将记录指针移到最后一条记录。
Find 用于搜索记录,获得当前记录的位置序号(多态)。
GetQuery 用于获得查询串。
SetQuery 用于设置查询串。
GetLastError 用于获得错误信息。
dump_com_error 用于捕捉错误信息。
3.4.1.2 提供交互界面的类
设计这些类的目的是为用户使用《试卷生成及题库管理系统》的各种功能提供友好、美观的交互界面。归纳功能的操作要求和用户的使用习惯,本系统中的交互界面类应该包括:欢迎界面CManagementDlg、系统登录界面CLoginDlg、主界面CManageAllDlg、抽取现有试卷界面CPaperDlg、自动组卷界面CAutoMakeupDlg、手动组卷界面CPersonMakeupDlg、试卷管理界面CManagePaperDlg、试题管理界面CQuestionDlg、题型管理界面CManagePoolDlg、科目管理界面CManageTypeDlg和更改密码界面CPasswordDlg。以下只介绍主要属性及操作。
图 4.3 CPaperDlg类 图 4.4 CManagePaperDlg类
1. CPaperDlg类,如图4.3所示。
抽取现有试卷类,用于抽取现有试卷和导入成套试卷保存到试卷库。
主要属性:
strUsername 用户名,用户名,CString类对象成员。
Purview 记录权限是否为管理员,bool类型成员。
ExistTable_name 记录当前导入试卷所属表名,CString类对象成员。
Exist_ID 记录当前导入试卷ID,CString类对象成员。
Now_ID 记录当前选中试卷ID,CString类对象成员。
主要操作:
OnButtonIn 按钮响应函数,用于导入试卷。
OnButtonInanswer 按钮响应函数,用于继续为导入的试卷导入答案。
OnButtonBrowse 按钮响应函数,用于浏览当前选定试卷及答案。
OnButtonQuery 按钮响应函数,用于根据条件进行查询。
OnButtonOnlyquery 按钮响应函数,用于根据ID值进行精确查询。
InitComboSubject 根据权限动态初始化选择科目的Combo Box的Data值。
InitComboCreate 根据科目动态初始化选择创建人的Combo Box的Data值。
InitPaperList 选择科目后初始化试卷列表。
InitPaperTree 选择科目后初始化试卷树形控件。
FindtbPaper 通过形参"科目名称",返回该科目存放已组试卷的表名。
FindtbExist 通过形参"科目名称",返回该科目存放成套试卷的表名。
InsertPaperItem 将当前科目所有已组试卷ID结点添加到试卷树形控件。
上一篇:
网络程序设计课程设计论文(2003doc)
下一篇:
分娩球配合自由体位助产的临床研究