当前位置:文档之家› 本科毕业设计-基于excel_vba的试题库管理系统开发

本科毕业设计-基于excel_vba的试题库管理系统开发

本科毕业设计-基于excel_vba的试题库管理系统开发
本科毕业设计-基于excel_vba的试题库管理系统开发

1前言

1.1选题背景及意义

随着计算机的普遍应用,尤其是以微型计算机为处理核心,以Office办公软件为开发平台,以实现办公自动化以及管理信息化为目的,设计开发的小型信息管理系统在当今不断提高工作效率的社会中的应用显得更为普遍[1]。随着计算机的不断普及,它的运用已经渗透到当今社会越来越多的领域,利用计算机对试题库进行管理作为一个新的应用,在社会上得到了广泛的重视,尤其成为各大院校进行教学改革的重要内容。现今,国家对教育事业是相当的重视,在教育上投入了大量的人力物力,伴随着信息化的节奏,学校的管理也进入了科学的信息管理时代。面对大量的题库信息以及传统的繁琐试题管理方式,需要新的试题管理系统来提高管理工作效率。试题库的计算机化管理,不仅对试题进行了科学、系统的管理,还可成为评测学生学习效果、提高教学质量的有效辅助工具[2]。

试题库管理系统是一个学校教学过程中不可缺少的一部分。对于教学而言,出试卷是必不可少的,一个好的试题库系统,对于经常性地测试和提高学生的知识水平无疑具有重要的意义。目前市面上有许多基于不同坏境下所开发的试题库管理系统,但是,对于学院现在所开设课程不是太多的情况来说,就不需要太大型的数据库系统[1]。一个功能实用、操作方便,简单明了的试题管理系统就完全可以满足当今学科教学管理的需要。正是基于当今教学管理的需要,本课题开发了这样一个“基于Excel VBA 的试题库管理系统”。

本试题库管理系统集用户管理、试题维护、试卷查看和试题组卷等功能于一体,为教师方便快捷地对试题库中的试题进行管理提供了一个平台,通过这个平台,用户可以根据实际需要对题库中的试题完成试题维护、试题组卷及试卷查看等操作。本试题库管理系统在实际应用中不仅减轻了教师组卷的工作量,也对题库中试题进行了科学、系统、有效地管理,可以给教学工作带来不少方便。

1.2总体目标

面对当今学校教学工作中出现的大量试题库信息以及传统试题管理方式非常繁琐的现状,结合本系统开发的具体设计要求,本课题“基于Excel VBA的试题库管理系统”应该实现如下功能:

(1)可以实现按照学科名称、章节说明、题型等多种方式对试题库中的试题进行检索,可以对试题库中的试题进行增加、修改、删除等操作。在其对试题执行维护操作时应提供强大的编辑功能,可以不分学科、不分章节、不分题型快速方便的对试

题信息进行编辑,以实现对题库中试题的高效维护。

(2)可以实现按学科名称、章节、题型、难易程度等方式对试题库中的试题进行快速检索,并对所检索出的试题按照自动和手工两种方式实现组卷的功能。另外,还应具有灵活构卷的功能,以实现用户可以自定义试卷标题、试卷题量及试卷分值等信息。

(3)可以实现对系统所生成的所有试卷的查询,以实现对所生成试卷的查看、添加试题以及再组成试卷的功能,起到了对电子试卷库管理的作用。

1.3 设计方法

本系统具有构思新颖、使用灵活方便的特点,在设计中根据实际的教学情况和要求,采用“模块化设计”的设计方法,将系统拆分成多种窗体(登录窗口、用户增加窗口、试卷查询窗口、试题的详细信息的窗口、试题组卷窗口、题库维护窗口等多个窗口)进行设计,这样做出的系统具有稳定性强,操作简便,操作界面人性化的优点,使其完全可以成为改进教学方式,提高教学质量,高效、实用的软件系统。本系统在开发过程中采用了当前最新的设计思想:面向对象与事件驱动,面向对象设计的基本思想是通过建立与客观实际相对应的对象,并通过这些对象的组合来创建具体应用的思想。基于这种设计思想可以使编程更加方便、快捷。

1.4 国内外研究现状

目前已有众多学者在该领域做了大量工作,提出了许多建立通用智能组卷系统的方法。这种通用智能组卷系统的通用性体现在系统可以实现对多门学科试题的录入、管理和组卷,而智能性则主要表现在系统可根据用户选择的相关信息,自动组成若干套同等难度、相同题量的平行试卷。但是,通过查阅网上相关资料可以发现目前国内外基于不同环境所开发的试题库管理系统非常的多,但是多而不精,这些系统的通用性非常差,普遍缺乏开放性,只能用于管理特定课程和特定题型。另外,在组卷上也没有提供高效率的智能组卷算法。试题符号一直是试题库建设的难点及重点,很多网上试题库系统无法处理包括复杂的数学公式、化学方程式、特殊符号、电路图、工程制图等符号的试题,即使能够实现对部分符号的处理,其通用性也是比较差的。在调查中还发现很多国内试题库系统的试题录入编辑工作十分繁琐,没有提供一个高效的录入方式。因此,试题库的建设仍然有好多路要走[3]。

Excel VBA是微软公司开发历史最为悠久的数据库开发工具,由于具有使用方便、成本低、开发速度快等优点所以一般以此用来开发小型的数据库系统,并且用其所开发的系统完全支持网络技术[4]。另外,其通用性是极强的,使用VBA开发的系统几乎适用于所有用户机。基于Excel VBA的以上优点,本设计所开发的试题库系统就使用这种语言编写而成的。

2 Excel VBA简介

2.1概述

Excel 是Microsoft Office家族成员中一个集强大功能、先进技术、方便使用等优点于一体的表格式数据综合管理和分析的系统,它在进行数据处理时采用了电子表格的方式,使工作更加直观方便。Excel还为用户提供了丰富的函数,用户可以随时使用其所提供的函数进行各种数据处理、统计分析和辅助决策的操作,并将其应用在财政、金融、统计、管理等多个领域。另外,Excel还具有强大的制图功能,可以方便快捷地绘制出各种专业图表,实现了图、文、表三者的完美结合。除此之外,Excel 的强大功能还在于它提供的宏语言VBA[5]。

Visual Basic for Application(简称VBA)作为新一代的标准宏语言,是由Visual Basic for Windows逐渐发展起来的,是一种可以支持面向对象的程序设计语言。由于它具有可以直接应用于Office套装软件的各项强大功能,且其宏记录器可以很容易的实现日常工作与VBA语言之间的相互转换,可以轻松实现办公自动化,因此近年来广受人们的青睐[5]。

2.1.1 Excel VBA在办公中的应用

Excel VBA之所以可以实现办公自动化,可以提高工作效率,就在于可以直接使用VBA对Excel所提供的各种功能进行操作。Excel还提供了简单易用的人机交互界面,使其更加容易被广大用户所接受。简单地将,在Excel中使用VBA可以做到[6]:首先,它可以把大量、重复的操作记录为一个简单的VBA程序,用户只需利用一个菜单命令或工具栏按钮即可实现复杂操作的自动化;

其次,它可以通过控制Excel对象,在一个工作表中灵活地控制其他的工作表、数据表或文档,从而实现数据在不同工作表之间的交互;

最后,还可以利用VBA编辑器中提供的控件设置创建自己的VBA应用程序,实现一个企业级的信息控制系统。

VBA这门自动化语言不仅可以实现常用的程序自动化,创建针对性强、实用性强和效率高的解决方案,而且,还可以以Excel为开发平台,实现更加复杂的应用系统的开发。

2.1.2 VBA与VB的对比

实际上可以认为VBA是应用程序开发语言Visual Basic的子集,VBA继承于VB 应用程序。虽然VBA和VB有诸多类似的地方,但他们也有区别,主要体现在以下几个方面[5]:

首先,VB具有自己的开发环境,可以独立完成应用程序的开发;而VBA必须寄生于已有的应用程序,其开发具有针对行,同时也具有局限性。

其次,VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(excel,word)等实现自动化。

最后,要运行VB开发的应用程序,用户不必安装VB,而VBA开发的程序必须依赖于其所绑定的办公软件。

2.2 VBA的开发环境简介

在office中提供了VBA的开发界面,称为VBE(Visual Basic Editor)窗口,在该窗口中用户可以实现应用程序的编写。

2.2.1 VBA操作界面简介

Visual Basic编辑器[6]——VBE的操作界面如图2.1所示。

图2.1 VBE操作界面

(1)标题栏用来显示窗口的标题,在标题后面的方括号内显示目前所处的状态——设计、运行或调试。状态后面是正在设计的窗体的名称。

(2)菜单栏菜单栏包括文件、编辑、视图、插入、格式、调试、运行、工具、外接程序、窗口和帮助共11个菜单项,每一项都有若干命令,选择相应命令即可执

行相应操作。

(3)工具条VBA提供了4种工具条,即编辑、标准、调试和用户窗体,用户还可以根据需要定义自己的工具条。

(4)工具箱提供了多个用于创建应用程序的图形用户界面所需的工具,工具箱中的工具可分为两大类,一类是标准工具,一类是ActiveX控件。启动VBA后,工具箱中只有标准控件。

(5)窗体窗口是设计人员设计应用程序界面的载体。设计人员可以在上面安排控件,如文本框、命令按钮、图形框等。

(6)工程资源管理器列出当前应用程序所包含的各类文件清单。包括“查看代码”、“查看对象”和“切换文件夹”三个按钮。

(7)属性窗口列出了当前被激活的窗体或控件的所有属性,在设计时可以通过属性窗口设置窗体或控件的属性值。

(8)代码窗口其功能是输入和编辑VBA应用程序的代码。

2.2.2 VBA基本概念

(1)控件控件就是利用工具箱中的工具在窗体上设计的图形。它作为用户和计算机之间的界面接收和显示各种信息。常用的控件有:文本框、命令按钮、标签、复合框、列表框、复选框、选项按钮、框架、listview等。

(2)对象对象是工作表和控件的总称。它们都是程序可以控制的实体。对象包括属性、事件和方法,它们称为对象的三要素。

(3)属性属性即对象的特征,不同的对象具有不同的属性。属性的取值称为属性值。为对象赋值有两种方式,一是在设计状态下通过属性窗口进行设置,二是在程序中利用赋值语句进行设置。在本设计中用到的常用属性有[6]:

Name 设置控件名称。

Font 设置控件所用的字体及字号。

Text 设置控件上显示的文本。

Caption 设置不接受输入的控件上显示的文本。

Enabled 如果设为False则控件显示灰色,无法接受用户输入。

Visible 设置控件是否可见。

(4)事件事件是由VBA系统预先设置好的能被对象识别的特定动作。系统为每一事件规定一个名字,常用事件有:

Click、DblClick 在用户单击或双击时事件发生。

MouseMove 在鼠标经过控件时连续发生。

Gotfocus 当控件获得输入焦点时产生该事件。

Lostfocus 当控件失去输入焦点时产生该事件。

Change 在各种控件的内部改变时触发。

(5)方法是一个对象所执行的某些特定的动作。几个常用方法:

Activate 激活当前图表、工作表、单元格等对象。

Add 添加对象。

AddItem 为列表框或组合框添加数据项。

Clear 清除整个对象。

Close 关闭整个对象。

2.3 VBA设计程序的一般步骤

VBA作为一种语言,其设计程序一般要经历以下几个过程:

(1)使用控件创建应用程序的界面。

(2)为所创建的界面设置属性。

(3)在代码窗口编写连接各控件及实现各种过程的程序代码。

(4)调试运行所开发的软件。

(5)通过软件生成可执行的文件。

任何一个软件的开发都要经历以上几个阶段,在下面的章节中将会具体介绍到每个阶段需要完成的工作。

3 系统分析

3.1可行性分析

在当今社会,随着计算机的不断普及,计算机的应用不断渗透到百姓生活的方方面面,这不仅方便了人们的日常生活而且还大大提高了的工作效率,成为人们提高工作效率的首选。利用计算机对试题库进行管理是计算机辅助教学的一个重要分支和重要环节,它己成为院校教学改革的重要内容。当前学校中试题库的管理尚处于手工作业阶段,这种管理不但效率低,还常常因为管理的不慎出现纰漏。试题库的计算机化管理,不仅对试题进行了科学、系统的管理,还可成为评测学生学习效果、提高教学质量的有效辅助工具[7]。因此,设计开发试题库管理系统起到了帮助老师提高工作效率,降低工作强度的作用。

试题库管理系统主要是对学校各学科试题进行集中管理,这样不仅可以减少教师工作量,而且还可以让学生对所学课程进行有效的复习。本文所开的系统是使用Office办公软件Excel为开发平台,使用VBA语言为开发工具编写而成的,是一个集用户管理、试题维护、试卷查看和试卷生成等功能为一体的系统。

VBA语言是一个面向对象的程序设计语言,其可以作为软件的开发语言是基于它的以下优点[4]:

(1)开发效率高Excel 中宏可以自动完成用户设定的任何动作组合,宏的使用大大提高了编程效率,可以实现快速编程的目的。

(2)语言简单易懂VBA语言是非常简单、易懂易学的。

(3)基于对象方法基于对象的方法使得其窗体的制作非常简单方便,而且很容易被人们接受。

(4)VBA一般都会嵌入在应用软件之中,他们常常与应用软件有很好的接口,而且你无需单独购买即可立即着手开发使用。

基于VBA语言的以上优势,所以该系统在技术上是可行的。

另外,因为本系统开发使用所使用的平台都是免费的,因此该项目的开发成本很低,从这一点来说,该系统在经济上也是可行的。

由系统的开发平台可以看出本系统的可操作性能是非常好的。首先,本系统要求用户所使用计算机的软、硬件的配置是非常低的。只要用户机能够运行办公软件就可以使用本系统,因此本系统几乎适用于所有用户。其次,由于实际操作本系统时基本上以鼠标操作为主并以少量的键盘操作作为辅助,所以对管理员和使用用户的操作能力无任何特殊要求,操作十分简单。因此,该软件具有良好的易用性。

3.2需求分析

管理信息系统作为一个先进科学技术与现代管理相结合的技术产物,已逐渐成为现在企业提高其自身素质、实现企业目标的重要工具。一个好的管理信息系统,不仅可以使企业的信息管理工作系统化、规范化、自动化,而且还可以达到提高企业管理效率的目的。另一方面,信息系统的目标为信息系统的发展方向提供了准则,是企业战略规划的一部分,具有极其重要的作用[8]。

管理信息系统(MIS)是一个由人和计算机等组成的能进行信息收集、传递、储存、加工、维护和使用的系统。本课程所设计的题库管理系统是一个集试题维护、试卷生成及试卷查询的系统。

3.2.1功能需求

试题库管理信息系统的建设是学校实现信息化管理的一部分,是提高教师工作效率降低工作负担的必由之路。这种高效化的试题库管理模式已经逐渐替代过去的手工管理模式。系统的功能需求分析是一个软件开发过程中最主要的工作,同时也是软件生存周期中最关键的一步。在软件的开发过程中需要根据具体的设计要求,采用结构化的分析方法,对系统的功能和相关技术采取自上而下、逐层分解的方式进行分析。结合学校实际情况需要本系统可以实现对题库中试题维护、试题组卷以及对所生成试卷的管理的功能,主要表现在以下几个方面:

(1)管理员的管理功能。此模块负责系统用户信息的管理工作,包括用户的增加和用户密码的修改。考虑到只有管理员才能有权限对系统用户进行管理,因此设计了本系统功能。

(2)对试题库中试题的查询、增加、修改和删除等功能。对试题库中试题的维护是一个试题库管理系统最基本的功能,这也是计算机教学改革中的一个重点。此功能可以实现对试题进行系统、有序、科学的管理。

(3)对试题库中的试题实现自动组卷及手动组卷的功能。

(4)对已组成的试卷实现查询、添加试题及再组卷的功能。

另外,还要求本系统具有美观大方的操作界面,简单方便的操作流程。

3.2.2系统性能要求

(1)安全性:系统应该有较强的安全性,对数据和相关信息有较强的保护性[9]。

(2)稳定性:系统应该在一定情况下稳定运行。

(3)兼容性:能够与其它软硬件有良好的兼容性。

4 总体设计

4.1功能模块划分

基于Excel VBA开发的本试题库管理系统主要有以下四个模块组成:用户登录模块,可以实现使用用户的添加和用户密码的修改;题库维护模块,可以实现对题库中试题的增加、修改和删除;试题组卷模块,可以实现自动组卷及手动组卷;试卷查询模块,可以实现生成试卷。系统总的系统功能模块结构图,如图4.1所示:

图4.1 系统功能模块结构图

4.2系统数据流图

用户向试题库管理系统发出登录请求后系统将进行用户信息的验证,判断是否为管理员登录,若为管理员则才有权限对用户进行添加,若为一般用户则只能修改密码,判断完权限后如果信息正确即可登录系统主界面,由主界面可以发出多条操作请求:

试题维护请求发出后即可进入试题维护界面,在此可以实现对试题库中试题的维护功能,即对试题库中试题进行增加、修改及删除的操作,然后还需要将操作后的试题信息重新反馈到题库中;若组卷请求发出后即可进入试题组卷界面,在此界面可以实现对试题进行手动和自动两种不同方式的组卷功能,首先通过设定的组卷参数筛选出符合标准的试题,然后从中选取需要的试题点击加入后系统会自动将所选取的试题信息送入题签库,输入试卷标题后即可输出试卷和相应的答案;若查询请求发出后即可进入试卷查询界面,在此界面可以查询到题签库中所有试卷信息,然后点击所需要的试卷后系统会自动显示出该试卷所有信息,进而可以实现再组卷的功能。系统的数据流图,如图4.2所示:

图4.2 系统数据流图

4.3功能设计

本系统的功能是通过多个用户窗体及用户界面来实现,有用户登录窗体;增加用户窗体;修改用户密码窗体;系统主界面;试题维护界面;试题组卷界面和试卷查询界面。

(1)登录界面

登录界面包括用户登录、增加用户和修改用户密码三个窗体,可以实现用户的登录,系统根据用户输入的用户名及密码自动查询“名单”数据库中的数据,若输入的用户名在数据库中存在则判断密码是否正确,若输入正确即可进入系统主界面。

用户还可以在登录页面对自己的密码进行修改,用户输入用户名及密码后点击修

改密码按钮即可进入修改用户密码窗体,在此可以对密码进行修改。

另外,如果输入管理员用户名和密码还可在登录页面实现增加新用户的功能,点击“新增用户”即可进入新用户增加窗体,输入新的用户名及密码完成新用户的增加操作。

(2)主界面

主界面可以实现整个试题库系统功能的导航的作用。另外,主界面还起到了各功能进行中转时中转界面的作用。进入主界面可以看到“试题维护”、“试题组卷”、“试卷查询”三个按钮,点击按钮即可进入相应界面。

(3)试题维护界面

在此界面可以实现对数据库“题库”中试题的维护操作,此操作可以实现三个功能:直接向数据库中增加新试题;通过检索功能对题库中的试题信息进行检索快速找到使用者所需要的试题,然后对其进行修改操作;通过检索功能对题库中的试题信息进行检索快速找到所需要的试题,然后对其进行删除操作。

(4)试题组卷界面

从主界面点击“试题组卷”按钮即可进入组卷界面,在此可以通过自动组卷和手工组卷两种方式实现组卷功能。通过对组卷参数的设置,系统将自动从数据库中检索符合参数设置的所有试题,然后用户即可手动点击加入将试题信息添加到题签库中从而完成了手动组卷的操作。若设置完组卷参数后添加要生成的试卷中本参数设置下试题的数量,系统将自动把符合条件的试题信息添加到题签库中从而完成自动组卷的操作。

本系统必须通过本界面下的题签库方可完成由excel格式的试题向word格式的标准试卷的转化。另外,在转化之前还可以在“统计”窗口对要生成的试卷题型顺序及分值进行调整和修改。

(5)试卷查询界面

本界面可以实现对以前通过本软件所生成试卷的查看、修改及再组卷的的功能。点击进入以后系统将自动检索“题签库”数据库中的试卷信息,从中选择所需要的试卷,然后该试卷中试题的信息会在试题组卷界面的题签库中显示出来,当然还可以对该试卷进行试题添加和调整题型顺序的操作,然后添加试卷标题即可重新组成标准格式的试卷和答案。

4.4数据库结构设计

在系统设计中对整个项目起到整体规划作用的数据库结构设计也是总体设计中的重要内容,由于数据库中个数据表之间、数据表与程序之间都是密切相关的,因此在数据库的结构设计中既要考虑全局结构又要考虑局部结构。如果数据库结构的设计不到位,整个系统的设计都会受到一定的影响[10]。

本系统直接采用excel中的工作表作为数据库,系统一共设计了4个数据表:“试

卷表头”数据表,“题签库”数据表,“名单”数据表和“题库”数据表。

(1)“试卷表头”数据表

该数据表中存储着生成word标准格式的试卷时需要在试卷中添加的卷头信息,由于这种信息在每套试卷中都要添加所以把卷头信息专门放在一个数据表中,其格式如图4.3所示。

图4.3 “试卷表头”数据表

(2)“题签库”数据表

该数据表中存储着通过两种不同方式所组成的不同试卷的试题信息,其中包括试题ID号、试卷标题、题型、难度、分值、章节说明及组卷日期等字段,其格式如图4.4所示。

图4.4 “题签库”数据表

(3)“名单”数据表

该数据表用来存储使用用户的基本信息,其中包括用户名及密码两个字段,其格式如图4.5所示。

图4.5 “名单”数据表

(4)“题库”数据表

该数据表是用来存储所有试题信息的数据库,是整个系统的核心数据库,其中包括试题ID号、学科名称、所属章节、章节说明、题型、难度、分值、题目、答案及题后间距等试题的基本字段,其格式如图4.6所示。

图4.6 “题库”数据表

4.5代码架构设计

对系统完成了系统功能模块划分、系统数据流分析、系统的功能设计及数据库的设计以后,建立了该系统的总体结构,即各组成成分。另外,通过系统的总体设计还明确了各种组成成分、子系统及模块之间的相互联系,这也就标志着系统设计的第一个阶段——概要设计的完成。第一阶段所设计的系统只是一个框架是无法完成任何操作的。要使这些框架有意义就必须赋予特定的代码,所以系统设计的第二阶段也是最为关键阶段就是程序代码的编写阶段——详细设计,即系统运行后台的设计阶段。要在详细设计阶段确定出系统各模块的内部算法及数据结构。另外,系统设计理论中的模块化方法在本设计中得到充分体现,由需求分析设计系统功能,然后对系统功能进行模块划分,进而对各模块之间的算法和数据结构进行设计。这种模块化的方法在系统设计中起到了化繁为简的作用,大大提高了的设计效率[11]。

5系统详细设计与实现

完成系统设计的第一阶段——总体设计的工作后,这一章需要对系统做出详细设计,即为系统各功能的实现做出模块的划分和模块内部及不同模块之间算法和数据结构设计。本章是整个系统设计最为关键的一章,其设计的恰当与否关系到整个系统功能最终是否能够实现。下面依据系统所要实现的功能:用户登录、用户管理、试题维护、试题组卷和试卷查询,采用模块化的方法对各系统模块及各模块之间衔接进行详细设计。

5.1用户登录模块功能设计

本系统的登录模块可以实现如下功能:

(1)为用户进入系统提供一个入口。其具体效果如图5.1所示。

图5.1 系统登录界面

(2)为用户列表框自动添加可以访问本系统的所有用户。其效果如图5.2所示。

图5.2 用户列表框

(3)当用户输入的密码与所选择的用户相符时,即可进入系统的主界面。

(4)当用户输入的密码与所选择的用户不相符时,系统仍定位在本登录界面,并提示“密码不正确,请重新录入!”

另外,为了减少系统界面,提高系统的可操作性,本登录界面中还添加了进入用户管理模块的两个按钮:“新增用户”和“修改密码”,当点击相应的按钮后即可链接到用户管理模块的相应界面。其效果如图5.3所示。

图5.3 用户管理界面

5.2用户管理模块功能设计

此模块负责系统用户信息的管理工作,包括用户的增加和用户密码的修改。设计时考虑到只有管理员才有权限对系统用户进行添加,因此只有输入管理员用户和密码方可进入增加用户界面,然后在增加用户界面实现新用户信息的注册工作。其效果如图5.4所示。

图5.4 增加用户界面

为了保证系统用户的唯一性,需要对新增用户的用户名信息与数据库“名单”中的用户名进行对比,如果数据库中存在该用户名则系统不能完成该用户的添加,如果不存在则可以直接将用户信息添加到数据库中完成新用户的添加工作。

用户密码的修改需要实现的功能是对数据库表中系统用户密码进行修改。系统完成本模块的功能设计时始终以“用户名”作为主键,来完成界面与数据库之间的连接。

相关主题
文本预览
相关文档 最新文档