计算机毕业设计(论文)-VB考试系统的设计.doc_第1页
计算机毕业设计(论文)-VB考试系统的设计.doc_第2页
计算机毕业设计(论文)-VB考试系统的设计.doc_第3页
计算机毕业设计(论文)-VB考试系统的设计.doc_第4页
计算机毕业设计(论文)-VB考试系统的设计.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

目 录摘 要2绪 论31.1 引言31.2 开发本系统的意义3第二章、关于开发工具及相关技术42.1 Visual Basic可视化编程语言42.1.1 Visual Basic 介绍42.1.2 Visual Basic 的特点42.2 数据库概述52.3 Access简介52.4 Visual Basic与数据库52.5 数据控件6第3章 试题库系统需求分析83.1 问题定义83.2可行性分析83.3任务概述93.4数据流图描述93.5数据字典103.6功能描述11第4章 试题库系统总体设计114.1系统模块分析及说明114.2数据库分析及结构说明134.3 试题库系统设计关键184.3.1 随机数的实现184.3.2 题库的更新与恢复19第5章 试题库系统详细设计说明205.1登录窗口设计说明205.2主窗体设计215.3用户管理设计225.4题库管理设计245.5题库信息统计设计295.6随机出题设计305.7人工出题设计35第6章 软件测试366.1 软件测试的目的及原则366.2系统测试的步骤37第7章 结束语3871 总结387.2 致谢39参考文献39摘 要 随着计算机技术上越来越深入而广泛的应用,无纸化考试实施在技术上已逐步成熟。无纸化考试系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部考试有机地组织起来,就必须建立与自身特点相适应的考试系统。 本文介绍了在Visual Basic6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个考试系统的过程。通过分析某一学校学生考试的不足,创建了一套行之有效的计算机无纸化考试的方案。文章介绍了考试系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。【关键字】:考试系统、考试、Visual Basic应用。SummaryWith more and more widespread and profound application of information technology in management, the implement of management information system has become mature in technology step by step. Managing information system is a new subject. Enterprise needs existence and development, so enterprise activities should be organized efficiently and organically, which means tightening up the enterprise management and strengthening effective management of any resource internal the enterprise, and also establishing a management information system fitting in with its own characteristics.This article introduces the detailed process of exploring a management information system under the environment of visual bisc , utilizing “Top-Bottom” overall plan and a strategy according to “Bottom-Top” application and exploitation. That is to establish a set of effective scheme for student management by computer, through analyzing disadvantages of student management by human resources. This article emphasizes on three sections. The system analysis section of student management information includes feasible analysis, management function analysis.The system design section mainly focuses on system function design and data base design and data number design. And the system realization section has provided several major function , together with the main windows and programs.This economical and pragmatic system has explicit interface, with simple operation.Keywords :MIS、student management、visual basic application.绪 论1.1 引言在世界高速发展的今天,电脑已经成为挂在我们嘴边的一句口头禅,它已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。自从Windows问世以来,其图形用户界面日益深得人心,以往在Dos环境下运行的应用程序也越来越多地被升级成Windows环境。Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许多复杂的工作。然而,虽然现在世界上已经充满了多如牛毛的各种软件,但它们依然不能满足用户的需求,人们还不得不开发适合自己特殊需求的软件。1.2 开发本系统的意义众所周知,我国是世界上人口最多的国家,我国学生的数量也是惊人的。对于学校的教师来说,最头疼、繁重的工作莫过于出题工作了。每学期各种大小考试浩如烟海,常常会有这样的情况发生:因为出题教师笔误出错试题,不得不要到每个考场去更正;而市场上出售的试题,却经常因为其内容与实际教学情况不相符合而不能全部采用。本套出题系统就是应对此种情况而开发的。它的开发不但解脱了教师年复一年的出题工作,而且一次准确录入试题以后就可以反复多次在不同的试卷中使用,保证了试卷的正确性。教师通过对题库的管理,可以选择录入符合当前教学情况的新试题,对于那些已经陈旧过时的试题,可以将其删除,以此保持题库的时效性,而那些只需要稍微改动就可以有所新意的试题,则无需删除,可以通过题库的修改试题功能来实现。此系统内的题库是针对大学计算机课程C语言这门学科设计的,采用的试题全部是C语言历年来试题,具有较高的针对性和使用性。第二章、关于开发工具及相关技术2.1 Visual Basic可视化编程语言2.1.1 Visual Basic 介绍Visual Basic 是 Microsoft 公司推出的最成功的可视化编程工具MSDN之一,是目前世界上使用最广泛的程序开发工具,拥有数以百万计的用户。自从1991年Visual Basic语言诞生后,它逐渐成为人们开发图形用户界面的应用程序的最有力的工具,是近年来被广泛使用的一种高级语言。Visual Basic继承了BASIC语言简单易学的优点,又增加了许多新的功能,它采用当前最新的程序设计思想:面向对象与事件驱动,使编程变得更加方便、快捷。使用Visual Basic既可以开发个人或小组使用的小型工具,又可以开发多媒体软件、数据库应用程序、网络应用程序等大型软件。Visual Basic是一种通用的程序设计语言,在许多领域得到了广泛的应用,而在数据库方面的应用尤其受到人们的重视。数据库应用是计算机应用中极其重要的一个方面,他在信息处理领域中起着中心环节的作用。由于网络技术的发展,数据库已成为计算机技术应用的重要环节。Microsoft的市场调查表明,百分之七十以上的Visual Basic应用程序都设计到数据库,而Visual Basic本身完全可以满足数据库应用程序的设计要求。2.1.2 Visual Basic 的特点Visual basic使我们摆脱了所有的低层消息处理。许多消息由visual basic自动处理了,其它的作为事件过程由编程者自行处理。这样可以快速创建强大的应用程序而毋须处理不必要的细节。时间驱动程序模型在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何种顺序执行代码。从第一行代码执行程序并按应用程序中预定的路径执行,必要时调用过程。在时间驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件可以由用户操作触发,又可以由来自操作系统或其他应用程序的消息触发,甚至有应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径都是不同的。因为事件的顺序是无法预测的,所以在代码中必须对执行的“各种状态”作一定的假设。交互式开发传统的应用程序的开发过程可以分成三个明显的步骤:编码、编译和测试代码。但是Visual Basic与传统的语言不同,它使用交互式方法开发应用程序,使三个步骤之间不再有明显的界限。2.2 数据库概述几乎所有的应用程序都需要存放大量的数据,并将其组织成易于读取的格式。这种要求通常可以通过数据库管理系统(DBMS)来实现。数据库管理系统提供了数据在数据库内存方式的管理能力,使编程人员不必像使用文件那样需要考虑数据的具体操作或数据连接关系的维护。简单的说,数据库是一组特定数据的集合,是提供数据的基地。随着计算机技术的发展,数据库越来越显示出其强大的数据存储和数据管理功能。最近几年来关系模型已经成为数据库设计事实上的标准。关系数据库模型把数据用表的集合来表示。通过建立简单表之间的关系来定义结构,而不是根据数据的物理存储方式建立数据中的关系。不管表在数据库文件中的物理存储方式如何,都可以把它看作一组行和列。在关系数据库中,行被称为记录,而列则被称为字段,表是有关信息的逻辑组。数据库可以由多个表组成,表与表之间可以用不同的方式关联。2.3 Access简介一般来说,如果要开发中小型数据库系统,用Access数据库比较合适用,本系统就是采用Access建库。Access实际上是一个基于关系型数据库的数据库管理系统。创建数据库的两种方法:一种是使用“数据库向导”,用户可以在系统提供的数据类型中作出选择。另一种是创建一个空的数据库,由用户根据自己的需要添加相应的内容。用Access创建表有三种方式 : 使用向导创建表:用户根据向导提供的字段可以直接选择。 使用设计器创建表:用户可以定义一个或多个字段作为主键 使用输入数据创建表:可以直接输入数据创建一个新表2.4 Visual Basic与数据库Visual Basic提供了强有力的数据库存取能力,将Windows的各种先进特性与强大的数据库管理功能有效的结合在一起。VB在数据库开发方面也具有Foxpro所远不能及的强大功能。VB能够读取和访问Access、Excel、dBASE、Foxpro、Btrivev和ODBC等多种数据库,并能利用VB自身所带的数据库引擎创建Access数据库。在VB中可以使用两种数据访问技术,即Jet数据库引擎和ODBCDirect技术。三种访问数据库的方法:数据控件、数据访问对象和直接调用ODBC API函数。由于本程序对数据库的访问是通过数据控件方式,下面就简单谈一下数据控件的特性。2.5 数据控件数据控件是Visual Basic访问数据库的一种利器,它通过Microsoft JET数据库引擎借口实现数据库访问。数据控件能够利用三种Recordset对象来访问数据库中的数据,数据控件提供有限的不需编程而能访问现存数据库的功能,允许将Visual Basic的窗体与数据库方便地进行连接。要利用数据控件返回数据库中记录的集合,应先在窗体上画出数据控件,在通过它的三个基本属性Connect、DatabaseName和RecordSource设置要访问的数据资源。数据控件的几个重要属性:1DatabaseName属性 DatabaseName属性指定具体使用数据库文件名,包括所有的路径名。如果连接的是单表数据库,则DatabaseName属性应设置为数据库文件所在的子目录名,而具体文件名放在RecordSource属性中。2RecordSource属性RecordSource确定具体可访问的数据,这些数据构成记录集对象Recordset。该属性值可以是数据库中的单个表名,一个存储查询,也可以是使用SQL查询语言的一个查询字符串。3EofAction和BofAction属性当记录指针指向Recordset对象的开始(第一个记录前)或结束(最后一个记录后)时,数据控件的EofAction和BofAction属性的设置或返回值决定了数据控件要采取的操作。数据绑定控件在Visual Basic中,数据控件本身不能直接显示记录集中的数据,必须通过能与它绑定的控件来实现。可与数据控件绑定的控件对象有文本框、标签、图象框、图形框、列表框、组合框、复选框、网格、DB列表框、DB组合框、DataReport控件和OLE容器等控件。要使绑定的控件能被数据空约束,必须在设计或运行时对这些控件的两个属性进行设置:(1) DataSource属性DataSource属性通过指定一个有效的数据控件连接到一个数据库上。(2) DataField属性DataField属性设置数据空件有效的字段与绑定控件建立联系。绑定控件、数据控件和数据库三者的关系如下图所示。绑定控件数据库数据控件当上述控件与数据控件绑定后,Visual Basic将当前记录的字段赋给控件。如果修改了绑定控件内的数据,只要移动指针,修改后的数据会自动写入数据库。数据控件在装入数据库时,它把记录集的第一个记录作为当前记录。当数据控件的BofAction属性值设置为2时,当记录指针移过记录集结束位,数据控件将会自动向记录集加入新的空记录。记录集的属性与方法由RecordSource确定的具体可访问的数据构成的记录集Recordset也是一个对象,因此,它和其他对象一样具有属性和方法。下面列出常用属性和方法。a) AbsoloutPostion属性AbsoloutPostion返回当前指针值,如果是第一条记录,其值为0,该属性为只读属性。2.Bof和Eof的属性Bof判定是否在首记录之前,若Bof为True,则当前位置位于记录集的第1条记录之前。于此类似,Eof判定是否在末记录之后3.Bookmark属性Bookmark属性的值采用字符串类型,用于设置或返回当前指针的标签。在程序中可以使用Bookmark属性重定位记录集的指针,但不能使用AbsoloutPostion属性。5.Nomarch属性在记录集中进行查找时,如果找到相匹配的记录,则Recordset的Nomarch属性为Fasle,否则为True。该属性常与Bookmark属性一起使用。6.Move方法使用Move方法可以代替对数据控件对象的4个箭头的操作遍历整个记录集中的记录。5种Move方法是:MoveFirst、MoveLast、MoveNext、MovePrevious、Moven。7Find方法使用Find方法可在指定的Dynaset或Snapshot类型的Recordset对象中查找与指定条件相符的一条记录,并使之成为当前记录。4种Find方法是:FindFirst、FindLast、FindNext、FindPrevious。四种Find方法的语法格式相同:数据集合.Find 方法 条件数据库记录的增删改操作Data控件是浏览表格并编辑表格的好工具,但怎么输入新信息或删除现有记录呢?这些操作需要编写几行代码,否则在Date控件上完成数据输入.数据库记录的增删改操作通过AddNew、Delete、Edit、Update、Refresh方法。第3章 试题库系统需求分析3.1 问题定义本系统是严格按照软件工程开发标准,采用模块化设计而成的。软件整体是有一组相对独立的子功能的模块组成,模块与模块之间的接口是清晰、简单的。对于任何一个实用系统,其数据库都占有不可替代的位置。结合本系统来说,数据库即为题库,下面给出题库的严格定义。题库是“按照一定的教育测量理论,在计算机系统中实现的某个学科题目的集合”,它是严格遵循教育测量理论,在精确的数学模型基础上建立起来教育测量工具。只有在正确建立题库的基础上,我们才能实现出题系统的各项功能。结合本系统来说,是用Access2000建立的数据库。3.2可行性分析需求可行性:针对目前学校的实际情况,出题工作确实正在成为一个困扰教师进行教学和测验的一个难题,本系统在此种情况下研发,是具有其时市场价值和需求的。技术可行性:本系统采用的程序设计语言为Visual Basic,数据库设计软件为Access2000。Access2000提供了强大建立个人数据库和商用数据库的功能,且建立数据库的操作简单明了,这对于建立题库是非常适合的,也是本人选择以此为后台数据库的原因。两者之间的借口是通过Visual Basic提供的Data数据控件,利用此控件完全可以实现对题库增加、删除、查询等基本操作以及在此基础上系统核心的功能:随机出题和人工选题。操作可行性:本系统的操作十分简单。以系统管理员的身份进入系统后,即拥有对系统操作的所有权限。通过菜单栏和快捷菜单可以方便的进入各个功能窗体,系统的主要功能(题库管理、随机出题、人工出题)窗体的操作简明易懂,十分方便用户使用。3.3任务概述该出题系统主要实现的任务:1.从题库内现在存有的试题随机选取试题生成试卷。2.让用户通过浏览题库内的所有试题来选取试题生成试卷。3.用户拥有对题库的管理:增加新试题,删除试题,修改试题。4.打印、保存生成的试题极其相应的答案。5.增加系统使用者,即增加新用户。6.删除用户。7.注销用户。8.修改当前用户的密码。3.4数据流图描述单项选择题多项选择题填空题材料解析题问答题用户登录教 师用户级别判定系 统 用 户 表教 师题库管理随机出题人工出题用户管理随机出题人工出题数据库3.5数据字典 数据字典是关于数据信息的集合,也就是对数据流图中包含元素的定义的集合。结合本系统,描述一下此出题系统的数据字典。(1)系统用户表: 编号:用户数目编号,类型为自动编号 用户名:系统用户姓名,不可重复,类型为文本 密码:用户名对应的密码,类型为文本 用户类型:用户的级别,分为系统管理员和一般用户两种,类型为文本(2)单项选择题表: 题号:题库中的单项选择题的编号,类型为整型数字。 题目:单项选择题试题正文,类型为文本。 答案:单项选择题试题答案,类型为文本。难度:单项选择题试题难度,类型为数字,1为简单,2为中等,3为难。 选取:此单项选择题试题是否被选取,0为未选取,1为选取。(3)多项选择题表: 题号:题库中的多项选择题的编号,类型为整型数字。 题目:多项选择题试题正文,类型为文本。 答案:多项选择题试题答案,类型为文本。 难度:多项选择题试题难度,类型为数字,1为简单,2为中等,3为难。 选取:此多项选择题试题是否被选取,0为未选取,1为选取。(4)填空题表: 题号:题库中的填空题的编号,类型为整型数字。 题目:填空题试题正文,类型为文本。 答案:填空题试题答案,类型为文本。 难度:填空题试题难度,类型为数字,1为简单,2为中等,3为难。 选取:此填空题试题是否被选取,0为未选取,1为选取。(5)材料解析题表: 题号:题库中的材料解析题的编号,类型为整型数字。 题目:材料解析题试题正文,类型为备注。 答案:材料解析题试题答案,类型为备注。 分值:此材料解析题试题分值,类型为整型数字。 难度:材料解析题试题难度,类型为数字,1为简单,2为中等,3为难。 选取:此材料解析题试题是否被选取,0为未选取,1为选取。(6)问答题表: 题号:题库中的问答题的编号,类型为整型数字。 题目:问答题试题正文,类型为文本。 答案:问答题试题答案,类型为文本。 分值:此问答题试题分值,类型为整型数字 难度:问答题试题难度,类型为数字,1为简单,2为中等,3为难。 选取:此问答题试题是否被选取,0为未选取,1为选取。3.6功能描述系统主要实现的功能是从以下四个方面描述的:用户管理模块:新增用户,删除拥护,注销用户,更改当前用户密码。题库管理模块:新增试题,删除试题,修改试题,题库信息统计。出题管理模块:随机出题,人工选题。试题生成模块:生成、保存、打印试题和答案。 第4章 试题库系统总体设计4.1系统模块分析及说明 本程序采用模块化设计,各个模块独自设计,功能明确,模块与模块之间用户登录删除用户新增用户注销用户修改密码题库管理题库信息统计随机出题人工出题生成随机试题生成人工试题题的接口清晰、明了。本试题库系统的模块图如下: 下面简要阐述一下本试题库系统的各模块的功能。新增用户模块说明:主要功能:用户权限的管理对于每个系统都是至关重要的。本系统将新增的用户分为两类,它的用户级别分为两级,分别是:系统管理员和一般用户。权限说明: 系统管理员:它拥有此试题库系统的人员管理权利。可以进行新增用户,删除用户,修改当前用户密码等。进行题库管理,具有添加新试题、修改试题、删除试题的权利,可以进行随机出题和人工选题。教师用户:进行题库管理,具有添加新试题、修改试题、删除试题的权利,可以进行随机出题和人工选题。学生用户:它只有登录本系统进行考试和查看自已的考试成绩。删除用户模块说明:主要功能:将以过期的用户删除。模块说明:对于相同级别的用户不能相互删除,具体到本试题库系统来说,如果以系统管理员的身份登陆,就不可以将与自己相同级别的用户删除,即不能删除系统管理员一级的用户,而只能删除比自己级别低的用户,也就学生用户。注销用户模块说明:主要功能:以当前用户的身份退出系统。模块说明:满足了拥有多个用户名的系统使用者的要求。可在出题时以一般用户的身份进入试题库系统进行电脑随机出题或用户人工选题,若要想及时修改题库,则可以利用此模块提供的功能登出此系统以系统管理员的身份重新进入系统进行题库的管理。修改密码模块说明:主要功能:修改当前用户自身的密码。模块说明:用户若想修改密码,需要输入用户原来的密码。题库管理模块说明:主要功能:添加试题、修改试题,删除试题添加试题:新试题的录入,可以分题型进行录入并保存到数据库中。同时在录入试题的过程中,可以自定义试题的难度以及编写试题的答案。修改试题:当由于种种原因需要修改原试题时,可以从题库中对应题型的数据表中找出需要修改的试题,并修改后保存到题库中。试题修改后生成的试卷将按修改后的试题为准。 删除试题:当某道试题因为种种原因不需要时,可以通过此功能实现对试题的删除。题库信息统计模块说明:主要功能:通过对题库各个数据表进行逐一查询,并按照各种题型和试题的难度进行试题数量上的统计,以生动的形式呈现出来,对题库一目了然。 模块说明:本模块主要是通过设置了六个时钟控件来控制试题统计上的变化。随机出题模块说明:主要功能:用户只需要进行简单的设置(各种题型的题数,分值,难度),就可以由电脑在题库中随机选取符合用户设置的题目。最多可以连续生成三套没有相同试题的试卷。 模块说明:对于用户进行设置的参数,由在标准模块中定义的全局变量来记录,并且在生成试题模块中引用此变量以实现电脑随机生成试题的功能。生成随机试题模块说明:主要功能:按照拥护在随机出题窗体内的设置(各种题型的题数,分值,难度),生成有电脑随机选取的试题,并连同试卷的答案分别存放在生成随机试题窗体的两个文本框中。通过此模块,用户不但可以将生成的随机试题保存到文件当中,还可以将其打印出来。在保存和打印时,按照实际情况,本模块设计为将试卷与答案分别保存和打印。 模块说明:此模块为系统的核心模块,是试题库系统的关键。它设计的好坏与否直接影响到试题生成的效果。本模块的核心内容是如何实现随机出题,结合本系统来说,主要是通过Visual Basic 6.0中的随机数函数与Data控件中的FindFirst方法的联合使用实现的。人工出题模块说明:主要功能:由于种种原因,用户需要出一套针对性较强的试卷。人工出题就是为此目的设计的。用户可以方便在各种题型间进行选择自己需要的试题,并且为试题赋以自己认为恰当的分值。生成人工试题模块说明:主要功能:生成按照用户在人工出题窗体中选择的试题,并连同试卷的答案分别存放在生成人工试题窗体的两个文本框中。并且具有和生成随机试题模块一样的保存和打印功能。4.2数据库分析及结构说明本系统所用的数据库是由Access2000创建的MDB数据库文件。如下图:由图可知,系统中共有六张表,下面简要的逐一介绍下列个表。系统用户表:用于存放试题库系统用户的用户名、密码和用户类型。如上图所示,此表中已存有5个默认用户名为:UserName,车平,张红,李明,丁金。系统用户表的设计试图如下表所示:字段名称数据类型长度主键说明编号自动编号True用户名文本型10保存用户名密码文本型16保存用户名对应的密码用户类型文本型10系统管理员、一般用户单项选择题表:本表内保存为试题库系统所有的单项选择题。单项选择题表的设计试图如下表所示:字段名称数据类型长度主键说明题号整型4True题目文本型保存单项选择题题目答案文本型保存单项选择题答案难度整型11:简单2:中等3:难选取整型10:未选取1:选取本试题库系统中一共存放单项选择题200道。多项选择题表:本表内保存为系统所有的多项选择题。多项选择题表的设计试图如下表所示:字段名称数据类型长度主键说明题号整型4True题目文本型保保存多项选择题题目答案文本型保保存多项选择题答案难度整型11:1:简单2:中等3:难选取整型10:未选取1:选取本试题库系统中一共存放多项选择题90道。填空题表:本表内保存为系统所有的选择题。字段名称数据类型长度主键说明题号整型4True题目文本型保存填空题题目答案文本型保存填空题答案难度整型11:1:简单2:中等3:难选取整型10:未选取1:选取本试题库系统中一共存放填空题71道。材料解析题表:本表内保存为系统所有的材料解析题。材料解析题表的设计试图如下表所示:字段名称数据类型长度主键说明题号整型4True题目备注保存材料解析题题目答案备注保存材料解析题答案分值整型保存该题的分值难度整型11:1:简单2:中等3:难选取整型10:未选取1:选取本试题库系统中一共存放材料解析题30道。问答题表:本表内保存为系统所有的材料解析题。问答题表的设计试图如下表所示:字段名称数据类型长度主键说明题号整型4True题目备注保存问答题题目答案备注保存问答题答案分值整型保存该题的分值难度整型11:简单2:中等3:难选取整型10:未选取1:选取本试题库系统内共有问答题30道。说明:1 由于材料解析题和问答题的题目和答案都过长,在Access中,文本类型的最大字符数为255,所以只有采用备注类型才能存放此类型的试题。2 在材料解析题表和问答题表中都比其他题型的表中多出了分值这一字段,是因为考虑实际试卷情况。单选、多选、填空题的分值都是一样的,而材料解析题和问答题的每一道题的分值大都是可变的,所以增加分值这一整型字段用来保存各个试题自己的分值。3 本试题库系统中所采用的试题均是从网上下载的C语言真题,具有很高的实用性。以上为本系统数据库中所有表及其内容的详细说明。4.3 试题库系统设计关键4.3.1 随机数的实现 由于此系统是试题库系统,其主要实现的功能就是电脑随机出题,因此如何能够实现电脑的随机花就成为了关键问题。 对于此问题的解决,本人是采用了Visual Basic程序设计语言中提供的随机函数Rnd(integer)来提供随机数的,此函数返回0至1的双精度数。其产生思路是:首先,对要生成题库的试题表进行一次遍历,以获得整个试题表的试题数。这可以通过Move语句和记录集的AbsolutePosition属性实现: Data1.RecordSource = 所选择的试题表 Data1.Refresh Data1.Recordset.MoveLast TotalNumber = Data1.Recordset.AbsolutePosition + 1此时,TotalNumber(整型变量)中就是试题表中所有试题的书目,再调用Rnd(integer)函数:Random_Number=int(Rnd()*TotalNumber+1)于是Random_Number就是所需要的随机试题数。有了随机试题数还不够,还需要在试题表中找到它。这并不困难,因为在设计数据表中,每个试题都有“题号”这一字段,其类型为整型,且每道题都是从1开始顺序排列的,因此只需要调用记录集的Find方法就可以找到与题号与Random_Number相等的试题: Data1.Recordset.FindFirst “题号=“ & str(Random_Number)通过此语句便可以指针移动到与随机数相匹配的试题上,以后的操作就都可以迎刃而解了。4.3.2 题库的更新与恢复 本试题库系统是允许用户对其进行二次开发的,用户可以以系统管理员的身份进入本系统,具有题库管理能力。在题库管理模块中,用户可以对题库中的试题进行添加、修改、删除等基本操作。正是由于如此,才保证了题库的及时更新。 需要解决的一个问题是,再删除试题模块中,是通过调用记录集的Delete方法删除试题的,删除完试题后,此试题的题号就会无效,但是在产生随机数中却有可能产生此数字,为了解决这个问题,需要在删除试题以后对整个试题表内的从删除试题向下的试题的“题号“字段进行重新编号。Data1.Recorset.MoveNext 移动记录指针到删除试题的下一试题Do While Not Data1.Recordset.EOF 判断记录是否到了最后一条Data1.Recordset.EditData1.Recordset.Fields(题号) = Data1.Recordset.Fields(题号)-1将本试题的试题题号减1Data1.Recordset.Update 更新试题表,保存修改Data1.Recordset.MoveNext 移动指针下移一条记录Loop 另外,在添加试题模块当中,是通过调用AddNew方法,此方法是自动在试题表末尾添加试题的。为了保证新添加试题题号的正确性,需要统计出整个试题表中的试题数目,然后再此数目上加1,赋值给新加试题的题号字段。 通过以上操作,就可以保证了题库更新的正确性。在生成随机试题窗体中,由于是通过产生随机数产生试题,试题在产生的顺序是不可预知的。在试题产生过程中,对试题的“选取”字段进行了修改,值为1。若不及时将其进行恢复,会导致因为试题库中的试题都已经被选取而无法生成用户所要求产生的随机试题,进入死循环,引起系统瘫痪因此在产生随机试题以后,必须进行数据库的恢复。而对于人工选题来说,它是在选择的时候就进行了对试题“选取”字段的改写。因此,整个题库系统共有以下三处需要进行题库恢复:(1) 产生随机试题窗体由于本系统可以保证用户连续三次出题的不重复性,所以要对出题次数进行判断,只有在大于3次以后才能对题库进行恢复。 对题库的恢复可以在产生随机试题窗体Unload()事件中进行。(2) 人工选取窗体同样是在人工选取窗体的Unload()事件中对题库进行恢复。产生需要恢复的原因是,用户在没有进行“生成人工试题”就退出了此窗体,但是在选择的过程中,题库却已经发生了变化。(3) 生成人工试题窗体 同样,仍需要对出题次数进行判断,如果大于3,就必须进行恢复。可以在选择题目的过程中进行。 第5章 试题库系统详细设计说明5.1登录窗口设计说明: 考试作为教学手段中的重要组成部分,起着重要的作用。所以作为试题管理系统,它也应该有一定的保密功能。限制无权用户对试题进行任何操作,以保证试题的正确、完整试题的保密性。模块描述:本模块的主要功能就是验证用户名和密码是否正确。以确定用户是否可登录系统的权利。功能:可在下拉列表框中选择用户的登录类型,以此来判断用户的类型(系统管理员,一般用户)。输入用户名和密码后点击登录按钮进行认证,当正确时进入系统。不正确时,继续停留在登录窗口。实现方法:要在窗体上设置一个Data控件,其Visible属性设置为Fasle,即不可见,作为与数据库的连接。点击登陆后,然后系统从系统用户表中查找用户所输入的用户名,当存在此用户名且密码和用户类型正确时,可以进入系统,出现主界面。用户密码文本框的PasswordChar设置为”*”,以保护用户密码。5.2主窗体设计此窗体是本系统的主界面,它主要提供一个用户接口,以适应不同用户对系统不同资源的访问。在本系统中选择所要执行的模块有三种途径,一是通过菜单项,二是通过快捷菜单条,三是通过快捷键。功能:提供三种方法进行选择用户要操作的模块。可使用户以多种自己习惯的方式使用系统各功能。背景版图片的显示使用了PictureBox图形框控件,由此控件装入一个图片并以图片实际大小的方式显示出来。如上图所示,在主窗体内将PictureBox的AutoReDraw属性值设为False。快捷菜单的实现:在Visual Basic中的菜单编辑器里增加一个新菜单AllMenu,其可见属性设置为不可见,这样不会在菜单栏中显示出来。在向AllMenu菜单里添加10个子菜单,名称分别为All_110,分别对应为新增用户,删除用户,注销用户,修改密码,题库管理,题库信息统计,随机出题,人工出题,关于,退出系统。用鼠标右键单击图片便会弹出快捷菜单,事件过程如下:Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 2 Then Button=2只响应鼠标右键PopupMenu AllMenu, 2 标志为2,PopupMenu只能用在 MouseDown事件中End IfEnd Sub对不同用户类型的响应:根据用户类型(系统管理员、一般用户)的不同,主窗体呈现出不同的操作权限。实现方法: If YongHuLeiXing = False Then 通过对标准模块中外部变量YongHuLeiXing(定义为Boolean类型,True为系统管理员,Fasle为一般用户,在登录窗口中对其赋值)的判断来赋给用户相对应的权限。XinZengYongHu.Enabled = False 新增用户模块为不可操作ShanChuYongHu.Enabled = False 删除用户模块为不可操作TiKuGuanLiForm.Enabled = False 题库管理模块为不可操作Me.Caption = Me.Caption & (一般用户: & CurrentUserName & )ElseMe.Caption = Me.Caption & (系统管理员: & CurrentUserName & )End If5.3用户管理设计 本管理模块主要分为:新增用户、删除用户、注销用户、修改当前用户密码四部分。新增用户设计说明: 需要有系统管理员权限,可以根据需要新增用户,用户类型分为:系统管理员,一般用户。功能: 新增用户,使其具有相应的权限。实现方法: 不同类型的用户,可以用下拉组合框进行区分。具体窗口如下图所示:当用户点击确定按钮后,系统首先在系统用户表中查找有无此用户名,若此用户名已经存在,则系统则会弹出对话框,提示此用户名已有,并清空窗体上的所有文本框,以便输入新的用户名。若无此用户,则系统会在核对两次输入的密码是否一致,如不一致,则会发出提示。如果以上均无问题,则系统会向系统用户表中写入新的用户名,及用户密码和其响应的权限。删除用户设计说明:需要有管理员权限,可以根据需要删除不需要的用户。功能:删除用户。实现方法:在列表中选择用户名,点击删除按钮。当点击左侧的系统用户列表框时,会在右边显示出其对应的用户类型(系统管理员、一般用户),系统管理员只能删除比自己级别低的用户,即一般用户级,而不能删除与自己同级别的用户,即系统管理员级,若删除,系统会弹出对话框,提示出错。修改密码设计说明:由于某种原因当前用户需要修改自己的密码,便可以通过此模块进行。功能:修改当前用户密码。实现方法:修改当前用户密码时,系统需要输入原密码,并且要校验新密码。注销用户设计说明:当用户需要以当前用户的身份退出系统,或需要以另外一个用户名重新登录系统时,可调用此模块。实现方法:在点击注销用户菜单后,通过调用Msgbox函数来实现。事件过程如下所示:Private Sub ZhuXiaoYongHu_Click()Dim i%i = MsgBox(是否要注销当前用户, vbOKCancel, 注销用户)If i = 1 Then i=1表示点击确定按钮Unload Me: LoginForm.ShowEnd IfEnd Sub5.4题库管理设计其窗体如下图所示:题库管理主要有添加试题、删除试题、修改试题三个主要功能。新增试题: 用于新试题的录入。由于每道题有它不同的题型,所在录入新试题时,要首先确定它的题型(结合本套出题系统,具体包括:单项选择题,多项选择题,填空题,材料解析题,问答题)可以通过单击SSTab的各个选项卡进行选择。当选择了不同的题型之后,单击“新增试题”按钮后,其标题会变为“确定“,且除了“放弃”按钮及“返回”按钮,其它按钮均变为不可操作状态。试题题目正文录入文本框上的标题、试题答案文本框的标题以及试题难度框架的标题就会以红色显示,表示正处于输入新试题状态。当输入完试题及其答案,进行了试题难度(简单、中等、难)的选择后,单击“确定”,则新试题将会被保存到数据库中相应题型的数据表中,试题题目正文录入文本框上的标题、试题答案文本框的标题以及试题难度框架的标题则恢

温馨提示

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

评论

0/150

提交评论