基于VC++的题库管理系统的设计与实现毕业论文.doc_第1页
基于VC++的题库管理系统的设计与实现毕业论文.doc_第2页
基于VC++的题库管理系统的设计与实现毕业论文.doc_第3页
基于VC++的题库管理系统的设计与实现毕业论文.doc_第4页
基于VC++的题库管理系统的设计与实现毕业论文.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工业大学 毕业设计说明书(论文) 系 : 计算机系 专 业: 软件技术专业 题 目: 基于 vc+的题库管理系统的设计与实现 指导者: (姓 名) (专业技术职务) 评阅者: (姓 名) (专业技术职务) 2013 年 6 月 4 日 毕业设计(论文)中文摘要 基于基于 vc+vc+的题库管理系统的设计与实现的题库管理系统的设计与实现 摘要:摘要: 随着计算机技术的普及,题库管理系统已经慢慢取代传统的组卷方式,为学 校教师组卷提供方便与快捷。题库管理系统拥有与真实考试同样的题型、组卷等 功能。其开发内容主要包括后台数据库的建立和维护以及前端应用程序的开发两 个方面。通过分析与研究,本系统运用 vc+作为开发语言,sql server 2005 作 为后台数据库,并利用 ado 技术连接数据库,在 mfc 的结构框架下基本实现了上 传试题、上传试卷、手动组卷、系统组卷、学生在线练习等主要功能,有效的减 轻教师在出题、组卷方面的负担,提高教学质量。系统的开发按照软件生命周期 的流程来设计,论文从系统分析、概要设计、详细设计和系统测试等环节进行了 详细分析和描述。 关键词: 题库管理系统 手动组卷 vc+ ado 毕业设计(论文)外文摘要 titletitle question bank management system design and implementation based on vc + + abstractabstract with the popularization of computer technology, question bank management system has gradually replaced the traditional test method,which provide convenient and fast for the school paper. the question bank management system with real exam questions, test paper etc its development mainly includes two aspects: the background of the establishment and maintenance of database and front-end application development.through the analysis and research, this system using vc + + as a development language, sql server2005 as a backend database, and connect to the database using ado technology.the system basically achieved the upload test questions, upload papers, manual group volume, system volume, student online practice the main function such as information management,which can effectively reduce the burden of teachers in title, group volume, improve the quality of teaching. the systems development is according to the software life cycle processes to design,the paper has analyzed and described in detail from the system analysis, the outline design, detailed design and system testing process. keywordskeywords: question bank management system manually set volume vc+ ado 1 目目 次次 1 引言.1 1.1 课题背景及意义.1 1.2 国内外研究现状和发展趋势.1 1.3 本文的工作安排.2 2 系统分析.2 2.1 可行性分析.2 2.2 需求分析.3 2.3 系统的运行环境.4 3 系统的开发环境与技术.4 3.1 mfc 技术 .4 3.2 数据库访问技术.5 3.3 visual c+ 6.0 开发环境5 3.4 c+开发语言5 4 系统设计.6 4.1 总体设计思想.6 4.2 系统功能模块设计.7 4.3 数据库设计14 5 系统功能实现19 5.1 数据库的连接19 5.2 系统模块设计20 6 系统调试33 6.1 测试实例的研究与选择33 6.2 测试环境与条件34 6.3 测试结果34 结 论.35 参考文献.36 致 谢.37 河北工业大学毕业设计(论文) 第 1 页 共 40 页 1 引言引言 传统的考试出题总是教师考前集中出题、集中组卷,这样很难保证试卷的质量, 进而不能准确反映学生的学习效果。相比之下题库管理系统能够安全方便地录入试题 以及自定义出卷,减轻各科教师的教学压力。该部分主要介绍当前通用试题库管理系 统的背景及意义、国内外研究现状和论文的工作安排。 1.1 课题背景及意义课题背景及意义 随着计算机技术的不断发展,它被更广泛地应用在我国的各行各业中。其中计算 机辅助教育(cai)在教育系统中的应用,收到了良好的效果,给教育改革带来美好的 前景。在教学管理中,为实现教考分开,更加合理、公平、公正、公开地进行各种考 试,利用计算机进行考试题库管理,辅助教师命题组卷已成为各院校教学改革的重要 内容之一。因此对于题库管理系统的开发和应用就显得尤为重要。相比传统的出题方 式,利用计算机实现的题库管理具有操作简便、成卷快、题目搭配合理、试卷难易程 度可控等无法比拟的优点,同时能够更好的保证试卷的质量,而且还能更好地反映学 生的学习效果,提高教学质量,减轻教师在出题组卷和成绩分析中的工作量。因此, 研制题库管理系统已成为一项重要的课题,是各个学校教学研究的热门话题,并且在 国家有关项目的支持下,出现了一系列使用的题库管理系统,但这些成型的题库管理 系统有时候并不能满足现在学校教育中的要求。一个好的题库要求能够在有限的时间 内,快速选择出最需要的题目,从而减轻了老师出题的负担,并加强了出题的效率和 质量。 1.2 国内外研究现状和发展趋势国内外研究现状和发展趋势 随着经济的发展,社会的进步,科学技术的不断提高,计算机科学日渐成熟,计 算机越来越深入到我们日常的学习、工作及生活中,成为我们补课缺少的辅助工具。 其强大的功能以为人们深刻认知,它已进入人类社会的各个领域,并发挥着越来越重 要的作用,在我国的教育系统中,传统的出卷方式,是一个漫长而复杂的过程,已经 河北工业大学毕业设计(论文) 第 2 页 共 40 页 越来越不适应现代教学的需要,而随着计算机事业在我国的纵深发展,题库在教育领 域的应用越来越广泛,一个好的题库管理系统,要求界面友好,能方便的录入试题, 组卷灵活快捷,查询试题或出卷迅速,以适应各种知识更新对试卷难易程度、题型的 要求,因此领用计算机化的试卷生成系统来组卷是未来学校考试的发展趋势。 1.3 本文的工作安排本文的工作安排 本文从软件开发生命周期的角度阐述了系统开发过程,首先介绍了项目背景,然 后进行系统分析、总体设计和项目的具体设计与实现过程,最后作系统测试及总结。 论文分六部分,具体安排如下: 第一部分:介绍课题的背景,课题目的及意义,国内外研究现状及发展趋势等。 第二部分:系统分析,包括可行性分析、需求分析、系统可行性分析等。 第三部分:介绍系统的开发环境与开发技术。 第四部分:根据系统的需求分析进行系统概要设计,包括系统的模块设计,数据 库的概念结构设计和数据库的逻辑结构设计。 第五部分:从整体上介绍了系统的详细设计和实现,包括整个系统界面设计和相 关功能及实现过程。 第六部分:介绍本系统的测试及维护,测试内容及测试方法并总结测试结果。 第七部分:结束语。总结在完成系统开发和设计过程中所做的工作,以及系统的 优缺点。 2 系统分析系统分析 系统分析是软件系统开发过程中一项重要工作,系统分析工作质量的好坏将直接 决定系统开发工作的成败。该阶段将从可行性分析、系统需求分析、系统的运行环境 几个关键技术对题库管理系统作出详细的系统分析。 2.1 可行性分析可行性分析 2.1.1 技术可行性 河北工业大学毕业设计(论文) 第 3 页 共 40 页 此次课程设计,使用 mfc 技术构建题库管理系统的骨干框架,利用 sql server 2005 构建系统的后台数据库,运用 vc+语言开发,并结合 ado 连接数据库的技术,完 全有能力设计一个界面比较友好、功能较为全面、操作方便简捷的题库管理系统。 2.1.2 经济可行性 随着计算机技术的迅速发展,尤其在面临日益激烈的市场竞争,以电子计算机为 主要技术手段,将大大减轻科技人员的脑力劳动和体力劳动。计算机技术它具有高智 力、知识密集、综合性强、效益高等特点,是当今世界上科技领域的前沿课题。因此 将计算机技术运用到各高校的考试中,开发一款操作简捷、功能齐全的题库管理系统 将大大可以提高教师的工作效率和工作质量,改善教师的工作条件,进而提高教学水平, 为教研室带来了间接的效益。 2.2 需求分析需求分析 该系统设计主要是为了能够减轻教师在考前出卷组卷的工作量,能够方便的让教 师浏览、查看各类试题,以最快的速度筛选处所需的试题组成一套完整的试卷,其主 要功能如下: 1 用户登录模块: 用户登录的权限可分为:系统管理员、教师、学生三种权限,在登录模块中,当 用户登录时,首先先输入用户名及登录密码,系统会自动验证该用户的身份,如果该 用户存在则根据其登录权限跳转到相应的不同权限的页面;如用户名不存在,用户也 可以先进行注册再登录,也可以通过找回密码重新设置密码,然后再进行登录。 2 信息管理模块: 系统管理员可以对登录用户的信息进行修改、查询、删除等管理操作,并且还可 以注册新的用户信息,同时管理员还可向用户发布最新的试题信息并可对用户反馈的 信息进行管理。 3 试题管理模块: 系统管理员可以对试题库中试题进行查看、删除、修改等操作;教师登录后可以 上传相关试题,查看个人上传的试题以及全部的试题,修改个人上传试题;学生登录 后可以查看相关试题,并可查看试题答案以及试题详解。 4 试卷管理模块: 河北工业大学毕业设计(论文) 第 4 页 共 40 页 系统管理员可以对用户上传的试卷进行查看、删除、修改等操作;教师可以对个 人上传的试卷进行修改或删除操作,同时可以上传试卷,此外教师还可以针对某一学 科进行手动组卷也可选择系统组卷,并且可预览组好的试卷并将其导出为.txt;学生 可对相关的试卷信息内容进行查看。 5 科目、章节、题型管理: 系统管理员可以对科目、章节、题型的信息进行增、删、改、查的操作。 2.3 系统的运行环境系统的运行环境 该软件设计是基于 vc+的题库管理系统,能够在 windowxp/win7 及其以上版本的 系统上顺利运行。 3 系统的开发环境与技术系统的开发环境与技术 该课题设计使用 mfc 技术构建题库管理系统的骨干框架,使用 sql server 2005 构建系统的数据库,应用 c+语言开发,并结合 ado 连接数据库的技术,实现了一个 功能相对齐全的题库管理系统。 设计环境: 操作系统:win7/winxp 开发工具:microsoft visual c+ 6.0 数据库:sql server 2005 开发语言: vc+ 3.1 mfc 技术技术 mfc 的本质是一个包含了许多已经定义好的类的类库。mfc 是微软提供的,封装 了大量 windows api 的 c+类库。它基本封装了 windows 的所有 api 函数。因此,利 用 mfc 建立应用程序更加符合面向对象的思想。同时利用向导所建立的应用程序隐藏 了程序设计的很多细节,简化和标准化了 windows 程序设计,因此 mfc 编程被称为标 准 windows 程序设计。 河北工业大学毕业设计(论文) 第 5 页 共 40 页 3.2 数据库访问技术数据库访问技术 microsoft 提供多种数据库访问技术,此次题库管理软件使用 ado 连接数据库的 技术,ado 基于 microsoft 的 activex 技术,可在多种语言环境下使用,为不同的应 用程序提供一个通用的访问接口。相对于 odbc 技术,ado 可移植性好,可随意将程 序从一台机器转移到另一台机器上,无需重新配置数据源。相对于 ado.net 技术, ado 效率更高,访问速度更快,适用于海量数据的读取和写入。 3.3 visual c+ 6.0 开发环境开发环境 visual c+ 6.0,简称 vc 或者 vc6.0,是微软推出的一款 c+编译器,将“高级 语言”翻译为“机器语言(低级语言) ”的程序。visual c+6.0 它不仅是一个 c+ 编译器,而且是一个基于 windows 操作系统的可视化集成开发环境。visual c+是 一个功能强大的可视化软件开发工具。 3.4 c+开发语言开发语言 c+语言是一种优秀的面向对象程序设计语言,它在 c 语言的基础上发展而来,但 它比 c 语言更容易为人们学习和掌握。c+以其独特的语言机制在计算机科学的各个领 域中得到了广泛的应用。面向对象的设计思想是在原来结构化程序设计方法基础上的 一个质的飞跃,c+完美地体现了面向对象的各种特性。 1 c+支持数据封装,支持数据封装就是支持数据抽象。在 c+中,类是支持数 据封装的工具,对象则是数据封装的实现。c+类中包含私有、公有和保护成员 c+类 中可定义三种不同访控制权限的成员。 2 c+中是通过向对象发关消息来处理对象的,每个对象根据所接收到的消息的 性质来决定需要采取的行动,以响应这个消息。响应这些消息是一系列的方法,方法 是在类定义中使用函数来定义的,使用一种类似于函数调用的机制把消息发送到一个 对象上。 3 c+中允许友元破坏封装性,友元可以访问该类的私有成员(包含数据成员和成 员函数)。友元可以是在类外定义的函数,也可以是在类外定义的整个类,前者称友元 函数,后者称为友元类。友元打破了类的封装性,它是 c+语言另一个面向对象的重 河北工业大学毕业设计(论文) 第 6 页 共 40 页 要特性。 4 c+允许函数名和运算符重载,c+多态性,c+允许一个相同的标识符或运算 符代表多个不同实现的函数,这就称标识符或运算符的重载,用户可以根据需要定义 标识符重载或运算符重载。 4 系统设计系统设计 系统设计阶段的根本目标是确定应该怎样具体地实现所要求的功能,经过这个阶 段的设计工作,应该得出对目标系统的精确描述。该阶段是对本系统进行模块分解, 确定其软件结构,并对主要功能模块进行详细设计与实现的介绍,从而实现功能模块 的精确描述。 4.1 总体设计思想总体设计思想 该题库管理系统主要分为三种登录权限:管理员权限、教师权限、学生权限。 在登录模块中,当用户登录时,首先先输入用户名及登录密码,系统会自动判断 该用户是否存在,如果该用户存在则可成功跳转到相应的不同权限的页面,用户也可 以先进行注册再登录,也可以通过找回密码重新设置密码,然后再进行登录。 当以管理员身份进入系统后,管理员可以对用户信息进行管理包括:查看、修改、 删除用户信息以及注册新的教师信息及学生信息;同时管理员还可以对试题、试卷信 息进行管理同样包括查看、修改、删除试题、试卷信息同时管理员还可以上传试题、 试卷。 当以教师身份登录后,教师可以对自己上传的试题、试卷信息进行查看、修改、 删除操作,还可以上传试题或试卷信息到题库,同时还可浏览其他人上传的试题及试 卷信息。此外教师可针对某一学科进行手动组卷也可以选择系统组卷,组卷完毕后可 以预览试卷效果,如果满意即可保存存档。教师还可以修改自己的登录密码以及个人 信息,并可以查看系统公告,或给系统留言。 当以学生身份登录后,学生可以针对不同的学科、不同的章节、不同的题型进行 练习,同时可以查看题目答案及详解。此外学生还可以向系统反馈信息,查看系统公 告并可以修改登录密码及个人信息。 河北工业大学毕业设计(论文) 第 7 页 共 40 页 4.2 系统功能模块设计系统功能模块设计 本系统是由管理员模块、教师模块、学生模块和登录模块几部分组成的。 系统流程图如图 2 所示。 图 2 系统流程图 4.2.1 登录模块 退出系统 输入用户名及密码 判断用户名和 密码是否存在 开始登录 ny 注册 信息 找回 密码 登录成功 判断用户权限 管 理 员 模 块 教 师 模 块 学 生 模 块 河北工业大学毕业设计(论文) 第 8 页 共 40 页 在登录模块中,当用户登录时,首先先输入用户名及登录密码,如果该用户存在 则可成功跳转到相应的页面;如果登录不成功或用户名不存在,用户可以先进行注册 再登录,也可以找回密码,然后再进行登录。登录模块如图 1.1 所示。 图 1.1 登录模块图 4.2.2 管理员模块 当以管理员身份进入系统后,管理员可以对用户信息、试题、试卷信息、课程信 息及题型信息进行管理。管理员模块如图 2.1 所示。 图 2.1 管理员模块图 1. 用户信息管理模块 管理员登录后,点击“用户信息管理”按钮即可进入用户信息管理模块,在该模 块中,管理员可对已经注册的学生信息以及教师信息进行查看、修改或删除操作,也 可以注册新的用户信息。其模块图如图 2.1.1 所示。 管理员登录模块 用 户 信 息 管 理 试 题 信 息 管 理 试 卷 信 息 管 理 课 程 信 息 管 理 题 型 信 息 管 理 用户登录模块 登 录 成 功 找 回 密 码 注 册 信 息 河北工业大学毕业设计(论文) 第 9 页 共 40 页 图 2.1.1 用户信息管理模块图 2. 试题管理模块 管理员登录后,点击“试题信息管理”按钮即可进入试题管理模块,在该模块中, 管理员可以上传试题到试题库,也可以对全部试题进行浏览、修改、删除操作, 。其模 块图如图 2.1.2 所示。 图 2.1.2 试题管理模块图 3. 试卷信息管理模块 管理员登录后,点击“试卷信息管理”按钮,即可进入试卷信息管理模块,在该 试卷管理模块中,管理员可对上传的试卷信息进行浏览、修改、删除操作,其模块图 如图 2.1.3 所示。 试题信息管理 上 传 试 题 信 息 修 改 试 题 信 息 删 除 试 题 信 息 查 看 试 题 信 息 注 册 用 户 信 息 修 改 用 户 信 息 删 除 用 户 信 息 查 看 用 户 信 息 用户信息管理 河北工业大学毕业设计(论文) 第 10 页 共 40 页 图 2.1.3 试卷信息管理模块图 4. 课程信息管理模块 管理员登录后,点击“课程信息管理”按钮后即可进入课程信息管理模块,在该 模块中,管理员可对题库中现存的科目及其所包含的章节信息、知识点信息进行查看、 修改及删除操作,也可增加新的科目信息,并为其添加相关的章节信息及知识点信息。 其模块图如图 2.1.4 所示。 图 2.1.4 课程信息管理模块图 试卷信息管理 上 传 试 卷 信 息 修 改 试 卷 信 息 删 除 试 卷 信 息 查 看 试 卷 信 息 添 加 章 节 信 息 添 加 知 识 点 信 息 修 改 章 节 信 息 修 改 知 识 点 信 息 查 看 章 节 信 息 查 看 知 识 点 信 息 删 除 章 节 信 息 删 除 知 识 点 信 息 课程信息管理 添 加 课 程 信 息 修 改 课 程 信 息 查 看 课 程 信 息 删 除 课 程 信 息 河北工业大学毕业设计(论文) 第 11 页 共 40 页 5. 题型信息管理模块 管理员登录后,点击“题型信息管理”按钮即可进入题型信息管理模块,在该模 块中,管理员可以添加添加新的题型、修改题型信息,也可以删除题型信息,其模块 图如 2.1.5 所示。 图 2.1.5 题型信息管理模块图 4.2.3教师模块 当以教师身份登录后,教师可以对自己上传的试题、试卷信息进行查看、修改、 删除操作,还可以上传试题或试卷信息到题库,同时还可浏览其他人上传的试题及试 卷信息,但不可以进行修改或删除操作。同时教师可针对某一学科进行手动组卷,通 过浏览关于这一学科的全部试题,并将感兴趣的题目加入试卷从而形成一份完整的试 卷,教师可以通过预览试卷查看组卷效果,如果满意的话即可选择保存并将该试卷导 出为指定的目录下.txt 文档;此外教师还可以选择系统组卷,在教师指定科目、选择 改试卷包含的章节、试卷所包含的题型并设置各题型的数量后,系统便会在题库中随 机抽取相应的题目加入试卷,组卷完毕后可以预览试卷效果,如果满意即可保存存档。 教师还可以修改自己的登录密码以及个人信息。教师模块的模块图如图 3.1 所示。 题型信息管理 添 加 题 型 信 息 修 改 题 型 信 息 删 除 题 型 信 息 查 看 题 型 信 息 河北工业大学毕业设计(论文) 第 12 页 共 40 页 图 3.1 教师管理模块图 1. 个人信息管理模块 教师登录后点击“个人信息管理”按钮后即可进入个人信息管理模块,教师可对 个人的基本信息进行修改并保存,也可单独修改密码。该模块的模块图如图 3.1.1 所 示。 图 3.1.1 个人信息管理模块图 2. 试题信息管理模块 教师登录后,点击“试题信息管理”按钮即可进入试题管理模块,教师可对个人 上传的试题信息进行查看、修改、删除等操作,同时可以浏览其他人上传的试题,但 不可进行修改,此外,教师还可以上传试题。其功能模块图如图 3.1.2 所示。 教师登录模块 个 人 信 息 管 理 试 题 信 息 管 理 试卷 信息 管理 手动 组卷 系统 组卷 修 改 个 人 信 息 修 改 登 录 密 码 个人信息管理 河北工业大学毕业设计(论文) 第 13 页 共 40 页 图 3.1.2 试题管理模块图 3. 试卷信息管理模块 教师登录后,点击“试卷信息管理”按钮即可进入试卷信息管理模块,在该模块 中,教师可对个人上传的试卷信息进行查看、修改、删除等操作,同时还可以上传新 的试卷到题库,此外,教师还可以浏览其他教师上传的试卷信息。其功能模块图如图 3.1.3 所示。 图 3.1.3 试卷信息管理模块图 4. 组卷模块 教师登录后,点击“系统组卷”后即可进入系统组卷模块,教师按照向导,依次 选择组卷的科目、该课程包含的章节和要加入试卷的题型并设置每种题型的所包含的 题量后,点击组卷后,系统会自动到题库中随机选择相应的题目加入试卷,组卷完毕 后,教师可阅览组好的试卷,如果满意即可将试卷保存到指定的路径。此外教师还可 试题信息管理 上 传 试 题 信 息 修 改 试 题 信 息 删 除 试 题 信 息 查 看 试 题 信 息 试卷信息管理 上 传 试 卷 信 息 修 改 试 卷 信 息 删 除 试 卷 信 息 查 看 试 卷 信 息 河北工业大学毕业设计(论文) 第 14 页 共 40 页 选择手动组卷,点击“手动组卷”按钮,教师即可进入手动组卷模块,当选择好需要 组卷的科目后,教师便可浏览题库中有关该科目的全部试题,可以逐道查看每道题的 详细内容,也可对试题进行筛选后查看,如对该试题感兴趣即可将其加入到试卷,点 击“完成”后即完成组卷,教师可阅览组卷后的效果,如满意即可进行保存。其功能 模块如图 3.1.4 所示。 图 3.1.4 组卷模块图 4.2.4 学生模块 当以学生身份登录后,学生可以进行在线练习,并可以向系统反馈信息,查看系 统公告并可以修改登录密码及个人信息,学生模块如图 4.1 所示。 图 4.1 学生模块图 4.3 数据库设计数据库设计 数据库是管理系统必不可少的组成部分,设计一个结构合理的数据库不论是对操 作的速度还是对程序的设计都至关重要。 组卷模块 手动 组卷 系统 组卷 学生登录模块 在 线 练 习 反 馈 信 息 查 看 系 统 公 告 修 改 个 人 信 息 河北工业大学毕业设计(论文) 第 15 页 共 40 页 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式 和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满 足各种用户的应用需求,包括信息管理要求和数据操作要求。数据库设计的目的是为 用户和各种应用系统提供一个信息基础设施和高效率的运行环境。 4.3.1 tb_userlogin 表 tb_userlogin 该表用于记录注册用户的信息,其包含 4 个字段:用户编号、用户 名、登录口令和用户权限字段,其中用户编号为主键用于标识注册用户,并且设置其 为种子标识,int 类型初值为 1,递增值为 1;用户名为 varchar 类型可以与真名不同; 登录口令为 varchar 类型允许为空;用户权限分为管理员权限、教师权限、学生权限, 用于控制不同的用户登录后进入到相应的控制界面。用户登录表的表结构说明如表 1 所示。 表 1 用户登录表 tb_userlogin 字段名称数据类型长度默认值允许空字段描述 idint整型无否唯一标识,主键 loginnamevarchar10无否登录名 loginpwdvarchar20无是登录口令 loginrightvarchar8无是登录权限 4.3.2tb_teacherinfo 表 tb_teacherinfo 该表用于记录已经注册的教师的详细信息,该表包含 9 个字段, 其中 teacherid 为主键,并且该字段为外键,依赖于 tb_userlogin 表中的主键 id。 教师的详细信息表的表结构说明如表 2 所示。 表 2 教师信息表 tb_teacherinfo 字段名称数据类型长度默认值允许空字段描述 teacheridint整型无否唯一标识,主键 teachernamevarchar10无否真实姓名 teachersexchar2无否性别 河北工业大学毕业设计(论文) 第 16 页 共 40 页 teacherexperienceint整型无否教龄 teachercoursesvarchar50无是所授课程 teacherdepartvarchar8无否所在系 teachertitlevarchar12无是职称 teacherplacevarchar20无是工作地点 teacheremailvarchar20无是用户邮箱 4.3.3tb_studentinfo 表 tb_studentinfo 该表用于记录已经注册的学生的详细信息,该表包含 7 个字段, 其中 stuid 为主键,并且该字段为外键,依赖于 tb_userlogin 表中的主键 id。学生 的详细信息表的表结构说明如表 3 所示。 表 3 学生信息表 tb_studentinfo 字段名称数据类型长度默认值允许空字段描述 stuidint整型无否唯一标识,主键 stunamevarchar20无否真实姓名 stusexchar2无否性别 stubirthdatetime日期无否出生日期 stuprofessionvarchar8无否所在系 stuschoolvarchar20无是所在院校 stuemailvarchar20无是用户邮箱 4.3.4tb_question 表 tb_studentinfo 表用于记录题库中存储的试题信息,同时用于存储用户上传的试 题,该表包含 12 个字段,其中 qid 为主键,并且为种子标识,标识种子为 100 标识增 量为 1;qchapterid,quploadid,qtype 均为外键,分别依赖于 tb_chapterinfo 表中 的主键 chapterid、tb_userlogin 表中的主键 id 和 tb_questiontype 表中的主键 questiontype。试题信息表的表结构说明如表 4 所示。 表 4 试题信息表 tb_question 字段名称数据类型长度默认值允许空字段描述 河北工业大学毕业设计(论文) 第 17 页 共 40 页 qidint整型无否唯一标识,主键 qcontentvarchar1024无否试题内容 qrightanswervarchar1024无否试题答案 qdetailedvarchar1024有否试题详解 qtypevarchar6无否试题类型 qdifficultyint整型无否试题难度 qscoreint整型无否试题分值 qchapteridint整型无否试题所属章节 qknowpointvarchar20无是试题所涉知识点 quploadidint整型无否上传人 quptimedatetime日期有是上传时间 qusechar1无是是否加入题库 4.3.5tb_testinfo 表 tb_testinfo 表用于记录题库中存储的试卷信息,同时用于存储用户上传的试卷, 该表包含 7 个字段,其中 testid 为主键,并且为种子标识,标识种子为 1 标识增量为 1;testtype、testrange、 uploadid 均为外键,分别依赖于 tb_useinfo 表中的主键 useid、tb_terminfo 表中的主键 termid 和 tb_userlogin 表中的主键 id。试卷信息表 的表结构说明如表 5 所示。 表 5 试卷信息表 tb_testinfo 字段名称数据类型长度默认值允许空字段描述 testidint整型无否唯一标识,主键 testtitlevarchar20无否试卷标题 testtypeint整型无否试卷类型 testrangeint整型无否试卷适用范围 uploadidint整型无否上传人 uploadtimedatetime日期是否上传时间 haveanswerchar1是否是否有答案 4.3.6 tb_courseinfo 表 tb_courseinfo 表用于记录题库中所有试题所涉及的课程名,管理员可以增加课 河北工业大学毕业设计(论文) 第 18 页 共 40 页 程名并存放在该表中。该表包含有 3 个字段,其中 courseid 为主键,并且设置为种 子标识,标识种子为 10,标识增量为 1。课程信息表的表结构说明如表 6 所示。 表 6 课程信息表 tb_courseinfo 字段名称数据类型长度默认值允许空字段描述 courseidint整型无否唯一标识,主键 coursenamevarchar20无否课程名 coursetypevarchar10无否课程类型 4.3.7 tb_chapterinfo 表 tb_chapterinfo 表用于记录 tb_courseinfo 表中每种课程名所包含的的章节名, 管理员也可以为某一课程名添加相应的章节名,并存放在该表中。tb_chapterinfo 表 包含有 3 个字段,其中 chapterid 为主键,并且设置为种子标识,标识种子为 10,标 识增量为 1;courseid 为外键依赖于 tb_courseinfo 表中的主键 courseid。章节信息 表的表结构说明如表 7 所示。 表 7 章节信息表 tb_chapterinfo 字段名称数据类型长度默认值允许空字段描述 chapteridint整型无否唯一标识,主键 chapternamevarchar20无否章节名 courseidint整型无否所属课程 id 4.3.8 tb_doquestion 表 tb_doquestion 表用于记录每一位学生登录后在线练习时做题的情况,是该学生 做题的历史记录。该学生每做一道题则将该题的相关信息从 tb_question 表中读取出 来存放到 tb_doquestion 表中。tb_doquestion 存放有该学生做题的答案,该题的详 解及正确答案,试题的内容等,这是一张临时表,当该学生退出系统后,其做题的记 录全部清空。学生在做题的过程中查看题目的详解及答案时都是从该表中进行查询。 该表包含有 6 个字段其中 id 为主键,并且为种子标识,标识种子为 1,标识增量为 1;qid 为外键,依赖于 tb_question 表中的主键 qid。做题信息表的表结构说明如表 8 所示。 表 8 做题信息表 tb_chapterinfo 河北工业大学毕业设计(论文) 第 19 页 共 40 页 字段名称数据类型长度默认值允许空字段描述 idint整型无否唯一标识,主键 qidint整型无否试题 id qcontentvarchar1024无否试题内容 qanswervarchar1024无否试题正确答案 qdetailvarchar1024无否试题详解 useranswervarchar1024有否学生答案 5 系统功能实现系统功能实现 经过总体设计,完成了模块的分解,确定了各模块的功能和模块间的接口,以及 确定了软件的总体结构,软件系统的基本框架已经成形,在该阶段主要完成各模块的 内部实现细节,对用到的算法进行精确的表达。 5.1 数据库的连接数据库的连接 此题库管理系统软件使用 ado 连接数据库的技术,并利用 server sql 2005 作为 后台大型数据库,使用 ado 技术访问 sql server 数据库具有速度快、效率高的特点, 但由于 ado 较为底层,操作复杂,故在本此课程设计中采用 ado 的封装类 cadoex 将 ado 对象进行封装简化操作。 连接数据库时首先先通过 ado 控件获取连接字符串存放在字符串变量 strconn 中 并将其声明为全局变量之后定义 cadoex 类的变量,通过该变量调用 cadoex 类中的成 员函数 bool connect()即可连接上数据库。 #import “c:program filescommon filessystemadomsado15.dll“ no_namespace rename(“eof“, “adoeof“),rename(“bof“,“adobof“)/引入 ado 库 bool cadoex:connect(cstring strlinkdb) hresult hr; _bstr_t bstrconn=(_bstr_t)strlinkdb; try disconnect(); m_pconn-connectiontimeout=8; 河北工业大学毕业设计(论文) 第 20 页 共 40 页 hr=m_pconn-open(bstrconn,“,“,admodeunknown); if(failed(hr) bstate=false; return false; catch(_com_error bstate=false; return false; bstate=true; return true; cadoex theado; cstring strconn=“provider=sqloledb.1;integrated security=sspi;persist security info=false;initial catalog=tbms;data source=9p8fdvrwvtntn5t“;/连接字符串 if(theado.connect(strconn)/连接数据库连接成功即返回 true cstring strsql; if(theado.getconnectstate()/判断数据库连接的状态 messagebox(“数据库连接成功”); else messagebox(“数据库连接失败!”); 5.2 系统模块设计系统模块设计 5.2.1 用户登录模块 用户登录页面是应用程序的主入口,用户只有通过该入口才能进入系统。因为用 户的登录权限有管理员、教师和学生三种权限,所以在登录时系统会先从 tb_userlogin 表中查询判断该用户是否存在,如果该用户存在则判断其登录权限并根 据其登录权限跳转到相应的不同权限的页面。其登录界面如图 1 所示。 河北工业大学毕业设计(论文) 第 21 页 共 40 页 图 1 用户登录界面 所以登录页面实现的主要功能有: 1) 实现教师登录; 2) 实现学生登录; 3) 实现管理员登录; 4) 用户注册; 5) 用户密码找回。 登录页面用到的数据表为 tb_userlogin 表,其实现原理为: 1)当用户点击【登录】时,首先对用户名和密码框进行非空检测,任何一项为空 都会发出“不能为空”的提示信息; 2)当用户名及密码均不为空时,系统会自动从 tb_userlogin 表中查找输入的用户 信息是否存在,如果不存在则发出“输入信息有误”的提示信息; 3)在用户名和密码正确的前提下进行身份识别,即检测该用户所具备的登录权限, 并根据不同的登录权限跳转到不同的页面,并将相关的参数传递到新的对话框; 4)如果用户信息不存在,则用户可以选择重新注册,也可以点击【忘记密码】输 入某些个人信息来重新设置密码,当注册成功或新密码设置成功之后再重新登录。 河北工业大学毕业设计(论文) 第 22 页 共 40 页 用户登录并判断用户是否存在代码: cstring strsql=“select * from tb_userlogin where loginname=“+m_strname+“ and loginpwd=“+m_strpwd+“; if(theado.executeselsql(strsql,strfield,strresult) if(strresult.getsize()0) strright=theado.getsinglestring(strresult.getat(0),4);/获取用户的登录权限 strid=theado.getsinglestring(strresult.getat(0),1);/获取用户的 id 号 if(strright=“teacher“)/如为教师权限则进入教师管理界面 cteacherdlg dlg; dlg.username=m_strname; dlg.userid=strid; dlg.userright=strright; dlg.domodal(); else if(strright=“student“)/如为学生权限则进入学生界面 cstudentinfodlg dlg; dlg.username=m_strname; dlg.userid=strid; dlg.userright=strright; dlg.domodal(); else if(strright=“admin“)/如为管理员权限则进入管理员界面 cmanagerdlg dlg; dlg.username=m_strname; dlg.userid=strid; dlg.userright=strright; dlg.domodal(); else messagebox(“输入信息有误!“,“提示信息“); 5.2.2 试题信息管理模块 试题信息管理模块是题库管理系统的重要模块之一。一个好的题库管理系统应该 能够方便的为用户提供上传试题、浏览试题等功能,并具有良好的人机交互界面。该 题库管理系统的试题信息管理模块如图 2 所示。 。 河北工业大学毕业设计(论文) 第 23 页 共 40 页 图 2 试题信息管理界面 试题信息管理模块的主要功能有: 1) 教师或管理员成功登录后均可上传试题。双击树形控件,选择某一科目,并 为要上传的试题选择好章节、题型、所包含的知识点,并设置好分值及难度系数后, 输入题目内容、答案、详解,点击【上传】后即可成功上传试题到题库并将信息插入 到 tb_question 表中。 2) 教师或管理员登录后均可以对个人上传的试题进行修改、删除等操作。双击 列表控件选中某一行即可浏览到该试题的详细信息并且可对试题信息进行修改并保存 也可删除试题信息。 3) 管理员登录后,点击【浏览其他人试题】即可在列表控件中显示其他人上传的 试题的信息,选中某一行,管理员即可查看该试题的详细信息,并可对试题信息进行 修改保存,或删除该试题信息。 4) 教师登录后,点击【浏览其他人试题】即可在列表控件中显示其他人上传的试 题的信息,选中某一行,教师即可查看该试题的详细信息,但不可对试题信息进行修 改也不能删除试题信息。 上传试题的主要代码为: if(theado.connect(strconn) 河北工业大学毕业设计(论文) 第 24 页 共 40 页 strsql=“insert into tb_question(qcontent,qrightanswer,qdifficulty,qdetailed,qscore,qtype,qchapteri d,quploadid,qknowpoint) values(“+m_strcontent+“,“+m_stranswer+“,“+m_strdifficulty+“,“+m_strdetail +“,“+m_strscore+“,“+m_strtype+“,“+chapterid+“,“+userid+“,“+getpointid()+“)“ ; if(theado.executenotselsql(strsql)/执行插入语句 messagebox(“添加成功!“); onrefresh(); getdlgitem(idc_button1)-showwindow(false); 删除试题的主要代码为: void csqentrydlg:ondelete() int nsel=m_conlist2.getnextitem(-1,lvni_selected);/行号 cstring strid=m_conlist2.getitemtext(nsel,0); cstring strsql=“delete from tb_question where qid=“+strid; if(theado.getconnectstate() if(theado.executenotselsql(strsql)/执行删除语句 messagebox(“删除成

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论