试卷题库论文正文-无忧无虑毕设网_第1页
试卷题库论文正文-无忧无虑毕设网_第2页
试卷题库论文正文-无忧无虑毕设网_第3页
试卷题库论文正文-无忧无虑毕设网_第4页
试卷题库论文正文-无忧无虑毕设网_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 本文配套程序下载地址 : 无忧无虑毕设网 ()-大学生毕业设计站 ,免费毕业设计论文 ,无忧无虑毕设网 大学生毕业设计 ,出售各类毕业设计源码 ,论文 ,程序源码 ,网站源码 ,免费视频教程 ,我们将竭诚为您服务! 摘 要 一般情况教师想出一份试卷,要么到庞大的题库里一道一道的把题找出来,或是从几本相关的书里把题一道一道挑出来。这样即费时又费力,而且很难保证试题的覆盖面和把握好试卷的难度。正是为了能够帮助教师轻松的出一份高质量的试卷而开发了本软件。为了达到预期的目标我们最终选择了 Microsoft Office Word 做为本软件的终端输出。本软件是在对现有控件的改进和 VBA 编程的研究的基础上开发的。本软件实现了以下主要功能: 1.手动生成试卷; 2.自动生成试卷; 3.抽取现有试卷; 4.用户管理; 5.数据库管理。大量的测试表明本软件在 Windows 98 me 2000 XP 平台配合 Office XP 2003 的环境下程序运行稳定且各项功能运行得都很正确,基本达到了预期的要求! 结论:经过老师的实际试用本软件在界面上和功能上都有独到之处!相信完全可以胜任出一份好的试卷任务。 关键词:题库系统,试卷生成,数据库, VBA 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: Abstract 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 thinks out a higt quality paper is the destination of develop this Software. In the cause of this we select the terminal is Microsoft Office Word. This Software s base of develop is improve on control in existence and study the VBA programing. These functions of this software are as follows: One. Manual create paper; Two. Auto create paper; Three. Select from existential papers; Four. User manage; Five. Database manage. The result of many test is that this software is runing steady and these funtions of it is runing right in the environment which make up of Windows 98 me 2000 XP and Office XP 2003, it is basic reach the requests. In all: the result of real test by teacher is that this software are unique in interface and function. We must believe it can complete creating a high quality paper. Key Words: Exam, Problem pool, VBA, word 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 目 录 摘 要 .1 Abstract .2 前 言 .1 1 . 简述 .2 1.1 开发工具简介 .2 1.1.1 Delphi 7.0的特点 .2 1.1.2 主要的控件及其属性简介 .2 1.1.3 数据库连接方式选择 .3 1.2 程序运行环境 .4 2 . 需求分析 .5 2.1 负责的功能模块 .5 2.2 软件功能分析 .5 3 . 设计阶段 .8 3.1 概要设计 .8 3.1.1 系统数据库设计 .8 3.2 详 细设计 . 12 3.2.1 程序流程图 . 12 3.2.2 窗体功能简介 . 14 4 . 软件实现 . 21 4.1 OOP简介 . 21 无忧无虑毕设网 ():毕业设计源码下载 毕业设计源码下载: 4.2 开发的关键技术 . 21 5 . 软件测试及其维护 . 25 5.1 系统测试平台简介 . 25 5.2 测试方法 . 25 5.3 系统维护 . 26 6 . 开发总结 . 27 参 考 文 献 . 28 致 谢 . 29 译 文 . 30 原 文 . 34 华北工学院计算机科学与技术系 1 前 言 在开发本软件之前,正是我努力提高自己的 Delphi 开发水平的时期。因此我选择了 Delphi 做为我的开发工具,然而这次开发的软件和以前不一样。最主要的区别在于这个软件要以 Microsoft Office Word 做为试卷的终端输出。而它们又是两个不同公司的产品。因而,刚一开始我特别担心这个技术能否得到比较圆满的解决。在开发的过程中我不断的对 VBA 技术进行研究,并且将它应用于这次的软件开发中。因而比较好的解决了 Microsoft Office Word 的接口编程问题。还有一个比较棘手的问题就是 Delphi 提供的控件都是很基本的,而这次开发中要用到一个可以标记选中状态的树型控件,在对 Delphi 的 TtreeView 的深入研究后确认它不能胜任这个任务。因此,我开始寻找第三方控件,然而这一次我很失望因为只找到了一个 2000 年编写的TCheckTree 控件,没办法了,最后下定决心修改那个 TCheckTree 控件以使它能更加稳定和实用。在深入研究 Windows 的消息机制和 VCL 框架对 Windows 消息机制的封装技术后我成功的修改了那个 TCheckTree 控件。在程序开发的后期测试中,我充分利用各个同学电脑平台的多样性。把本软件在多达 4 种操作系统和 3 个不同版本的Office 上进行测试。测试表明:在 Windows 98 me 2000 XP 平台配合 Office XP 2003 下程序运行稳定且各项功能运行得都很正确! 华北工学院计算机科学与技术系 2 1 . 简述 1.1 开发工具简介 1.1.1 Delphi 7.0的特点 Delphi 是 Borland 公司出品的开发工具,在众多的开发工具中,我们为什么要选择 Delphi呢?因为 Delphi具有众多其它开发工具所没有的优点!具体介绍如下: 开发的高效 语言的高效 编译的高效 执行的高效 维护的高效 基于以上理由,我们毫不忧郁的选择了 Delphi做为我们的开发工具! 1.1.2 主要的控件及其属性简介 TForm类的控件: 1) BorderIcons属性:用来控制程序标题按钮的可用性。 2) BorderStyle属性:用来控制程序边框的样式。 3) Color属性:用来控制程序界面的颜色。 4) Font属性:用来控制程序界面的字体。 5) Position属性:用来控制程序运行时界面的显示位置。 TADOConnection类的控件: 1) ConnectionString属性:用来控制链接 字符串。 2) LoginPrompt属性:用来控制链接时是否要输入密码。 3) Connected属性:用来控制是否进行链接。 TADOQuery类的控件: 1) Connection 属性:用来指定和哪个 TADOConnection 控件相连。 2) SQL属性:用来添加向数据库提交的 SQL语句。 3) Add方法:用来向 SQL属性添加 SQL语句。 4) Open方法:用来执行 SQL语言中的 Select语句。 5) ExecSQL方法:用来执行任何 SQL语句。 6) FieldByName属性:用来给数据库的字段赋值。 华北工学院计算机科学与技术系 3 7) FidldValues属性:用来取 出数据库的字段的。 8) Append方法:用来向数据库添加一条记录。 9) Edit方法:用来编辑当前的记录。 10) Post:用来向数据库提交所做的修改。 TADOTable类的控件: 1) Connection 属性:用来指定和哪个 TADOConnection 控件相连。 2) Open方法:用来打开数据库中指定的表。 3) FieldByName属性:用来给数据库的字段赋值。 4) FidldValues属性:用来取出数据库的字段的。 5) Append方法:用来向数据库添加一条记录。 6) Edit方法:用来编辑当前的记录。 7) Post:用来向数据库提交所 做的修改。 TDataSource类的控件: 1) DataSet:用来指定和哪个数据集相连。 TDBGrid类的控件: 1) DataSource:用来指定和哪个 TDataSource控件相连。 TPageControl类的控件: 1) ActivePage属性:用来指定当前活动的 Page页。 TCheckTree类的控件: 1) ReadOnly属性:用来控制 TCheckTree内的 Item是否可编辑。 2) Item属性:用来控制 TCheckTree包含的所有树形结点。 3) Images属性:用来指点 TCheckTree中结点的图标。 4) OnMouseUp事件:用来添加鼠标放开事件所执行的程序代码。 5) OnStateChange事件:用来添加结点状态改变时的程序代码。 TFlatButton类的控件: 1) Caption属性:用来指定 TFlatButton的标题。 OnClick事件:用来添加按钮的单击事件所执行的程序代码。 1.1.3 数据库连接方式选择 Delphi 连接数据库的主要方式有两种:一是: BDE ,二是 ADO 。现在我们来大致比较一下这两种技术的优缺点: 华北工学院计算机科学与技术系 4 BDE( Borland Database Engine)是 Delphi 颇具特色的数据库连 接管理技术。凭借窗体和报表, BDE 可以访问诸如 Paradox,dBASE,本地 InterBase 服务器的数据库,也可访问远程数据库服务器上的数据库,如 Oracle,SyBase,Informix 等 C S 数据库中的数据库,也可访问经 ODBC可访问的数据库管理系统中的数据库。 ADO(ActiveX Data Objects)是微软提供的一项技术。通过 ADO,可以方便的访问各种类型的数据库,特别是 OLEDB 数据库。 ADO 已成为访问数据库的新的标准接口。从 Delphi 6.0 开始 Delphi 添加了对 ADO 的支持, 以便让用户能迅速实现对终端用户用来做商业决策的数据库的一致性访问,结合 Delphi 本身的开发式数据组件结构,程序员可以很快地建立应用程序,用来把自己的商业数据库通过 Internet 发送给客户,最终用户以及整个销售环节。通过 ADO, Delphi 7.0 也能让用户快速访问关系或非关系数据库以及 E-Mail和商务文件系统。 这两者提供了几乎相同的功能,在进行产品开发时,势必要做一个精心的比较。虽然 ADO 技术提出的时间不长,并被定位为工业标准的,而且其在性能上由于当前没有良好的数据库引擎支持,其性能还不够完美,但是 ,我们应该要注意到 Borland 公司已经宣布停止发展 BDE 了,其性能被 ADO 超越也是迟早的事,因此,在开发长期应用的产品时,推荐采用 ADO 技术。这样还有另一个好处是,在进行产品分发时,可以避开大量 BDE的链接库 DLL的分发。 基于以上原因我们选择了 ADO做为我们的数据库访问组件。 1.2 程序运行环境 操作系统: Windows 2000 Windows XP 办公软件: Office XP Office 2003 华北工学院计算机科学与技术系 5 2 . 需求分析 2.1 负责的功能模块 设计试题生成功能,试题能分布整个教学内容 设计试 题的难易程度分析功能 具有试题的答案生成功能 数据库设计及维护 程序的其它选项设置 2.2 软件功能分析 根据我负责的功能模块,主要是在试卷的生成上。 1要显示书本章节信息以供用户使用。而在数据库里章节的存放是没有规则也即它们的顺序不一定按照真实书本的章节顺序来存储的。但是在显示章节信息的时候必须按照书本的章节顺序来显示。所以特别设置如下的数据类型: type ZJ=record ZJID:double; ZJName:string; end; 在这里 ZJID是设置成 double 的类型与相 对应的是数据库里表 ZhangJie 里的 ZJ字段此字段的类型为文本弄的。故在添加此数据库结构的时候要把文本型转化为double 的类型。而 ZJName 对应的是数据库里表 ZhangJie 里的 ZJName 它们为同一种数据类型。再由于数据库里章节的数量是不定的,故此种数据类型的变量必须是一种长度可变的类型才行,所以我们选择了 Delphi里的动态数组类型。变量定义如下 : Var TempZJ:ZJ; HaveZJ:array of ZJ; 接下来的问题就是把这个变量记录的数据按一定顺序显示到 TCheckTree 的 控件里了。由于章节的数量还是比较多的,所以我选择了“改进的选择排序”,具体的排序华北工学院计算机科学与技术系 6 算法代码实现如下: for i:=0 to High(HaveZJ) do /对章节号进行排序 begin k:=i; for j:=i+1 to MaxNum do if HaveZJk.ZJIDHaveZJj.ZJID then k:=j; if ik then begin TempZJ.ZJID:=HaveZJi.ZJID; TempZJ.ZJName:=HaveZJi.ZJName; HaveZJi.ZJID:=HaveZJk.ZJID; HaveZJi.ZJName:=HaveZJk.ZJName; HaveZJk.ZJID:=TempZJ.ZJID; HaveZJk.ZJName:=TempZJ.ZJName; end; end; 2手动生 成试卷时要不断的将用户选择的题目临时存储起来,由于记录一道题所包含的信息不是很多,再因为这些信息一会儿还要在“保存答案”里使用,所以我设置了 4个 TStringList的全局变量,定义如下: var STTypeID,STBH,STND:TStringList; 每选一道题保存时的算法代码如下: 首先保证要添加入的试题与现有的试题不能重复。 LX:=ST_DBG.Fields1.AsInteger; BH:=ST_DBG.Fields0.AsInteger; for i:=0 to STTypeID.Count-1 do begin if (StrToInt(STTypeID.Stringsi)=LX)and(StrToInt(STBH.Stringsi)=BH) then begin MessageBox(handle,要加入的试题已经存在了! ,加入错误 ,MB_OK or MB_ICONERROR); 华北工学院计算机科学与技术系 7 exit; end; end; 如果不重复的话则把试题添加进来! STTypeID.Add(IntToStr(LX); /记下试题类型 STBH.Add(IntToStr(BH); /记下试题编号 STND.Add(ST_DBG.Fields4.AsString); /记下试题难度 3在自动生成试卷里最主要的一点就是如何生成一个覆盖知道点广且试题不重复的试卷。其中的关键算法在于如何生成一个不重复的随机数序列。在 Delphi 里随机数的产生函数是 Random,然而如果用这个函数来生成一定范围内的随机数重复的机率太大了。其中变量定义如下: var XTH:array of integer; /存放随机选题号 以下是产生不重复随机数的算法: num:=MaxBH-MinBH+1; if num0 then /开始初始化 begin SetLength(XTH,num); for i:=0 to num-1 do XTHi:=MinBH+i; /给动态数组设初值 Randomize; /初始化随机数生成器 for i:=0 to num-1 do begin j:=random(num); temp:=XTHi; XTHi:=XTHj; XTHj:=temp; end; end; 华北工学院计算机科学与技术系 8 3 . 设计阶段 3.1 概要设计 3.1.1 系统数据库设计 根据任务书的规定,现设计如下的数据库表 格: 表:用户表 (YH) 字段中文名 字段英文名 字段类型 字段长度 主键 姓名 UserName 文本 20 是 密码 Password 文本 18 组 GroupID 数字 长整型 权限 QXID 数字 长整型 表:题型 (Type) 字段中文名 字段英文名 字段类型 字段长度 主键 编号 TypeID 自动编号 是 名称 TypeName 文本 20 分值 FZ 数字 长整型 表:难易度 (NYD) 字段中文名 字段英文名 字段类型 字段长度 主键 编号 BH 自动编号 是 难易度 NYD 文本 表:用户组 (UserGroup) 字段中文名 字段英文名 字段类型 字段长度 主键 编号 GroupID 自动编号 是 华北工学院计算机科学与技术系 9 组名 GroupName 文本 20 表:选择题 (XuanZeTi) 字段中文名 字段英文名 字段类型 字段长度 主键 题号 TH 自动编号 是 题型 TypeID 数字 长整型 题目 TM 备注 选项 A A 文本 255 选项 B B 文本 255 选项 C C 文本 255 选项 D D 文本 255 正确答案 DA 文本 难易度 NY 数字 长整型 出自章节 CZ 文本 50 表:填空题 (TianKong) 字段中文名 字段英文名 字段类型 字段长度 主键 题号 BH 自动编号 是 题型 TypeID 数字 长整型 题目 TM 备注 空 1 K1 文本 100 空 2 K2 文本 100 空 3 K3 文本 100 空 4 K4 文本 100 空 5 K5 文本 100 应填数 YTS 数字 长整型 难易度 NY 数字 长整 型 出自章节 CZ 文本 50 华北工学院计算机科学与技术系 10 表:简答题 (JianDaTi) 字段中文名 字段英文名 字段类型 字段长度 主键 题号 BH 自动编号 是 题型 TypeID 数字 长整型 题目 TM 备注 答案 DA 备注 难易度 NY 数字 长整型 出自章节 CZ 文本 50 表 8:原理论述题 (YuanLiLunShu) 字段中文名 字段英文名 字段类型 字段长度 主键 题号 BH 自动编号 是 题型 TypeID 数字 长整型 题目 TM 备注 答 案 DA 备注 难易度 NY 数字 长整型 出自章节 CZ 文本 50 表 9:系统设计题 (XiTongSheJi) 字段中文名 字段英文名 字段类型 字段长度 主键 题号 BH 自动编号 是 题型 TypeID 数字 长整型 题目 TM 备注 华北工学院计算机科学与技术系 11 表格 BG 文本 100 答案 DA 备注 难易度 NY 数字 长整型 出自章节 CZ 文本 50 答案表格 DABG 文本 50 题目表格 TMBG 文本 50 表 10:系统操作题 (XiTongCZ) 字段 中文名 字段英文名 字段类型 字段长度 主键 题号 BH 自动编号 是 题型 TypeID 数字 长整型 题目 TM 备注 难易度 NY 数字 长整型 出自章节 CZ 文本 50 题目表格 TMBG 文本 50 问 1答案 W1DA 文本 255 问 1答案表格 W1DABG 文本 50 问 2答案 W2DA 文本 255 问 2答案表格 W2DABG 文本 50 问 3答案 W3DA 文本 255 问 3答案表格 W3DABG 文本 50 问 4答案 W4DA 文本 255 问 4答案表格 W4DABG 文本 50 问 5答案 W5DA 文本 255 问 5答案表格 W5DABG 文本 50 问题数 WTS 数字 长整型 华北工学院计算机科学与技术系 12 3.2 详细设计 3.2.1 程序流程图 1 抽取现有试卷的流程图: 华北工学院计算机科学与技术系 13 2 自动生成试卷的流程图 : 华北工学院计算机科学与技术系 14 3 下图是手动生成试卷的流程图: 3.2.2 窗体功能简介 下图软件的登陆界面 华北工学院计算机科学与技术系 15 在这里输入用户名及密码就可以进行入软件的主界面了! 下图是软件的主界面: 华北工学院计算机科学与技术系 16 在以上的软件主界面的左边是各个功能模块的调 用接口! 如: 抽取现有试卷:点击后进入抽取现有试卷的功能界面。 自动生成试卷:点击后进入自动生成试卷的功能界面。 手动生成试卷:点击后进入手动生成试卷。 题库录入:在这里可以往数据库里添加试题。 题库维护:在这里可以对数据库里已有试题进行维护。 选项设置:在这里可以对软件的其它选项进行设置。 软件的右上角有“帮助”和“关于”按钮!在这里可以得到软件的使用帮助,和有关此软件的一些开发信息! 下图是自动生成试卷的界面: 华北工学院计算机科学与技术系 17 上图中标为“第一部分”的树形控件是用来设置要生成的试卷的试题的抽取范围。 上 图中标为“第二部分”的是用来设置各种题型的量及其分数。 上图中标为“第三部分”的是功能按钮,其中“生成试卷”用来根据“第二部分”的设置自动生成一份试卷。“预览试卷”是用来预览刚生成的试卷。“试卷答案”是用来查看刚生成的试卷的答案。“保存试卷”是用来保存刚生成的试卷的信息。 华北工学院计算机科学与技术系 18 下图是手动生成试卷的界面图: 上图中标为“第一部分”的树形控件是用来设置要生成的试卷的试题的抽取范围。 上图中标为“第二部分”的是用来设置各种题型的量及其分数。 上图中标为“第三部分”的是用来设置试卷的部分。 上图中标为“第五 部分”的是用来选择要加入试卷的试题。 上图中标为“第四部分”的是功能按钮,其中“加入试卷”用来把在“第五部分”的选择试题加入到要生成的试卷中。“保存试卷”是用来保存刚生成的试卷的信息。 华北工学院计算机科学与技术系 19 下图是用户管理的界面: 上图中标为“第一部分”显示当前系统已有的用户。 上图中标为“第二部分”选择要进行的操作。 上图中标为“第三部分”设置相应的信息。 上图中标为“第四部分”。可以删除用户或是提交对用户信息的修改。 华北工学院计算机科学与技术系 20 下图是数据库功能模块的界面: 上图中标为“第一部分”可以改变数据库的存放路径 。 上图中标为“第二部分”选择要进行的操作。 上图中标为“第三部分”选择还原的时间点或是执行备份操作。 华北工学院计算机科学与技术系 21 4 . 软件实现 4.1 OOP简介 每一个软件开发人员都会经常听到,看到“面向对象”这个词,程序员也时常把它挂在嘴上。那么什么还是真正的“面向对象”?什么是面向对象的编程?是不是写几个类就算面向对象了?为什么要面向对象? “面向对象是一种思维方式,一种方法论!” “结构化编程”( SP)是一种编程方法,是从计算机的视角来抽象问题的方法。而“面向对象编程”( OOP)也是一种编程方法,只不过它是从更接近真实世界 的视角来分析问题,使用更接近人们理解真实世界的方法来抽象问题,这种方法称为“面向对象”( OO)! “面向对象”这个词代表的是一种认识世界,分析问题,解决问题的方法,因此它是一种方法论。而面向对象编程则是将这种方法应用于程序设计的方法。当你会使用面向对象的方法去思考,用面向对象的模式支分析和解决问题的时候,才是真正的“面向对象”了! “面向对象”最主要的特性有三个: 继承性。 Delphi提供大量的可被二次开发的类。每个类都可被继承。 封装性。 Delphi的封装性主要由类的私有域和保护域来实现的。 多态性。 Delphi的多太性主要是通过虚拟方法和动态方法来实现的。 4.2 开发的关键技术 1 VBA编程技术 Visual Basic for Applications(简称 VBA)是新一代标准宏语言。在没有 VBA 以前,一些应用软件如 Excel, Word, Access 等都采用自己的宏语言供用户开发使用,但每一种宏语言都是相互独立的并且它们之间是互不兼容的。这导致了应用软件之间不能在程序上互联。找到一种可被所有的 Microsoft 可编程应用软件所共享的通用宏语言是 Microsoft 公司长期追求的目标。 VBA 作 为新一代的标准宏语言具有了跨越多种 OFFICE 应用软件并且控制应用软件对象的能力。 Delphi里封装的三个主要交互控件:TWordApplication,TWordDocument,TwordFont. 本程序的主要实现技术如下: 华北工学院计算机科学与技术系 22 const BF_Name:array1.10 of String=(一、 ,二、 ,三、 ,四、 ,五、 ,六、 ,七、 , 八、 ,九、 ,十、 ); JG:String= ; var ItemIndex:OleVariant; NewDocument:_Document; FZ,TL,BF,STH,i,WTS,YTS:integer; temp,AppPath,BGName:string; procedure SetFont(aBold,aItalic,aShadow,aSize:integer); begin SJ_WF.ConnectTo(SJ_WD.Sentences.Get_Last.Font); SJ_WF.Name:=宋体 ; SJ_WF.Bold := aBold; SJ_WF.Italic := aItalic; SJ_WF.Shadow := aShadow; SJ_WF.Size := aSize; end; begin AppPath:=ExtractFilePath(Application.ExeName); /取得本程序的路径 /显示进度窗口 RateProcess_F.Show; RateProcess_F.CZ_P.Caption:=正在链接 Microsoft Office Word.; RateProcess_F.Rate_Gauge.MaxValue:=SJT_ADOQ.RecordCount+25; RateProcess_F.Repaint; /重绘窗口 ,否则显示不出新设置的控件属性 try SJ_WA.Connect; except MessageBox(handle,无法连接,也许没有安装 Word,连接出错 , MB_Ok or MB_ICONERROR); RateProcess_F.Close; Abort; end; RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+10; 华北工学院计算机科学与技术系 23 /SJ_WA.Visible := False; /SJ_WA.Caption := 题库系统与试卷生成 ; /建立一个新文档 NewDocument:=SJ_WA.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam); RateProcess_F.CZ_P.Caption:=正在新建 Microsoft Office Word 文档 .; RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; RateProcess_F.Repaint; /建立 WordDocument连接 , 用第二种方法不容易出错 /SJ_WD.ConnectTo(SJ_WA.Documents.Item(ItemIndex); SJ_WD.ConnectTo(NewDocument); SJ_WD.Windows.Item(ItemIndex).Caption:=数据库原理与应用期末试卷 ; /此文档的第一个窗口的标题 RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; RateProcess_F.Repaint; /因为 Word进行拼写检查需要很多时间,所以首先关闭检查 SJ_WA.Options.CheckSpellingAsYouType := False; SJ_WA.Options.CheckGrammarAsYouType := False; /设置 Word的字体 SetFont(1,0,0,22); /设置段落对齐方式 SJ_WD.Range.InsertAfter(数据库原理与应用期末试卷 +#13); RateProcess_F.Rate_Gauge.Progress:=RateProcess_F.Rate_Gauge.Progress+5; RateProcess_F.Repaint; /SJ_WA.Documents.Item(ItemIndex).Paragraphs.Alignment:=wdAlignParagraphLeft; SJ_WD.Range.InsertAfter(学校 _ 班级 _ 姓名 _ 得分 _ +#13); SetFont(0,0,0,14); 2 TCheckTree控件的修改。 由于 Delphi自带的 TTreeView里并没有复选框的功能。因此,必须重新设计控件。 在设计时因 TTreeView里有一个 StateIndex和 StateImages,而纵观 TTreeView的代华北工学院计算机科学与技术系 24 码可以知道它只是发布了一下 TCustomTreeView定义并实现好的属性和方法而已。因此我们也选择 TCustomTreeView为 TCheckTree控件的祖先类。 重要的实现技术为: procedure TCheckTree.WMPaint( var Msg: TWMPaint ); var I: Integer; begin for I := 0 to Items.Count - 1 do begin if not(Items I .StateIndex in Ord(csUnknown).Ord(csPartiallyChecked) then Items I .StateIndex := Ord(csUnchecked) /这里我修改了 end; inherited; end; function TCheckTree.GetItemState( Node:TTreeNode ): TCheckCheckState; begin Result := TCheckCheckState( Node.StateIndex ); end; procedure TCheckTree.SetItemState( Node:TTreeNode; Value: TCheckCheckState ); begin if TCheckCheckState( Node.StateIndex ) Value then ChangeNodeCheckState( Node, Value ); end; procedure TCheckTree.StateChange( Node: TTreeNode; NewState: TCheckCheckState ); begin if Assigned( FOnStateChange ) then FOnStateChange( Self, Node, NewState ); end; 华北工学院计算机科学与技术系 25 5 . 软件测试及其维护 5.1 系统测试平台简介 硬件平台 CPU Intel P4 1.5G 主板 Intel 850芯片组的 GA-8TX-C 内存 2 128M的三星 Rambus内存 硬盘 Seagate Barracuda 7200.7 80G 显卡 Unika 小妖 G9800 显示器 美格 770PF, 17寸纯平显示器 软件环境 操作系统 Microsoft WindowsXP简体中文专业版 SP1 办公软件 Microsoft Office 2003 显卡驱动 nVIDIA ForceWare驱动 56.72版 For Win2000/XP 5.2 测试方法 测试在软件开发过程中一直都是备受关注的,即使在传统的软件工程中,也有一个明确、独立的测试 阶段。随着软件危机的频频出现以及人们对于软件本质的进一步认识,测试的地位得到了前所未有的提高。测试已经不仅仅局限于软件开发中的一个阶段,它已经开始贯穿于整个软件开发过程,人们已经开始认识到:测试开始的时间越早,测试执行的越频繁,所带来的整个软件开发成本的下降就会越多。 Extreme Programming 更是把测试推到了极限的位置,一切软件开发活动都要从首先编写测试代码开始。 华北工学院计算机科学与技术系 26 为了使本软件运行更加稳定,我对它进行了全面的测试,测试分为二部分来进行,一是:界面测试;二是功能测试。 首先是界面测试,为了使软件在 不同的的操作系统平台上运行界面能保持原来的风格。我的开发平台如上介绍。我把完整程序拷贝到我同学的机子,同学机子的相关配置如下: Windows2000 15 寸显示器;程序运行界面正常,但由于我同学的显示器是 15 寸的显示的范围比较小外,界面上的字体等设置都保持得相当好。没有出现类似字体变形的情况!第二个平台: Windows Me +17 显示器,测试结果:字体有些不正常了。后来在网查找了很多相关的资料,得出这是由于 Window Me 或 Windows 98 和我的开发平台的操作系统 Window XP 的字体集不一样造成 的。解决方案是:把软件的字体设置成:宋体 9 号,字符集使用: CHINASE_GB2312。至此软件的界面测试顺利完成。 二是进行功能的测试。我的功能模块主要是试卷生成。而试卷生成后都是输出到Microsoft Office Word 里。而 Office 的版本又那么的多,因此,我一直很担心在不同的 Office 平台下软件会有不同的运行结果!实际测试结果如下:在 Windows 2000 Microsoft Office 2000 的平台下,试卷功能里的预览功能不能用了。界面停留在“正在链接 Microsoft Office Word .”这里,一看就知道没有办法和Microsoft Office Word 链接了。换平台测试,这回是在 Windows 2000 Office XP,程序正常运行了包括试卷预览等功能都正常运行。再换平台: Windows XP+Office 2003 程序同样完全正常运行,由此可以总结出在低于 Office XP 的平台下程序无法和办公软件交互。本来我想把程序换成能支持 Office 2000 的,可后来一想 Office 2000 距离现在已经有 4 年之久了。支持了它反而支持不了最新的 Office 平 台,所以决定让程序运行在 Office XP 或是 Office 2003 平台上。至此到这里在功能的测试上也已经比较圆满的完成了! 5.3 系统维护 由于在开发本程序的时候我就特别注意软件的后续维护和再开发上。因此极努力的想把它开发成一个 强内聚、弱耦合、接口明确、意图明晰的软件 。对于程序里的功能我尽力把它们封装在类的私有过程或私有函数里,这样可以大大提高软件的内聚性,在各个功能模块和窗体之间尽可能减少它们之间的调用关系,以减少软件的耦合性。在软件设计初期我就预留了接口用于调用另一个同学的模块。为了保证两人开发出的功能 模块能在最后能顺利地联合。在一开始我就预先编了一个公共的“数据模华北工学院计算机科学与技术系 27 块”以提高软件连接数据库能高效共享。并且给他规定一些如控件的命名规则,代码的规范等。这些都大大提高了软件后续的可维护性。 6 . 开发总结 本软件的设计目的是在题库建立管理维护和试卷生成方面为教学单位和人员提供方便和帮助。通过这几个月的毕业设计,我学到很多以前没有学到的 Delphi 开发技术,在软件工程学上更是取得了很大的进步。经过大量的测试和试用,作者深信本软件达到了方便和实用的设计目的,并在软件界面和易用实用等方面有着独到之处。 虽然软件基本达 到设计要求并且达到同行的先进水平,但由于作者水平有限,软件存在 bug 也是在所难免的 ,您的意见和建议将极大的帮助我改进并完善软件。真诚的希望你的参与。 华北工学院计算机科学与技术系 28 参 考 文 献 1 陈明 . 软件工程学教程 .科技出版社, 2002 2 萨师煊,王珊 . 数据库系统概论 . 第三版 . 高等教育出版社, 2000 3 飞思科技产品研发中心 . Delphi7数据库应用开发 .电子工业出版社, 2003 4 飞思科技产品研发中心 . Delphi6开发者手册 . 电子工业出版社 , 2002 5 申 旻 . Delphi 高手突破 . 清华大学出版社, 2002, 302 6 Steve Teixeira, Xaviver Pacheco 著,龙劲松,王瑜,谢尚书译 . Delphi6 开发人员指南 . 机械工业出版社 .2003 7 乔林 .参透 Delphi Kylix . 中国铁道出版社 .2003 8 李维 .Inside 深入核心 VCL 架构剖析 . 电子工业出版社 .2004 9 张立科编写组 .Windows API 函数参考手册 .人民邮电出版社 .2002 严蔚敏,吴伟民 .数据结构 .第二版 .清华大学出版社 .2001 华北工学院计算机科学与技术系 29 致 谢 我首先感谢我的指导老师韩老师,在她严格的要求下我懂得了开发软件要有一种极其认真负责的态度。无论做什么事都要大胆的去想去做,这样会有好的创意,才能更有作为。特别是在大三的时候能在韩老师的指导参与“ 山西晋能电力有限公司 ”的大型软件“电力管理系统”的开发,在那里我学到了很多在课堂里学不到的软件设计思想。使我的软件开发水平提高了一个层次。 大学就要毕业了,在这里我还要特别感谢我的班主任张军老师。在这四年的大学生活里,他给了我很多帮助。和他在一起我学到了很多 做人的道理。这些将会是我将来生活的宝贵经验。 在这里我还要感谢我们宿舍的其它 7个同学。他们和我共同生活了四年,在生活和学习上给了我很大的帮助。 华北工学院计算机科学与技术系 30 译 文 切换电路的连接设置的结果是保留了从发送端到接收端的包所通过的线路带宽。其它的特性这一就是所有的包都沿同一个线路意味着如果包传输超过了时序那它将不能到达接收端 .由于没有路径用来进行包交换,所以要想不同的包沿不同的路径传送就是能依靠网络的条件了。这样包即便是超过了时序它们也有可能到达的。 包交换技术比线路交换技术更能容错。事实上,这也是它被发明的理由 !当一个交换开头被拉下,则所有使用它的线路将被切断并且其余的包将不能再被传送。此时如果在进行包交换,包将在已选择的路径上停止交换。 预先建立一条路径也开创预先保留带宽的可能性。 如果带宽被保留,那么当一个包到达时, 通过 保留的带宽 它可以被立即发送出去。假如没有带宽被保留用于包交换,那么所有的包将不得不等待着被转发。 预先保留带宽意味着当一个包出现时 不会发生 拥塞 (除非 出现的包比预期的还多 )。 在另一方面 ,当尝试建立一条 电 路时 , 由于拥塞 , 尝试 将会 失败 。因此,在线路交换 (在设置时 )和包交换 (在包发送时 )的不同时间拥塞都 可能发生。 如果为特定的用户建立一条线路那么当这个用户没有数据传送时,则这些保留下来的带宽将被浪费而不能用于其它用户的传输。而包交换则不会浪费带宽,因此它在系统宽带方面的应用更有前景。理解电路交换和包交换的这种商业差别是极其重要的。这种商业差别是在质保服务和浪费资源相对不质保服务和不浪费资源的。 包交换是利用存储器并向前发送的。包是先存储在路由器的内存里然后再发送到下一个路由器的。和电路交换一样信息位也是连续不断地通过导线传输的。存储转发技术增加了延迟时间。 另一个不同是电路交换是完全透明的。发送者和接收者 可以使用他们想要的任一比特速率,格式和帧同步 .这通信公司不知道也不关心这的。而在包交换中载体决定了基本的参数的。用一个简单比喻它们就像一个是公路一个是铁路。在以前,用户决定介质的大小,速度和特性。而后来这些都由通信公司做了的。这些都是透明的它允许声音,数据和传真共同存在于电话系统里。 电路交换和包交换的最后一个不同点是计费方式。电路交换的计费是按照传统的距离和时间的。比如移动电话除打国际电话外距离是不列入计算的,而时间也只是列入一个简单的计算 (例 :拔打 2000 分钟电话比 1000 分钟电话花费的多并且晚上或周末也比平时来得便宜 )。时间对于包交换来说是没有问题的,但是传输流量却是个问华北工学院计算机科学与技术系 31 题。 ISPs 为家庭用户的计费方式基于按一个月的流量的一半的,这是因为它们用得相对较少并且他们的顾客也很好理解这种计费方式。但是主干网络中心的收费是基于它们的流量的。这些不同列在图 2-40里。 项目 电路交换 包交换 呼叫设置 需要 不需要 专用物理线路 是 否 每个包沿相同路径 是 否 包的到达中有规则的 是 否 是否会致命的崩溃 是 否 带宽利用 固定 动态分配 可能的时间堵塞 在设置时 在每个包时 可能浪费带宽 是 否 以存储转发进行发送 否 是 透明性 是 否 收费 按分钟 按包 图 2 40:比较电路交换网络和包交换网络的不同 电路交换和包交换是两者都是非常重要的,我们将立即在详细的资料里提及并描述它们之间各种不同的技术。 2.6 移动电话系统 传统的电话的系统将不能满足用户的大量增长(即有一天实现了终端到终端的光纤连接)。人类在进步,人们期望能在飞机上,汽车里,船上,足球场甚至在公园里跑步的时候也能打电话。在近几年人们更是期望能在更多的地方发电子邮件和上网冲浪。因此有很多的人关心无线电话技术。在 下面的章节我们将用详细的资料来学习这些主题。 无线电话可以分为基本的两种:无绳电话和移动电话(有时也叫蜂窝电话)。无绳电话设备是由痤机和听筒组成它们被安装在用户的家里。它们从不被应用于网络,所以我们没有办法做进一步的检测。取而代之,我们将把焦点放在在声音和数据通信上有广泛应用的移动系统上。 移动电话经历了三个不同的发展阶段,每个阶段都有不同的技术: 1 模拟声音 华北工学院计算机科学与技术系 32 2 数字声音 3 数字声音和数据(互联网,电子邮件, etc.) 虽然我们主要讨论这系统技术,但是我们也有必要注意政府和市场对它的巨大影响。第一 个移动电话系统是在美国由受美国国家联邦通讯委员会 (FCC)委托的美国电话电报公司 (AT&T)设计的。结果在整个美国就有了一个简单的 (模拟 )系统并且移动电话开始在加利福尼亚上市同时也在纽约得到应用。相反的,当移动电话来到欧洲时,由于每个国家都设计了自己的系统,所以结局很惨败。 当数字技术到来时,欧洲从前面的失败中吸收教训,政府和邮政制定了简单系统(GSM)的统一标准,因此移动电话在欧洲的任何一个地方都是通用的。此时,美国政府决定不把标准商业化因而它失去了数字市场。这个决定导致不同的设备生产商生产出不同的移动电 话。结果现在美国有两不可兼容的数字移动电话在使用 (加强了一家就会削弱另一家 )。 即使美国拥有移动电话的所有权,但是在应用上欧洲要远远超过美国的。原因之一就是整个欧洲拥有相同的简单系统。然而更多的是由于美国和欧洲的基本电话数量不同。在美国移动电话和固定电话是共用的,因此对于用户没有办法区分 (212)234-5678 到底是固定电话 (拨打是便宜的或者是免费的 )还是移动电话 (拨打是昂贵的 )。为了使人们从使用电话中获益,电话公司决定为引入呼叫而花自己的钱制造移动电话。结果导致,很多人怕由于呼叫而收到一大笔帐单而不愿意 买移动电话。在欧洲移动电话有特殊的区号 (如 800,900 之类的数字 ),所以它很快就得到了认可。因而在一般的“叫方付费”的原则在欧洲也被应用于移动电话了 (除国际电话分开收费外 )。 在欧洲采用颁布广泛的已经付费的移动电话的影响巨大 (超过同地区的 75%)。移动电话可以在很多的商店里购买而不像购买收音机那样需要很多手续。谁付费谁使用,他们预先存入,比如 20 或 50 euro 并且在快用完的时候可以用 PIN 码进行再充值。结果在欧洲几乎所有的青年和小孩都有一个 (预付费的 )移动电话,这样他们的父母就可以准确的定位他们而不用去 担心孩子们会用掉一大笔帐的。如果仅在偶而使用移动电话,那么它的使用是基本免费的因为这里有月租或者预先支付呼叫。 2.6.1 第一代移动电话:模拟声音 移动电话充分体现了政治和市场的特征。让我们来看一下它的技术吧。它是从简单的系统开始的。在 20 世纪的初,移动无线电话被偶而应用于海上或军事通信中。在 1946 年,第一个基站被安置在 St.Louis。这个系统被安置在高层建筑上,它华北工学院计算机科学与技术系 33 使用一个简单的大的发送机并且有了用于发送和接收的简单的通道。像这样的系统称做被动式系统,从 1950 开始它就被安装在很多的城市了。 可较验的收音机,出租车,警车还有电视也广泛采用这种技术。 在 1960 年, IMTS(改良的移动电话系统)被发明。它仍然使用高达 200 瓦的发送器,发送器被安置在山上,不过此时已经有了两各不同的频率了,一种用来发送,另一种用来接收,所以这个呼叫按钮就可不要了。相比信号出站移动电话的信号入站是通过不同的通道的,因此移动用户不会互相听到 (不像应用在出租车上被叫系统 )。 IMTS支持从 150 MHz到 450 MHz的 23 条通道。由于通道太少,用户经常要等很长时间才能听到拔号音。也由于小山上的发送器的功率太 大,为了不互相干扰邻近的系统不得不与它相距几百千米。总而言之,这有限的容量使用这系统有点不合实际应用。 华北工学院计算机科学与技术系 34 原 文 The result of the connection setup with circuit switching is the reservation of bandwidth all the way from the sender to the receiver. All packets follow this path. Among other properties, having all packets follow the same path means that they cannot arrive out of order. With packet switching there is no path , so different packets can follow different paths, depending on network conditions at the time they are sent. They may arrive out of order. Packet switching is more fault tolerant than circuit switching. In fact, that is why it was invented. If a switch goes down, all of the circuits using it are terminated and no more traffic can be sent on any of them. With Packet switching, packets can be routed around dead switches. Setting up a path in advance also opens up the possibility of reserving bandwidth in advance. If bandwidth is reserved, then when a packet arrives, it can be sent out immediately over the reserved bandwidth. With packet switching, no bandwidth is reserved, so packets may have to wait their turn to be forwarded. Having bandwidth reserved in advance means that no congestion can occur when a packet shows up (unless more packets show up than expected).On the other hand, when an attempt is made to establish a circuit, the attempt can fail due to congestion. Thus, congestion can occur at different times with circuit switching(at setup time) and packet switching(when packets are sent). If a circuit has been reserved for a particular user and there is no traffic to send, the bandwidth of that circuit is wasted. It cannot be used for other traffic. Packet switching does not waste bandwidth and thus is more efficient form a system-wide perspective. Understanding this trade-off is crucial for comprehending the difference between circuit switching and packet switching. The trade-off is between guaranteed service and wasting resources versus not guaranteeing service and not 华北工学院计算机科学与技术系 35 wasting resources. Packet switching uses store-and-forward transmission. A packet is accumulated. in a router s memory, then sent on to the next router. With circuit switching, the bits just flow through the wire continuously. The store-and-forward technique adds delay. Another difference is that circuit switching is completely transparent. The sender and receiver can use any bit rate, format, or framing method they want to. The carrier does not know or care. With packet switching, the carrier determines the basic parameters. A rough analogy is a road versus a railroad. In the former, the user determines the size, speed, and nature of the vehicle; in the latter, the carrier does. It is this transparency that allows voice, data, and fax to coexist within the phone system. A final difference between circuit and packet switching is the charging algorithm. With circuit switching, charging has historically been based on distance and time. For mobile phones, distance usually does not play a role, except for international calls, and time plays only a minor role(e.g., a calling plan with 2000 free minutes costs more than one with 1000 free minutes and sometimes night or weekend calls are cheaper than normal).With packet switching, connect time is not an issue, but the volume of traffic sometimes is. For home users, ISPs usually charge a flat monthly rate because it is less work for them and their customers can understand this model easily, but backbone carriers charge regional networks based on the volume of their traffic. The differences are summarized in Fig.2-40. 华北工学院计算机科学与技术系 36 Item Circuit Switched Packet Switched Call setup Required Not needed Dedicated physical path Yes No Each packet follows the same route Yes No Packets arrive in order Yes No Is a switch crash fatal Yes No Bandwidth available Fixed Dynamic Time of possible congestion At setup time On every packet Potentially wasted bandwidth Yes No Store-and-forward transmission No Yes Transparency Yes No Charging Per minute Per packet Both circuit switching and packet switching are important enough that we will come back to them shortly and describe the various technologies used in detail. 2.6 THE MOBILE TELEPHONE SYSTEM The traditional telephone system(even if it some day gets multi-gigabit end-to-end fiber) will still not be able to satisfy a growing group of users :people on the go .People now expect to make phone calls from airplanes ,cars ,swimming pools ,and while jogging in the park .Within a few years they will also expect to send e-mail and surf the Web from all these locations and more consequently ,there is a tremendous amount of interest in wireless telephony .In the following sections we will study this topic in some detail. Wireless telephones come in two basic varieties :cordless phones and mobile phones(sometimes called cell phones),Cordless phones are devices 华北工学院计算机科学与技术系 37 consisting of a base station and a handset sold as a set for use within the home. These are never used for networking ,so we will not examine them further .Instead we will concentrate on the mobile system ,which is used for wide area voice and data communication. Mobile phones have gone through three distinct generations ,with different technologies: 1. Analog voice 2. Digital voice 3. Digital voice and data(Internet ,e-mail ,etc.). Although most of our discussion will be about the technology of these systems ,it is interesting to note how political and tiny marketing decisions can have a huge impact .The first mobile system was devised in the U.S. by AT&T and mandated for the whole country by the FCC .As a result ,the entire U.S. had a single(analog) system and a mobile phone purchased in California also worked in New York .In contrast ,when mobile came to Europe ,every country devised its own system ,which resulted in a fiasco. Europe learned from its mistake and when digital came around, the government-run PTTs got together and standardized on a single system(GSM),so any European mobile phone will word anywhere in Europe .By then ,the U.S. had decided that government should not be in the standardization business ,so it left digital to the marketplace .This decision resulted in different equipment manufacturers producing different kinds of mobile phones .As a consequence ,the U.S. now has two major incompatible digital mobile phone systems in operation(plus one minor one). Despite an initial lead by the U.S. , mobile phone ownership and usage in Europe is now far greater than in the U.S. Having a single system for all of Europe is part of the reason ,but there is more .A second area where the U.S. and Europe differed is in the humble matter of phone numbers .In the U.S. mobile phones are mixed in with regular (fixed) telephones .Thus

温馨提示

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

评论

0/150

提交评论