论文例子 - 图文

更新时间:2024-01-25 20:54:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

北京电视广播大学毕业设计(论文)

论文题目:学生信息管理系统

姓名:廖东凯 学号:007040090 指导教师:王秀山 班级:2000(秋)专科 专业:计算机应用

学校:北京电大宣武分校

摘要

随着科学技术的发展,计算机领域不断取得新的研究成果。计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。尤其是在学校里,要处理大量的学生数据。在数字化的今天,为了加快学校学生信息管理必须依靠计算机,以及使学校对学生数据的管理更加简单、到位,基于上述种种原因,开发一套学生信息管理系统迫在眉捷,我结合本次毕业设计的题目开发了学生信息管理系统。本文是对基于计算机对学校里的大量数据进行加工并处理的研究。

本系统是在管理信息系统的理论和方法指导下、数据库技术支持下完成的。本文在结构上首先论述了毕业设计选题的背景、目的和意义。然后叙述了开发平台和数据库技术和各自的优点,接着用了较多篇幅阐述了系统的需求分析、总体设计、实现以及实施的任务、技术和工具。最终系统能够完成信息的输入、输出,数据的修改、查询和统计以及打印报表等功能,使用户操作起来简便快捷。

关键词 软件工程 关系数据库管理系统 模糊查询 VB ACCESS

-

I

目录

第1章 可行性研究.................................................. 1 1.1 开发学生信息管理系统的意义:..................................... 1 1.2已有系统的存在的问题: ........................................... 2 1.3可行性研究: ..................................................... 2 1.3.1目的: ...................................................... 2 1.3.2经济上可行性: .............................................. 2 1.3.3 技术上可行性:.............................................. 3 1.3.4 运行上可行性:.............................................. 3 1.4研究路线和所做的工作: ........................................... 4 第2章 需求分析...................................................... 5 2.1学校结构组织结构图 ............................................... 5 2.2学校工作的业务流程图 ............................................. 5 2.3 新系统的数据流程图............................................... 7 2.3.1系统关联图 .................................................. 8 2.3.2顶层数据流图 ................................................ 9 2.4 数据字典........................................................ 10 2.4.1数据元素条目 ............................................... 11 2.4.2数据结构条目 ............................................... 11 2.4.3数据流条目 ................................................. 12 2.4.4数据存储条目 ............................................... 12 2.4.5外部项条目 ................................................. 13

-

II

第3章 系统的总体结构设计........................................... 14 3.1系统设计思想和设计目标 .......................................... 14

3.1.1系统设计思想 .............................................. 14 3.1.2系统设计目标 .............................................. 14 3.2软件模块结构的设计-HIPO分层图.................................. 15 3.3数据库设计 ...................................................... 16

3.3.1 实体描述.................................................. 16 3.3.2联系描述 .................................................. 16 3.3.3 E-R图 .................................................... 17 3.3.4 E-R模型转换成关系模式的基本规则 .......................... 17 3.3.5 E-R模型转换成关系模式 .................................... 18 3.3.6关系模式的规范化 .......................................... 18 3.3.7数据库表 .................................................. 18 3.4 计算机系统配置方案地选择和设计.................................. 20 3.5系统总体安全性、可靠性方案与措施 ................................ 20

3.5.1系统总体安全性方案与措施 .................................. 20 3.5.2系统可靠性方案与措施 ...................................... 22 第4章 系统详细设计................................................. 23 4.1 系统用户管理模块的设计.......................................... 23

4.1.1 用户登录子模块的设计...................................... 23 4.1.2 用户权限管理子模块的设计.................................. 24 4.2 学生基本信息管理模块的设计...................................... 25

4.2.1 学生基本信息添加、修改子模块的设计........................ 26 4.2.2 学生基本信息查询子模块的设计.............................. 27

-

III

4.3 班级课程模块的设计.............................................. 28

4.3.1 班级子模块的设计.......................................... 28 4.3.2 课程管理子模块的设计...................................... 30 4.3.3 班级课程管理子模块的设计.................................. 31 4.4 学生成绩管理模块的设计.......................................... 32

4.4.1 学生成绩添加子模块的设计.................................. 32 4.4.2 学生成绩浏览查询子模块的设计.............................. 34 第5章 系统测试.................................................... 36 5.1 软件测试的目标及过程........................................... 36

5.1.1 软件测试................................................. 36 5.1.2 软件测试目标............................................. 36 5.1.3 软件测试的过程........................................... 36 5.2 软件测试的方法及步骤........................................... 37

5.2.1 软件测试的方法........................................... 37 5.2.2 测试步骤................................................. 38 结束语.............................................................. 39 致谢:.............................................................. 40 参考文献............................................................ 41 附录:源代码清单:.................................................. 42

- IV

第1章 可行性研究

1.1 开发学生信息管理系统的意义

21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。

在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。

计算机对信息的管理有着手工管理无法比拟的优势,这些优势对于信息的条数不多,信息的变化慢,对信息的需求不频繁的单位还不明显,但是对于我现在就读的某某大学,却是显然的。

某某大学目前并校后在校学生达到20000人以上,学校对学生的原来的学生信息管理软件已经不能适合,并校前不同的学校有不同的专业,不同的课程设置,对学生学生信息管理的信息要求不一致。

并校后为了统一管理,需要针对新学校设计适合新情况的学生信息管理软件。利用该软件来对学生的基本档案信息,学生在校学习成绩,以及该校与学习相关的其他的课程设置等进行管理。

合并后的新学校由于在校人数多,学生的信息量变化快,比如学生考试的成绩需要不断的录入。对学生的信息需求频繁,比如高校需要及时了解学生的个人档案信息,或者经常需要了解考试成绩。而且对这些需求的信息有的需要报表打印等,而为了完成这些要求,如果仅仅凭借手工管理是不可想象的。但是通过设计的计算机相应的学生信息管理软件可以轻松满足以上的要求。

我作为一个计算机应用的大学生,希望能有所贡献。用我四年的所学编制了一个实用的程序来帮助我的母校进行更有效的学生信息档案管理或者作为以

-

1

后开发的参考。

1.2已有系统的存在的问题:

合并前的三所学校各自有独立的学生信息管理软件,由于合并前的学校专业不同,学校合并前学历层次单一,三所中有二所以前只有专科层次,一所只有本科层次,合并后的综合大学成为专业齐全,学科种类繁多,含专科和本科二个层次的教学。显然以前的学生信息管理软件不能直接用于新的学校的学生信息管理。另外以前的管理软件开发平台是FOXBASE,操作界面不友好,操作不方便。

新系统准备用面向对象的编程工具VISUAL BASIC6.0作为开发平台。开发思想准备在继承旧系统的优点,克服旧系统的确定,开发一个适合并校后,界面友好的,操作简便的学生信息管理系统。

1.3可行性研究:

1.3.1目的:

可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。

1.3.2经济上可行性:

现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发,

为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面: 第一,本系统的运行可以代替人工进行许多繁杂的劳动; 第二,本系统的运行可以节省许多资源;

第三,本系统的运行可以大大的提高学校的工作效率; 第四,本系统可以使敏感文档更加安全,等等。 所以,本系统在经济上是可行的。

-

2

1.3.3 技术上可行性:

为本系统的开发我特对并校后的学校进行了深入的调查研究。并校后学校有32个专业,二个学历层次,一个专科,一个本科层次。150个班级,开设的课程达500余门。共有学生人数为21533人。 学校从事学生信息管理的人员都是并校前专业从事该工作多年的教师。他们对使用计算机软件有丰富的使用和管理经验。而且学校为他们提供了多台配备良好的电脑。

本系统开发后使用的用户主要是学校教务处的教师。暂时不提供更多的用户来共享数据,所以开发的系统暂时定位单机版本。后台数据库我选择Microsoft ACCESS作为本系统的数据库,前台开发工具采用Microsoft Visual Basic6.0。

使用Visual Basic6.0作为系统开发的开发环境,它作为一种现代的编程语言,提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。

并校前的学生信息管理软件是不同学校针对各自的学校的实际情况各自独立开发的,经过多年的运行,这几套管理软件都成功在各自学校进行多年的信息管理。在运行的过程中,相关的技术开发人员根据运行过程中暴露的问题都进行过行之有效的技术处理。

新系统开发之前,我详细的对并校前的系统开发人员和系统操作人员,以及新学校的教务管理人员进行调研,听取他们对系统的技术要求和实际操作要求。特别是认真对已有系统的研究和相关的开发人员交换了看法。征求他们的新系统的提出意见。

综上所述,本系统的设计与开发在技术上和硬件设备上的条件以及计算机软件的使用上条件是成熟,技术上都是满足的,因此,它在技术上是可行的。

1.3.4 运行上可行性:

本系统为一个中小型的学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。

-

3

1.4研究路线和所做的工作:

新系统的开发首先是通过同并校前的各校的负责学生信息管理的教师交

谈,获得他们对系统使用的心得和体会,意见,看法。另外专业同合并后的学校学生管理部门的工作人员交流,获得他们对新系统的要求,看法。同时认真研究已有系统的开发技术中的优缺点,为新系统作好开发前的各项准备。 接着,在调研的基础上,对调研的材料进行认真的整理。绘制出调研获得的组织结构图,业务流程图,然后得出新系统的逻辑方案。新系统的逻辑方案主要通过规划出新系统的数据流程图,数据字典来展现。

有了新系统的逻辑方案后就可以对新系统进行总体结构设计。总结结构

设计包括新系统功能模块设计,数据库设计。功能模块设计通过设计系统功能层次图来体现。对新系统逻辑方案中的第一层数据流程图进行规划设计出系统顶层HIPO图,

接着对在对第一层数据流程层层分解的基础上得到的第二层数据流程图

的基础上,设计绘制出第一层,第二层的HIPO图。通过HIPO图的绘制,明确了明确系统的层次之间的关系和模块之间的关系。

再接着就可以对新系统进行详细设计和编码。以VISUAL BASIC6.0开发平台上,以总体结构设计的成果为依据,对功能模块逐一进行详细设计和编码。

最后对系统进行周密的测试。测试采用了黑盒和白盒测试相结合的方法。 本文第一章的工作:对系统进行调研和可行性分析

第二章所做的工作:对系统需求进行分行:在调研的基础上绘制出组织机构图和业务流程图,在此基础上得到系统的逻辑方案。

第三章所做的工作:对新系统进行总体结构设计:设计出描绘功能模块和调用关系的HIPO图,以及设计出系统的后台数据库结构。

第四章所做的工作:对新系统进行详细设计和编码。

第五章所做的工作:对新系统进行测试和设计总结。写出设计体会。

- 4

第2章 需求分析

在可行性研究阶段经过调研已经准备了大量的第一手材料,对系统的需求已经有了一个大体了解和规划,然而这些规划还只是局限于一种对系统的感性认识,对系统的要求还不完整,不准确,不清晰,不具体。

需求分行阶段就是以可行性阶段准备的大量的文档作为需求分行阶段的出发点,整理出的组织结构图和业务流程图。以此为依据设计和规划新系统的逻辑方案。

2.1学校结构组织结构图

通过调研,获知学校结构设置如下:

机械学院 计算机学院 …… …… 成教学院 某某高等院校

教工务会 … 处 学生会

图2-1 学校组织结构图

合并后的大学下设10个学院,每个学院设有教务处,工会,学生会等组织,学校的20000多名学生分属于10个学院,学生的学生信息由不同的学院分别进行管理,管理学生信息的结构组织是下属的学院的教务处的工作人员,学院在学生毕业后将学生在校期间的学生信息信息上报到学校。在校期间由学院进行管理,对学生的所有学生信息信息的录入,查询,统计,报表打印都在学院完成。根据需要再提交给学校。

2.2学校工作的业务流程图

学校工作总体规划由教务人员在学生信息信息管理系统中完成对运行教务

-

5

处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。

新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学生信息系统中完成新学生信息的维护。

在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安排一个班主任及对此年级安排一个年级组长。并对各科老师进行安排。 任课教师 学生成绩 成绩录入修改

学生 教务主任 学生信息 班级课程任课 教务员 学生信息录入 班级课程任课录入 相关信息 存储 学籍相关信息 学校相关领导和教师 图2-2 学校业务流程图

- 6

系统流程图的图形符号说明:

系统中人员 系统外实体 单据、报表、帐目 处理 数据流向 存储 为了便于对学生成绩的管理,每学期教务员需要对学生所学的课程进行设置和教材,教师等的安排。

每学期举行的期中,期末考试后由任课老师对本科的成绩进行上报给教务员录入。根据需要,教务员对学生成绩进行统计报表,上报给学院和学校、 对现行系统进行详细调查的重点是对管理业务的流程进行描述,通过采用业务流程图中的图形工具来描述管理业务活动可以帮助我直观的理解系统业务过程,找出业务流程中的不合理现象。由此规划出系统的新逻辑方案。

2.3 新系统的数据流程图

数据流程图就是组织中信息运动的抽象,是管理信息系统逻辑模型的主要形式。这个模型不涉及硬件、软件、数据结构与文件组织,它与对系统的物理描述无关,只是用一种图形及与此相关的注释来表示系统的逻辑功能,即开发的系统在管理信息处理方面要做什么。由于图形描述简明,清晰,不涉及到技术细节,所描述的内容是面向用户的,所以即使完全不懂信息技术的用户单位的人员也容易理解。因此数据流程图是系统分析人员与用户进行交流的有效手段,也是系统设计的主要依据之一。

- 7

2.3.1系统关联图

教 师 教务主任 F2成绩单 F8学生信息 F3成绩信息 F4班级课程 F6学生信息 F5成绩信息 F1基本信息 学 生 学籍管理 F7学籍报表 学校 图2-3 学籍管理信息系统关联图

图片说明:关联图给出了系统的一个总概念,明确了系统的外部项, 画清了整个系统的界面。 总的来说,这个系统应该具备三大功能:1)学生基本信息处理;2)成绩处理;3)班级课 程信息处理。 因而系统需要相应数据存储:学生基本信息、成绩信息、班级课程。这样就得到系统的顶层数

据流图。(见图2-3)

- 8

2.3.2顶层数据流程图

符号说明如下:

外部项 加工

图2-4 顶层数据流程图

学生,教师,学校 P5 信息打印报表 D1 基本信息表 D2 学生成绩表 D3 班级课程表 数据存储 数据流 学生 教师 教务主任 P1 基本信息处理 P2 成绩信息处理 P3 班级课程处理 P4 信息查询统计对顶层数据流程图的功能逐步细化,逐一分解。可以进一步深入定义系统中的数据和系统应该完成的功能。

-

9

对上面的功能1分解可以得到相应的第一层数据流程图:

P4 信息查询统计 提交信息 学生 P1.1 录入学生信息 P1.2 修改学生信息 P1.3 删除学生信息 D1 学生信息表 P1.4 浏览学生信息 图2-5 功能1分解第一层数据流程图

第一层数据流程图分解说明:第一层数据流程图就是对数据的顶层数据流程图进行分解得到的,对顶层数据流程图中初步规划的功能模块细化为子功能模块。细化的原则是当一个功能进一步分解子功能后,将促使人考虑为了完成这些子功能需要写出程序代码时,就不应该再分解了。

这里是以学生基本信息处理顶层功能功能:学生信息处理功能模块为例,细化为输入子模块,修改子模块,删除子模块,浏览子模块。信息的入口是学生提交的学生信息。

2.4 数据字典

上文中的数据流图只能给出系统逻辑功能的一个总框架而缺乏详细、具体的内容。数据词典的作用是给数据流图上的每一个成分以定义和说明。除此之外,数据词典还要对系统分析中其它需要说明的问题进行定义和说明。

本文的数据词典描述的主要内容有:数据元素、数据结构、数据流、数据存储、处理逻辑和外部项。在系统分析的过程中,产生了大量的数据词典。限于篇幅,我采用图表格式仅就这几项条目各举一例来说明。

-

10

2.4.1数据元素条目

数据元素 编号:E1 别名:学生编号 存储处: D1 学生基本信息表 D2 成绩表 F1~F8 数据元素值: 代码类型 文本 简要说明: 学号是学生的识别符,每个学生都有唯一的编号。 修改记录: 编写 审核 日期 日期 2005-5-1 长度: 9 系统名:学生信息管理 条目名:学号 属于数据流: 2.4.2数据结构条目

数据结构 系统名:学生信息管理系统 条目名:学生信息单 结构: 姓名 性别 出生年月 家庭住址 联系电话 分类 备注 编号:I3 别名:无 有关数据存储: D1 学生基本信息表 D2 学生成绩表 有关数据流: F1、F8 简要说明: 学生建档前学生提供的基本信息。 修改记录:

编写 审核 日期 日期 2005-5-1 - 11

2.4.3数据流条目

数据流 编号:F1 别名:无 去处: 学生基本信息表 数据流结构: 学生信息建档数据={学号+姓名+性别+班级+分类+出生年月+家庭住址+邮政编码+联系电话+入学时间+备注 简要说明: 建档数据来自学生提供的基本信息和学校教务处分班结果。 修改记录: 编写 审核 日期 日期 2005-5-1 系统名:学生信息管理 条目名:学生信息建档数据 来源: 外部实体学生和教务处

2.4.4数据存储条目

数据存储 编号:D1 别名:无 存储组织: 每个学生一条记录按学号顺序排列 记录组成: 项名: 学生编号 长度:(byte) 简要说明: 系统名:学生信息管理系统 条目名:学生基本信息表 主关键字:学号 辅关键字:入学时间 姓名 性别 班级 分类 出生8 2 6 4 8 家庭50 邮政6 联系11 入学8 备注 4 年月 住址 编码 电话 时间 9 学生基本信息表带有多种查询功能。 修改记录: 编写 审核 日期 日期 2005-5-1 - 12

2.4.5外部项条目

外部项 编号:W1 别名:无 输出数据流: 成绩统计单 主要特征: 在本系统中负责提供学生考试成绩。 简要说明: 对学生的期中,期末考试的成绩上交教导处,由教务员录入学生成绩,然后系统对成绩进行统计报表反馈给教师和学院。 修改记录:

编写 审核 日期 日期 2005-5-1 系统名:学生信息管理系统 条目名:教师 输入数据流: 成绩信息单 以上是本系统新的逻辑方案中的数据字典,有了数据字典,对新系统的数据结构的建立就已经很清楚了。

下面就可以在数据流程图和数据字典等文档资料的基础上对系统进行总体结构设计了。

- 13

第3章 系统的总体结构设计

系统设计阶段的主要目的是将系统分析阶段所提出的反映了用户信息需求的系统逻辑方案转换成可以实施的基于计算机系统的物理方案。

本阶段的主要任务是从系统的总体目标出发,根据系统分析阶段对系统的逻辑功能的要求,并考虑到经济、技术和运行环境等方面的条件,来确定系统的模块结构,进行数据库设计和系统配置方案的设计等。

3.1系统设计思想和设计目标

3.1.1系统设计思想

1、采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力、提高系统开发的水平和应用效果。

2、系统就满足学校的需求,例如学生信息的录入、查询、更新等。学生录入与排名。

系统就具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。

3.1.2系统设计目标

节约资源,提高学生信息信息的精确度

本系统能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学生信息管理的效率,并且还提高了学生信息信息管理的精确度。 方便快速操作,精减人员,节约开支

方便快速的操作,可减少学生信息信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。

-

14

3.2软件模块结构的设计-HIPO分层图

数据流图能够很好的反映系统和模块的逻辑功能,但不涉及具体模块的物理构成和实现途径,不能有效地体现整个系统的层次关系。HIPO图可以从系统的整体出发,明确系统的层次之间的关系和模块之间的关系。

按照结构化的系统设计方案,由系统顶层数据流图得到第一层HIPO图。 基本信息管理 学籍管理系统 成绩信息管理 班级课程管理 系统用户管理 图3-1 系统顶层数据流图得到第一层HIPO图

第一层HIPO图规划设计出系统的四大功能:对学生基本信息的管理,学生成绩信息的管理,班级课程设置的管理,系统用户的管理。

但是第一层的HIPO图还不能将系统的子功能和功能模块的层次和调用关系体现出来,所以需要规划设计出第二层HIPO图。

在第一层HIPO图的基础上,根据第一层数据流图,对系统进行进一步的功能分解, 得到第二层HIPO图如下。 基本信息管理 信信信信打息 息息息印录修删查输入 改除询出 …… 学籍管理系统 成绩信息管理 班级课程管理 系统用户管理 添加用户管理权限修改密码-

图3-2 第二层HIPO图

在第二层HIPO图中对基本功能进行分解,层次关系和调用关系一目了然,

15

该图中的成绩管理,班级课程管理相应的第二层子功能模块和基本信息管理的划分和设计类似,上面没有再类似画出。

3.3数据库设计

系统设计阶段的数据库设计是以系统分析阶段的成果,数据流图、数据字典等为依据的设计。其主要内容包括两部分:

1) 根据数据流图和数据字典等进行概念设计,画出实体关系图,即E-R图; 2) 根据E-R图进行逻辑设计,建立起数据库逻辑结构,即所有的二维表。

3.3.1 实体描述

1. 实体集学生,有属性学号、姓名、性别、出生年月、分类、入学时间、班

级、家庭地址和联系电话、备注等,主键是学号。

2. 实体集班级,有属性班级编号(简称班级)、年级、教室、年制、专业、班主

任和备注,主键是班级编号。

3. 实体集班级课程,有属性年级、专业、年制、学期、课程,主键是专业和

年级。

4. 实体集课程,有属性课程号、课程名称、教材、任课教师,主键是课程号。 5. 实体集成绩,有属性学号、学期、类型、课程名称和分数,主键是学号。

3.3.2联系描述

1. 属于:是实体集学生和班级之间的N:1联系,表示多名学生可能属于一个

班级。

2. 设定:是实体集班级和班级课程之间的N:M联系,表示一个班级设定安排

多门课程,一门课程也可能被多个班级选用。

3. 选择:是实体集班级课程和课程之间的N:1联系,表示一门课程可能被多

个班级课程选择。

4. 学习:是实体集学生和班级课程之间的1:N联系,表示一个学生需要学习

-

16

他所作班级被安排的多门课程。

5. 考试:是实体集学生和成绩之间的N:M联系,表示一个学生参加考试有多

门功课的成绩,同一门功课的多个学生拥有自己的成绩。

3.3.3 E-R图

根据上面的描述,就可以得到系统的E-R模型,见图:

成绩 图3-3 系统E-R模型图

选择 考试 学习 设定 学生 属于 班级 班级课程 课程 3.3.4 E-R模型转换成关系模式的基本规则

1. 每个实体集用一个关系模式表示,其中实体集的属性被转换成关系的属性,

主键用下划线表示。由于加入了联系,可能会增加一些属性。

2. 若实体集E2与实体集E1的联系N:1,且E2是E1的强制成员类,E2的关系

模式应包含E1的主属性。

3. 若实体集E2与实体集E1的联系N:1,而E2是E1的可选成员类,可以引入

另一个表示联系的关系模式来避免空值问题,外键用#表示。

4. 若实体集E2与实体集E1的联系N:M,可以由另一个关系模式来表示联系。

这个关系模式由每个参加的实体集的主属性和这个联系的任何属性组成。

- 17

3.3.5 E-R模型转换成关系模式

应用上述的基本转换规则,这样就得到数据库的关系模式如下:

学生(学号,姓名,性别,班级,分类,出生年月,家庭住址,邮政编码,联系电话,入学时间,备注)

班级(班级,年级,教室,年制,专业,班主任,备注) 课程(课程编号,课程名称,教材,任课教师) 班级课程(专业,年级,学期,课程) 成绩(学号,学期,类型,课程名称,分数) 为了实现系统用户的管理,加入了系统用户表:

用户(用户名,密码,管理权限,只读权限,其他权限1,其他权限2,其他权限3,其他权限4)

3.3.6关系模式的规范化

经分析检验,上述的各关系模式事实上都已属于3NF,这是我所需的阶段。这说明了我初始的实体模式是合理的。

3.3.7数据库表

表3-1 学生表结构 字 段 学号* 姓名 性别 班级 分类 出生年月 家庭住址 邮政编码 联系电话 入学时间 备注 类 型 文本 文本 文本 文本 文本 日期/时间 文本 数字 数字 日期/时间 备注 长 度 9 8 2 10 4 4 50 6 11 4 4 -

18

表3-2 班级表结构

字 段 班级编号* 年级 教室 年制 专业 班主任 备注 类 型 文本 文本 文本 文本 文本 文本 备注 长 度 6 10 10 1 20 8 4 表3-3 课程表结构

字 段 课程编号* 课程名称 教材 任课教师 类 型 文本 文本 文本 文本 长 度 6 20 20 8 表3-4 班级课程表结构 字 段 专业 年级 学期 课程 类 型 文本 文本 文本 文本 长 度 10 8 8 20 表3-5 成绩表结构

字 段 学号 学期 类型 课程 分数 类 型 文本 文本 文本 文本 数字 长 度 9 20 4 20 5 表3-6 系统用户表结构

字 段 用户名 密码 超级挂念权限 只读权限 其他权限1 其他权限2 其他权限3 其他权限4

-

19

类 型 文本 文本 文本 文本 文本 文本 文本 文本 长 度 10 10 2 2 2 2 2 2

3.4 计算机系统配置方案地选择和设计

? 计算机硬件配置方案

机型:Hp pentiumⅢ 硬盘:40G 软驱:1.44MB 光驱:48X 内存:128MB

显示器:17”液晶显示器 打印机:HP网络打印机 ? 计算机软件配置方案

系统软件:WINDOWS XP 数据库软件:MS Access2000 开发软件:Visual Basic 6.0

3.5系统总体安全性、可靠性方案与措施

系统的可靠性和安全性是信息系统质量的两个重要的性能要求。可靠性是系统为了避免来自系统内部的差错、故障而采取的保护措施;安全性是系统为了防止来自外部的对系统资源特别是信息的非法使用和访问,有意或无意的破坏而采取的安全和保密手段。

3.5.1系统总体安全性方案与措施

随着信息技术的发展,信息系统的应用范围不断扩大。学校学生信息管理信息系统建立以后,势必导致各部门对该系统信息系统的依赖。一旦管理信息系统的任何破坏或故障,都将对学校的管理产生重大的影响。特别是近期计算机病毒泛滥,使信息系统安全上的脆弱性表现的越来越明显。因此,系统的安全问题不容忽视。

我认为本系统需要三方面的安全措施:实体安全措施、数据安全措施和安

-

20

全管理措施。

1.实体安全措施 a)场地环境的安全

本系统的主场地,主要是机房等中心区域的选择,应远离有害的气体源及存放腐蚀,易燃易爆的物品的地方;远离强的动力设备和机械,避开高压线、雷达站、无线电发射台和微波中继线路;远离强震动源和噪音源;有较好的防风、防火、防水、防地震及防雷击的条件。 b)设备安全

本系统采用的设备必须本身稳定可靠;对环境条件的要求尽可能低;设备能抗震防潮;本身的电磁辐射小,抗电磁辐射干扰和抗静电能力强;有过压、欠压、过流等电冲击的自动防护能力;有良好的安全接地。 c)存储介质的安全

对于存储介质,必须有一套严密的科学管理制度和方法进行管理。主要的防护要求有防火、防高温、防潮、防霉、防震、防电磁场和防盗。对存储介质要定期检查和清理。 2.数据安全措施

为了使数据库管理系统有效地运行同时保护数据库的安全,我认为本系统需要采用三种安全技术:口令保护、数据加密、存取控制。 a)口令保护

口令设置是系统的第一道屏障,它可以防止闲人或是别有用心的人进入系统。 b)数据加密

加密是对信息存储和传输过程中的保护手段,可以使之具有一定的抗攻击强度。 c)存取控制

对于已经获得机器使用权的用户,还要根据预先定义好的用户操作权限进行存取控制,保证用户只能存取他有权存取的数据。 3.安全管理措施

为了维护系统的安全,需要依据系统的实践活动建立一套行政管理规

- 21

章制度。这些制度包括:组织及人员制度、运行维护和管理制度、计算机处理的控制与管理制度、机房保卫制度等。

对系统的工作人员,如终端操作员、系统管理员等,进行全面的安全、保密教育,进行职业道德和法制教育,因为他们对系统的功能、结构比较熟悉,对系统的威胁很大。对于从事重要信息系统工作的人员,应重视教育,并挑选品质可靠的人员担任。

3.5.2系统可靠性方案与措施

信息系统的可靠性是指,在满足一定条件的应用环境中系统能够正常工作的能力。在系统投入使用前的系统测试与调试可以检验并提高系统的可靠性,但是系统测试无法穷尽系统中的错误。在错误不可避免的情况下,提高系统可靠性的主要途径是使系统具有容错能力。

在信息系统中,实用的可靠性技术有:设备冗余技术、负荷分布技术、系统重新组合技术、数据冗余校验技术、系统数据保护与恢复技术等。

在本系统中采用的可靠性技术是负荷分布技术,将信息系统的信息处理、数据存储以及其它的信息管理功能分布在多个设备单元上,这样可以防止单一设备的故障致使整个系统瘫痪,未发生故障的部分可以照常运行,从而把故障影响限制在最小的范围内。

- 22

第4章 系统详细设计

经过前面的系统的总体结构设计后,系统的功能模块已经规划和设计清楚了,另外,系统的后台数据库也设计完成了。下面就可以进行系统的详细设计阶段并最终实现整个系统。

4.1 系统用户管理模块的设计

4.1.1 用户登录子模块的设计

系统为了数据的安全性,对用户实行了权限登录。不同的用户登录具有不同的权限,非发用户禁止登录。登录界面如下:

图4-1 登录界面图

为了完成对不同的用户实现登录权限管理,程序流程设计如下: 程序流程图设计好后,接着就可以在vb环境中设计上图所示的窗体并对控件进行编码了。编码主要对窗体的按钮控件进行编码以实现上述的功能要求。

下面给出立即登录按钮的click事件的主要编码语句:

Dim mrc As ADODB.Recordset

txtsql = \ Set mrc = ExecuteSQL(txtsql) If mrc.EOF = True Then

MsgBox \用户名错误!\警告\ Text1.SetFocus Text1.SelStart = 0

Text1.SelLength = Len(Text1.Text) Exit Sub End If

编码说明:首先定义一个记录集变量和查询变量,接着利用执行查询,查

-

23

询用户名等于输入的用户的记录,如果记录集为空,表明用户表没有该用户,系统给出警告用户名错误,并退出系统,如果记录集非空,系统接着运行,流程图中的其他的功能编码类似,这里不再介绍。

进入系统 获得相应权限 是否一致 警告 结束 T 密码是否存在 警告 结束 帐号是否存在 警告 结束 输入用户名和密码 开始 图4-2 程序流程图

4.1.2 用户权限管理子模块的设计

管理员有权限添加系统用户,并且通过添加用户的时候,可以设置用户的权限,权限用户分为三种,第一种是超级用户,第二种是只读用户,第三种是普通用户,普通用户的权限可以选择系统管理,班级管理,学生档案管理,课程成绩管理。

设计好的窗体界面如下图所示:

- 24

图4-3 窗体界面图

程序设计流程描述如下:

首先判断用户名,密码是否为空,如果为空,程序结束,接着判断二次输入的密码是否一致,不一致则程序结束,再接着判断窗体的选择按钮第三个是否选中,当选中时判断复选框控件是否有选项被选中,如果没有则给出警告,程序结束,最后判断输入的用户名是否存在,如果存在则给出警告,程序结束。全部满足时添加用户成功。

对窗体确定按钮添加用户的click事件编码的主要语句如下: txtsql = \Set mrc = ExecuteSQL(txtsql) mrc.AddNew

mrc.Fields(0) = Trim(Text1(0).Text) mrc.Fields(1) = Trim(Text1(1).Text) ……

mrc.Update

MsgBox \用户添加成功!\警告\语句说明如下:

利用SQL语句查询用户表use。接着对查询的记录集添加新记录,记录集的第一个字段值等于第一个文本框的值,记录集的第二个字段值等于第二个文本框的值。最后记录集更新完成添加。

4.2 学生基本信息管理模块的设计

该模块一共包括学生基本信息的添加,浏览、修改、删除,查询、打印、输出等子模块。

- 25

4.2.1 学生基本信息添加、修改子模块的设计

设计的添加学生基本信息的之模块的窗体如下面所示:在窗体中分别添加用于输入学生信息的文本框和组合框,以及用于触发事件发生的按钮。最后对按钮编码就完成相应的设计。

图4-4 入学登记图

程序设计的流程如下:首先判断各个文本框是否为空,判断出生年月和入学时间的时间格式是否正确。再判断输入的学号是否重复,如果这些任一不满足则程序结束,不能执行添加用户的操作。接着判断变量modi是否为true。成立表示此时处于用户修改状态,为假表示处于用户添加状态。为假时在学生档案表中添加一条新记录,并且新记录的字段值等于输入的文本框的值和组合框的值。最后系统提示添加成功,如果modi为true,则处于修改状态,此时文本框和组合框的值就分别显示学生档案表中学号等于窗体相应记录学号对应的字段值,当用户修改完毕后,系统将学生档案表,成绩表等相关字段值也做相应的修改。

修改状态的图片如图所示:

图4-5 修改状态图

实现以上功能的主要编码语句如下:

If modi = True Then

-

26

txtsql1 = \* from xj where 学号='\&

Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & \Set mrc = ExecuteSQL(txtsql1) For i = 4 To 9

mrc.Fields(i + 1) = Text1(i - 2).Text Next i

mrc.Fields(0) = Trim(Text1(0).Text) ……

mrc.Update

txtsql1 = \学号='\学号='\Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & \Set mrc = ExecuteSQL(txtsql1)

txtsql1 = \学号='\学号='\Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & \Set mrc = ExecuteSQL(txtsql1)

zxh = MsgBox(\记录成功修改!\修改成功\Exit Sub End If

txtsql1 = \Set mrc = ExecuteSQL(txtsql1) mrc.AddNew

For i = 4 To 9

mrc.Fields(i + 1) = Text1(i - 2).Text Next i

mrc.Fields(0) = Trim(Text1(0).Text) ……

mrc.Update

Set mrc = Nothing

zxh = MsgBox(\记录成功添加!\添加成功\

4.2.2 学生基本信息查询子模块的设计

查询子模块设计的思想是在查询窗体中输入查询的关键字时,执行查询,主界面中出现满足条件的记录。设计的界面如下:

- 27

图4-6 学生档案界面图

下面来设计查询窗体:在vb环境中添加新窗体,添加如图所示的控件。接着设计程序查询的流程,最后完成编码。

程序设计的流程如下:

首先判断各个文本框的值是否为空,如果全部为空,系统给出警告,程序结束查询。如果不全部为空,则判断不为空的字段构成查询的条件,比如姓名不为空,则设定查询的变量值为:txtsql = \姓名='\& Trim(Text1(1).Text) & \这里的txtsql为查询变量。当有多个文本框不为空时用连接符号连接,构成多条件的查询。最后在xj表查询。如果查询的记录集为空表明无满足条件的记录。

实现以上程序功能的主要编码语句如下: Dim str As String

str = \Dim mrc As ADODB.Recordset Set mrc = ExecuteSQL(str) If mrc.EOF = True Then

zzz = MsgBox(\对不起,没有此学生的档案记录!\查询\ Form4.ZOrder (0)

Form4.Text1(0).SetFocus Exit Sub End If

4.3 班级课程模块的设计

班级课程模块包括班级子模块的管理,课程子模块,班级课程子模块的管理。

4.3.1 班级子模块的设计

班级之模块又分为班级的添加,浏览,修改,删除,查询,打印,输出子功能模块。

-

28

这里重点介绍添加之模块的设计:

图4-7 添加班级模块图

学生的学生信息信息中有一个重要的字段:班级。在学生信息信息的添加时班级字段的值不是随便输入的,而是从组合框中选择的,组合框的值就是从班级表中获得班级信息的。这里我们来完成对班级信息的管理。

班级信息的设置主要对年级,班级编号,教室,年制,专业,班主任,备注等字段进行设置。这里介绍一下班级的编号:班级编号简称班级,它采用一串数字来描述,比如04021可以表示2004年级的专业编号为02的1班。专业编号可以另外规定。比如代表计算机应用专业。

窗体的设计包括添加一些文本框控件,按钮控件等。该窗体同时也完成用户对班级信息的修改。

程序的流程设计如下:

首先判断classmodi = False还是true。当为true时处于修改状态,那么此时文本框的值来自选择的班级信息,用户可以对班级信息修改后,确定修改完成对记录集中相关字段的修改。

当为False时表示窗体处于添加状态。此时系统判断文本框的值是否为空,接着对添加的班级编号进行校验,如果已经存在则提示,并退出添加班级程序,如果否,则完成添加。

实现功能的主要语句如下:

If classmodi = False Then '如果不是修改状态 Dim mrc As ADODB.Recordset

classstr = \班级='\ Set mrc = ExecuteSQL(classstr)

If mrc.EOF = False Then '如果不是到纪录末尾 sss = MsgBox(\已经存在该班级的设置,不能重复!\警告\ Text1(1).SetFocus '得到焦点

Text1(1).SelStart = 0 '移动到文本框的开始位置 Text1(1).SelLength = Len(Text1(1).Text) ' 设定文本框的长度 mrc.Close '关闭数据库连接 Exit Sub End If

classstr = \从数据库的class中选择全部的纪录

Set mrc = ExecuteSQL(classstr)

- 29

mrc.AddNew '添加新的纪录

For i = 0 To 6

If Text1(6).Text = \如果文本框没有纪录

Text1(6).Text = \无\文本框的文本内容为\无\ End If

mrc.Fields(i) = Text1(i).Text '将文本框的内容添加到数据库中

Next i '移动到下一条纪录 mrc.Update '更新纪录 MsgBox \添加成功.....\记录已保存..\ End If

If classmodi = True Then '如果修正条件为真 ……

4.3.2 课程管理子模块的设计

该子模块主要完成对高校所有的课程编号,课程名称,教材,任课教师的管理等。管理包括添加,修改,删除等子功能。 设计好的窗体界面如下:

图4-8 窗体界面图

在以上的窗体中提供用于显示所有信息列表的MSF控件和用于输入和修改的文本框控件和按钮控件。

该窗体被打开时,文本框控件处于不可用状态,当点击添加按钮时文本框控件可用,用户添加相应的记录后完成添加相应的课程记录。 完成添加具体的程序流程如下:

首先判断用户的权限,如果权限是字段则不能操作并给出警告,添加程序结束,同时增加按钮的caption属于修改为确定,并且修改文本框的enable属性为true,当用户添加完信息后,用户再次点击该按钮,程序此时判断caption属性的值是否为增加还是确定,如果是确定则判断文本框输入是否为空,为空则给出警告,添加程序结束,如果非空,接着判断课程编号是否存在,如果存在同样给出警告,程序结束,所有条件满足时完成添加并修改caption属性和文本框的enable属性为flase。

-

30

实现以上功能的主要语句如下:

Adodc1.RecordSource = \* from allkecheng where 课程号='\& Trim(Text3.Text) & \

Adodc1.Refresh

If Adodc1.Recordset.EOF = False Then

sssss = MsgBox(\已经存在该课程编号!\警告\ Text3.SetFocus

Text3.SelStart = 0

Text3.SelLength = Len(Text3.Text) Exit Sub Else

Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(0) = Text3.Text Adodc1.Recordset.Fields(1) = Text1.Text Adodc1.Recordset.Fields(2) = Text2.Text Adodc1.Recordset.Fields(3) = Text4.Text Adodc1.Recordset.Update Command2.Caption = \增加\ …… End If

语句说明:首先从课程表中查找课程编号等于输入编号的记录,存在通过MsgBox语句给出警告,不存在则添加新记录,并且设定新记录的相应的字段值,最后完成记录集的更新。

4.3.3 班级课程管理子模块的设计

前面已经分别完成对班级的管理和课程的管理,但是不同的班级开始什么课程,则需要通过本子模块来完成。课程的安排主要的设计思想是按照专业,年级,学期来设定课程。

设计的窗体界面如下:

图4-9 课程设计窗体界面图

-

31

本窗体的上面是年级,专业,年制,学期的设定。

左下是所有的课程列表。右边是当前专业开设的课程。

窗体运行时为了使左边的列表框中显示课程,编码的主要语句如下: txtsql = \课程名称 from allkecheng \Set mrc = ExecuteSQL(txtsql) If mrc.EOF = True Then Exit Sub End If

mrc.MoveFirst Do Until mrc.EOF

List1.AddItem mrc.Fields(0) mrc.MoveNext Loop

Set mrc = Nothing

当选中左边的列表框中课程后,点击移动按钮可以完成将左边的课程移动到右边的效果,来形相的表示当前专业开始的课程。 完成移动课程的功能编码语句如下:

Do While i < List1.ListCount '如果列表框的条数大于0 If List1.Selected(i) = True Then '如果选中列表框数据 List2.AddItem List1.List(i) '添加条目 List1.RemoveItem i '删除条目 Else

i = i + 1 End If Loop

4.4 学生成绩管理模块的设计

学生成绩管理包括学生成绩录入,浏览,修改,删除,查询,打印,输出等子功能模块。

4.4.1 学生成绩添加子模块的设计

学生每次考试的成绩通过添加成绩子模块来完成。设定考试的学期,班级,类型,选择学号,姓名后,输入该班级本学期开始的课程的分数,点击确定按钮即完成成绩的录入。

- 32

图4-10成绩录入图

具体的窗体设计说明:本窗体为了完成成绩的添加,设计了如图所示的组合框,文本框,按钮控件。

其中的组合框用于选择学期,班级,类型,学号,姓名。下面的文本框用于输入学生成绩。

为了数据的一致性,以上的组合框的数据不是用户自己输入,用户只需从组合框中选择数据即可。

为了达到组合框中随着窗体被打开时组合框的下拉列表值自动出现,需要在窗体的Active事件中进行相应的编码设计。Active事件随着窗体处于激活状态运行的事件。当窗体被打开时,程序从相应的表中查询相关数据。并将这些数据作为组合框下拉列表值。

以班级组合框为例,完成以上功能的主要编码语句如下: Dim mrc As ADODB.Recordset

txtsql = \班级 from class order by 班级\ Set mrc = ExecuteSQL(txtsql) mrc.MoveFirst Combo2.Clear

Do While Not mrc.EOF

Combo2.AddItem mrc.Fields(0) mrc.MoveNext Loop

当输入完数据后点击确定按钮,可以完成对成绩信息的添加,对确定按钮实现功能的程序流程设计如下:

首先判断fenshumodi = True是否成立,如果成立表示处于修改状态,修改状态时则从cj表中查询相应的记录,并且在相应课程的分数中显示,如果不成立,则表示处于添加状态,首先判断相关的记录是否为空,为空则结束成绩的添加,接着判断本学期该学号的学生成绩是否已经添加,如果已经添加,则给出警告并结束程序。最后对学生成绩表完成添加新记录,对新记录的相关字段值设定为对应的文本框的值。

实现以上功能的主要语句如下:

Set mrc = ExecuteSQL(txtsql)

If mrc.EOF = False Then

sss = MsgBox(\已存在该学号本学期的成绩记录!\警告\

- 33

Combo4.SelStart = 0

Combo4.SelLength = Len(Combo4.Text) Exit Sub End If

txtsql = \ Set mrc = ExecuteSQL(txtsql)

For i = 0 To (kechengcount - 1) mrc.AddNew

mrc.Fields(0) = Trim(Combo4.Text) mrc.Fields(1) = Trim(Combo1.Text) mrc.Fields(2) = Trim(Combo3.Text)

mrc.Fields(3) = Trim(Label1(i).Caption) mrc.Fields(4) = Val(Trim(Text1(i).Text)) mrc.Update

Next i

sss = MsgBox(\成绩成功录入!\提示\

4.4.2 学生成绩浏览查询子模块的设计

通过本模块可以完成对学生成绩浏览,查询,修改,打印,输出等子功能。这里重点介绍成绩的浏览查询。 成绩的浏览窗体界面设计如下:

用户通过从组合框中设定年级,班级,学期,类型,在下面的列表中就将显示相应的学生成绩。

图4-11 成绩浏览界面图

为了完成从组合框中选择好相应的值后,下面的列表中显示出相关的成绩信息,专门定义一个显示成绩的函数cjfilldata,在以上每个组合框中的click事件

-

34

中调用该函数,即可完成设定和改动任一组合框时,下面的列表中的成绩信息即可改变的效果。

下面给出cjfilldata函数的主要编码语句:

txtsql = \学号,xj.姓名,cj.学期,cj.类型,cj.课程名称,cj.分数 from cj inner join xj on cj.学号=xj.学号 where cj.学期='\& Trim(Combo1(2).Text) & \and cj.学号='\& Trim(mrc1.Fields(0)) & \cj.类型='\ Set mrc2 = ExecuteSQL(txtsql) If i = 1 Then

MSF1.Cols = mrc2.RecordCount + 7 MSF1.TextMatrix(0, 1) = \学号\ MSF1.TextMatrix(0, 2) = \姓名\ MSF1.TextMatrix(0, 3) = \学期\ MSF1.TextMatrix(0, 4) = \类型\ g = 5

For j = 1 To mrc2.RecordCount

MSF1.TextMatrix(0, g) = mrc2.Fields(\课程名称\ g = g + 1

mrc2.MoveNext Next j

编码说明:首先利用查询语句从成绩表和学生信息表中查询相关字段值等于以设定的组合框的值的记录。接着在MSF1控件中显示出相应记录。

-

35

第5章 系统测试

5.1 软件测试的目标及过程

软件测试是软件设计中的一个重要阶段。其任务是确认和验证软件分析、设计、实现过程中的逻辑正确性以及发现软件产品中存在的问题,并通过测试不断提高和完善软件产品的质量。

5.1.1 软件测试

软件测试是在精心控制的系统环境下,采用相应的技术手段,利用一组事先构造好的测试实例(Testing Case)执行程序以发现程序中存在的问题,并确认系统功能、性能符合需求的一个综合过程。

5.1.2 软件测试目标

软件测试的目标是:以最少的时间和人力找出软件中潜在的各种错误和缺陷。如对软件实施了严格、规范的测试,就能够发现其中大部分的错误。软件测试能够确认软件实现的功能和性能与需求说明的一致性。软件测试还能收集到足够的测试结果为软件可靠性提供依据。

目前测试仍然是保证软件质量的关键步骤,它是对软件需求规格、设计和编码最后的验证、复审。软件测试集中反映了人们心理上、技术上、经济上对软件系统的认识,这种认识在很大程度上又影响了软件的设计

5.1.3 软件测试的过程

软件测试是一个心理、技术交织在一起的复杂过程。这个过程可以用图7-1的数据流图表达。

(1)测试对象。软件测试与程序测试在概念上是不同的,软件测试的内容贯穿于软件定义与开发的全部阶段。

(2)测试配置。这是预先定义好的一套测试方案,包括测试计划、测试过程、测试实例集合和所预期的执行结果。

将测试得出的实际结果和预期的结果进行比较,如果两者不一致则说明程序中存在错误,但测试无法说明错误的性质和准确位置。

设法确定错误的准确位置并且改正它,这就是软件排错(Debug)的任务。排错过程是测试过程的一部分。为了诊断并纠正一个程序中的错误,可能需要花费一小时、一天甚至一个月的时间。正是由于排错所固有的不确定性,常常使得测试不能按计划进行。

测试阶段积累的测试结果,可以用更形式化的方法进行统计分析。软件可

-

36

靠性模型使用这些错误率数据,可以估计将来出现错误的情况并进一步对软件可靠性进行处理过程。

回归测试测试对象软件排错表征错误的数据测试结果全部改正后的软件软件测试结果分析测试配置错误率数据可靠性分析可靠性预测

图5-1 测试阶段的信息流

5.2 软件测试的方法及步骤

5.2.1 软件测试的方法

采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。

静态测试方法是程序员普遍采用的一种方法,其内容主要是,通过人工模拟软件系统的执行方式,以代码会审、走查(Walk-through)、办公室检查的形式分析或核查系统的功能实现、编码过程的正确性。

动态测试方法是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。

实际上任何一项工程产品都可以使用下面2种方式之一进行测试:

黑盒测试:如果产品实现的功能是已知的,那么可以通过演示每个功能实现的正确性来进行测试。

白盒测试:如果产品的内部过程及结构是已知的,那么可以通过每一种内部操作的正确性及与设计规格的一致性来测试产品的所有内部成分。

软件的黑盒测试意味着测试只是在软件的接口上进行。也就是说,把测试对象看做一个黑盒子,测试人员完成不考虑程序内部的逻辑结构的内部特性,只依据需求规格说明、设计规格说明中关于功能的定义,检查程序实现的功能是否符合它的功能说明。输入能否正确接受?能否输出正确结果?是否保持外部信息(例如数据文件)的完整性?是否有数据结构错误或方问错误?是否有不正确或遗漏了的功能?因此黑盒测试又叫做功能测试、输入/输出驱动测试。

软件的白盒测试是对软件实现的过程性细节做认真的运行检查。即:测试人员完全了解程序内部的逻辑结构及处理过程,对程序执行的逻辑路径进行测

-

37

试。通过在不同的关键点检查程序的状态,确定实际状态是否与预期状态一致。因此,白盒测试又称为结构测试、逻辑驱动测试。

5.2.2 测试步骤

除非是测试一个小程序,否则一开始就把整个系统作为一个单独的实体来测试是不现实的。与开发过程类似,测试过程也必须分步骤进行,如图6-2所示,每个步骤在逻辑上是前一个步骤的继续。

一个大型软件系统通常由若干个子系统组成,每个系统又由许多模块组成。因此大型软件系统的测试基本上由下述几个步骤组成:

(1) 单元测试

软件测试最初是对基本组成单元—模块实施测试,只有在保证模块作为一个独立的运行单元能够正确运行的条件征,后续的测试才可能进行。

(2) 集成测试

集成测试是把经过单元测试的模块按软件结构组合在一起作为一个系统或子系统来综合测试。

(3) 确认测试

确认测试是把软件系统作为一个单一的执行实体而进行的需求有效性测试,其目的是验证系统能够满足用户需求的程度

(4) 系统测试

一旦证实了软件系统需求的有效性,运行的正确性以后,软件就必须和其他的系统元素(即硬件、数据库和人机交互信息)组合构成完整的计算机应用系统。

(5) 验收测试

验收测试是由用户通过试用系统而进行的测试。

模块及文档单元测试通过测试的模块模块及文档单元测试集成测试集成测试通过的软件有效性测 试.....通过了综合测试的软件模块及文档单元测试系统测试可运行的软件验收测试交付软件

图5-2 软件测试步骤

-

38

结束语

经过二个多月的设计和开发,该大学学生信息管理系统基本开发完毕。其功能基本符合用户需求,能够完成学生信息的存储和成绩的查询以及各类相关报表的打印。但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。

- 39

致谢

在系统开发的两个月里,我受到了王秀山老师的细心指导,王老师严谨的指导态度与深厚的理论知识都让我受益非浅,从他身上我学到了很多的东西,无论是理论还是实践都使我的知识有很大的提高.借此我特提出感谢.

同时我还感谢母校宣武电大的老师,谢谢他们为本系统提供的帮助.让我能够顺利地完成本系统的开发.也感谢那些对我提供帮助的同学,没有他们就不会现在的系统.

- 40

参考文献

[1]作者:陈明.软件工程.第二版.中央广播电视大学出版社 2001年

[2]作者:陈明.Visual Basic程序设计. 第二版. 中央广播电视大学出版社 2000年

[3]作者: 刘韬、骆娟、何旭洪.Visual Basic6.0. 第二版. 数据库系统开发实例导航 人民邮电出版社 2002年

[4]作者:王利.数据库基础与应用. 第二版.中央广播电视大学出版社 1997年

- 41

附录:源代码清单:

学生入学登记窗体源代码: Dim txtsql1 As String

Private Sub Combo1_Click(Index As Integer)

Dim mrc As ADODB.Recordset txtsql1 = \专业,年制 from class where 班级='\& Trim(Combo1(1).Text) & \Set mrc = ExecuteSQL(txtsql1) mrc.Close

End Sub

Private Sub Combo1_KeyPress(Index As Integer, KeyAscii As Integer) If KeyAscii = 13 Then

SendKeys \ End If End Sub

Private Sub Command1_Click() For j = 0 To 7

If Text1(j) = \

ss = MsgBox(Label1(j).Caption & \不能为空!\警告\

Text1(j).SetFocus Text1(j).SelStart = 0

Text1(j).SelLength = Len(Text1(j).Text) Exit Sub End If

Next

Dim mrc As ADODB.Recordset

txtsql1 = \学号='\ Set mrc = ExecuteSQL(txtsql1) If modi = False Then

If mrc.EOF = False Then

sss = MsgBox(\已经存在该学号的记录,学号不能重复!\vbExclamation + vbOKOnly, \警告\

Text1(0).SetFocus Text1(0).SelStart = 0

- 42

Text1(0).SelLength = Len(Text1(0).Text) mrc.Close Exit Sub End If End If

If Not IsDate(Text1(2).Text) Then '判断是否日期格式

ssss = MsgBox(\应输入日期 mm-dd-yy\警告\ Text1(2).SetFocus Text1(2).SelStart = 0

Text1(2).SelLength = Len(Text1(2).Text) Exit Sub

End If

If Not IsDate(Text1(6).Text) Then

ssss = MsgBox(\应输入日期 mm-dd-yy\警告\ Text1(6).SetFocus

Text1(6).SelStart = 0

Text1(6).SelLength = Len(Text1(6).Text) Exit Sub End If

If modi = True Then txtsql1 = \* from xj where Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & \Set mrc = ExecuteSQL(txtsql1)

For i = 4 To 9

mrc.Fields(i + 1) = Text1(i - 2).Text Next i

mrc.Fields(0) = Trim(Text1(0).Text) mrc.Fields(1) = Trim(Text1(1).Text)

mrc.Fields(2) = Trim(Combo1(0).Text) mrc.Fields(3) = Trim(Combo1(1).Text) mrc.Fields(4) = Trim(Combo1(2).Text)

mrc.Update

txtsql1 = \学号='\学号='\Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & \

Set mrc = ExecuteSQL(txtsql1)

txtsql1 = \学号='\学号='\Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & \Set mrc = ExecuteSQL(txtsql1)

zxh = MsgBox(\记录成功修改!\修改成功\

='\

&

- 43

Exit Sub

End If

txtsql1 = \

Set mrc = ExecuteSQL(txtsql1)

mrc.AddNew

For i = 4 To 9

mrc.Fields(i + 1) = Text1(i - 2).Text Next i

mrc.Fields(0) = Trim(Text1(0).Text) mrc.Fields(1) = Trim(Text1(1).Text)

mrc.Fields(2) = Trim(Combo1(0).Text) mrc.Fields(3) = Trim(Combo1(1).Text) mrc.Fields(4) = Trim(Combo1(2).Text) mrc.Update

Set mrc = Nothing

zxh = MsgBox(\记录成功添加!\添加成功\

For j = 0 To 7 Text1(j) = \Call Form_Activate Next End Sub

Private Sub Command2_Click() Unload Me End Sub

Private Sub Form_Activate() Text1(1).SetFocus Dim at

Randomize '初始化随机数生成器 也就是让你得到不同的随机数 at = Int((99999999 - 10000000 + 1) * Rnd() + 10000000) 'int((随机数范围上限-随机数范围下限+1)*rnd()+随机数范围下限) 'int()是产生出整数

Text1(0).Text = at Form1.load1

- 44

End Sub

Public Sub load1()

Dim mrc As ADODB.Recordset

txtsql1 = \班级 from class order by 班级\ Set mrc = ExecuteSQL(txtsql1) If mrc.EOF Then

ddd = MsgBox(\请先设置班级部署!\警告\ mrc.Close Exit Sub End If

Combo1(1).Clear mrc.MoveFirst

Do While Not mrc.EOF

Combo1(1).AddItem mrc.Fields(0) mrc.MoveNext

Loop

Combo1(1).ListIndex = 0 Combo1(0).ListIndex = 0 If modi Then '如果是修改状态 Me.Caption = \修改\

Label10.Caption = \信息修改\ txtsql1 = \* from xj where Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & \ Set mrc = ExecuteSQL(txtsql1) mrc.MoveFirst For i = 4 To 9

Text1(i - 2).Text = mrc.Fields(i + 1) Next i

Text1(0).Text = mrc.Fields(0) Text1(1).Text = mrc.Fields(1) Combo1(0).Text = mrc.Fields(2) Combo1(1).Text = mrc.Fields(3) Combo1(2).Text = mrc.Fields(4) mrc.Close Else

Me.Caption = \登记\

Label10.Caption = \入学登记\ For i = 1 To 7 Text1(i).Text = \ Next i

Text1(6).Text = Date 'Text1(0).Text = \ Text1(1).Text = \

- 45

='\

&

本文来源:https://www.bwwdw.com/article/bx9w.html

Top