【精品毕设】基于JavaEE的学籍管理系统(包含源码和论文)

点击获取源码+论文word

  

【内容摘要】. 2

【Abstract】. 3

【关键字】. 3

引言. 4

第一章 概述. 4

1.1、  管理信息系统简介:. 4

1·2:面向对象的程序设计. 6

1·3、系统软件开发环境简介. 8

第二章 需求分析. 9

2·1数据字典:. 9

2·2、数据流图. 10

2·3、系统功能结构图. 14

第三章 计算机学籍系统的设计. 16

3.1方案设计. 16

3·2、模块处理功能设计. 17

3·3、数据库表结构设计. 20

第四章 应用系统实现. 22

4·1典型模块的实现:. 22

4·2系统菜单. 35

总  结. 37

致   谢. 38

主要参考文献. 38

附录:. 40

内容摘要】

本学籍管理系统是采用VISAUL BASIC6.0开发的一个数据库管理系统。本设计说明书主要讲述了VISAUL BASIC6.0的基本功能及设计方法。紧接着以本系统为例,逐一介绍开发本系统系统的步骤:系统分析、系统设计、系统实现、系统维护。在系统分析中先后用数据流图、数据字典、系统的功能结构图分析了系统所需的各种数据。在系统的设计中,详细的展现了系统的各个功能模块。所需的数据库表及表字段。菜单的设计等。在系统的实现中,给出了实现表单中相应的功能控件的事件及代码。以及菜单实现的方法。文章的最后则给出了本系统的主要功能源代码。

本系统具有数据输入,数据存储,档案查询,报表打印等功能,系统的人机对话界面友好。系统功能全面,用户操作方便是本设计的一个特色。

【Abstract】

This student status management system is a database that adopt VISAUL BASIC6.0's develop management of system.This design the manual primarily related the visaul basic6.0 basic function and design methoded.The I  introduce this system as the examples:System analysis, system design, the system realizes, system maintenance.Analyzed the inside to successively used the data float the diagram , the data function construction of the dictionary, system the diagram to analyze the every kind of data for needing of system in the system.In the systems design inside, detailed emerged the systems piece of each function mold.Database form for needing and watch word segment.The menus design etc..In the realizing of system, given outed to realize the form and listed the function control  inside of the pieces affairs and code.And menu method that realizes.Article of finally then give outed the main function code of this system.

This system has the data importation, data save , file search, statement to print to wait the person machine dialogue of the function, system the interface amity.The system function is completely, customer operation convenience is this design a special features

【关键字】

面向对象 学籍  学籍管理   VISAUL BASIC6.0

引言

计算机已经要成为我们学习和工作的得力助手。今天,计算机的价格已经十分低廉,性能却有了长足的进步,它已被应用于许多的领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多的复杂的劳动。其次,计算机可以大大的提高人们的工作效率。第三,计算机可以节省许多资源。第四,计算机可以使敏感文档更加安全

现有我国的大中专院校的档案的管理水平不高,有的还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多的人力和物力。在在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。

我作为计算机专业的毕业生,希望在这方面有所贡献。我希望能用所学的知识编制一个适用的程序来帮助还停留纸介质基础上的学校进行更有效的学籍管理。                     

第一章 概述

11  管理信息系统简介:

     管理信息系统MIS(manage information systion)是由人和计算机等组成的能进行管理信息的多种操作(包括收集、储存、加工、维护和使用)的系统。它由四个要素组成。即现代化经济管理理论、系统工程、数学方法和计算机手段。其目的是通过自动化的事务处理方法来监视和控制企业、学校的行为、通过对历史数据的科学统计提供可靠的预测数据。并通过一些优化方法提供决策依据,管理信息系统是生产力发展的阶段标志是现代管理的综合体现。一个MIS系统的开发应分为如下步骤进行。

1)系统任务的提出。

系统开发的工作是从接受任务开始的,而系统任务应由系统用户提出,以书面的形式给予表达。

2)初步系统调查。

初步系统调查着重了解存在的主要问题和用户提出的目的要求,并制定新系统总体规划。

3)确定系统目标。

经过初步系统调查,了解了用户的基本状况和用户对系统的设想及要求后,系统开发人员就可以初步提出学籍管理系统的系统目标。

4)系统的可行性研究。

系统的可行性研究包括可能性和必要性。有技术上的,经济上的,人力资源上的,以及组织管理上的。经过系统的可行性研究,最后应写出一份系统可行性分析报告。分析报告是系统开发人员第一阶段工作的小结。

5)详细的系统调查。

通过详细的系统调查。可以得到人工管理业务的处理办法,并详细地掌握住处的流程,总结出现有业务过程的规律,存在的问题。从而提出改进措施。

6)现行系统的描述与分析。

着重用来分析现行系统页面设计后,相关性版块信息交互的方便性。特别是要分析现行学籍管理系统存在主要问题和管理上的薄弱环节,以及产生这些问题的原因和解决办法。

7)用户需求及功能分析。

用户需求因不同用户而有所区别,但主要可分为系统范围,信息的处理和技术性三个方面。

8) 新系统的逻辑模型。

通过对现行系统的进行详细调查,分析及用户需求分析后,就可以确定新系统的逻辑模型。新系统的模型包括新系统的功能要求、目标、各级页面之间链接、数据字典。

9) 编码对象的分析及编码体系结构的确定。

在系统分析阶段,对现行系统及学籍管理系统将要采用的编码对象及方法应该认真分析,以确定先进的科学的高效的系统编码体系。

10) 系统的软件,硬件配置建议。

分析人员应对学籍管理系统所需的计算机系统的配置提出建议。

11) 系统的物理编程。

根据不同的系统要求以及用户软、硬件技术状况,在合适的平台上,选取相宜的学籍管理开发语言和工具进行实际编程。

12) 软件调查。

对设计的原代码进行调试,以修改其中错误,从而确定系统的可靠性。

13) 功能测试。

对照系统分析中提出的系统功能要求,应进行系统的功能测试,以确定系统可预期的功能。

14) 系统的性能评价以及完善文档。

系统的性能评价应包括最基础的软硬件,支持系统占用空间等。系统交付时,应同时交付完善的文档。

1·2:面向对象的程序设计

面向对象的方法学是要求按人们通常的思维方式建立问题领域的模型,设计出尽可能自然表现求解方法的软件。所谓建立模型就是建立问题领域中事物间相互关系。而表现求解问题的方法就是人们思维方法的描述。在面向对象的设计方法中对象(object)和传递信息(message passing)分别表现事物和事物间的关系。类(class)和继承性(inheritamce)是描述人们思维方式的描述方法。方法(method)是在可进行的操作,这种对象、类、消息、方法的程序设计范式的关键在于对象的封装和继承性。通过封装(emcapsulation)能将对象的定义和实现分开。通过继承性,体现了类与类之间的关系,以及由此带来的基本特征。下面将从面向对象的方法学方面对有关概念作简要介绍。

1) 对象

我们把面向现实世界中的实体就称为问题空间的对象从动态的观点看,对象的操作就是对象的行为,从存储的角度看,对象是计算机内存中的一块私有存储区,在这块存储区中有数据、有方法。在面向对象的程序设计中,对象是该系统的基本运行实体,对于每个对象而言,都有与该对象对应的方法,而与每个对象相关的方法,就是定义了该对象的操作。

2)消息和方法

      在对象之间,消息是他们之间的唯一联系。在面向对象的程序环境中设计的程序,它的执行是依靠对象向消息传递来完成的。

      把所以的对象分为各种对象类,每个对象类都定义了一组方法,所谓方法就是允许在对象类上进行的各种操作。

3)

 在面向对象的程序设计中,对象是程序设计的最基本的单位,相似的对象可以并到一类中去,程序员只需定义一个类,就可根据这个类得到若干个实例,其中每个实例就是一个对象。

4) 继承性

继承性是自动地共享类、子类、对象中的方法和数据的一种机制,继承性个减少程序设计中编写代码的工作量,它不仅支持系统的可重用性,而且还促进了系统的可扩充性。

5) 封装性

所谓封装是一种信息隐蔽技术,用户只能看到对象封装界面上的信息,而对象内部对用户透明,封装的目的是把对象的使用着和对象的设计着分开,使用着只需设计访问对象的消息。

6) 多态性

当同样的消息可发送到父类的对象和它的子类的对象时,这就被称为多太性。由于多性具有可表达对象的多个类的能力。因此,它既与动态类型有关,又与静态类型有关。

7) 动态聚束

一个程序经过编译,连接生成的可执行文件代码,其过程就是将执行代码聚束在一起,若这一过程发生在程序设计时,就称为动态聚束。面向对象语言常使用这一类聚束方式,它具有程序简单性和可扩充性等优点。

本系统在编制过程中,多次利用面向对象的技术特点。在后面的章节中将分别予以说明。

1·3、系统软件开发环境简介

本学籍管理开发系统是在Pentyum 四代2.0GHZ 以上机型的计算机上进行开发并获得通过的,同时方便系统开发,减少开发过程的难度,我们是基于以下的软件环境。

·以Windows XP为操作系统

·以Visual Basic6.0为开发工具

Windows XP是目前主流图形化操作系统,而Visual Basic6.0 是一种优秀的面向对象的数据库应用开发工具。我在系统开发过程中深深地感受到Visual Basic6.0的强大威力。下面我结合自己的体会对Visual Basic6.0作一简要介绍。

Visual Basic6.0是著名的Microsoft公司推出的完全可视化的数据库开发工具。使用面向对象的开发技术,能够开发出强大的专门针对用户的应用程序。具有强大的API函数库,支持ActiveX

和OCX技术。能够管理大量复杂的数据信息,同时具有很好的安全性。

在后面的篇幅里,我将详细的说明我是如何利用Visual Basic6.0进行《学籍管理系统》的系统开发的。

第二章 需求分析

需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。系统分析员通常都是计算机软件专家,技术专家一般不喜欢着手搞具体设计,然而,一旦分析员开始谈论程序设计的细节时,就会脱离用户,使他们不能继续提出他们的要求和建议。软件工程使用的结构分析设计的方法为每个阶段都规定了特定的结束标准,需求分析阶段必须提出完整的准确的系统逻辑模型,经过用户确认之后才能进入下一阶段。

需求分析是软件生命周期的一个重要阶段,它根本的任务是确定为了满足用户的需要必须做什么。具体地说,应该确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景,必须仔细分析系统中的数据,既要分析系统中的数据流。又要分析长期使用的数据存储,通过分析应该得出用数据流图、数据字典,为系统的设计奠定基础。

在这一章里,我将给出系统的数据流图,功能结构图,系统分析说明书,数据字典,为系统的设计奠定基础。

2·1数据字典:

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

任何字典最主要的用途都是供人查阅对不了解的条目的解释。数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。

数据流图和数据字典共同构成系统的逻辑模型,没有数据字典数据流图就不严格,然而没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图的精确定义放在一起,才能共同构成系统的规格说明。

系统开发时,常用卡片的形式书写保存描述一个数据元素。

下面给出本系统数据元素的数据字典卡片。

下面给出本系统的主要数据元素的数据字典卡片:

名字:基本信息查询报表

别名:

描述:用户指定条件下的学生基本情况查询结果的信息表

定义:基本信息查询报表=学生号+学生名+年龄+性别+出生

位置:输出到打印机

名字:学生成绩查询报表

别名:试题查询信息

描述:用户指定条件下的成绩查询结果的成绩表

定义:试题查询报表=学生号+姓名+科目+成绩+学期

位置:输出到打印机

2·2、数据流图

数据流图描绘系统的逻辑模型图,其中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。因为数据流图是逻辑系统的图形表示,即使不是专业的计算机技术人员也容易理解,所以是极好的通信工具。此外,设计数据流图只需考虑系统必须完成的基本逻辑功能,完全不需要考虑如何具体地实现这些功能,所以它也是软件设计的很好的出发点。《学籍管理系统》主要是为了对学生基本信息、成绩、学籍等进行计算机管理。所以主要的数据源应是学生的各种信息。

1 学生基本信息流程图

息的流动首先是以学籍号的特征为流动方向的依据。非0学号可以继续流动,并检验数据库学生档案表检查是否已经注册,已经注册的信息可以修改、查询、并将查询结果报表。未注册的信息可以录入到数据库中。为了数据的一致性,这里添加记录的同时,也对数据库中的另一表学生学籍表记录对应的学籍号,姓名。这里可以分析得出:要实现学生基本信息的流动,需要设计一个学生基本信息数据库表(XSDA),学生学籍数据库表(XSXJ)。并对该数据库表可以实现信息的录入、修改、查询、统计、报表。

2 学生成绩信息的流程图:

流程图分析:

从流程图上可以看出:学生成绩信息的流动同样是以学籍号的特征为流动方向的依据。系统首先输入学籍号,科目,考试时间等信息,系统首先校验是否已经记录,对没有记录的成绩可以实现添加到成绩表中,同时判断成绩是否大于等于60分,对大于等于60分的成绩同时对该学籍号的学生将其对应的学分表中的学分记录修改。修改的标准是依据该科目教学计划中的设置的学分为依据。这里同样可以分析得出:要实现学生成绩信息的流动,需要设计一个学生成绩信息数据库表(XSCJ)。学分表(XF),教学计划表(JXJH)。并对该数据库中相关的表实现信息的录入、修改、查询、统计、报表。

3 学籍信息的流程图:

从数据流图上容易看出该系统应具有对学籍信息录入到数据库中,

学籍信息包括:学籍号,姓名,奖贷学金,学生异动,军训等级,毕业去向等。可以修改甚至删除数据库中相关信息资料。可以对数据库的信息按某些字段或字段组合进行检索。同时应具有对数据库的信息作出相关统计等功能。

4 教学计划设置信息的流程图:

行管理。即可以对教学计划进行维护的功能,维护的字段包括:科目号,科目名,年级,学分,备注。具体的数据流程是:首先输入科目号,科目名,对相应的数据库表进行校验,对没有登记的记录可以进行添加。对已经有的记录可以对其相应的字段进行维护。包括修改,删除。同时系统还可以对数据库中的记录进行检索。检索的结果显示在窗体中。

2·3、系统功能结构图

 通过前面的数据流程图已经对系统的主要功能有了一个初步的了解,下面将系统的功能再作一些深入分析,最后得出系统的功能结构图

《学籍管理系统》是为了实现学校对学习相关信息的计算机管理。因此,系统应该有一个全局管理功能,以方便实现不同的功能的选择。也就是应具备全局管理功能。这里用总控模块实现。要处理的信息包括学生档案信息,学生学籍信息、成绩信息、学分信息,学校教学计划课程设置信息的不同处理。在档案基本信息模块下包含对学生基本信息的编辑、检索、报表等功能。对检索应具备从多方面对不同字段进行检索。成绩信息模块包含成绩编辑、检索、统计、报表等功能。对成绩信息的功能处理的是否恰当是本系统是否成功的一个标志。因此,对成绩信息的功能应细化。尤其是成绩的检索、成绩的统计要具备从不同的角度能够对数据库中的记录进行特定条件的检索和统计。在此基础上,总结得到如下的系统功能结构图:

第三章 计算机学籍系统的设计

系统设计的目的是确定系统如何完成预定的任务,也就是确定系统的物理配置方案,并且进而确定组成系统的每个程序的结构。首先需要从数据流图出发,设想完成系统功能的若干种合理的物理方案,分析员应该仔细比较这些方案,并且和用户共同选定一个最佳方案,然后,进行软件结构设计,确定软件由哪些模块组成以及这些模块之间的动态调用关系。进行软件结构设计时应该遵循的最主要的原理是模块独立原理,也就是说:软件应该由一组完成相对独立的子功能模块组成,这些模块之间的接口关系应尽量简单。

自顶向下逐步求精是进行软件结构设计的常用途经,但是,如果已经有了详细的数据流图,也可以使用面向数据流的设计方法,用形式化的方法由数据流图映射出软件结构。

在进行详细的过程设计和编写程序之前,首先进行结构设计,其好处在于可以在软件开发的早期站在全局高度对软件结构进行优化,在这个时期进行优化付出的代价不高,却可以使软件质量得到重大改进。

3.1方案设计

本项目在初始设计时曾经考虑过三套设计方案,方案内容大致如下:

第一套:系统功能分为四个模块,分别为文件操作,数据库操作,系统设置和帮助文件。

  1. 文件操作模块包括对本程序所使用的所有文件的打开,关闭,复制,备份和重新安装等操作。
  2. 数据库操作模块包括对本程序所使用的数据库的追加,查询,删除等操作。
  3. 系统设置模块包括对本程序所使用的数据库的路径设置,用户安全设置等操作。
  4. 帮助模块包括如何使用本系统的各类操作。

第二套:系统功能分为两个模块,分别为文件操作和数据库操作。

  1. 文件操作模块包括对系统所使用的各类文件的维护,以及报表的打印和系统的设置等操作。
  2. 数据库操作模块包括对本程序所使用的所有数据库的添加,删除,修改,查询等操作。

第三套:系统功能分为六个模块,分别为学生档案管理模块、学生成绩信息模块、学生学籍模块、教学计划设置模块.

在这三套方案中,我选择了第三套方案为开发方案,原因如下:系统需求分析中要求的文件组成比较简单;本系统所需要的系统设置也比较少;而又由于需求分析中对查询功能的要求较多,所以需要着重于查询功能的设计;由于对录入的需要,本系统着眼于对单条记录的编辑。

基于以上原理,结合需求分析阶段的数据流图、数据字典、系统功能结构图。设计出以下的模块和5个数据库表结构的设计。

3·2、模块处理功能设计

通过上一章的系统功能结构图我们可以看出系统分为三大模块:学生档案管理模块、学生成绩信息模块、学生学籍模块、教学计划设置模块。下面我将对每个模块的总体设计作简要说明。

  1. 学生档案管理模块

1)学生档案录入子模块

学生入校时应该对学生的个人基本信息包括:姓名,性别,年龄,入学班级,学生入学前已经受到过何种奖励和处分。学生简历,已经学生家庭的部分信息录入。作为档案资料保存。该模块同时还应该完成对学生档案资料的修改,再编辑,删除。以及简单的顺序查询。

2)学生档案资料的查询子模块

学籍的管理工作多而且复杂,如果实现计算机对学籍管理,那么许多工作计算机实际上可以轻松完成。学生档案资料的查询就是这样。学生档案的查询是对数据库中的档案表中作为数据源来实现查询的。查询可以按照学生学籍号。或者学生姓名等不同的方式进行。

3)学生档案资料的报表

该模块完成对按照用户需要的查询条件的学生的档案记录输出打印出来。由于vb的报表功能还不是很完美。所以我们选择了报表专家excel这个工具作为过渡。也就是说我们可以先将查询的结果导出到excel。然后在excel的强大报表功能下去完成各种格式的报表。

  1. 学生成绩管理模块

1)学生成绩录入子模块

该模块完成对学生在校期间每次考试的成绩做记载。该模块按照学生的学籍号,科目,考试时间,成绩进行录入。该模块同时还应该完成对学生成绩的修改,因为录入时可能写错。删除等操作。录入成绩时系统同时对录入的成绩进行判断,对大于等于60分的成绩,记录或者修改对应学籍号的学生的学分。学分是该生最后能否毕业合格的依据。具体的修改公式:学分=学分+科目对应的学分。这里对应的学分依据教学计划科目对应的学分的设置。

2)学生成绩的查询子模块

学生查询子模块是本系统的查询模块中功能最强大的查询模块,该模块查询可以按照学生学籍号,姓名,考试时间等多个方面不同的条件值。不同的时间。对学生成绩进行查询。

3)学生学分的查询子模块

学生学分查询子模块是本系统的查询模块中功能最强大的查询模块,该模块查询可以按照学生学籍号,姓名,毕业级别,学分值的大小等多个方面不同的条件值。进行联合查询。学分值匹配的类型有“>=,=,<”。

4)学生成绩,学分的报表子模块

该模块完成对按照用户需要的查询条件的学生的成绩,学分记录输出打印出来。和学生档案资料的报表一样。我们同样选择了报表专家excel这个工具作为过渡。也就是说我们可以先将查询的结果导出到excel。然后在excel的强大报表功能下去完成各种格式的报表。

3.学生学籍信息模块

1)学生基本信息导入子模块

学生学籍信息模块主要实现学生信息包括学籍号、姓名、奖贷学金、学生异动、学生毕业去向等录入、修改、删除等管理操作。而学生学籍号、姓名已经在学生档案库里面有记录。所以该子模块完成对档案库里面的学生学籍号、姓名这些字段信息导入到学生学籍库来。而不必重新输入、减少工作量。同时也保证了不同库里面的信息完整性和一致性。导入后的学籍库里面的字段除了学籍号、姓名这二个字段有记录外。其他的字段暂时都是“无”。

2)学生学籍库管理子模块

该模块完成对学生学籍库的综合管理和维护。主要包括对学生的除了学籍号和姓名外的其他字段的维护。即:记录的定位、记录的修改、以及记录的表报。因为经过学籍库的导入模块的工作后。每个学生的除学籍号,姓名二个字段有记录外其他的都暂时没有具体的信息。它需要我们对学生进行动态的记录。所以需要我们对学生首先应该可以在数据库里面可以定位。然后可以对他们的资料可以修改。最后可以根据我们的需要对该记录报表打印。

4:教学计划模块

  1. 教学计划编辑子模块:

该模块主要完成对教学计划中的科目,学分设置。包括字段有:课程号,课程名,学分,年级,备注。编辑这些字段包括:对未注册的课程进行添加,对已经记录的课程可以进行对字段值的修改。删除。

 2)教学计划查询报表子模块

 该模块主要完成对满足用户查询条件的记录进行查询。查询可以是单一查询和联合查询,查询的字段可以是:学籍号,姓名,学分。对查询的结果可以导出到EXCEL最终实现报表打印。

3·3、数据库表结构设计

根据分析阶段得出的的结论,结合本系统对有关数据的存储的需要,更加方便实现该学籍管理开发系统的所有功能,现将本系统设计成6个数据库表,每个表的字段名、类型、宽度设计如下:

学生基本信息表:

该表用来存放学生入学注册的个人基本信息。

字段名

类型

宽度

学号

字符型

10

性别

字符型

2

出生年月

字符型

10

政治面目

字符型

10

父母姓名

字符型

8

联系电话

字符型

11

家庭住址

字符型

30

毕业级别

字符型

10

设计说明:为方便编程以及人们工作习惯,这里将学号、出生年月、入学时间、联系电话等都设计成字符型。并根据实际需要设计了相应的宽度。

2·学生成绩表:

该表用来存放学生在校期间的个人成绩信息。

字段名

类型

宽度

学号

字符型

10

姓名

字符型

8

科目

数字型

3

成绩

数字型

3

学期

数字型

3

3·学生学籍表:

用来存放学生在校期间的评语信息。

字段名

类型

宽度

学号

字符型

10

姓名

字符型

10

奖贷学金

字符型

10

异动

字符型

8

军训等级

备注型

0

毕业去向

备注型

0

4:学生学分表

用来存放学生学分信息。

字段名

类型

宽度

学号

字符型

10

学分

数字型

10

5:教学计划表:

用来存放教学信息。

字段名

类型

宽度

课程号

字符型

10

课程名

字符型

10

学分

数字型

2

年级

字符型

10

备注

备注型

4

另外,系统还设置用户管理表。字段包括:用户帐号,用户密码,级别,联系电话。

以上是本系统的库表结构的设计简要说明。

第四章 应用系统实现

按结构化的程序设计思想,在完成了系统分析、系统设计后,就可以进行系统实现阶段了,系统实现是每指把系统的物理模型转换成实际运行系统的全过程。其基本任务是:

    1. 前期准备
    2. 系统平台的安装与调试
    3. 程序的编制与调试
    4. 信息系统调试
    5. 数据库与文件的建立
    6. 系统转换
    7. 试运行、验收与维护

4·1典型模块的实现:

 1 学生档案资料的录入子模块

  1)运行时的窗体:

2)控件和事件

a)“网格”容器控件:显示档案柜中的数据信息。数据源设定为档案柜表的查询记录集。在窗体的装载事件load中用语句控制。语句是:

adoPrimaryRS.Open "select 学籍号,姓名,性别,出生年月,班级,家庭住址,父母姓名,联系电话,奖惩记载,学生简历 from xsda", db, adOpenStatic, adLockOptimistic

   Set DataGrid.DataSource = adoPrimaryRS

b)“最首”按钮控件:click事件是将当前窗体中的网格控件中的信息和文本框控件中的信息指向数据库表查询记录集中的第一条记录。利用SQL语句实现在数据库中查询符合条件的所以记录,并在表单中的网格容器中用指针定位。同时文本框也显示相应的记录信息。如果无相应的记录,系统将给出提示。实现关键语句如下:

adoPrimaryRS.MoveFirst

Text1.Text = adoPrimaryRS.Fields("学籍号")

  Text2.Text = adoPrimaryRS.Fields("姓名")

  Text3.Text = adoPrimaryRS.Fields("性别")

  Text4.Text = adoPrimaryRS.Fields("出生年月")

  Text5.Text = adoPrimaryRS.Fields("班级")

  Text6.Text = adoPrimaryRS.Fields("家庭住址")

  Text7.Text = adoPrimaryRS.Fields("父母姓名")

  Text8.Text = adoPrimaryRS.Fields("联系电话")

  Text9.Text = adoPrimaryRS.Fields("奖惩记载")

  Text10.Text = adoPrimaryRS.Fields("学生简历")

c)“下一条”按钮控件:click事件是将网格中的,文本框中的信息同时指向当前记录的下一条记录。如果越界就给出已经是最后一条记录的提示,并将记录定位在最后一条记录。实现语句:

adoPrimaryRS.MoveNext

If adoPrimaryRS.EOF Then

MsgBox ("已经是第后一条记录了!")

adoPrimaryRS.MoveLast

Else

Text1.Text = adoPrimaryRS.Fields("学籍号")

  Text2.Text = adoPrimaryRS.Fields("姓名")

  Text3.Text = adoPrimaryRS.Fields("性别")

  Text4.Text = adoPrimaryRS.Fields("出生年月")

  Text5.Text = adoPrimaryRS.Fields("班级")

  Text6.Text = adoPrimaryRS.Fields("家庭住址")

  Text7.Text = adoPrimaryRS.Fields("父母姓名")

  Text8.Text = adoPrimaryRS.Fields("联系电话")

  Text9.Text = adoPrimaryRS.Fields("奖惩记载")

  Text10.Text = adoPrimaryRS.Fields("学生简历")

End If

d)“上一条” 按钮控件:click事件是将网格中的,文本框中的信息同时指向当前记录的上一条记录。如果越界就给出已经是第一条记录的提示,并将记录定位在第一条记录。实现语句:

adoPrimaryRS.MovePrevious

If adoPrimaryRS.BOF Then

MsgBox ("已经是第一条记录了!")

adoPrimaryRS.MoveFirst

Else

Text1.Text = adoPrimaryRS.Fields("学籍号")

  Text2.Text = adoPrimaryRS.Fields("姓名")

  Text3.Text = adoPrimaryRS.Fields("性别")

  Text4.Text = adoPrimaryRS.Fields("出生年月")

  Text5.Text = adoPrimaryRS.Fields("班级")

  Text6.Text = adoPrimaryRS.Fields("家庭住址")

  Text7.Text = adoPrimaryRS.Fields("父母姓名")

  Text8.Text = adoPrimaryRS.Fields("联系电话")

  Text9.Text = adoPrimaryRS.Fields("奖惩记载")

  Text10.Text = adoPrimaryRS.Fields("学生简历")

End If

d) “最末”按钮控件:click事件是将当前窗体中的网格控件中的信息和文本框控件中的信息指向数据库表查询记录集中的第后一条记录。利用SQL语句实现在数据库中查询符合条件的所以记录,并在表单中的网格容器中显示。如果无相应的记录,系统将给出提示。实现关键语句如下:

adoPrimaryRS.MoveLast

Text1.Text = adoPrimaryRS.Fields("学籍号")

  Text2.Text = adoPrimaryRS.Fields("姓名")

  Text3.Text = adoPrimaryRS.Fields("性别")

  Text4.Text = adoPrimaryRS.Fields("出生年月")

  Text5.Text = adoPrimaryRS.Fields("班级")

  Text6.Text = adoPrimaryRS.Fields("家庭住址")

  Text7.Text = adoPrimaryRS.Fields("父母姓名")

  Text8.Text = adoPrimaryRS.Fields("联系电话")

  Text9.Text = adoPrimaryRS.Fields("奖惩记载")

  Text10.Text = adoPrimaryRS.Fields("学生简历")

f) “添加”按钮控件:click事件是添加新的学生档案记录,实现的原理是对数据库查询的记录集添加一条新的记录,然后修给这条空记录的值,达到对数据库表中的学生档案记录添加的目的。实现的语句如下:

adoPrimaryRS.AddNew

adoPrimaryRS.Fields("学籍号") = Text1.Text

adoPrimaryRS.Fields("姓名") = Text2.Text

adoPrimaryRS.Update

    1. “编辑”按钮控件:click事件是将记录集中当前记录在文本框中进行修改,然后更改记录集中相应的记录。来达到修改数据库中的记录的目的。和添加相比不需要adoPrimaryRS.AddNew这个语句。实现的主要语句是:

adoPrimaryRS.Fields("学籍号") = Text1.Text

adoPrimaryRS.Fields("姓名") = Text2.Text

adoPrimaryRS.Update

i)“查找”按钮控件:click事件是激活查询窗体。

语句是:Form2.Show

j)“删除”按钮控件:click事件是删除当前记录。同时数据库记录指针指向当前记录的上一条记录。

adoPrimaryRS.Delete

adoPrimaryRS.MovePrevious

If adoPrimaryRS.BOF Then

adoPrimaryRS.MoveFirst

End If

Text1.Text = adoPrimaryRS.Fields("学籍号")

  Text2.Text = adoPrimaryRS.Fields("姓名")

  Text3.Text = adoPrimaryRS.Fields("性别")

h)“退出”按钮控件:click事件是释放当前窗体,返回主控系统。实现语句是:Unload Me

2:档案信息查询子模块: 

      1)运行时的窗体:

     

2)控件和事件

a)“网格”容器控件:显示学生档案数据库里面的中的数据信息。数据源设定为档案数据库的查询记录集。在窗体的装载事件load中用语句控制。装载时默认是所有记录。语句是:

adoPrimaryRS.Open "select 学籍号,姓名,性别,出生年月,班级,家庭住址,父母姓名,联系电话,奖惩记载,学生简历 from xsda", db, adOpenStatic, adLockOptimistic

   Set DataGrid1.DataSource = adoPrimaryRS

b)“选择”按钮控件:click事件是将当前窗体中的文本控件中的关键字作为查询的关键字。查询可以是按照学生学籍号或者姓名。查询类别和关键字可以根据用户的需要设定。查询的结果显示在网格控件中。实现关键语句如下:

a = Combo1.Text

  b = Text1.Text

  adoPrimaryRS.Open "select 学籍号,姓名,性别,出生年月,班级,家庭住址,父母姓名,联系电话,奖惩记载,学生简历 from xsda  where " & a & " like '%" & b & "%'", db, adOpenStatic, adLockOptimistic

  Set DataGrid1.DataSource = adoPrimaryRS

c)“导出”按钮控件:click事件是将查询记录集中的的查询结果导出到报表专家excel中去。导出的实质就是将记录集中的记录用一个双循环作为excel的记录源。从而实现导出。实现语句:

adoPrimaryRS.MoveFirst

     i = 0

     Do While (adoPrimaryRS.EOF = False)

            For j = 0 To adoPrimaryRS.Fields.Count - 1

              DataGrid1.Col = j

          xlsheet.Cells(i + 2, j + 1) = DataGrid1.Text

        Next j

        adoPrimaryRS.MoveNext

        i = i + 1

   Loop

导出到excel后的窗体如下:

在excel环境下我们就可以根据用户的需要轻松制作出符合用户的各种表报。

   

3 学生成绩录入子模块:

1)运行时的窗体:

2)控件和事件

控件包括4个文本框、5个按钮控件和一个网格控件。文本框完成对学生输入成绩的科目和时间的设定。对于同样科目同一考试时间的成绩的录入。这样设定后对于录入成绩很方便。每个记录输入后这2个文本框的信息是不改变的。还有2个文本框是录入学生学籍号和成绩。5个按钮控件分别是输入,修改,删除重新设定和退出。下面将对按钮控件做详细分析。网格控件默认的数据源是学生成绩库里面的所有数据。

在装载时用语句实现:

adoPrimaryRS.Open "select 学籍号,姓名,科目,成绩,学期 from xscj", db, adOpenStatic, adLockOptimistic

   Set DataGrid1.DataSource = adoPrimaryRS

下面对输入,修改,删除这三个按钮的事件和实现语句分析如下:

a)“输入”按钮控件:click事件首先对学生档案库中的记录进行查询符合输入的学籍号记录。如果没有。则说明该生还没有注册。不能录入学生成绩。如果查到学生记录。则将学生的姓名,已经输入的成绩信息一同作为学生成绩添加的信息。它的实现语句是:

a = "学籍号"

b = Text3.Text

  adoPrimaryRS1.Open "select 学籍号,姓名 from xsda where " & a & " like '%" & b & "%'", db, adOpenStatic, adLockOptimistic

   If adoPrimaryRS1.EOF = True Then

   MsgBox ("该生还未注册")

   Else

     Set adoPrimaryRS2 = New Recordset

a = "学籍号"

b = Text3.Text

c = "科目"

d = Text1.Text

e = "学期"

f = Text2.Text

  adoPrimaryRS2.Open "select 学籍号,姓名,科目,学期 from xscj where " & a & " like '%" & b & "%' and " & c & " like '%" & d & "%' and " & e & " like '%" & f & "%'", db, adOpenStatic, adLockOptimistic

   If adoPrimaryRS2.EOF = True Then

    adoPrimaryRS.AddNew

2)“修改”按钮控件:网格开始的时候设定为不可编辑。现在对它的修改需要改变它的属性。click事件是将按钮名改成“保存”,增加了系统的交互性。同时使网格变得可编辑。 “保存” 按钮控件的click事件是将按钮名改成“修改”,此时使文本框变得不可编辑,修改完成后,网格容器控件中的数据自动更新。它的实现语句是:

    If Command4.Caption = "成绩修改" Then

Command4.Caption = "保存"

DataGrid1.Enabled = True

Else

Command4.Caption = "成绩修改"

DataGrid1.Enabled = False

End If

3)“删除”按钮控件:成绩库的记录有时候会输入出错。当然一般可以通过修改更正。但是有时候输入了一条完全没有意义的记录我们可以通过删除来完成整理数据库的目的。实现的语句如下:

adoPrimaryRS.Delete

adoPrimaryRS.MovePrevious

If adoPrimaryRS.BOF Then

adoPrimaryRS.MoveFirst

4 学生成绩查询子模块

1)运行时的窗体:

2)控件和事件

该模块主要包括网格,文本框,按钮控件。网格默认的数据源是成绩库的所以记录。文本框用来设定和输入查询类别和查询关键字。查询可以从学籍号,姓名,班级,年级。以及考试时间等进行综合查询。即至少找到满足2个查询关键字的记录。导出按钮控件主要是将查询的结果导出到excel中。下面主要针对查询按钮作一个主要分析:

实现的语句如下:

a = Combo1.Text

  b = Text1.Text

  c = "学期"

  d = Text2.Text

   If Combo1.Text = "班级" Then

   adoPrimaryRS.Open "select distinct 学籍号,姓名,科目,成绩,学期 from xscj where " & c & " like '%" & d & "%' and 学籍号 in (select 学籍号 from xsda where " & a & " like '%" & b & "%')", db, adOpenStatic, adLockOptimistic

     Else

   adoPrimaryRS.Open "select distinct 学籍号,姓名,科目,成绩,学期 from xscj where " & a & " like '%" & b & "%' and " & c & " like '%" & d & "%'", db, adOpenStatic, adLockOptimistic

   End If

   Set DataGrid1.DataSource = adoPrimaryRS

在查询中由于是综合查询。所以实现的语句用到了sql语句中的联合查询。具体的语句是:select distinct 学籍号,姓名,科目,成绩,学期 from xscj where " & c & " like '%" & d & "%' and 学籍号 in (select 学籍号 from xsda where " & a & " like '%" & b & "%')

4:学生学籍导入子模块:

学生学籍里面的学籍号,姓名这些字段的信息不必专门输入。为了高效率和为了与档案记录的一致性我们可以首先将档案库的所有记录首先作为数据源显示在如下窗体的左边的档案网格中。然后将该网格的数据作为右边学籍库的数据源导入。同时对学籍库的其他字段自动设定为无。等以后随着学生的求学过程。我们可以动态的进行修改。导入按钮的click控件的源代码是:

For i = 0 To DataGrid1.VisibleRows - 1

DataGrid1.Row = i

DataGrid1.Col = 0

   If adoPrimaryRS.EOF = True Then

adoPrimaryRS.AddNew

adoPrimaryRS.Fields("学籍号") = DataGrid1.Text

DataGrid1.Col = 1

adoPrimaryRS.Fields("姓名") = DataGrid1.Text

adoPrimaryRS.Fields("奖贷学金") = "无"

adoPrimaryRS.Fields("异动") = "无"

adoPrimaryRS.Fields("军训等级") = "无"

adoPrimaryRS.Fields("毕业去向") = "无"

Else

         adoPrimaryRS.MoveFirst

    Do While (adoPrimaryRS.EOF = False)

    If adoPrimaryRS.Fields("学籍号") = DataGrid1.Text Then

    Exit Do

    End If

      adoPrimaryRS.MoveNext

 Loop

   If adoPrimaryRS.EOF = True Then

  adoPrimaryRS.AddNew

adoPrimaryRS.Fields("学籍号") = DataGrid1.Text

DataGrid1.Col = 1

adoPrimaryRS.Fields("姓名") = DataGrid1.Text

adoPrimaryRS.Fields("奖贷学金") = "无"

adoPrimaryRS.Fields("异动") = "无"

adoPrimaryRS.Fields("军训等级") = "无"

adoPrimaryRS.Fields("毕业去向") = "无"

   End If

End If

Next i

对于档案网格中的数据利用循环实现导入。对于档案网格中的数据每读一条数据。在学生学籍库网格相应的记录集中就增加一条记录。

 6)学籍管理子模块:

该模块包括一个文本框控件。一个网格控件。和4个按钮控件。文本框控件用于定位记录输入学籍号。网格控件默认的数据源是所有的学生学籍库信息。对于信息的修改是通过修改最初设定网格的默认属性为不能编辑这个属性来实现的。其中的修改的click的源代码是:

If Command2.Caption = "修改" Then

Command2.Caption = "保存"

DataGrid1.Enabled = True

Else

Command2.Caption = "修改"

DataGrid1.Enabled = False

对于从众多的数据中来修改数据还要用到数据的定位功能。这里用“确定”按钮的click事件实现。语句如下:

adoPrimaryRS.MoveFirst

Do While (adoPrimaryRS.Fields("学籍号") <> Text1.Text)

adoPrimaryRS.MoveNext

Loop

分析源代码:这里定位是用一个循环语句实现。循环的结束的条件是学籍号等于查询关键字。

4·2系统菜单

设计一个菜单系统,一般要经过几个步骤:菜单系统的规划,建立菜单与子菜单,把任务分配到菜单系统中,生成菜单程序,测试和运行菜单系统等,VB6.0是通过设计窗体来完成菜单的设计界面的,本系统设计的菜单运行如下:

各个菜单项的click事件代码如下:

Private Sub cjcx_Click()

Form4.Show

End Sub

Private Sub cjlr_Click()

Form3.Show

End Sub

Private Sub dacx_Click()

Form2.Show

End Sub

Private Sub dalr_Click()

Form1.Show

End Sub

Private Sub Form_Load()

Left = (Screen.Width - Width) \ 2

Top = (Screen.Height - Height) \ 2

End Sub

Private Sub tc_Click()

Unload Me

End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

Select Case Button.Key

Case "key1"

Form1.Show

Case "key2"

Form2.Show

Case "key3"

Form3.Show

Case "key4"

Form4.Show

Case "key5"

Form5.Show

Case "key6"

Form6.Show

Case "key7"

Unload Me

End Select

End Sub

Private Sub xjgl_Click()

Form6.Show

End Sub

Private Sub zldr_Click()

Form5.Show

End Sub

其中的Left = (Screen.Width - Width) \ 2

Top = (Screen.Height - Height) \ 2是控制窗体在屏幕中的位置居中。

 

            

经过多日来的努力学籍管理系统终于完成了。回顾这次毕业设计的过程,我觉得收获很大,现借撰写论文总结的机会,谈一谈我的体会。

通过这次毕业设计,我掌握了一种新的数据库系统开发工具Visual Basic6.0。我对于它具有的可视化的编程环境和连接数据库的便捷性用感触颇深,Visual Basic6.0这些数据库的连接提供了多种方法。比如DATA控件对初学着就非常容易掌握,当然利用语句对数据库的连接就可以实现对数据库的高级应用。Visual Basic6.0这种面向对象的数据库开发工具提供了窗体这种户非常友好的交互方式。利用设计好的窗体据库的记录进行操作,不但使用户更清楚记录的具体变更情况,也使开发人员的工作轻松了许多。

同时,在这次毕业设计过程中,我始终遵循软件工程的思想,这使我的工作进度明显加快,也使我少走了不少弯路。软件工程的思想,指导我一步一步从系统分析,到系统设计,再到系统实现,让我对整个系统的开发过程有了明显的全局观念,也合理地安排了整个设计的时间。

以上是我在本次毕业设计中的体会,也许认识到的问题还很肤浅,这也正是我今后要努力提高的。

主要参考文献

1、《Visual Basic 6使用指南》      田金兰等   电子工业出版社  2002年出版

2、《Visual Basic 6数据库访问技术》Jeffrey     机械工业出版社   2003年出版

3、《软件开发技术》             潘锦平    西安电子科技大学出版社1999年出版

4、《数据库系统概论》           王珊、萨师宣  高等教育出版社    2001年出版

5、《如何使用Visual Basic 6.0中文版》 机械工业出版社 2001年出版 

6、《中文Visual Basic 6.0实用教程》北京希望电脑公司希望电子出版社

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值