题库管理
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
摘 要
汇编语言试题库管理系统是信息管理系统,其开发的功能主要包括:通过计算机管理题库档案,过强大的查询和索检高效的索检出数据,提高办事效率。 使用 MICROSOFT公司的 ACCESS作为后台数据库,设计数据库, 使用 MICROSOFT公司的 VISUAL C++ 6.0开发工具,利用其提供的各种面向对象的开发工具, 使用ADO控件连接数据库,开发出产品。
关键字:题库管理系统,VISUAL C++ 6.0,数据库。
目 录
摘 要…………………………………………………………………… 1
Abstract…………………………………………………………………… 1
目 录……………………………………………………………………… 2
一、前 言 3
二、开发工具和相关知识简介 4
2.1 Vc++基础 4
2.2 SQL语言简介 4
三、编译原理试题库系统的需求分析 6
3.1 系统的开发背景 6
3.2 系统的可行性研究 6
3.3 开发过程框图 7
3.4 系统功能分析 7
3.5 系统总体流程图 8
四、系统总体设计 9
4.1 系统功能模块框图 9
4.2 数据库设计 10 copyright think58
4.2.1 数据库需求分析 10
4.2.2 数据库结构设计 10
五、编译原理试题库系统具体实现 13
5.1 系统登录 19
5.2 试题库系统主界面 22
5.3 试题管理对话框 27
5.3.1填空题管理 28
5.3.2选择题管理 36
5.4 用户管理对话框 46
5.5 成绩管理页面 54
5.6 考试页面 58
5.7 生成试卷对话框 76
六、软件测试 81
结 束 语 81
致 谢 82
主要参考文献 82 [版权所有:http://think58.com]
3.4 系统功能分析 内容来自think58
[资料来源:http://THINK58.com]
本系统需要完成的功能主要有:
教师登录、考生登录
用户管理(记录的新建、修改、删除和定位)
题库管理与维护(记录的新建、修改、删除和定位)
从题库中自动选择一定数量的试题(选择和填空题), 生成考盘(随机产生题号,
使各考生的题目顺序不一样)作为本次考试的学生考试库
答题(选择和填空题),如果中途退出,可再次进入答题环境
答题结束退出时,系统可自动评分,评分后不能再进入答题环境,评分时还向用
提供答题的相关信息:每类题的得分,出错的试题等
管理员身份可以查看用户的考试信息,得分等,能进行维护,可以删除用户的
卷信息(已提交试卷)
考试结束用户可以查询自己的考试成绩,包括以往的考试(已提交的成绩)
3.5 系统总体流程图 think58好,好think58 [资料来源:THINK58.com]
四、系统总体设计 内容来自think58 [资料来源:THINK58.com]
4.1 系统功能模块框图
think58好,好think58 [版权所有:http://think58.com]
[资料来源:http://THINK58.com]
think58好,好think58
[来源:http://think58.com]
4.2 数据库设计 内容来自think58
[资料来源:www.THINK58.com]
数据库在一个信息管理系统中占有非常重要的地位,数据库设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。
设计数据库系统时应该首先充分了解用户各方面的需求,包括现有的以及将来可能增加的需求。 本文来自think58
[来源:http://think58.com]
4.2.1 数据库需求分析
[资料来源:http://THINK58.com]
用户的需求具体体现在各种信息的提供、保存、更新和查询统计,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的详细设计打下基础
。
针对本系统要求,设计如下的数据项和数据结构: copyright think58
[来源:http://www.think58.com]
用户信息表:包括的数据项有:用户ID,用户名,用户密码,用户权限。
课程章节信息表:包括的数据项有:章节ID,章节名。
填空题信息表:包括的字段有:填空题ID,填空题目,填空题答案,所属章节,本题分值。
选择题信息表:包括字段:选择题ID,选择题题目,选择题选项A,选择题选项B,选择题选项C,选择题选项D,选择题选项E,选择题选项F,选择题答案,所属章节,分值。
试卷信息表:包括字段:试卷项ID,试卷名,试题号,试题类型,考生ID,考生答案。
成绩信息表:字段:成绩编号(ID),考生ID,试卷名,考试成绩,交卷标识。 [资料来源:THINK58.com]
4.2.2 数据库结构设计 think58
试题库管理系统数据库中各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。 内容来自think58 [资料来源:http://THINK58.com]
1.用户信息表:user_stu
字段名 数据类型 字段大小 主键
stuid 文本 50 是
stuname 文本 8 否
stupwd 文本 20 否
user_admi 数字 长整型 否
表4.2.2.1 think58
[来源:http://think58.com]
2.章节表:zhang_tab copyright think58 [来源:http://www.think58.com]
字段名 数据类型 字段大小 主键
zhangid 数字 长整型 否
zhangname 文本 20 是
表4.2.2.2
3.填空题信息表:tiank_tab
[资料来源:http://www.THINK58.com]
字段名 数据类型 字段大小 主键
tiankid 自动编号 长整型 是
tiankbody 文本 255 否
tiankdaan 文本 100 否
zhangid 文本 20 否
tiankfen 数字 长整型 否
表4.2.2.3
4.选择题信息表:xuanz_tab
字段名 数据类型 字段大小 主键
Xuanzid 自动编号 长整型 是
Xuanzbody 文本 255 否
Xuanza 文本 50 否
Xuanzb 文本 50 否
Xuanzc 文本 50 否
Xuanzd 文本 50 否
Xuanze 文本 50 否
Xuanzf 文本 50 否
Zhangid 文本 20 否
Xuanzfen 数字 长整型 否
Xuanzdaan 文本 50 否
表4.2.2.4
5.试卷信息表:shij_tab 内容来自think58
字段名 数据类型 字段大小 主键
Shijid 自动编号 长整型 是
Shitid 数字 长整型 否
Shijname 文本 100 否
Stuid 文本 50 否
Shitidaan 文本 255 否
Shititype 文本 50 否
表4.2.2.5
6.成绩信息表:chengj_tab 本文来自think58
字段名 数据类型 字段大小 主键
Chengjid 自动编号 长整型 是
Stuid 文本 50 否
Shijname 文本 100 否
Shijfen 数字 长整型 否
Handup 文本 10 否
表4.2.2.6
[版权所有:http://think58.com]
五、编译原理试题库系统具体实现 本文来自think58
本系统是用VC6.0生成的单文档结构的应用程序,首先由向导生成一个单文档的应用程序,然后在程序中添加相应的对话框和,在对话框上添加不同的控件来实现不同的功能,产生实现对应功能的外观界面。
VC++6.0是面向对象的程序设计语言,每一个功能可以做为一个对象来看待,把特定的功能放在一个对象里实现,有助于简化系统设计。还可以使系统更安全和便于实现。这里,我就把系统的各个功能放到了不同的类里面去实现,还要完成与用户的交互,所以把功能模块用对话框类的派生类来实现,具体由对话框来完成交互,类里的成员函数来完成后台的数据处理。
为了与数据库交换数据,要用到MFC数据库访问类,本程序是使用的ODBC来连接数据库。数据库访问是封装的MFC数据库访问类,设顶数据源和本系统用到的封装类如下:
在Access2003中,按照上节数据库的设计表,建立数据库,命名为shitiku.mdb。然后打开本机的控制面板,管理工具,数据源(ODBC),如下图: think58
注册好ODBC数据源后,就可以在程序中使用ODBC连接数据库,可以动态的更新查询数据库。
运行VC++6.0新建工程,命名为TESTING,在第一步选择单文档,其他保持默认值。这样就生成了一个工程,用于本系统的建立。
在程序中使用了MFC的数据库类进行了封装,以用于本系统的统一数据库的操作,具体实现代码如下:
文件1
//generaldef.h
#ifndef GEN_DEFINE_H
#define GEN_DEFINE_H
#include "OdbcDB.h" think58 [资料来源:THINK58.com]
extern COdbcDB g_odbcDB;
[资料来源:http://think58.com]
extern CString Userid; think58.com
extern BOOL HavEx;
本文来自think58 [资料来源:http://THINK58.com]
[资料来源:THINK58.com]
#endif
文件2
//GeneralDef.cpp
#include "stdafx.h"
#include "GeneralDef.h"
copyright think58 [资料来源:www.THINK58.com]
[资料来源:http://www.THINK58.com]
COdbcDB g_odbcDB; [资料来源:http://think58.com]
CString Userid; think58
[版权所有:http://think58.com]
BOOL HavEx;
文件3
//OdbcDB.h
#ifndef ODBC_DB_H
#define ODBC_DB_H
#include <afxdb.h>
#include <vector>
//利用vector数组结构构造一维字符串数组
typedef ::std::vector<CString> CStrs;
//利用vector数组结构构造二维字符串数组
typedef ::std::vector<CStrs> CDStrs;
think58
[资料来源:http://THINK58.com]
class COdbcDB
{
public:
COdbcDB();
virtual ~COdbcDB();
public:
//数据库连接
HRESULT Connect(CString strDBSource,CString strDBUser,CString strDBPwd);
//数据库关闭
void DisConnect();
//判断数据库是否处于打开状态
BOOL IsOpen();
//执行SQL语句
HRESULT ExecuteSQL(LPCSTR lpszSQL);
//根据SQL语句查询数据库,获取的记录集保存在二维字符串数组中
void ExecuteQuery(LPCTSTR lpszSQL,CDStrs& Fields);
//根据SQL语句查询数据库,获取一个字段值
void ExecuteQueryValue(LPCTSTR lpszSQL,CString& value);
protected:
//数据库对象
CDatabase m_db;
BOOL m_IsDBOpen; //数据库是否打开
CString m_strDBSource; //数据库源
CString m_strDBUser; //数据库用户名
CString m_strDBPwd; //数据库用户密码
};
[资料来源:http://think58.com]
#endif
copyright think58 [来源:http://www.think58.com]
上一篇:一个BMP图像处理的设计与实现