资源描述
B/S模式的下试卷自动生成系统的设计与实现B/S模式的下试卷自动生成系统的设计与实现信息与计算科学06101班 马德岭 指导老师:庄曰华摘 要:教学评价是教学工作的一个重要环节,通常的教学评价方式多为通过试卷进行考试,因而试卷的质量将直接影响到教学评价的结果。一般情况下,教师出试卷时要么到庞大的题库里一道一道的把题目挑选出来,或是从几本相关的书里把题挑选出来组成一份试卷,这样既费时又费力,而且很难保证试题的覆盖面和把握试卷的难度。为了将老师从繁重的命题工作中解放出来,为了提高命题的质量和管理的现代化、科学化、规范化,本文使用J2EE技术,采用B/S模式开发一个试卷生成系统。本文在充分的需求分析基础上,设计和实现了一个试卷生成系统,主要完成了手动生成试卷、自动生成试卷、抽取现有试卷和用户管理等功能。关键词:试题库系统;试卷生成;算法;J2EE;B/SAbstract :Value of teaching is an important tathe for teaching,usually a value of teaching is from a exam ,so a quality paper straight touches the value of teaching. The general situation ,teacher thinks out a paper,reach huge exam pool each finds out the question, or shoulder the question together out from several relevant books. Time-consuming and also strenuous like this, and very difficult to guarantee coverage rate and paper degree of difficulty of examination question. Helping the teacher disengages from the burdensome proposition about exam, In order to improve the quality and management proposition of the modern, scientific, standardized, the paper developed a test generation system.Paper Generation System is designed and implemented based on the sufficient needs analysis in this paper,It mainly implements some functions include in manually and automatically generating papers,extrating some of existing papers,maintaining user information and so on.Keywords: test library system;paper generation;algorithmic;J2EE;B/S1引言随着计算机技术的发展和普及,在我们的学习和日常生活中都离不开计算机技术,大到科研的超级计算机,小到我们日常使用的手提电话,实际都是计算机技术的应用,对于学校、企事业单位来说,计算机特别是PC机已经相当普及,大家对计算机的操作更加熟悉,充分发挥设备潜能是一种节约的表现,是一种美德。设计编写试卷生成系统,是基于二种目的:一是充分利用现有的计算机系统减轻工作人员的劳动强度。二是摒弃传统的手工整理、以试卷(纸质)的形式存放到档案室,浪费纸张等原材料,不利于保护环境。2 开发工具简介2.1 技术方案选择选择SQL Server 2000作为后台的数据库,选择JAVA、JSP、JavaScript、Html作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S (Brower/Server)模式进行设计。B/S 开发模式伴随着Internet的迅速发展,计算机技术正在由基于B/S(Brower/ Server)模式的应用系统转变为基于B/S模式的应用系统。过去,网络软件的开发都采用B/S(Brower)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题:a) 系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。b) 在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。B/S模式带来了巨大的好处:a) 开发成本及维护成本降低。由于C/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Brower)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。b) 良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。2.2 SQL Server2000SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的。于1988 年推出了第一个OS/2 版本在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上专注于开发推广SQL Server 的Windows NT 版本,Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。在系统中用到的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点。同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。3 系统设计3.1 系统功能模块图根据需求分析,将系统分为四个模块:系统管理模块,试卷生成管理模块,数据库管理系统,系统帮助模块。系统功能模块结构如图4-1所示。试卷管理系统系统管理试卷生成管理数据库管理系统帮助用户管理密码管理自动生成试卷手动生成试卷抽取现有试卷数据库还原数据库备份系统关于系统帮助图3-1 系统功能模块图下面对各功能模块的子功能进行较详细的讨论。(1) 系统管理模块该模块包括用户管理模块和用户密码管理模块。系统启动时调用此模块,要求用户先进行登陆。登陆功能模块如图4-2所示。系统用户信息管理员教务管理员教师修改管理员密码添加删除修改其他用户审核添加修改其他用户管理自身帐户查询试题打印试题管理自身账号图3-2 登陆模块功能图(2) 试卷生成管理模块试卷生成管理模块主要包括如下子模块:n 抽取现有试卷模块:显示预览试卷,保存答案,删除试卷功能。n 手动生成试卷模块:显示加入试卷,保存试卷功能。n 自动生成模块:显示生成试卷,预览试卷,预览答案,保存试卷功能。详细的试卷生成管理功能模块如图4-3所示。试卷生成管理抽取现有试卷手动生成试卷自动生成试卷预览试卷保存答案删除试卷加入试卷保存试卷生成试卷预览答案预览试卷预览答案图3-3 试卷生成管理模块功能图(3) 数据库管理模块主要包括数据库还原和数据库备份。数据库管理模块结构如图4-4所示。数据库管理数据库还原数据库备份 图3-4 数据库管理模块功能图(4) 系统帮助模块主要包括系统帮助和系统关于。系统帮助模块结构如图4-5所示。系统帮助系统关于帮助图3-5 系统帮助模块功能图3.2 数据表设计根据系统功能设计,把数据库命名:STGL,在SQL Server 2000数据库创建了题型表、难度程度表、出卷人表、用户信息表等。各数据表的具体情况如表1至表9所示。表 用户信息表(usermanagement)字段中文名字段英文名字段类型字段长度姓名NameIDchar20密码PWDchar20用户类型QXint2表 题型表(TX)字段中文名字段英文名字段类型字段长度题型Typechar10名称TypeNamechar10表 难度程度表(NYD)字段中文名字段英文名字段类型字段长度编号BHint4难易度NDchar4表4 选择题表(selects)字段中文名字段英文名字段类型字段长度题号BHchar10题型Typechar10题目Topicchar100选项AAchar100选项BBchar100选项CCchar100选项DDchar100正确答案Answerchar1难易度NDchar4出自章节ZJchar2表5 填空题表(adds)字段中文名字段英文名字段类型字段长度题号BH char10题型Typechar10题目TMchar100空1K1char50空2K2char50空3K3char50难易度NDchar4出自章节ZJchar23.3 组卷算法3.3.1 现有算法分析以往的具有自动组卷功能的考试系统大多采用随机选取法和回溯试探法。随机选取法根据状态空间的控制指标,由计算机随机的抽取一道试题放入试题库,此过程不断重复,直到组卷完毕,或已无法从题库中抽取满足控制指标的试题为止。该方法结构简单,对于单道题的抽取运行速度较快,但是对于整个组卷过程来说组卷成功率低,即使组卷成功,花费时间也令人难以忍受。尤其是当题库中各状态类型平均出题量较低时,组卷往往以失败而告终。回溯试探法这是将随机选取法产生的每一状态类型纪录下来,当搜索失败时释放上次纪录的状态类型,然后再依据一定的规律变换一种新的状态类型进行试探,通过不断的回溯试探直到试卷生成完毕或退回出发点为止,这种有条件的深度优先算法,对于状态类型和出题量都较少的题库系统而言,组卷成功率较好。 分析上述两种算法的优缺点,不难发现,在限制条件状态空间的控制下,随机选取法有时能够抽取出一组令用户满意的试题。只不过由于它随机选取试题的范围太大,无法确定目前条件下哪些区域能够抽取合适的试题,反而可能在那些已经证明是无法抽取合适试题的区域内反复选题,进行大量的无效操作进入死循环,最终导致组卷失败。回溯试探法组卷成功率高,但它是以牺牲大量的时间为代价的,由于本软件只是个小型的单科考试组卷系统,结构简单,出题量也较少,所以本系统选择相对简单,组卷成功率较好的回溯试探法进行组卷。3.3.2 回溯试探法的应用回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。用回溯算法解决问题的一般步骤为: 1、定义一个解空间,它包含问题的解;2、利用适于搜索的方法组织解空间;3、利用深度优先法搜索解空间;4、利用限界函数避免移动到不可能产生解的子空间。 问题的解空间通常是在搜索问题的解的过程中动态产生的,这是回溯算法的一个重要特性。 本系统使用的是回溯法的启发式搜索,以试题题型,试题分值和选题数量为约束条件进行随机搜索,而把设置的试卷总分数作为一个解空间。如果各题型分值之和等于用户设置的试卷总分数,则产生一个有效解,系统生成一份试卷,试题的题型,编号,分值等信息储存进试题库表中。通过系统的预览试卷功能,系统通过所存信息搜索数据库,获取试题内容,并输入Word文档中组成一份完整试卷。3.4 自动组卷自动组卷是时系统根据用户要求,随机选取试题,组成一份完整的试卷。本系统使用的是回溯探取法随机选题。其主要过程如下:(1)用户输入选题要求,如各题型数量,题型分值和题型难度,并设置试卷总分数。(2)初始化随机数生成器。(3)系统根据题型数量和题型难度要求在各题型表中随机抽取试题,将抽取到的试题的“编号”、“试题类型”、“分值”等信息存入临时表LSSJ中,并对其进行排序和比较,如有重复则返回继续搜索,防止试题被重复选取,一直到抽取试题数等于用户设置的各题型的试题数量。(4)系统自动判断用户设置的试卷总分值与试题总分值是否相等,是则生成试卷,并将试题信息“编号”、“分值”、“难度”等信息存入数据库表SJT中,且生成“试卷代号”、“试卷创建者”、并判断“试卷难度”,存入数据库表SJ中。否则试卷生成失败,并清空临时表SJ中所有信息。(5)设置试卷模板。(6)预览试卷,系统根据数据库表SJT中信息搜索题库试题内容,并按设置好的试卷模板导入Word中,生成一份完整的试卷,并以*.doc文件的形式保存。3.5 手动组卷由于自动生成的试卷,对于试卷知识覆盖面的问题不好控制,为了解决这各问题,所以本软件增加了另一种组卷方式,也就是手动生成试卷。此组卷方式的优点在于,系统将各题型的试题具体的分到了此科考试的具体章节和知识点。用户可以根据具体章节和知识点浏览此知识点下的各试题,并可以选择加入试卷,组成一份知识覆盖面广的试卷。其主要组卷过程如下:(1)用户选择试题题型,题型分值,试题数量和知识点,并设置试卷总分值,系统根据用户选择的题型和知识点显示所有试题。(2)用户选择试题,试题的“编号”、“难度”、“题型”等信息存入临时表LSST中,如果重复选题,则系统提示“您已选择此试题!”,否则系统提示“试题添加成功!”。(3)生成试卷,系统判断用户设置分数是否与试题总分数相等,是则生成一份完整的试卷,并将试题的“编号”、“难度”、“分值”、“类型”等信息存入数据库表SJT中。且生成“试卷代号、”试卷创建者“,并判断”试卷难度“,存入数据库表SJ中。否则试卷生成失败,提示用户“您生成的试卷分值与设置的试卷分值不等,试卷生成失败!”。 (4)设置试卷模板。(5)预览试卷,系统根据数据库表SJT中信息搜索题库试题内容,并按设置好的试卷模板导入Word中,生成一份完整的试卷,并以*.doc文件的形式保存。YYN输入试卷信息试卷总分100分?试卷生成失败预览试卷保存试卷保存答案自动选择试题程序开始程序结束图3-9 自动生成试卷流程图手动生成试卷的流程如图4-10所示。YN添加试题生成试卷失败试卷总分 100分?预览试卷保存试卷输入试卷信息程序开始程序结束图3-10 手动生成试卷流程图3.6 抽取现有试卷为了让用户能很方便的管理已生成的试卷,本系统增加了抽取现有试卷这个功能模块。用户能通过这个模块能很方便的对现有试卷进行删除和预览,同时也能预览用户所选择的试卷的答案。其主要过程如下:(1)用户进入抽取现有试卷界面,系统自动搜索数据库表SJ中信息,显示现有试卷的“代号”,“试卷创建者”,“试卷难度”。(2)用户选择一份已有试卷,系统自动从数据库表SJT中搜索该试卷试题的“编号”, “分值”, “难度”。(3)预览试卷,系统根据数据库表SJT中信息搜索题库试题内容,并按设置好的试卷模板导入Word中,生成一份完整的试卷,并以*.doc文件的形式打开。(4)保存答案,系统根据数据库表SJT中信息搜索题库试题答案,并按试卷模板以 *.doc文件的形式打开。(5)删除试卷,系统删除试卷在数据库表SJT中的信息,系统显示“删除试卷成功”。抽取现有试卷算法的具体流程可用图4-11直观说明。NYNY保存答案程序开始预览试卷输出答案输出试卷确认删除试卷执行删除程序退出选择现有试卷图3-11 抽取现有试卷流程图4 关键技术与系统实现本系统是一个试卷生成管理系统,重点在于组卷,所以主要是对关于试卷生成的实现的说明。本系统包括抽取现有试卷,自动生成试卷和手动生成试卷三大功能。4.1 登录模块登录界面是用户最先看到的系统的界面,所以直观上给用户的感觉很重要,所以做一个好的界面,提高软件的亲和力。本管理系统登录界面如图5-1所示。登陆功能实现的核心代码如下。图3-1 系统登陆界面Private Sub cmdOK_Click() 进入.确定On Error GoTo Err Dim txtSql As String UserName = If Trim(txtUserName.Text) = Then 判断用户名是否为空 MsgBox 请输入帐号!, vbOKOnly + vbExclamation, 警告 txtUserName.SetFocus Exit Sub End If If Trim(txtPassword.Text) = Then 判断密码是否为空 MsgBox 请输入密码!, vbOKOnly + vbExclamation, 警告 txtPassword.SetFocus Exit Sub End If 判断是否有这个用户 txtSql = select * from 用户信息表 where 用户名称 = & txtUserName.Text & If rs.State Then rs.Close rs.Open txtSql, CN, adOpenStatic, adLockOptimistic If rs.EOF = True Then 如果没有这个用户 MsgBox 没有这个帐号,请重新输入帐号!, vbOKOnly + vbExclamation, 警告 txtUserName.Text = txtPassword.Text = txtUserName.SetFocus如果输入的用户名和密码正确,将对用户的权限进行判断,如果是管理员就进入到管理员模式;如果是教务管理员就进入到教务管理员模式;如果是教师就进入到教师模式;如果用户没有权限,则会警告。具体代码如下: If Trim(rs.Fields(1) = Trim(txtPassword.Text) Then 判断权限 UserPrivs = If Trim(rs.Fields(2) = 管理员 Then 管理员权限 IsUserMode = 1 ElseIf Trim(rs.Fields(2) = 教务管理员 Then 教务管理员权限 IsUserMode = 2 ElseIf Trim(rs.Fields(2) = 教师 Then 教师权限 IsUserMode = 3 Else 无权 IsUserMode = 0 MsgBox 你没有权限!, vbExclamation, 警告 End End If UserPrivs = Trim(rs.Fields(2) UserName = Trim(txtUserName.Text) Unload Me Mainfrm.Show Exit Sub rs.Close miCount = miCount + 1 If miCount = 3 Then 三次错误,自动退出程序登录系统后进入主界面如图5-2所示。 图3-2 软件主界面软件主界面是各个功能模块的调用接口,主要有以下功能:(1)题库已有试卷:点击后进入抽取现有试卷的功能界面。(2)自动生成试卷:点击后进入自动生成试卷的功能界面。(3)手动生成试卷:点击后进入手动生成试卷界面。(4)题库录入: 点击后进入试题录入界面。(5)数据备份:点击后自动备份数据库。(6)关于菜单:对于本系统版权的说明。4.2 试卷生成管理试卷生成管理分为三个部分:题库已有试卷、自动生成试卷和手动生成试卷。下面详细讨论各部分功能的实现。1. 题库已有试卷如果题库中已经存在试卷,可以直接从已经存在的试卷中抽取试卷,包括如下操作:v 试卷预览:通过WORD文档打开试卷,可以浏览已有试卷模版。v 保存答案:保存所选试卷的答案。v 删除试卷:彻底清除已存试卷的任何信息。其界面如图5-3所示。图3-3 抽取现有试卷删除试卷的核心代码段如下:Private Sub Command3_Click() 删除试卷Dim rst As RecordsetIf MsgBox(是否删除该试卷?, vbYesNo, 确认) = vbYes Then strSQl = select * from SJ where SJDH= & MStry1.TextMatrix(MStry1.RowSel, 0) & 确定操作的表和方式 Set rst = QueryExt(strSQl) rst.Delete rst.Close strSQl = select * from SJT where SJDH= & MStry1.TextMatrix(MStry1.RowSel, 0) & 确定操作的表和方式 Set rst = QueryExt(strSQl) Do Until rst.EOF rst.Delete rst.MoveFirst Loop rst.Close MsgBox 删除成功, vbExclamation InitGrid1 InitGrid22. 自动生成试卷自动生成试卷界面下可进行如下操作:v 生成试卷:系统根据用户要求随机选题,生成试卷。v 预览试卷:通过WORD文档打开刚生成试卷,可以浏览生成试卷模版。v 预览答案:通过WORD文档打开刚生成试卷答案,可以浏览试卷答案。v 保存试卷:保存生成试卷“代号”、“创建者”、“难易度”等信息。其界面如图5-4所示。图3-4 自动生成试卷界面实现该功能的核心代码如下:Public Function LoadObject() 加载选择题On Error GoTo DealErrorstrSQl = select * from Choice order by BH 确定操作的表和方式Set rs = QueryExt(strSQl) 打开纪录集If rs.RecordCount 0 Thenrs.MoveFirstDo Until rs.EOFIf rs.Fields(ND) = 5 Thenint1 = int1 + 1Else If rs.Fields(ND) = 10 Then int2 = int2 + 1 Else If rs.Fields(ND) = 15 Then int3 = int3 + 1 End Ifrs.MoveNextLoopint4 = int1 + int2 + int3Label10(0).Caption = int1Label10(1).Caption = int2Label10(2).Caption = int3Label10(3).Caption = int4End Ifrs.CloseSet rs = NothingExit FunctionDealError: ShowError 程序执行出错,错误信息如下: & vbCrLf & Err.DescriptionEnd Function3. 手动生成试卷自动生成试卷界面下可进行如下操作:v 加入试卷:选定加入试卷的题目,并记录其信息。v 保存试卷:当总分正好100分时,点击保存试卷,生成试卷并保存其信息。其界面如图5-5所示。图3-5 手动生成试卷界面以下为保存试卷功能的核心代码:Private Sub Command2_Click()Dim index1 As IntegerRefreshMarksSummarks=RandChoice.Summarks+RandPragramfilling.Summarks+ andAnswerQuestion.Summarks + RandPargramReading.Summarks + RandPargramDesign.SummarksIf Summarks = Combo1.Text ThenCalTestDifficultSaveContest 保存试卷,调用函数MsgBox 保存成功, vbInformationElseMsgBox 您设计的试卷与实际总分不合,请修改, vbCriticalEnd If4.3 系统中的关键技术实现4.3.1 显示教材章节信息供用户使用为了显示教材章节信息供用户使用,在数据库里章节的存放是没有规则也即它们的顺序不一定按照真实书本的章节顺序来存储的。但是在显示章节信息的时候必须按照书本的章节顺序来显示。所以特别设置如下的数据类型: Dim Sql As String;Dim rs As String;论文选择了TreeView控件来显示章节,因为这个控件用起来比较方便,算法代码如下:If Not TreeView1.SelectedItem Is Nothing Then 只响应叶节点(没有孩子) If TreeView1.SelectedItem.Children = 0 Then Dim Sql As String Sql = select BH,Type,TM,ZJ,ND from & ItemInfo Sql = Sql & where ZJ= Sql = Sql & Mid(TreeView1.SelectedItem.Key, 3, 4) & Set rs = QueryExt(Sql) DataGrid_Object rs, DataGrid1 Else4.3.2 手动生成试卷时所选试题的临时保存处理手动生成试卷时要不断的将用户选择的题目临时存储起来,由于记录的信息不是很多,论文用数组把添加进去的试题的题号和类型存储起来,后面添加的时候检查在数组中是否存在,如果存在就证明已经添加过了。If ItemInfo = “Choice” ThenIf RandChoice.DataExit(DataGrid1.Columns(0).Text) = True ThenText1(0).Text = Text1(0).Text + 1RandChoice.TotalNum = Text1(0).TextRandChoice.KindOfitem DataGrid1.Columns(4).Text 判断添加试题难度,并统计RandChoice.IncreaseContentsRandChoice.SetContent DataGrid1.Columns(0).Text, Text1(0).Text - 1MsgBox “添加成功!”, vbInformationElseMsgBox “您已经选择了此题!”, vbCritical4.3.3自动生成试卷时生成一个覆盖知识点广且试题不重复的试卷处理自动生成试卷时如何生成一个覆盖知识点广且试题不重复的试卷,处理该问题的关键算法在于如何生成一个不重复的随机数序列。产生不重复随机数算法如下:(1)首先生成随机数 For index1 = 1 To SJ Do While True Randomize tempid = Int(Rnd() * (sum - 1) + 1 flag = True For index2 = 1 To index1 If tempid = RandNo(index2) Then flag = False Exit For Next index2 If flag = True Then Exit Do Loop RandNo(index1) = tempid Next index1(2)然后对生成的随机数排序 For index1 = 1 To SJ - 1 tempid = index1 For index2 = index1 + 1 To SJ If CInt(Trim(RandNo(index2) CInt(Trim(RandNo(tempid) Then tempid = index2 End If Next index2 temp = RandNo(index1) RandNo(index1) = RandNo(tempid) RandNo(tempid) = temp Next index1(3)最后将随机号对应的记录集中编号取出 For index1 = 1 To SJ Dim intemp As Long intemp = CLng(RandNo(index1) rs.Move intemp - 1 SaveItemSerial(index1) = Trim(rs.Fields(“BH”) rs.MoveFirst Next index1 RItem = True4.3.4数据库的备份与恢复1) 数据库备份的部分代码Public Function DBBackUp() Dim fs Set fs = CreateObject(Scripting.FileSystemObject) If fs.FileExists(App.path & 数据库备份shijuanbeifen.mdb) Then fs.DeleteFile App.path & 数据库备份shijuanbeifen.mdb fs.copyfile App.path & shijuan.mdb, App.path & 数据库备份shijuanbeifen.mdb MsgBox 备份完成!, 64, 数据库备份情况End Function2) 数据库恢复的部分代码:Public Function DBRestore()Dim fs Set fs = CreateObject(Scripting.FileSystemObject) syscnn.Close If fs.FileExists(App.path & shijuan.mdb) Then fs.DeleteFile App.path & shijuan.mdb fs.copyfile App.path & 数据库备份shijuanbeifen.mdb, App.path & shijuan.mdb Main MsgBox 已恢复上次备份!, 64, 数据库恢复情况结束语本软件的设计目的是在题库建立管理维护和试卷生成方面为教学单位和人员提供方便和帮助。通过这几个月的毕业设计,我学到很多以前没有学到的VB开发技术,在软件工程学上更是取得了很大的进步。经过大量的测试和试用,作者深信本软件达到了方便和实用的设计目的,并在软件界面和易用实用等方面有着独到之处。总的来说,在这次的毕业设计种遇到了不少的问题,大部分得到了很好的解决,但也有少部分遗留的问题。虽然软件基本达到设计要求并且达到一定水平,但由于作者水平有限,软件存在bug也是在所难免的 ,您的意见和建议将极大的帮助我改进并完善软件。真诚的希望你的参与。参考文献:1.C.J.Date , Database system implementation,北京:机械工业出版社, 20002.Hector Garcial-Molina , Jeffrey D.Ullman, Jennifer Widom,An introduction to Database Systems(Seventh Edition), 机械工业出版社,20013.林陈雷, 郭安源, 葛晓东, 教育信息化系统开发实例导航 , 人民邮电出版社,20034.张立科,数据库开发技术与工程实践,人民邮电出版社,20045.张红军, 王虹 等 Visual basic 6.0 中文版高级应用与开发指南, 人民邮电出版社, 20026.伍俊良 主编 等 VB课程设计与系统开发案例清华大学出版社, 20027.姚巍,Visual Basic数据库开发及工程实例,人民邮电出版社,20038.求是科技,Visual Basic 6.0 数据库开发技术与工程实践,人民邮电出版社,20049.刘瑞新,汪远征,Visual Basic程序设计教程,机械工业出版社,200110.刘萌,周学明,郭安源,Visual Basic企业办公系统开发实例导航,人民邮电出版社,200311.孟小峰,王珊,数据库系统导论,机械工业出版社,200012.张海藩,软件工程导论,清华大学出版社,2003致 谢首先感谢本人的指导老师庄曰华老师,在符老师的指导和帮助下才完成了毕业设计和论文工作,符老师认真负责的工作态度,严谨治学的精神和深厚的理论水平都使本人受益匪浅,符老师无论在理论上还是在实践中,都给予了本人很大的帮助,对本人的毕业设计任务和论文书写提出了许多建设性建议,特别是在本人的课题遇到困难时,他给了本人极大的鼓励和帮助,在这里本人向他表示真诚的感谢!还要衷心感谢信息与计算科学系全体老师三年来对本人的教诲,他们不仅使本人的知识能力得到提高,更重要的是教会了本人怎样提高自己的自学能力,怎样去适应社会。愿母校明天更辉煌,全体老师身体健康、心想事成。 24
展开阅读全文