VB+Access学生信息管理系统
任务书开题报告
毕业设计(论文)题目:学生信息管理系统
所选课题的来源、目的和意义。(若图片无法显示请联系站长QQ3710167)
本系统主要用于学校学生信息管理,主要任务是用计算机对学生各种信息进行日常管理。
该系统主要包括学生信息查询、教务信息维护和学生选课三部分。
系统开发总体任务是实现学生信息关系的系统化、规范化和自动化。
课题研究的主要内容及拟解决的问题。
1·有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。
2·学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。
3·学生信息的修改。
4·班级信息管理的输入,包括输入班级设置、年级信息等。
5·班级信息管理的修改。
6·班级管理信息的查询。
7·学校基本课程信息的输入。
8·基本课程信息的修改。
9·学生课程的设置和修改。
10·学生成绩信息的输入。
11·学生成绩信息的修改。
12·学生成绩信息的查询。
13·学生成绩信息的统计。
针对一般学生管理系统的需求,通过对学生学习过程的内容和数据流程
分析,设计如下面所示的数据项和数据结构:
·学生基本信息:包括的数据项有:学生学号、学生姓名、性别、出生日期、班号、联系电话、入学日期、家庭地址、注备等。
·班级信息:包括的数据项有:班号、所在年级等。
·课程基本信息:包括的数据项有:课程号、课程名称、课程类别等。
·课程设置信息:包括的数据项有:年级信息、所学课程等。
·学生成绩信息:包括的数据项有:考试编号、所在班号、学生学号、学生姓名、所学课程、考试分数等。
二郎中学学生信息管理系统
第一部分 前 言
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统;本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改 、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。
本系统主要包括学生信息查询、教务信息维护和学生选课三部分。其功能主要有:
1、有关学籍等信息的输入,包括输入学生基本信息、所在班级、所学课程和成绩等。
2、学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。
3、学生信息的修改。
4、班级管理信息的输入,包括输入班级设置、年级信息等。
5、班级管理信息的查询。
6、班级管理信息的修改。
7、学生课程的设置和修改。
学生信息管理系统是典型的信息管理系统 (MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
经过分析,我们使用MICROSOFT公司的VISUAL BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。
关键字:控件、窗体、域、数据库。
第二部分 绪论
学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
2.1目的背景与意义
学校主要有总务处、政教处、教导处、培训处四大块。其中教导处的工作最为繁重,工作人员多,信息量大。除财务部门有专人及专用软件进行信息处理外,其它各类的数据处理都由班主任以及教导处工作人员人工完成。教导处目前有几十个班级的学生,处理的信息主要有五大类:学生信息、成绩数据、课程信息。本系统主要着眼于以上部分,建立数据库以及对数据的各种操作功能。
对于学生信息,各班的班主任及学校领导由于各种分类和了解的需要,经常性地进行各种查询。例如:查询一个班级中团员的人数,男、女生的人数,住宿或通宿学生的人数等等。教导处在每一届学生进校时必须进行分班,设置学号;每一届学生毕业,要进行学生信息备份;
对于成绩管理,课任教师要进行本科目成绩登记,计算平均分、优秀率、及格率;班主任在期中考试和期末考试后计算本班学生总分,排名次;教导处要统计补考学生人数及相应名单,每学期进行学生成绩备份;学校领导则可通过查询工具来了解学生成绩情况。
对于课程信息,教导处每学期要进行课程安排、课任教师分配、一周课程安排、中途课程调整等等。
以上各类信息目前还处于手工或半手工的管理状态,效率低,可靠性差。配备电脑,但实际利用率不高,如果采用计算机进行以上各类信息的管理,必将大大提高工作效率,对学校各类信息的维护及了解起到积极的作用。另外随着计算机网络的持续发展,无论是工作、学习还是生活,将会越来越多地融入到流动的比特中,人们的工作节奏在不断加快,需要快捷的信息来源,并对此作出反应。因此,无论是从目前的现状来看,还是面向未来,一个功能完备的学校信息管理系统的开发都非常有必要。
本人作为学习计算机专业的一员,对系统的需求作了较深入的认识,同时也掌握了一定的系统开发理论,借这次毕业设计的契机,一方面利用自己的所学小刀试牛,另一方面通过这次实践必将提升自身对软件工程、数据库、程序设计等理论的认识,积累系统开发的经验。
作为毕业设计,由于时间比较紧张,加之本人没有任何系统开发的经验,它肯定存在许许多多不足的地方,但对它的改善和功能的完备并不会随着毕业设计的结束而终止。本人将在原来的基础上,着眼未来,追踪计算机新技术发展,并应用到系统持续开发中。
2.2相关技术与开发工具介绍
本系统采用面向对象的软件开发办法,以Microsoft公司的可视开发环境 Visual Basic6.0 作为主要开发工具,使用Microsoft Access 2000作为关系数据库,并为VB编程语言中采用ADO数据库编程模型,配合功能强大的SQL查询语言实现建立关系数据库,放问数据库,对数据库的更新,较好地实现了预定的需求功能。
2.2.1 Visual Basic 6.0开发环境
Visual Basic 6.0是一种可视化、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单易学、效率高、且功能强大。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发出Windows环境功能强大、图形界面丰富的应用软件系统。总的来看,Visual Basic有以下主要特点:
Visual Basic 语言用其设计应用程序时具有两个基本特点:可视化设计和事件驱动编程。
1、可视化设计:表现在VB在设计应用于程序界面时有“所见即所得”的处理功能。
2、事件驱动编程:在设计应用程序时,把对象添加到窗体中,在用户与程序进行交互时,用户基本上是通过鼠标、键盘与应用程序进行交互的,那些对象就必须对鼠标和键盘操作所引发的事件做出响应,来执行一段应用程序。
2.2.2 Visual Basic 系统几个在程序应用中的常用名词
Visual Basic 系统除了一般高级语言所具有的一些名词术语外,还有几个系统常用的名词。其基本含义如下:
1、视窗(Form)
视窗是进行人机交互的界面或接口,也叫窗体。VB系统的人机交互界面或接口,无论是在设计时或是在运行时,都是Windows 系统的标准视窗。
2、对象 (Object)
对象是VB系统内部提供给设计者可以直接使用的处理输出的控制工具。本程序所应用到的对象类型有标签框 (Label Box),文本框 (Text Box),命令按扭 (Command Button),网格 (Data Grid),ADO控件 (Adodc1)等。当把这些工具放置到用户界面对应的窗体上时,被称为对象或控件。用户可以通过设置对象的“属性”和“方法”,便于对象适应自己所设计应用程序的输入输出内容,对象的生成过程及结构都被封装起来。正确使用对象可以减少程序和开发时间,提高程序设计者的工作效率。
3、属性 (Properties)
属性是VB系统提供的有关对象的参数或数据接口。用户通过适当地设置或改变对象的属性来确定对象的外观及性能特征,从而有效地使用系统提供的对象。比如,对象的名称、在屏幕上显示的位置、大小、颜色、接收或容纳的
VB+Access学生信息管理系统
数据内容及数据的表现格式等。
4、事件 (Events)
事件是指用户或操作者对计算机进行的某一操作(如击键、单击或移动鼠标等)的行为或系统状态发生的变化。VB系统常用事件来引导计算机执行一段程序。程序所用的键盘事件有KeyPress(按键)事件,KeyDown事件和KeyUp事件;鼠标事件有Click(单击鼠标)事件,DbDlicd(双击鼠标)。
5、方法 (Method)
方法主要是指对一个对象使用某种作用的过程。它是在程序执行的过程中要计算机执行的某种操作。其程序的方法有Show(显示)方法,Hide(隐藏)方法,Refresh(刷新)方法。
6、过程 (Procedure)
过程是指经过定义或说明的,或基于某一对象对应的事件所引发的程序段。
7、模块 (Module)
模块是指一些运算量或过程进行声明或定义的一个集合。系统程序大体可分成四个模块:数据输入、根据查询、数据打印和通讯。
2.2.3 Windows下的Visual Basic 编程环境简介
1 、面对对象的编程
面向对象的设计方法 (OOP, Objected Programming) 从应用领域内的问题着手,以直观自然的方式描述客观世界的实体。Visual Basic 作为一种面向对象的编程方法,把程序和数据封装起来作为一个对象,并为每个对象赋予相应的属性。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,由 Visual Basic 自动生成对象的程序代码并封装起来。Visual Basic 应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。
Visual Basic 应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。
2 、实现菜单选项
菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Visual Basic 也提供了强大的创建菜单功能是程序更颖曜肌?
本系统使用 Visual Basic 的菜单编辑器建立菜单或者修改已经存在的菜单,您也可以使用Visual Basic 的Application Wizard 来操作。
3、 实现工具栏
CoolBar控件与Office2000 中看到的CoolBar是类似的。CoolBar就是一个可以在窗体上浮动的工具,同时也是其他ActiveX的容器。通过在CoolBar中迁入其他空间你也可以向用户提供更好的灵活性和义用性。
选择“工程”下拉菜单中的“部件”选项,显示“部件”对话框。在“控件”选项卡列表中选择“Microsoft Windows Common Controls 6.0”后工具相中增加改控件。
本系统就用了Cool工具中的Statubar控件,在系统这一界面中,添加了状态栏,在第一个栏中,在样式这一栏中选择了文本,在第二个栏中,选择了系统日期,第三个栏中选择了系统时间,这样,任何时候操作本系统,都可以看到当前的时间和日期。
2.2.4怎样开发一个学生信息管理系统的查询模块?
1、查询模块的设计分析
根据实际情况,我们使用原型法(Rapid Prototyping) 即以少量代价快速地构造一个可执行的软件模型。使用户可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。此时模块也发展成为最终产品了。
2、编程环境的选择
微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统VB是一个相对较好的选择。
3、关系型数据库的实现
Access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包同时拥有桌面数据库的便利和关系数据库的强大功能。
4、二者的结合(DBA)
微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及Visual Basic来访问数据库并对其进行各种操作。Visual Basic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。
ADODC控件在数据库中的信息与将信息显示给用户看的Visual Basic 程序之间架起了一座桥梁。我们可以设置ADODC控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,ADODC控件根据数据库中的一个或多个数据库表建立一个dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。将ADODC控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。
2.2.5 使用Access2000创建数据库
1、数据库的概念
数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。
2、新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。
(1)标识需要的数据;
(2)收集被子标识的字段到表中;
(3)标识主关键字字段;
(4)规范数据;
(5)标识指定字段的信息;
3、修改已建的数据库
数据库的修改分为;添加、编辑和删除记录。这三种操作均可由Visual Basic创建的程序来完成,下面的章节将详细描述实现的具体方法。
VB+Access学生信息管理系统
第三章 可行性分析
学生信息,作为一个学校,就有一定的工作量存在,而学生信息,它的工作量可能是其它信息工作量的几倍,班级的增加、班级的查找、班级的修改;学生档案;课程管理;成绩管理;缴费管理;统计等等,每个信息的数据都在不断地变化着,如果采用人工的方式进行操作,那么,一天的工作量,足以让人觉得比较繁琐,吃不消。针对这样的情况,采用让数据的查询变得简单化,数据变的更让每个人都在任何时刻都可以了解到。
学生信息管理系统是为本校开发的,本系统所采用的语言是Visual Basic,用Microsoft Access 2000数据库完成。该系统总体有四部分组成,包括学生信息查询、教务信息维护、学生选课及用户管理。通过本系统,把本校内部查询学生信息、教务信息、学生选课各个环节进行有效地计划、组织和控制。通过本校内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。
本系统主要信息流程为:教务信息维护接受学生的信息,学生信息查询根据教务信息维护的学生信息做出对所接收的信息合理性进行判断,并交于信息维护进行相应的修改,再把信息存入数据库中。学生选课是对学生进行相应选择自己相关的课程。最后进行打印。
采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。
第四章 学生信息系统软件测试
1、集成测试
集成测试将测试每一个部件之间的工作是否正常。在这个阶段,我们假设所有的单元已通过开发人员个人在单元测试阶段测试全部通过,没有任何错误。
集成测试包括以下内容:
连续集成测试
数据库测试
数据整合测试
2、功能测试
功能测试环境
操作系统:windows 98
内存:128M
网络环境:校园网
本功能测试共分为:
系统功能测试
测试是否可以正常添加用户和修改密码,系统正常退出
测试是否可以正常对班级进行管理,学生的单个或成批添加,删除以及新生信息的导入和学生信息备份
测试成绩管理中是否可以进行分数录入,汇总及排名和成绩备份等操作
测试课程信息模块中针对课程管理,老师和课程的关系之间操作是否正常
测试是否可以正常查询学生,老师和成绩
3、 链接测试
这一部分将测试系统各模块之间的超链接跳转是否正确
4、 文档测试
本章主要内容为:
测试文档是否包括全部内容
测试软件功能描述与其他功能有没有冲突
查看软件功能描述是否是原来系统分析和需求
查看文档内容在特定的情况和进度下,以现有人力,物力和资源能否实现
5、负载测试
这一部分将测试正常情况下系统性能和用户数目之间的关系
本章主要内容为:
查看在多个用户同时使用本系统时是否正常
6、极限测试
这一部分将测试所有极端的情况,如速度非常快的情况下和速度非常慢的情况下,以及所有其它的极端情况。
本章主要内容为:
网络资源极限测试
综合极限测试
VB+Access学生信息管理系统
第五章 总体设计
5.1 系统功能描述
本系统的主要任务是实现对学校教导处的学生信息管理、成绩管理、课程管理及相关查询。其主要功能包括:
1、学生信息管理功能
班级管理。提供给班主任进行本班学生的信息更新、删除。
添加学生。以班级为单位,进行学生入库。其中分为单个添加和成批添加。单个添加学生供数量较少的学生信息入库;成批添加可以从现存的学生信息EXCEL文件中成批录入到数据库中。
删除学生。当学生毕业后,学生信息转移备份数据库中,系统的基本数据库中需要删除学生信息。该功能主要进行成批地删除学生信息,如连续学号区段的多位学生信息删除,整个班级的删除,所有学生信息的删除。
新生管理。本部分的功能主要有新生导入、分班、及设置学号。新生导入实现从现存的EXCEL新生名单中录入学生信息。分班功能实现按新生的报考专业、成绩及性别进行分班。设置学号实现自动为各班学生编发学号。
学生信息备份。在学生信息删除前,将其按班级为单位保存到备份数据库。
2.学生成绩管理功能
分数录入。以班级为单位,录入各科目的期中、期末、总评成绩。
总分及名次。计算指定班级学生的总分及名次。
补考成绩录入。修改总评成绩,以决定最终补考人数。
成绩备份。为指定班级及指定的学期数的学生成绩保存到备份数据库中。
3、课程信息管理功能
课程管理。提供本学期各年级各专业所开课程名称的录入、修改、删除。它是学生成绩管理的基础。用以保证数据库中一致性原则。
4、查询功能。
学生信息查询。根据用户的要求,查询学生数据库的所有可能的信息,其中包括成绩查询。
备份成绩查询。按班级为单位查询备份数据库的学生信息,补考情况。
2.2 数据流图与数据字典
2.2.1 数据流图
根据以上的系统功能描述,设计出数据流图如下:
一、顶层数据流图与0层数据流图(图2-1至图2-2
图2-15 删除学生数据
四、成绩管理模块分层数据流图:(图2-16至2-18)
图2-24 学生信息查询
2.2.2 数据字典
一、数据流条目:
(1)学生信息管理模块:
学生信息管理要求=[新生数据处理要求|班级数据管理要求|添加数据要求|数据删除要求|数据备份要求]
新生数据处理要求=[新生数据|班级数目|起始学号|班级名称|专业]
班级数据管理要求=[班级名称|修改要求]
添加数据要求=[单个学生数据单|成批数据单]
数据删除要求=[起止学号|班级名称|所有学生数据]
数据备份要求=[班级名称|学期数]
新生数据=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+入学总分
起始学号={数字}15
班级名称=[会计04(1)| 会计04(2)|会计04(3)| 计算机软件04(1)|会计03(1)| 会计03(2)|会计03(3)| 计算机软件03(1)|会计02(1)| 会计02(2)|会计02(3)| 计算机软件02(1)|网络技术03(1)| 网络技术04(1)| 机电03(1)| 机电02(1) | 机电04(1)| 网络技术02(1)| 网络技术02(1)]
修改要求=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+入学总分+专业+班级+是否住宿
单个学生数据单=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+入学总分+班级+是否住宿
成批数据单=姓名+性别+出生日期+家庭住址+原毕业学校+政治面貌+入学总分+班级+是否住宿
性别=[男|女]
政治面貌=[团员|非团员]
是否住宿=[住宿|通学]
(2)成绩管理模块:
成绩管理要求=[成绩录入要求|总分计算要求|成绩备份要求]
成绩录入要求=班级名称+成绩数据
总分计算要求=班级名称+成绩数据
成绩备份要求=班级名称+学期数
成绩数据=姓名+课程名称+分数
成绩表=学号+姓名+期中成绩总分+期末成绩总分+期中名次+期末名次
(3)课程信息管理模块:
课程管理要求=[课程表维护要求|教师课程表维护要求|排课要求]
课程表维护要求=课程名称+年级+专业
教师课程表维护要求=教师姓名+任教班级+课程名称+周课时数
年级=[一年级|二年级|三年级]
任教班级=[会计04(1)| 会计04(2)|会计04(3)| 计算机软件04(1)|会计03(1)| 会计03(2)|会计03(3)| 计算机软件03(1)|会计02(1)| 会计02(2)|会计02(3)| 计算机软件02(1)|网络技术03(1)| 网络技术04(1)| 机电03(1)| 机电02(1) | 机电04(1)| 网络技术02(1)| 网络技术02(1)]
(4)查询模块:
查询要求=[查询条件]
查询结果=[学生信息统计表|学生成绩统计表|学生总分名次统计表|教师信息统计表|备份信息统计表]
二、加工条目:
(1)学生信息管理模块加工条目:
加工编号:2.2.2.1
加工名称:检查记录有效性
输入:新生数据
输出:有效的新生记录、无效的新生记录
加工逻辑:根据新生记录
IF 格式有效 THEN
读取记录
ELSE 无效格式记录,启动EXCEL调整格式
ENDIF
加工编号:2.2.2.2
加工名称:启动EXCEL调整
输入:新生记录
输出:有效的新生记录
加工逻辑:根据新生记录按要求调整
加工编号:2.2.2.3
加工名称:读取新生记录
输入:新生数据
输出:写入学生表文件
加工逻辑:根据新生记录
DO WHILE 新生记录不为空 THEN
读取记录,写学生表文件,班级值为“新生”
LOOP
加工编号:2.2.3.1
加工名称:统计新生数据
输入:班级为“新生”记录
输出:各专业新生人数,各专业男女生人数
加工逻辑:根据各专业新生记录,
查询所有会计专业且班级为“新生”的记录,并计算记录数
查询所有会计专业且性别为“男”且班级为“新生”的记录,并计算记录数
查询所有会计专业且性别为“女”且班级为“新生”的记录,并计算记录数
查询所有计算机软件专业且班级为“新生”的记录,并计算记录数
查询所有计算机软件专业且性别为“男”且班级为“新生”的记录,并计算记录数
查询所有计算机软件专业且性别为“女”且班级为“新生”的记录,并计算记录数
查询所有网络技术专业且班级为“新生”的记录,并计算记录数
查询所有网络技术专业且性别为“男”且班级为“新生”的记录,并计算记录数
查询所有网络技术专业且性别为“女”且班级为“新生”的记录,并计算记录数
查询所有机电专业且班级为“新生”的记录,并计算记录数
查询所有机电专业且性别为“男”且班级为“新生”的记录,并计算记录数
查询所有机电专业且性别为“女”且班级为“新生”的记录,并计算记录数
加工编号:2.2.3.2
加工名称:按报考专业、男女比例及入学总分分班
输入:各专业班数,各专业新生数据,各专业男生人数,各专业女生人数
输出:各班学生名单写入学生表文件,并设置班级名称
加工逻辑:根据新生记录
各专业男女生名单按入学总分降序排序
DO WHILE 男女生新生记录不为空 THEN
按专业、根据班数,依次取男女生记录,更改其班级名称
写入学生表文件
LOOP
加工编号:2.2.4.1
加工名称:查询相关记录
输入:学生记录,班级名称
输出:指定班级的学生名单
加工逻辑:根据学生记录,查询所有班级名称等于输入值的学生记录
加工编号:2.2.4.2
加工名称:按总分降序设置学号
输入:指定班级学生记录,起始学号
输出:写入学生表文件,成绩表文件,总分表文件
加工逻辑:
DO WHILE 学生记录非空 学生记录的学号域 =起始学号
总分表中添加一记录,学号域=起始学号
查询课程表,N=该专业一年级所开课程数
在成绩表中添加N个记录,学号域=起始学号
起始学号=起始学号+1
LOOP
加工编号:2.3.1
加工名称:查询相关记录
输入:学生记录,班级名称
VB+Access学生信息管理系统
输出:指定班级的学生名单
加工逻辑:根据学生记录,查询所有班级名称等于输入值的学生记录
加工编号:2.3.2
加工名称:修改学生记录
输入:指定班级学生记录,修改要求
输出:学生信息
加工逻辑:根据修改要求,改写学生数据
加工编号:2.4.2.1
加工名称:数据录入
输入:单个学生数据
输出:学生表,成绩表,总分表
加工逻辑:根据学生数据单,接受录入
在学生表中添加一记录,并将录入信息作为记录的值
在总分表中添加一记录,学号域为录入学号值,班级域为班级值,其余域为0
判断该生所在年级和专业,查询课程表,N=本学期所开课程数
在成绩表中添加N个记录,学号域均为录入学号值,班级域为班级值,其余域为0
加工编号:2.4.3.1
加工名称:检查数据格式
输入:学生记录
输出:有效格式的学生记录,无效格式的学生记录
加工逻辑:根据学生记录
IF 格式有效
输出有效格式记录
ELSE
输出无效格式记录
ENDIF
加工编号:2.4.3.2
加工名称:启动EXCEL调整
输入:无效格式学生记录
输出:有效格式学生记录
加工逻辑:启动EXCEL进行人工调整
加工编号:2.4.3.3
加工名称:逐行读取记录
输入:有效格式学生记录
输出:写入学生表,总分表,成绩表
加工逻辑:
DO WHILE 学生记录不为空
在学生表中添加一记录,用学生记录值更新各域
在总分表中添加一记录,用学生记录值中的学号值更新学号域,班级域为班级值
判断学生所在年级和专业,N=本学期该专业所开课程数
在成绩表中添加N个记录,学号域为学生记录值中的学号值,班级域为班级值
LOOP
加工编号:2.6.1
加工名称:查询备份数据
输入:班级名称
输出:备份数据
加工逻辑:在学生表中查询班级名称等于输入值的学生数据
加工编号:2.6.2
加工名称:数据备份
输入:备份数据
输出:备份数据文件
加工逻辑:
IF 数据已备份 THEN
退出
ELSE
生成备份文件
ENDIF
加工编号:2.5.1
加工名称:确认数据类型
输入:删除数据单
输出:班级名称,起止学号,所有数据
加工逻辑:
CASE1 按班级删除
获得班级名称
CASE2 按起止学号删除
获得起止学号
CASE3 按所有数据
查询学生表中的所有学生数据
加工编号:2.5.2
加工名称:删除指定范围数据
输入:起止学号
输出:更新学生表,总分表,成绩表
加工逻辑:在学生表、成绩表、总分表中查询学号值大于起始学号并小于终止学
号的学生记录
从各表中删除这些记录
加工编号:2.5.3
加工名称:删除指定班级数据
输入:班级名称
输出:更新学生表、成绩表、总分表
加工逻辑:查询学生表中班级名称为输入值的记录
从学生表中删除这些记录
从总分表中删除这些记录
从成绩表中删除这些记录
加工编号:2.5.4
加工名称:删除所有学生数据
输入:所有学生记录
输出:更新学生表、总分表、成绩表
加工逻辑:删除学生表、总分表、成绩表中的所有学生数据
(2)成绩管理模块加工条目
加工编号:3.2.1
加工名称:查询学生及课程信息
输入:班级名称
输出:指定班级的学生名单及本学期所开课程
加工逻辑:查询学生表中班级名称为输入值的记录
判断所在年级和专业,查询课程表获得本学期所开课程
加工编号:3.2.2
加工名称:成绩录入
输入:学生名单,课程信息,成绩录入数据
输出:更新成绩表
加工逻辑:选择课程名称,录入成绩
写入成绩表
加工编号:3.3.1
加工名称:查询成绩数据
输入:班级名称
输出:指定班级的学生名单及成绩数据
加工逻辑:判断成绩表,获得指定班级的学生成绩数据
加工编号:3.3.2
加工名称:计算总分及名次
输入:成绩数据
输出:总分与名次信息,更新总分表
加工逻辑:依次计算各记录总成绩,写入总分表
对总分表进行按总分降序排序,写入名次
加工编号:3.4.1
加工名称:查询成绩数据
输入:备份数据单
输出:备份数据
加工逻辑:对学生表和成绩表做笛卡尔积,获得指定班级的成绩与学生数据
加工编号:3.4.2
加工名称:数据备份
输入:备份数据,备份班级名称
输出:成绩备份文件
加工逻辑:根据备份班级名称生成成绩备份文件
(4)课程信息管理模块数据加工条目:
加工编号:5.2.1
加工名称:确认维护要求
输入:维护要求
输出:录入要求、修改要求
加工逻辑:判断对课程的录入或者修改
加工编号:5.2.2
加工名称:课程数据录入
输入:课程数据单,录入要求
输出:更新课程表文件
加工逻辑:根据录入要求,录入课程数据
在课程表中添加一新记录,将录入数据作为新记录值
加工编号:5.2.3
加工名称:课程数据修改
输入:课程数据单,修改要求
输出:更新课程文件
加工逻辑:查询课程信息,根据修改要求进行修改,并更新课程文件
(5)查询模块加工条目:
加工编号:6.2.1
加工名称:要求加工
输入:学生信息查询要求
输出:查询规则
加工逻辑:
CASE1 查询要求涉及[学生表|成绩表|总分表]
在[学生表|成绩表|总分表]中查询
CASE2 查询要求涉及学生表和成绩表
将学生表与成绩表做笛卡尔积,与查询条件形成SQL语句
CASE3 查询要求涉及学生表和总分表
将学生表与总分表做笛卡尔积,与查询条件形成SQL语句
CASE4 查询要求涉及学生表和成绩表、总分表
将学生表与成绩表、总分表做笛卡尔积,与查询条件形成SQL语句
CASE5 查询要求涉及总分表和成绩表
将总分表与成绩表做笛卡尔积,与查询条件形成SQL语句
最后将SQL语句作为查询规则输出
加工编号:6.2.2
加工名称:查询处理
输入:查询规则
输出:查询结果
加工逻辑:根据查询规则查询指定表,并显示结果
2.3 数据库设计
2.3.1 库设计
本系统涉及到的信息主要有5类:学生信息、成绩信息、教师信息、图书信息、后备信息。由于成绩信息和教师信息与学生信息关系密切,因此将这三类信息存放在同一数据库中,以提高多种信息同时读取的速度。按以上分析,将系统的数据库设计为三个:
一、学生数据库:
该数据库为中包含有以下各表:
1、学生表:记录学生的基本信息,是进行学生及其它各类信息处理的基础。
2、成绩表:记录学生的期中、期末及总评的各科成绩。
3、总分表:记录学生的期中、期末及总评的总分及名次。
4、课程表:记录各专业各年级开课情况,在添加学生记录时,可根据该表的情况决定在成绩表添加学生记录的个数。
三、后备数据库:
该数据库主要保存两类信息:学生信息、成绩信息。其数据表是按用户的要求在运行过程中动态建立的。
2.3.2 表设计:
1、学生表结构:
表2.1
编号
字段名称
字段类型
字段宽度
1
学号
CHAR
15
2
姓名
CHAR
10
3
性别
CHAR
2
4
出生日期
DATE
8
5
电话
CHAR
10
6
家庭住址
CHAR
50
7
班级
CHAR
20
8
原毕业学校
CHAR
50
9
是否住宿
CHAR
4
10
政治面貌
CHAR
6
11
入学总分
LONG
4
12
专业
char
20
2、课程表结构:
表2.2
编号
字段名称
字段类型
字段宽度
1
课程名称
CHAR
15
2
年级
CHAR
10
3
专业
char
20
3、成绩表结构:
表2.3
编号
字段名称
字段类型
字段宽度
1
学号
CHAR
15
2
课程名称
CHAR
15
3
期中成绩
LONG
4
4
期末成绩
LONG
4
5
总评成绩
LONG
4
6
班级
char
20
4、总分表结构:
表2.4
编号
字段名称
字段类型
字段宽度
1
学号
CHAR
15
2
期中总分
LONG
4
3
期末总分
LONG
4
4
期中名次
LONG
4
5
期末名次
LONG
4
6
班级
char
20
第六章 详细设计
根据系统的主要功能及上一章的总体设计,系统开发进入第二个阶段:详细设计。在这一阶段的工作中,主要任务有以下几项:
1、根据原型化的开发原则,为系统的每个模块功能进行界面设计,作为进一步优化的基础。
2、进行系统的流程分析,为模块的细化做好准备。
3、对每个模块进行详细的算法设计。
3.1 系统界面设计
一、登录及系统主窗口界面设计
该部分界面主要包括登录窗口、系统主窗口、修改密码窗口。
1、登录窗口界面:
本系统中使用到的数据表主要有班级表、成绩表、缴费表、课程表、学生档案、用户资料,由这六个表,组成了名为信息的数据库(如图一)。其中学生档案是本系统主要的
VB+Access学生信息管理系统
(图一)
一张表,所有信息都是根据这张学生档案进行有关的操作,主要的字段有:学号、姓名、年级、专业、性别、出生年月、民族、籍贯、政治面貌、家庭地址、邮政编码、联系电话、入学时间、备注。其中日期的数据类型为日期/时间天型,其它的数据类型为文本型;成绩表中字段为:学号、姓名、年级、专业、学期、考试时间、考试科目、考试地点、课程性质、科目分数、违纪类型、备注;课程表中字段为:专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质、考试性质;用户资料中的字段包括:用户名、密码、身份。
数据库与VB的连接:本系统的数据链接采用的是ADO方法,打开控制面板,打开ODBC数据源图标,选择“系统DSN”标签,点击“添加”按钮,在弹出的“创建新数据源”对话框中选择名称为“Microsoft Access Drive(*.mdb)”,点击“完成”按钮,在ODBC Microsoft Access 安装对话框中在数据源名中输入信息,在数据库这个框中, 单击“选择”按钮,在弹出的选择数据库这一对话框架中,在驱动器下拉列表框中选择本系统数据库所在驱动器,在目录中选择库所在的文件夹,在文件类型中选择选“Access数据库(*.mdb)”,在数据库名中选择本系统的数据库,点击“确定”按钮即完成数据链接。
在VB中,用ADODC链接数据库,用DataGrid或DATA将库中的数据在界面中显示出来,本系统采用DataGrid。在界面上右击Adodc控制,在弹出的快捷菜单中选择属性,在属性对话框中,在“属性”这一标签中, 选中单选框“Use ODBC Data Source Name”,并在下拉文本框中选择已经配置好的数据源名信息,再在“RecordSoure”标签中,在Commard Text(SQL)文本框中输入查询语句,如:select * from 学生档案。同时,将桌面的DataGrid控件选中,在属性框中,将它的Datasoure设为Adodc。
我们可以设置DataGrid控件的外观:选中该控件,右击,在弹出的快捷菜单中选择“检索字段”,在弹出的对话框中单击“确定”,这时,表格中出现了表的字段。然后再右击,同样,在弹出的快捷菜单中选择“编辑”,我们就可以所在的表格的宽度进行调整。
第七章 系统具体实现
7.1各功能的实现
7.1.1课程管理:课程设置(如:界面如图二)
(图二)
运行程序后,进入课程管理模块,课程管理模块的第一块是课程设置,在这模块中可以把专业、年级、学期、课程名称、教材、任课老师、课时、上课地点、课程性质和考试性质等信息输入,以便使用。
课程管理:课程查询(如:界面如图三)
(图三)
当输入查询类别、运算符和条件后可以查找到所需要的课程设置,或按查询时间来查询,输入所要查找的时间段,就可查到所要的课程设置。
7.1.2 打印统计
运行打印统计后可以按条件把符合条件的各种信息以报表形式罗列出来,各种信息还可以以打印出来或以报表形式保存。打印统计包括班级统计分析、档案统计分析、课程统计分析、成绩统计分析和交费统计分析五类。
班级统计分析(如:界面如图四)
(图四)
档案分析统计(如:界面如图五)
(图五)
课程统计分析(如:界面如图六)
(图六)
成绩统计分析(如:界面如图七)
(图七)
交费统计分析(如:界面如图八)
(图八)
结束语
学生信息管理系统(课程设置和打印统计)的完成,它在审核这一功能中能够对不同情况的资料进行设置和打印,针对需要的信息进行设置和打印。
后记
本系统能够顺利完成,非常感谢邹永康老师的指导。对于本人来说,通过这次毕业设计,也是对自己在这三年学习的一个检验和平时学习的一种结累,可以在学习中提高自己,也充分体现学有所用,学以致用的学习倡导。
在此,我对三年来辅导过我的各位任课老师深表感谢
主要参考文献
本系统的过程中,主要的参考文献有:
《Visual Basic6.0》 林陈雷 人民邮电出版社
《面向对象程序设计系列教材》 龚沛曾 高等教育出版社
《Visual Basic6.0编程实例精解》 何文俊
《学用Visual Basic 编程》 潭 浩 西安电子科技大学出版社
《Visual Basic6.0 数据库开发与专业应用》 敬 铮 国防工业出版社
《Visual Basic6.0 数据库程序设计高手》 温贤发 科学出版社
《Visual Basic6.0 程序设计》 陈明 中央广播电视大学
出版社
VB+Access学生信息管理系统
附:源程序
7.1.1课程管理:课程设置
下面为其代码:
Private Sub Command1_Click()
Dim myCon As New ADODB.Connection
Dim myRs As New ADODB.Recordset
Dim ZhuanYe, NianJi, XueQi, KeCheng, JiaoCai, RenKLS, KeShi, ShangKeDD, KeChengXZ, KaoShiXZ As String
ZhuanYe = Text1.Text
NianJi = Text2.Text
XueQi = DTPicker1.Value
KeCheng = Text4.Text
JiaoCai = Text5.Text
RenKLS = Text6.Text
KeShi = Text7.Text
ShangKeDD = Text8.Text
KeChengXZ = Combo1.Text
KaoShiXZ = Combo2.Text
If Trim(ZhuanYe) = "" Or Trim(NianJi) = "" Or Trim(XueQi) = "" Or Trim(KeCheng) = "" Or Trim(JiaoCai) = "" Or Trim(RenKLS) = "" Or Trim(KeShi) = "" Or Trim(ShangKeDD) = "" Or Trim(KeChengXZ) = "" Or Trim(KaoShiXZ) = "" Then
MsgBox "请填写要修改课程资料的内容!"
Combo1.Text = ""
Combo2.Text = ""
Exit Sub
End If
myCon.Open "dsn=信息"
myRs.Open "select * from 课程表 where 专业='" & Text1.Text & "'", myCon, 3, 2
myRs!年级 = Text2.Text
myRs!学期 = DTPicker1.Value
myRs!课程名称 = Text4.Text
myRs!教材 = Text5.Text
myRs!任课老师 = Text6.Text
myRs!课时 = Text7.Text
myRs!上课地点 = Text8.Text
myRs!课程性质 = Combo1.Text
myRs!考试性质 = Combo2.Text
myRs.Update
myRs.Close
myCon.Close
MsgBox "您确定要修改吗?", vbYesNo, "提示"
Frm_UpdateGrean.Adodc1.Refresh
Frm_UpdateGrean.DataGrid1.Refresh
Text1.Text = ""
Text2.Text = ""
'Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Combo1.Text = ""
Combo2.Text = ""
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Command3_Click()
Unload Me
Frm_FindGrean.Show 1
End Sub
Private Sub DataGrid1_Click()
'Frm_UpdateGrean.Adodc1.RecordSource = "select * from 课程表 where 专业 = '" & Trim(DataGrid1.Row) & "'"
'Text1.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("专业")
'Text2.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("年级")
'Text3.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("学期")
'Text4.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("课程名称")
'Text5.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("教材")
'Text6.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("任课老师")
'Text7.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("课时")
'Text8.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("上课地点")
'Combo1.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("课程性质")
'Combo2.Text = Frm_UpdateGrean.Adodc1.Recordset.Fields("考试性质")
End Sub
Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)
End Sub
Private Sub Form_Activate()
Frm_FindGrean.Adodc1.RecordSource = strTiaoJian
Frm_FindGrean.Adodc1.Refresh
Set DataGrid1.DataSource = Frm_FindGrean.Adodc1
End Sub
Private Sub Form_Load()
Combo1.AddItem ("必修")
Combo1.AddItem ("选修")
Combo1.AddItem ("自开")
Combo2.AddItem ("考试")
Combo2.AddItem ("查考")
Text1.Text = ""
Text2.Text = ""
'Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Combo1.Text = ""
Combo2.Text = ""
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Text2_Change()
End Sub
Private Sub Text8_Change()
End Sub
课程管理:课程查询
当输入查询类别、运算符和条件后可以查找到所需要的课程设置,或按查询时间来查询,输入所要查找的时间段,就可查到所要的课程设置。
代码如下:
Dim sqlstr As String
Private Sub Combo1_Change()
End Sub
Private Sub Combo2_Change()
End Sub
Private Sub Combo4_Change()
End Sub
Private Sub Combo5_Change()
End Sub
Private Sub Combo7_Change()
End Sub
Private Sub Command1_Click()
Dim a As String
Dim KCCX1 As String
Dim KCCX2 As String
Dim str1 As String
Dim str2 As String
If Option3.Value = True Then
a = Trim(Combo2)
Select Case a
Case "="
KCCX1 = "" & Combo1.Text & " " & Combo2.Text & " '" & Trim(Text1) & "'"
Case "like"
KCCX1 = "Instr(1," & Combo1.Text & ",'" & Trim(Text1.Text) & "')<>0 "
End Select
a = Trim(Combo4)
Select Case a
Case "="
KCCX2 = "" & Combo3.Text & " " & Combo4.Text & " '" & Trim(Text2) & "'"
Case "like"
KCCX2 = "Instr(1," & Combo3.Text & ",'" & Trim(Text2.Text) & "')<>0 "
End Select
If Option1.Value = True Then
If KCCX1 = "" Then
strTiaoJian = "select * from 课程表 where " & KCCX2
ElseIf KCCX2 = "" Then
strTiaoJian = "select * from 课程表 where " & KCCX1
Else
strTiaoJian = "select * from 课程表 where " & KCCX1 & "and " & KCCX2
End If
ElseIf Option2.Value = True Then
If KCCX1 = "" Then
strTiaoJian = "select * from 课程表 where " & KCCX2
ElseIf KCCX2 = "" Then
strTiaoJian = "select * from 课程表 where " & KCCX1
Else
strTiaoJian = "select * from 课程表 where " & KCCX1 & "or " & KCCX2
End If
Else
If KCCX1 = "" Then
strTiaoJian = "select * from 课程表 where " & KCCX2
ElseIf KCCX2 = "" Then
strTiaoJian = "select * from 课程表 where " & KCCX1
Else
MsgBox "请选择连接方式!", vbOKOnly, "警告"
Exit Sub
End If
End If
If (KCCX1 & KCCX2) = "" Then
MsgBox "请输入查询类别!", vbOKOnly, "警告"
Exit Sub
Else
Unload Me
Frm_UpdateGrean.Show 1
End If
End If
If Option4.Value = True Then
If Val(Combo6) > Val(Combo9) Then
MsgBox "请正确选择年份!", vbOKOnly + vbExclamation, "信息提示"
Combo6.SetFocus
Exit Sub
Else
If Val(Combo6) = Val(Combo9) Then
If Val(Combo7) > Val(Combo10) Then
MsgBox "请正确选择月份!", vbOKOnly + vbExclamation, "信息提示"
Combo7.SetFocus
Exit Sub
Else
If Val(Combo7) = Val(Combo10) Then
VB+Access学生信息管理系统
If Val(Combo8) > Val(Combo11) Then
MsgBox "请正确选择日期!", vbOKOnly + vbExclamation, "信息提示"
Combo8.SetFocus
Exit Sub
End If
End If
End If
End If
End If
If Combo6.Text = "" Or Combo7.Text = "" Or Combo8.Text = "" Or Combo9.Text = "" Or Combo10.Text = "" Or Combo11.Text = "" Then
MsgBox "请输入完整的日期", vbOKOnly, "警告"
Exit Sub
End If
str1 = Trim(Combo6) & "-" & Trim(Combo7) & "-" & Trim(Combo8)
str2 = Trim(Combo9) & "-" & Trim(Combo10) & "-" & Trim(Combo11)
str1 = Format(str1, "yyyy-mm-dd")
str2 = Format(str2, "yyyy-mm-dd")
If sqlstr = "" Then
sqlstr = "" & Trim(Combo5.Text) & ">=#" & Format(str1, "yyyy-mm-dd") & "# and " & Trim(Combo5.Text) & "<= #" & Format(str2, "yyyy-mm-dd") & "#"
Else
sqlstr = sqlstr & " and " & Trim(Combo5.Text) & ">=#" & Format(str1, "yyyy-mm-dd") & "# and " & Trim(Combo5.Text) & "<= #" & Format(str2, "yyyy-mm-dd") & "#"
End If
If sqlstr = "" Then
MsgBox "请先输入查找时间!"
Exit Sub
End If
strTiaoJian = "select 专业,年级,学期,课程名称,教材,任课老师,课时,上课地点,课程性质,考试性质 from 课程表 where " & sqlstr
Unload Me
Frm_UpdateGrean.Show 1
End If
If Option3.Value <> True And Option4.Value <> True Then
MsgBox "请选择查询方式!", vbOKOnly, "警告"
Exit Sub
End If
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim i, j As Integer
For i = 1999 To 2010
Combo6.AddItem i
Combo9.AddItem i
Next i
Combo6.ListIndex = 0
Combo9.ListIndex = 0
For i = 1 To 12
Combo7.AddItem i
Combo10.AddItem i
Next i
Combo7.ListIndex = 0
Combo10.ListIndex = 0
For i = 1 To 31
Combo8.AddItem i
Combo11.AddItem i
Next i
Combo8.ListIndex = 0
Combo11.ListIndex = 0
Combo1.AddItem ("专业")
Combo1.AddItem ("年级")
Combo1.AddItem ("课程名称")
Combo1.AddItem ("教材")
Combo1.AddItem ("任课老师")
'Combo1.AddItem ("课时")
Combo1.AddItem ("课程性质")
Combo1.AddItem ("考试性质")
Combo2.AddItem ("=")
Combo3.AddItem ("专业")
Combo3.AddItem ("年级")
Combo3.AddItem ("课程名称")
Combo3.AddItem ("教材")
Combo3.AddItem ("任课老师")
'Combo3.AddItem ("课时")
Combo3.AddItem ("课程性质")
Combo3.AddItem ("考试性质")
Combo4.AddItem ("=")
Combo5.AddItem ("学期")
Combo1.Text = ""
Combo2.Text = ""
Text1.Text = ""
Combo3.Text = ""
Combo4.Text = ""
Text2.Text = ""
Combo5.Text = ""
Combo6.Text = ""
Combo7.Text = ""
Combo8.Text = ""
Combo9.Text = ""
Combo10.Text = ""
Combo11.Text = ""
End Sub
7.1.2 打印统计
运行打印统计后可以按条件把符合条件的各种信息以报表形式罗列出来,各种信息还可以以打印出来或以报表形式保存。打印统计包括班级统计分析、档案统计分析、课程统计分析、成绩统计分析和交费统计分析五类。
班级统计分析
代码如下:
Private Sub Command1_Click()
Dim SQLoriginal As String
Dim SQLadd As String
Dim SQLorder As String
Dim strSql As String
SQLoriginal = "SELECT 年级,专业,人数,辅导员,备注 FROM 班级表 "
SQLadd = "WHERE 年级=年级 AND 专业=专业 "
SQLorder = ""
If Check1.Value = 1 And IsNumeric(Text1) Then
SQLadd = SQLadd + "and 年级='" + Text1 + "'"
End If
If Check2.Value = 1 And Not IsNull(Text2) Then
SQLadd = SQLadd + "and 专业='" + Text2 + "'"
End If
If Check3.Value = 1 And IsNumeric(Text3) Then
SQLadd = SQLadd + "and 人数='" + Text3 + "'"
End If
If Check4.Value = 1 And Not IsNull(Text4) Then
SQLadd = SQLadd + "and 辅导员='" + Text4 + "'"
End If
strSql = SQLoriginal + SQLadd + SQLorde
If Dat_Main.rsDat_Class.State = 1 Then
Dat_Main.rsDat_Class.Close
End If
Dat_Main.rsDat_Class.Open strSql
Dat_Class.Show vbModal
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Text3_Change()
End Sub
档案分析统计
代码如下:
Private Sub Command1_Click()
Dim SQLoriginal As String
Dim SQLadd As String
Dim SQLorder As String
Dim strSql As String
On Error Resume Next
SQLoriginal = "SELECT * FROM 学生档案 "
SQLadd = "WHERE 学号=学号 AND 姓名=姓名 "
SQLorder = ""
If Check1.Value = 1 And IsNumeric(Text1) Then
SQLadd = SQLadd + "and 学号='" + Text1 + "'"
End If
If Check2.Value = 1 And Not IsNull(Text2) Then
SQLadd = SQLadd + "and 姓名='" + Text2 + "'"
End If
If Check3.Value = 1 And Not IsNull(Text3) Then
SQLadd = SQLadd + "and 专业='" + Text3 + "'"
End If
If Check4.Value = 1 And IsDate(DTPicker1) Then
SQLadd = SQLadd + " and 出生年月= # " & DTPicker1.Value & "#"
End If
strSql = SQLoriginal + SQLadd + SQLorde
If Dat_Main.rsDat_Strudent.State = 1 Then
Dat_Main.rsDat_Strudent.Close
End If
Dat_Main.rsDat_Strudent.Open strSql
Dat_Strudent.Show vbModal
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
'Combo1.AddItem ("男")
'Combo1.AddItem ("女")
VB+Access学生信息管理系统
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Text1_Change()
End Sub
课程统计分析
代码如下:
Private Sub Command1_Click()
Dim SQLoriginal As String
Dim SQLadd As String
Dim SQLorder As String
Dim strSql As String
SQLoriginal = "SELECT * FROM 课程表 "
SQLadd = "WHERE 专业=专业 AND 课程名称=课程名称 "
SQLorder = ""
If Check1.Value = 1 And Not IsNull(Text1) Then
SQLadd = SQLadd + "and 专业='" + Text1 + "'"
End If
If Check2.Value = 1 And Not IsNull(Combo1) Then
SQLadd = SQLadd + "and 课程性质='" + Combo1 + "'"
End If
'If Check3.Value = 1 And Not IsNumeric(Text2) Then
'SQLadd = SQLadd + "and 课时='" + Text2 + "'"
'End If
If Check4.Value = 1 And Not IsNull(Text3) Then
SQLadd = SQLadd + "and 课程名称='" + Text3 + "'"
End If
strSql = SQLoriginal + SQLadd + SQLorde
If Dat_Main.rsDat_Grean.State = 1 Then
Dat_Main.rsDat_Grean.Close
End If
Dat_Main.rsDat_Grean.Open strSql
Dat_Grean.Show vbModal
Text1.Text = ""
Combo1.Text = ""
'Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Text1.Text = ""
'Text2.Text = ""
Text3.Text = ""
Combo1.Text = ""
Combo1.AddItem ("必修")
Combo1.AddItem ("选修")
Combo1.AddItem ("自开")
End Sub
Private Sub Text3_Change()
End Sub
成绩统计分析
代码如下:
Private Sub Command1_Click()
Dim SQLoriginal As String
Dim SQLadd As String
Dim SQLorder As String
Dim strSql As String
On Error Resume Next
SQLoriginal = "SELECT * FROM 成绩表 "
SQLadd = "WHERE 学号=学号 AND 姓名=姓名 "
SQLorder = ""
If Check1.Value = 1 And IsNumeric(Text1) Then
SQLadd = SQLadd + "and 学号='" + Text1 + "'"
End If
If Check2.Value = 1 And Not IsNull(Text2) Then
SQLadd = SQLadd + "and 姓名='" + Text2 + "'"
End If
If Check3.Value = 1 And Not IsNull(Text3) Then
SQLadd = SQLadd + "and 考试科目='" + Text3 + "'"
End If
If Check4.Value = 1 Then
SQLadd = SQLadd + "and 科目分数<60"
End If
strSql = SQLoriginal + SQLadd + SQLorde
If Dat_Main.rsDat_ChengJ.State = 1 Then
Dat_Main.rsDat_ChengJ.Close
End If
Dat_Main.rsDat_ChengJ.Open strSql
Dat_ChengJ.Show vbModal
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
'Text4.Text = ""
End Sub
Private Sub Text1_Change()
End Sub
交费统计分析
代码如下:
Private Sub Command1_Click()
Dim SQLoriginal As String
Dim SQLadd As String
Dim SQLorder As String
Dim strSql As String
SQLoriginal = "SELECT 学号,姓名,学期,本学期应交费用,实际交费,本次欠费 FROM 交费表 "
SQLadd = "WHERE 学号=学号 AND 姓名=姓名 "
SQLorder = ""
If Check1.Value = 1 And IsNumeric(Text1) Then
SQLadd = SQLadd + "and 学号='" + Text1 + "'"
End If
If Check2.Value = 1 And Not IsNull(Text2) Then
SQLadd = SQLadd + "and 姓名='" + Text2 + "'"
End If
If Check3.Value = 1 And IsNumeric(Text3) Then
SQLadd = SQLadd + "and 实际交费='" + Text3 + "'"
End If
If Check4.Value = 1 And IsNumeric(Text4) Then
SQLadd = SQLadd + "and 本次欠费='" + Text4 + "'"
End If
strSql = SQLoriginal + SQLadd + SQLorde
If Dat_Main.rsDat_JiaoF.State = 1 Then
Dat_Main.rsDat_JiaoF.Close
End If
Dat_Main.rsDat_JiaoF.Open strSql
Dat_JiaoF.Show vbModal
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
End Sub
Private Sub Text1_Change()
End Sub