班级管理系统(毕业论文)
毕业设计
班级管理系统
姓名
班级
专业
摘 要„„„„„„„„„„„„„„„„„„„„„„„„„„„„1 Abstract„„„„„„„„„„„„„„„„„„„„„„„„„„„2
第一章 引言„„„„„„„„„„„„„„„„„„„„„„„„„4
1.1 课题背景„„„„„„„„„„„„„„„„„„„„„„„„„„4
1.2 系统简介„„„„„„„„„„„„„„„„„„„„„„„„„„5
第二章 系统的分析„„„„„„„„„„„„„„„„„„„„„„„6
2.1 系统开发的目标和思想„„„„„„„„„„„„„„„„„„„„6
2.2 系统的可行性分析„„„„„„„„„„„„„„„„„„„„„„8
2. 3 系统开发工具简介
第三章 系统的设计„„„„„„„„„„„„„„„„„„„„„„„18
3.1 系统的功能结构设计„„„„„„„„„„„„„„„„„„„„„18
3.2 系统的数据库设计
3.3 界面设计与代码设计„„„„„„„„„„„„„„„„„„„„„„„„„„23 „„„„„„„„„„„„„„„„„„„„„„24
结束语„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„46 致谢„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„47 参考文献„„„„„„„„„„„„„„„„„„„
摘 要
班级管理系统用计算机管理班级信息的一种计算机应用技术的创新, 在计算机还未普及之前班级管理都是由教师以及班干部来承担的方式来操作的. 现在一般的学校都采用了信息化管理的方式即采用计算机作为工具的实用的计算机班级信息管理程序来帮助班主任进行更有效的班级管理。班级信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备, 易使用等特点。
经过分析, 我们使用 MICROSOFT公司的 VISUAL BASIC 开发工具, 利用其提供的各种面向对象的开发工具, 尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象, 首先在短时间内建立系统应用原型, 然后, 对初始原型系统进行需求迭代, 不断修正和改进, 直到形成用户满意的可行系统。
关键字:班级管理,MIS,visual basic ,数据库
Abstract
Class management information system using a computer management classes computer applications technology innovation, Management has not yet popular in the computer before classes are borne by the teachers and class to the cadres to operate. The schools are now generally used information management approach that the use of computers as a tool for computer class information management procedures to help teachers more effective management classes. Information management system is a typical class information management system (MIS), including its main development background to the establishment and maintenance of the database and front-end application development 2. The request for the establishment of strong data consistency and integrity, good for the security of the data. For the latter request applications functions, such as easy to use features.
After analysis, we use Microsoft visual basic development tool companies, the use of its various object-oriented development tools, especially data that can be easily accessible and concise window manipulation database intelligent objects, the first prototype application system in a short time and then, computation of the initial prototype system needs to constantly revise and improve until the formation of a viable system of user satisfaction.
keyword : class management MIS,visual basic database
第一章 引言
1.1 课题背景
班级管理系统用计算机管理班级信息的一种计算机应用技术的创新, 在计算机还未普及之前班级管理都是由教师以及班干部来承担的方式来操作的. 现在一般的学校都采用了信息化管理的方式即采用计算机作为工具的实用的计算机班级信息管理程序来帮助班主任进行更有效的班级管理。班级信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备, 易使用等特点。
1.2 系统简介
本系统主要服务与班主任的日常班级学生信息管理. 主要包括如下几大主要功能:
一:学生资料(基本资料, 通信资料, 资料管理)
二:成绩管理(班级成绩, 个人成绩, 成绩管理)
三:量化管理(得分情况, 得分原因, 考核管理, 得分情况)
四:组织机构(团委, 班委会)
五:班级事件(班级荣誉, 活动情况)
六:班费管理(班费收入. 班费支出, 剩余班费)
七:管理员(添加管理员, 修改密码, 删除管理员)
八:帮助(关于我们, 每日一看)
第二章 系统的分析
2.1 系统开发的目标和思想
本系统主要服务于班主任以及班级管理人员方便管理班级事物的软件系统, 在完成上述任务前提下力求界面人性化, 数据处理的可靠以及程序的健壮性的性能.
2.2 系统的可行性分析
技术上:本系统采用visual basic 6.0与微软的access 作为数据库, 技术上开发难度一般.
经济上:本系统服务于班主任以及班级管理人员, 提高了工作人员办事效率, 节省了开支. 所以具有经济上的可行性.
社会上:本系统同时也方便了广大学生以及学校管理者者, 服务. 所以具有社会可行性.
2. 3 系统开发工具简介
Visual Basic 6.0是Micrsoft 公司出品的开发工具,Visual Basic是一种可视化的,面向对象的Windows 开发语言,它具有易用,通用和开发效率高的特点。随着微软对它不断地改进以及计算机本身性能的提高,使得Visual Basic越来越适合一般的应用程序开发。正如Bill Gate 所说,世界上绝大多数的Windows 应用程序是用Visual Basic编写的。在众多的开发工具中,我们为什么要选择Visual Basic6.0呢?因为VB 具有众多其它开发工具所没有的优点!具体介绍如下:
◆ 开发的高效
◆
◆
◆
◆ 语言的高效 编译的高效 执行的高效 维护的高效
基于以上理由,我们毫不忧郁的选择了VB6.0做为我们的开发工具!!
1.1.1 主要的控件及其基本属性,事件简介
◆ 命令按钮类的控件:
1) Caption 属性:用来显示在控件上的标题。
2) Enable 属性:控制控件的激活状态灰色或可用。
3) Appearance 属性:值为1时, 则以3D 效果显示该控件,0则不然。
4) Backcolor 属性:用来改变在按钮上显示图像的背景色。
5) Cancel 属性:该属性决定按钮是否为一个”取消”按钮。
6) Default 属性:决定哪一个命令按钮控件是窗体的缺省命令按钮.
7) Font 属性:控制各种文字字体类型.
8) Left,top,height,width 属性:设定控件的位置与大小.
9) Style,picture 属性:决定按钮的显示方式是否为图像形式出现.
10) Visible 属性:确定控件运行时是否为可见.
11) Index 属性:当控件为一控件数组时, 此属性值为该控件在数组的下标值.
12) DownPicture 属性:设置/返回一个对图片的引用,该图片在按钮被单
击处于压下状态时显示。
13) DisabledPicture 属性:设置/返回一个对图片的引用,该图片在控件
无效时显示在控件中。
14) MaskColor 属性:设置/返回一个在按钮的图片中作为“掩码“的的颜
色
15) Picture 属性:设置返回commandButton 控件中要显示的图片。 命令按钮类的事件:
1)单击事件――Click 事件
(1) 触发与适用
此事件是在一个命令按钮对象上按下然后释放一个鼠标按钮
时发生。命令按钮的Click 事件仅对当单击鼠标时发生。
(2) 事件处理过程
按钮单击事件的处理过程为:
Private Sub object-Click(Index As Integer)
其中Object 为引发该事件的对象名称。如果是命令按钮的控
件是数组,则需要使用Index 参数标识该控件。
2)获得焦点――GotFocus 事件
(1) 触发与适用
当命令按钮获得焦点产生该事件,获得焦点可以通过诸如
Tab 切换或单击对象之类的用户动作,或在代码中用
SetFocus 方法改变焦点来实现。
(2) 事件处理过程
命令按钮GotFoucs 事件处理过程为:
Private Sub Object-GotFocus(Index As Integer)
3)LostFocus 事件:当一个对象失去焦点时发生
4)KeyDown 事件:当命令按钮具有焦点时按下一个键时发生
5)KeyUp 事件:当命令按钮具有焦点时释放一个键时发生。
6)KeyPress 事件:当用户按下或松开一个ANSI 键时发生。
7)MouseDown 事件:当在命令按钮上按下鼠标按钮时发生。
8)MouseMove 事件:当命令按钮上移动鼠标时发生。
9)MouseUp 事件:当在命令按钮上释放鼠标按钮时发生。
◆ 标签框类的控件类的控件:
1) Caption 属性:在应用程序界面上加入说明。
2) Autosize 属性:决定控件是否自动改变大小以显示其全部内容。
3) Backstyle 属性:用以指示标签是否透明.
4) Bordstyle 属性:用以设定控件是否有边框。
◆ 文本框类的控件:
1) Text 属性:通过像text 属性赋值的方法来改变该属性的值。
2) Maxlength 属性:该属性设定在文本框控件中能够输入的最大字符数。
3) Multline 属性:该属性设定text 字符串中是否接受换行符。
4) Scrollbars 属性:该属性决定是否为文本框加滚动条。
5) Passwordchar 属性:该属性设定输入文本的特殊显示字符, 在设计密码
程序时非常有用。
6) Change 事件属性:文本框的内容发生改变时, 相应的控件之间发生相应
的改变, 具有即时性。
7) Keypress :事件由用户在文本框控件中按任意键触发。
8) Alignment 属性:设定控件中的文本对其方式
9) Appearance 属性:设定一个对象在运行时是否可以3D 效果显示。
10) BackColor 属性:设置返回背景色
11) BorderStyle 属性:设置对象的边框样式
12) DataField 属性:设定数据使用者将被绑定到的字段名
13) DataFormat 属性:设定DataFormat 对象,用于数据绑定
14) DataMember 属性:从数据供应程序提供的几个数据成员中返回/设定一
个特定的数据成员
15) DataSource 属性:设定控件绑定的一个数据源
16) DragIcon 属性:设定图标,它将在拖放操作中作为指针显示
17) DragMode 模式:设定一个值,确定在拖放操作中所用方式
18) Enabled 属性:设置/返回运行时TextBox 是否相应用户事件
19) Font 属性:设置/返回字体属性
20) ForeColor 属性:设置/返回文本的前景色
21) Height 属性:设置/返回TextBox 的高度
22) IMEMode 属性:设置/返回数值用来确定输入方法编辑器的状态
23) Index 属性:设置/返回唯一的标识控件数组中该控件的编号
24) Left 属性:设置/返回TextBox 控件的水平位置
25) Locked 属性:设置/返回TextBox 中文本是否可编辑
26) LinkItem 属性:设置/返回DDE 与另一个应用程序会话时,传给接受端
的数据
27) MaxLength 属性:设置/返回一个值,指定在TextBox 控件中能够输入
的字符最大值
28) MouseIcon 属性:设置/返回自定义鼠标的图标
29) Top 属性:设置/返回TextBox 控件的垂直位置
30) Tag 属性:存储过程所需的附加数据
文本框类的事件:
1)Change 事件:当改变文本框内容时发生
2)Click 事件:鼠标单击控件时发生
3)DblClick 事件:用鼠标左键双击控件时发生
4)DragDrop 事件:在一个完整的拖放动作完成或使用Drag 方法,并将其Action 参数设置为2时发生
5)DragOver 事件:在拖放操作正在进行时发生
6)GotFocus 事件:当一个命令按钮获得焦点时发生
7)LinkClose 事件:当一个DDE 对话结束时发生
8)LinkError 事件:当一个DDE 对话框过程中出现错误时,该事件发生
9)KeyDown 事件:当命令按钮具有焦点时按下一个键时发生
10) Validate 事件:在焦点转换到另一个控件之前发生,此时该控件的Causes Validation 属性值设置为True
单选按钮类的控件:
1) Caption 属性:显示在控件上的文本, 是单选按钮的标题。
2) Alignment 属性:决定单选按钮的标题在控件上的位置。
3) Enable 属性:该控件为灰色时为false, 表示运行时不可用。
4) Index 属性:属性值表示为单选按钮组成的控件中某个按钮的索引值。
5) Tabindex 属性:建立控件时,vb 自动为其分配一个tabindex 值, 利用
tab 键可以在控件之间切换焦点。
6) Value 属性:反映控件状态的属性, 返回true 表示已选择了该按钮。
7) Appearance 属性:设置/返回一个对象在运行时是否以3D 效果显示。
8) BackColor 属性:设置/返回背景色。
9) Container 属性:设置/返回Form 上的控件属性。
10) DataField 属性:设置/返回数据使用者将被绑定到的字段名。
11) DataFormat 属性:设置/返回DataFormat 对象,一个绑定对象将附加
到它。
12) DisabledPicture 属性:设置/返回一个对图像的引用,该图片在控件
无效时显示在控件中。
13) DownPicture 属性:设置/返回一个对图片的引用,该图片在控件单击
下处于压下状态时显示。
14) DragMode 属性:设置/返回一个值,确定在拖放操作中所用的方式。
15) Font 属性:设置/返回字体属性。
16) FontBold 属性:设置/返回字体粗体样式。
17) FontItalic 属性:设置/返回字体斜体样式。
18) FontStrikethru 属性:设置/返回字体删除线样式。
19) FontUnderLine 属性:设置/返回字体下划线样式。
20) FontName 属性:设置/返回控件中显示文本所用的字体大小。
21) FontSize 属性:设置/返回控件中显示文本所用的字体大小
22) Height 属性:设置/返回控件的高度。
23) MaskColor 属性:设置/返回一个在控件的图片中作为掩码的颜色。
24) MousePointer 属性:设置/返回一个值,该值指示在运行时当鼠标移动
到对象上时显示的指针类型。
◆ 单选按钮类的常用事件:
1)Click 事件:鼠标单击控件时发生。
2)DbClick 事件: 当在一个对象上按下和释放鼠标按钮并再次按下和释放按钮时,该事件发生。
3)DragDrop 事件:在一个完整的拖放动作或使用Drag 方法,并将其Action 参数设置位2时,该事件发生。
4)DragOver 事件: 在拖放操作正在进行时发生。
5)GotFocus 事件: 当获的对象焦点时发生。
6)LostFocus 事件:当对象失去焦点时发生。
7)KeyDown 事件:当控件具有焦点时按下一个键时发生。
8)KeyUp 事件: 当控件具有焦点时释放一个键时发生。
9)KeyPress 事件:当用户按下或释放ANSI 一个键时发生。
10)
11)
12) MouseDown 事件:当在控件上按下鼠标键时发生。 MouseMove 事件:在控件上移动鼠标时发生。 MouseUp 事件:在控件上释放鼠标时发生。
◆ 复选按钮类的控件:
1) Caption 属性:缺省为check1„。
2) Index 属性:该属性值为复选框控件数组的下标.
3) Value 属性:value为0表空白, 为1表勾号, 为2表示灰色勾号.
4) Container 属性:Form 控件上的容器。
5) DataChangeed 属性:设置/返回一个值,指出被绑定的控件中的数据已
经被某进程修改。
6) DataField 属性:设置或返回数据使用者将被绑定到的字段名。
7) DataFormat 属性:设置或返回DataFormat 对象,用于数据绑定。
8) Datasource 属性:设置或返回控件绑定的一个数据源。
9) DisabledPicture 属性:设置或返回一个对图片的引用,该图片在控件
无效时显示在控件中。
10) DownPicture 属性:设置或返回一个对图片的引用,该图片在控件被单
击处于压下状态时显示。
11) DragIcon 属性:设置或返回图标,它将在拖放操作中做为指针显示。
12) DragMode 属性:设置返回一个值,确定在拖放操作中所用方式。
13) Font 属性:设置或返回字体的属性。
14) Name 属性:设置或返回控件的标识名。
15) Value 属性:设置或返回控件的状态。
◆ 复选按钮类的控件的基本事件:
1)Click 事件:鼠标单击控件时发生。
2)DragDrop 事件:在一个完整的拖放动作完成或使用Drag 方法,并将其Action 参数设置为2时发生。
3)DragOver 事件:在拖放操作正在进行时发生。
4)GotFocus 事件:在对象获的焦点时发生。,
5)OLECompleteDrag 事件:当源部件被放到目标时发生,并通知源部件拖放操作被执行或取消。
6)OLEDragDrag 事件:当源部件决定放操作能发生,却源部件被放到目标部件时,此事件发生。
◆ 框架类的控件:
1) List属性:列表框控件的表项是使用数组的方式保存, 数组的
每一个元素存储列表控件的一个表项
1) Listcount 属性:控件列表部分项目的个数。
2) Mutselect 属性:可以设置列表框为单选或允许多选属性.
3) Selectd 属性:标示一个数组, 数组各元素为:
4) Selected(0),selected(1)„
◆ 滚动条类的控件:
1) Value 属性:滚动条上滑块所在位置由value 值所决定。
2) Max 和min 属性:对value 值的最大, 最小进行限制。
3) Largechange 属性:用户点击滚动条与键头之间的区域时,value 的改变
量。
4) OnClick事件:用来添加按钮的单击事件所执行的程序代码。
◆ 定时器类类的控件:
1) Interval 属性:表示定时的时间间隔, 以毫秒为单位。
2) Enable 属性:为true 时(缺省值), 激活定时器开始计时; 为false 时处
于休眠状态.
1.1.2 数据库连接方式选择
Visual basic6.0连接数据库的主要方式以下几种方式:一是:用data 控件进行数据库链接 ,二是利用adodc (ADO Data Control)进行数据库链接 。三是: 利用DataEnvironment 进行数据库链接. 四是利用ADO(ActiveX Data Objects)进行编程
:现在我们来大致对这几种技术应用介绍:
一、用data 控件进行数据库链接.
第一步:给窗体添加一个Data 控件。
第二步:用Access 建立一个名为Pad 的数据库,在库中建立一个表Myset ,给表添加四个字段:backcolor (数据),forecolor(文本),fontname(文本),fontsize (文本)。注意:请将库文件存入程序所在目录。
如果你的机器没安装有Access ,可通过VB 建库。
二、利用adodc (ADO Data Control)进行数据库链接:
使用adodata 控件访问数据库可以完全不用编写代码, 只需要通过简单的设置和操作其属性就可以实现与数据库的连接, 通过绑定数据感知控件, 就能提供一个访问数据库的界面, 用来实现对数据库的浏览, 贴加, 删除, 修改等操作.
三、利用DAO 对数据库进行操纵:
在visual basic 中提供了两种与jet 数据引擎接口的方法:data控件与数据访问对象(DAO)DAO是database object的英文缩写, 要访问数据库一方面数据库要提供访问接口, 另一方面要在编程环境中有对数据库的支持.
DAO 模型是设计关系数据库系统结构的对象类的集合. 他们提供了管理关系型数据库系统所需要的全部操作属性和方法, 这其中包括建立数据库, 定义表, 字段和建立表间关系, 定位和查询数据库等.
关系数据库介绍:
关系数据库是目前各类数据库中最重要、最流行的数据库,他应用数学方法来处理数据库数据,是目前使用最广泛的数据库系统。20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。在数据库发展的历史上,最重要的成就就是关系模型。
关系数据库系统与非关系数据库系统的区别是:关系系统只有“表“这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。
结构化查询语言SQL (Structured Query Language)是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的、功能极强的关系数据库语言。目前已成为关系数据库的标准语言
Microsoft Access介绍:
使用 Microsoft Access,可以在单一的数据库文件中管理所有的信息。在这个文件中,用户可以将自己的数据分别保存在各自独立的存储空间中,这些
空间称作表;可以使用联机窗体来查看、添加及更新表中的数据;使用查询来查找并检索所要的数据;也可以使用报表以特定的版面布置来分析及打印数据。
如果要保存数据,请为每一种类型的信息创建一个表。如果要从查询、窗体或报表中的多个表中将数据合并在一起,就要定义各个表之间的关系。 如果要搜索并检索符合指定条件的数据,包括来自多个表中的数据,就要创建查询。查询的同时也可以更新或删除多条记录,并对数据执行内嵌或自定义的计算。
如果要简单地直接在某个表中查看、输入及更改数据,请创建一个窗体。在打开一个窗体时,Microsoft Access 将从一个或多个表中检索数据,并使用用户在“窗体向导”选择的版面布局或所创建的版面布局,将窗体显示在屏幕上。
如果要分析数据或将数据以特定的方式打印出来,请创建一个报表。例如,可以打印一份将数据分组并计算数据总和的报表,也可以打印另一份带有各种数据格式的打印邮件标签的报表。
第三章 系统的设计
3.1系统的功能结构设计
3.1 系统的功能结构设计
1. 班费收入/支出表
3.2 系统的数据库设计
1.
2. 学生信息表
:
3. 用户密码表
:
4. 课程信息表
:
3.3 界面设计与代码设计
1. 收入界面
代码分析:
Private Sub cmd_boot_Click() On Error GoTo ero
Data1.Recordset.MoveLast cmd_n.Enabled = False cmd_f.Enabled = True ero:
End Sub
Private Sub Cmd_f_Click()
If Data1.Recordset.BOF True Then cmd_n.Enabled = True On Error GoTo ero
Data1.Recordset.MovePrevious ero:
Else
cmd_f.Enabled = False cmd_n.Enabled = True Data1.Recordset.MoveFirst
End If
End Sub
Private Sub Cmd_n_Click()
If Data1.Recordset.EOF True Then cmd_f.Enabled = True On Error GoTo ero
Data1.Recordset.MoveNext
Else
cmd_n.Enabled = False cmd_f.Enabled = True On Error GoTo ero
Data1.Recordset.MoveLast
End If
ero:
End Sub
Private Sub Cmd_top_Click() On Error GoTo ero
Data1.Recordset.MoveFirst cmd_f.Enabled = False cmd_n.Enabled = True ero:
End Sub
Private Sub Command1_Click() Command4.Enabled = True
On Error GoTo ero1
Data1.Recordset.AddNew
ero1:
'MsgBox "不能添加数据", , "提示" End Sub
Private Sub Command2_Click() Command4.Enabled = True
On Error GoTo ero2
Data1.Recordset.Delete
ero2:
End Sub
Private Sub Command3_Click() Command4.Enabled = True
On Error GoTo ero3
Data1.Recordset.Edit
ero3:
'MsgBox "不能编辑数据", , "提示" End Sub
Private Sub Command4_Click() On Error GoTo ero
Data1.Refresh
ero:
End Sub
Private Sub bfgly_Click()
If isadtr = True Then
If mu_gly = False Then
MSFlexGrid1.Visible = False Command1.Visible = True Command2.Visible = True Command3.Visible = True Command4.Visible = True cmd_n.Visible = True cmd_f.Visible = True
cmd_first.Visible = True
cmd_last.Visible = True
mu_gly = (Not mu_gly)
bfgly.Caption = "收入"
Else
MSFlexGrid1.Visible = True
Command1.Visible = False
Command2.Visible = False
Command3.Visible = False
Command4.Visible = False
cmd_n.Visible = False
cmd_f.Visible = False
cmd_first.Visible = False
cmd_last.Visible = False
mu_gly = (Not mu_gly)
bfgly.Caption = "班费管理员"
End If
Else
MsgBox "你不是管理员,你没有这个权限", , "提示"
End If
End Sub
Private Sub Form_Load()
Data1.RecordSource = "select * from bfgl where money>0 "
End Sub
2. 余额查询界面
代码分析:
Private Sub Form_Load()
Data1.RecordSource = "select sum(money) as 余额 from bfgl "
End Sub
3. 班级成绩管理
班级成绩管理代码:
Private Sub Command2_Click()
End Sub
Private Sub Command1_Click()
End Sub
Private Sub Cmd_ls_Click()
MSFlexGrid1.DataSource = Data1
MSFlexGrid1.Refresh
End Sub
Private Sub cyy_avg_Click()
On Error Resume Next
'Data1.Recordset.AddNew
Data1.RecordSource = "select int(20*avg(ps))/20 as 平时 ,int(20*avg(qz))/20 as 期中 ,int(20*avg(qm))/20 as 期未 from cyy"
Data1.Recordset.Update
Data1.Refresh
MSFlexGrid1.Refresh
End Sub
Private Sub cyy_Click()
On Error GoTo ero
Data1.RecordSource = cyy
Data1.Refresh
ero:
jgl_cyy.Visible = False
jgl_english.Visible = False
jgl_jk.Visible = False
jgl_mz.Visible = False
jgl_photoshop.Visible = False
cyy_avg.Visible = False
english_avg.Visible = False
jk_avg.Visible = False
mz_avg.Visible = False
photoshop_avg.Visible = False
jgl_cyy.Visible = True
cyy_avg.Visible = True
Label1.Caption = cyy.Caption
End Sub
Private Sub english_Click()
'Call Cmd_ls_Click
On Error GoTo ero
Data1.RecordSource = english
Data1.Refresh
ero:
jgl_cyy.Visible = False
jgl_english.Visible = False
jgl_jk.Visible = False
jgl_mz.Visible = False
jgl_photoshop.Visible = False
cyy_avg.Visible = False
english_avg.Visible = False
jk_avg.Visible = False
mz_avg.Visible = False
photoshop_avg.Visible = False
english_avg.Visible = True
jgl_english.Visible = True
Label1.Caption = english.Caption
End Sub
Private Sub jgl_cyy_Click()
'On Error GoTo ero
Data1.RecordSource = "select count(qm) as 期末人数 from cyy where qm>=60 "
Data1.Refresh
MSFlexGrid1.Refresh
'ero:
End Sub
Private Sub jgl_english_Click()
'On Error GoTo ero
Data1.RecordSource = "select count(qm) as 期末人数 from english where qm>=60 "
Data1.Refresh
MSFlexGrid1.Refresh
'ero:
End Sub
Private Sub jgl_jk_Click()
Data1.RecordSource = "select count(qm) as 期末人数 from jk where qm>=60 "
Data1.Refresh
MSFlexGrid1.Refresh
End Sub
Private Sub jgl_mz_Click()
Data1.RecordSource = "select count(qm) as 期末人数 from mz where qm>=60 "
Data1.Refresh
MSFlexGrid1.Refresh
End Sub
Private Sub jgl_photoshop_Click()
Data1.RecordSource = "select count(qm) as 期末人数 from photoshop where qm>=60 "
Data1.Refresh
MSFlexGrid1.Refresh
End Sub
Private Sub jk_avg_Click()
On Error Resume Next
'Data1.Recordset.AddNew
Data1.RecordSource = "select int(20*avg(ps))/20
期中 ,int(20*avg(qm))/20 as 期未 from jk "
Data1.Recordset.Update
Data1.Refresh
MSFlexGrid1.Refresh
End Sub
Private Sub jk_Click()
On Error GoTo ero
Data1.RecordSource = jk
Data1.Refresh
ero:
jgl_cyy.Visible = False
jgl_english.Visible = False
jgl_jk.Visible = False
jgl_mz.Visible = False
jgl_photoshop.Visible = False
cyy_avg.Visible = False
english_avg.Visible = False
jk_avg.Visible = False
mz_avg.Visible = False
photoshop_avg.Visible = False
jgl_jk.Visible = True
jk_avg.Visible = True
Label1.Caption = jk.Caption as 平时 ,int(20*avg(qz))/20 as
End Sub
Private Sub mz_avg_Click()
On Error Resume Next
'Data1.Recordset.AddNew
Data1.RecordSource = "select int(20*avg(ps))/20 as 平时 ,int(20*avg(qz))/20 as 期中 ,int(20*avg(qm))/20 as 期未 from mz "
Data1.Recordset.Update
Data1.Refresh
MSFlexGrid1.Refresh
End Sub
Private Sub mz_Click()
On Error GoTo ero
Data1.RecordSource = mz
Data1.Refresh
ero:
jgl_cyy.Visible = False
jgl_english.Visible = False
jgl_jk.Visible = False
jgl_mz.Visible = False
jgl_photoshop.Visible = False
cyy_avg.Visible = False
english_avg.Visible = False
jk_avg.Visible = False
mz_avg.Visible = False
photoshop_avg.Visible = False
jgl_mz.Visible = True
mz_avg.Visible = True
Label1.Caption = mz.Caption
End Sub
Private Sub english_avg_Click()
On Error Resume Next
'Data1.Recordset.AddNew
Data1.RecordSource = "select int(20*avg(ps))/20 as 平时 ,int(20*avg(qz))/20 as 期中 ,int(20*avg(qm))/20 as 期未 from english "
Data1.Recordset.Update
Data1.Refresh
MSFlexGrid1.Refresh
End Sub
Private Sub photoshop_avg_Click()
On Error Resume Next
'Data1.Recordset.AddNew
Data1.RecordSource = "select int(20*avg(ps))/20 as 平时 ,int(20*avg(qz))/20 as 期中 ,int(20*avg(qm))/20 as 期未 from photoshop "
Data1.Recordset.Update
Data1.Refresh
MSFlexGrid1.Refresh
End Sub
Private Sub Photoshop_Click()
On Error GoTo ero
Data1.RecordSource = photoshop
Data1.Refresh
ero:
jgl_cyy.Visible = False
jgl_english.Visible = False
jgl_jk.Visible = False
jgl_mz.Visible = False
jgl_photoshop.Visible = False
cyy_avg.Visible = False
english_avg.Visible = False
jk_avg.Visible = False
mz_avg.Visible = False
photoshop_avg.Visible = False
photoshop_avg.Visible = True
jgl_photoshop.Visible = True
Label1.Caption = photoshop.Caption
End Sub
5. 活动记录界面设计
代码分析:
Dim b As Integer
Dim o As Integer
Dim y As Integer
Private Sub Command1_Click()
Dim a As String
Dim q As Integer
If isadtr = True Then
If y = 0 Then
If Text1.Text = "" Then
q = MsgBox("你要添加一条空记录吗?", vbYesNo) If q = 6 Then
b = Text4.Text
b = b + 1
a = Text1.Text
Open "d:\bjglxt\班级事件\cc.txt" For Random As #2 Open "d:\bjglxt\班级事件\dd.txt" For Random As #1 Put #1, b, a
Put #2, , b
Text4.Text = b
Close
End If
End If
If Text1.Text "" Then
b = Text4.Text
b = b + 1
a = Text1.Text
Open "d:\bjglxt\班级事件\cc.txt" For Random As #2
Open "d:\bjglxt\班级事件\dd.txt" For Random As #1 Put #1, b, a
Put #2, , b
Text4.Text = b
Close
End If
ElseIf y = 1 Then
MsgBox ("请你先清空在写入内容后点添加")
End If
Else
MsgBox "你不是管理员,请先登陆管理员", , "提示"
End If
End Sub
Private Sub Command2_Click()
y = 1
Dim c As Integer
Dim a As String
If o = 1 Then
If CInt(Text3.Text) > CInt(Text4.Text) Or CInt(Text3.Text) = 0 Then MsgBox ("没有此记录")
ElseIf CInt(Text3.Text) > 0 And CInt(Text3.Text)
Open "d:\bjglxt\班级事件\\dd.txt" For Random As #1
Get #1, c, a
If a = "" Then
MsgBox ("您当时添加的是一条空记录")
Text1.Text = a
ElseIf a "" Then
Text1.Text = a
End If
Close
End If
ElseIf o = 0 Then
MsgBox ("请输入正确的记录号(只限数字且不要超出记录条数)") End If
Timer1.Enabled = True
End Sub
Private Sub Command3_Click()
Text1.Text = ""
Text3.Text = ""
y = 0
End Sub
Private Sub Command4_Click()
End Sub
Private Sub Form_Load()
y = 0
o = 0
Dim c As Integer
Open "d:\bjglxt\班级事件\cc.txt" For Random As #2 Get #2, , c
Text4.Text = c
Close
End Sub
Private Sub Timer1_Timer()
If Text3.Text "" Then
o = 1
If Text3.Text >= "a" And Text3.Text
MsgBox ("请输入正确的记录号(只限数字)") Text3.Text = ""
End If
ElseIf Text3.Text = "" Then
o = 0
End If
End Sub
6:班级荣誉
:
代码分析:
Dim b As Integer
Dim o As Integer
Private Sub Command1_Click()
Dim a As String
Dim q As Integer
If isadtr = True Then
If y = 0 Then
If Text1.Text = "" Then
q = MsgBox("你要添加一条空记录吗?", vbYesNo) If q = 6 Then
b = Text4.Text
b = b + 1
a = Text1.Text
Open "d:\bjglxt\班级事件\cc.txt" For Random As #2 Open "d:\bjglxt\班级事件\dd.txt" For Random As #1 Put #1, b, a
Put #2, , b
Text4.Text = b
Close
End If
End If
If Text1.Text "" Then
b = Text4.Text
b = b + 1
a = Text1.Text
Open "d:\bjglxt\班级事件\cc.txt" For Random As #2
Open "d:\bjglxt\班级事件\dd.txt" For Random As #1
Put #1, b, a
Put #2, , b
Text4.Text = b
Close
End If
ElseIf y = 1 Then
MsgBox ("请你先清空在写入内容后点添加")
End If
Else
MsgBox "你不是管理员,请先登陆管理员", , "提示"
End If
End Sub
Private Sub Command2_Click()
y = 1
Dim c As Integer
If o = 1 Then
If CInt(Text3.Text) > CInt(Text4.Text) Or CInt(Text3.Text) = 0 Then
MsgBox ("没有此记录")
ElseIf CInt(Text3.Text) > 0 And CInt(Text3.Text)
Open "d:\bjglxt\班级事件\dd.txt" For Random As #1
Get #1, c, a
If a = "" Then
MsgBox ("您当时添加的是一条空记录")
Text1.Text = a
ElseIf a "" Then
Text1.Text = a
End If
Close
End If
ElseIf o = 0 Then
MsgBox ("请输入正确的记录号(只限数字且不要超出记录条数)")
End If
Timer1.Enabled = True
End Sub
Private Sub Command3_Click()
Text1.Text = ""
Text3.Text = ""
y = 0
End Sub
Private Sub Command4_Click()
End Sub
Private Sub Form_Load()
y = 0
o = 0
Dim c As Integer
Open "d:\bjglxt\班级事件\cc.txt" For Random As #2
Get #2, , c
Text4.Text = c
Close
End Sub
Private Sub Timer1_Timer()
If Text3.Text "" Then
o = 1
If Text3.Text >= "a" And Text3.Text
'Timer1.Enabled = False
MsgBox ("请输入正确的记录号(只限数字)")
Text3.Text = ""
End If
ElseIf Text3.Text = "" Then
o = 0
End If
End Sub
7:管理员界面设计
代码分析:
Private Sub CMD_OK_Click()
On Error GoTo ero
Data1.Refresh
ero:
End Sub
Private Sub CMD_RESET_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
End Sub
Private Sub Command1_Click()
Command4.Enabled = True
On Error GoTo ero1
Data1.Recordset.AddNew
ero1:
'MsgBox "不能添加数据", , "提示"
End Sub
Private Sub Command2_Click()
Command4.Enabled = True
On Error GoTo ero2
Data1.Recordset.Delete
ero2:
End Sub
Private Sub Command3_Click()
Command4.Enabled = True
On Error GoTo ero3
Data1.Recordset.Edit
ero3:
'MsgBox "不能编辑数据", , "提示"
End Sub
Private Sub Command4_Click()
On Error GoTo ero
Data1.Refresh
ero:
End Sub
Private Sub cmd_boot_Click()
On Error GoTo ero
Data1.Recordset.MoveLast
cmd_n.Enabled = False
cmd_f.Enabled = True
ero:
End Sub
Private Sub Cmd_f_Click()
If Data1.Recordset.BOF True Then
cmd_n.Enabled = True
On Error GoTo ero
Data1.Recordset.MovePrevious
ero:
Else
cmd_f.Enabled = False
cmd_n.Enabled = True
Data1.Recordset.MoveFirst
End If
End Sub
Private Sub Cmd_n_Click()
If Data1.Recordset.EOF True Then
cmd_f.Enabled = True
On Error GoTo ero
Data1.Recordset.MoveNext
ero:
Else
cmd_n.Enabled = False
cmd_f.Enabled = True
Data1.Recordset.MoveLast
End If
End Sub
Private Sub Cmd_top_Click()
On Error GoTo ero
Data1.Recordset.MoveFirst
cmd_f.Enabled = False
cmd_n.Enabled = True
ero:
End Sub
Private Sub cyy_Click()
cjgl_gly_cyy.Show
Unload Me
End Sub
Private Sub english_Click()
cjgl_gly_english.Show
Unload Me
End Sub
Private Sub jk_Click()
cjgl_gly_jk.Show
Unload Me
End Sub
Private Sub mz_Click()
cjgl_gly_mz.Show
Unload Me
End Sub
Private Sub Photoshop_Click()
cjgl_gly_photoshop.Show
Unload Me
End Sub
结束语
本软件的设计目的是为班级维护方面为班主任以及班级管理人员提供方便和帮助。通过这几个月的毕业设计,我学到很多以前没有学到的visual basic开发技术,在软件工程学上更是取得了很大的进步。经过大量的测试和试用,作者深信本软件达到了方便和实用的设计目的,并在软件界面和易用实用等方面有着独到之处。
虽然软件基本达到设计要求并且达到同行的先进水平,但由于作者水平有限,软件存在bug 也是在所难免的 ,您的意见和建议将极大的帮助我改进并完善软件。真诚的希望你的参与。
致谢
我首先感谢我的指导老师吕老师,在他严格的要求下我懂得了开发软件要有一种极其认真负责的态度。无论做什么事都要大胆的去想去做,这样会有好的创意,才能更有作为。
在这里我还要感谢我们宿舍的其它5个同学。他们和我共同生活了四年,在生活和学习上给了我很大的帮助。
参 考 文 献
1陈明 . 软件工程学教程 .科技出版社,2002
2 萨师煊,王珊 . 数据库系统概论 . 第三版 . 高等教育出版社,2000 3 飞思科技产品研发中心 . visual basic 6.0数据库应用开发 .电子工业出版社,2003
4 飞思科技产品研发中心 . visual basic 6.0开发者手册 . 电子工业出版社, 2002
5 申旻 . visual basic 6.0高手突破 . 清华大学出版社,2002,302 6 Steve Teixeira ,Xaviver Pacheco 著,龙劲松,王瑜,谢尚书译 . visual basic 6.0开发人员指南 . 机械工业出版社 .2003
7 乔林 .参透Delphi /Kylix . 中国铁道出版社 .2003
8 李维 .Inside 深入核心 VCL 架构剖析 . 电子工业出版社 .2004 9 张立科编写组 .Windows API 函数参考手册 .人民邮电出版社 .2002 严蔚敏,吴伟民 .数据结构 .第二版 .清华大学出版社 .2001 10 王珍玲 。实用软件工程教程 高等教育出版社 2004
11 (英)Ian Sommerville 机械工业出版社 2003
12 美Cantu,U. 王辉等译visual basic 6.0 从入门到精通 电子工业出版社 2003
13 李维 面向对象开发实践之路(visual basic 6.0版)(BORLAND资深顾问著名visual basic 6.0专家李维最新力作) 电子工业出版社 2005.4
14 秦斌 等 visual basic 6.0数据库系统开发与应用 中国水利水电出版社 2006 .1
15 刘艺 visual basic 6.0面向对象编程思想 机械工业出版社 2003
16.visual basic 程序设计第二版 谭浩强 清华大学出版社 2003
17. visual basic6.0 程序设计教程. 胡同森 赵剑锋等. 浙江科学技术出版社,2002.1
18. 软件工程学教程 (第二版) 周苏 王文 著 科学出版社 2003
19.Visual Basic 6.0 程序设计与开发技术 求是科技 人民邮电出版社 2004.9