随着信息技术在管理上越来越深入而广泛的应用,管理信
息系统的实施在技术上已逐步成熟。管理信息系统是一个不断
发展的新型学科,任何一个单位要生存要发展,要高效率地把
内部活动有机地组织起来,就必须建立与自身特点相适应的管
理信息系统。
本文介绍了在Visual Basic6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系
统的过程。通过
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
某一学校学生管理的不足,创建了一套行
之有效的计算机管理学生的
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。文章介绍了学生管理信息系
统的系统分析部分,包括可行性分析、业务流程分析等;系统
设计部分主要介绍了系统功能设计和数据库设计及代码设计;
系统实现部分说明了几个主要模块的算法, 本系统界面友
好,操作简单,比较实用。
管理信息系统、学生管理、Visual Basic应用。
I
Summary
With more and more widespread and profound
application of information technology in management,
the implement of management information system has
become mature in technology step by step. Managing
information system is a new subject. Enterprise needs
existence and development, so enterprise activities
should be organized efficiently and organically, which
means tightening up the enterprise management and
strengthening effective management of any resource
(staff, finance, property, etc.) internal the enterprise, and
also establishing a management information system
fitting in with its own characteristics.
This article introduces the detailed process of
exploring a management information system under the
environment of visual foxpro, utilizing “Top-Bottom”
overall plan and a strategy according to “Bottom-Top”
II
application and exploitation. That is to establish a set of
effective scheme for student management by computer,
through analyzing disadvantages of student management
by human resources. This article emphasizes on three
sections. The system analysis section of student
management information includes feasible analysis,
management function analysis.The system design section
mainly focuses on system function design and data base
design and data number design. And the system
realization section has provided several major function ,
together with the main windows and programs.
This economical and pragmatic system has explicit
interface, with simple operation.
[Keywords]
MISstudent managementvisual basic application
III
1.1 系统及需求分析 ............................................................................. 1
1.1.1 系统需求 .............................................................................. 1
1.1.2可行性分析 ............................................................................ 1
1.2系统设计的背景 ........................................... 5 1.3系统的功能简介 .............................................................................. 5
1.4系统开发的目标 .............................................................................. 7 2.1业务流程分析 .................................................................................. 8
2.2数据流程分析: ............................................................................ 10
2.3数据存储分析:实体联系图 ......................................................... 11
2.4功能分析:功能层次图 ................................................................. 13 3.1软件模块结构设计 ......................................................................... 14
3.2数据库设计 .................................................................................. 15
4.1系统登陆界面:........................................................................... 20
4.2系统主界面: .............................................................................. 23
4.3用户管理模块:........................................................................... 35
4.4学生缴费管理模块: ................................................................... 40
5.1系统开发环境:........................................ 55 5.2系统测试: ................................................. 55 5.3 系统运行与维护: ..................................... 58 5.4系统的转换方案: .................................... 59
IV
本学生信息管理系统可以说是一个综合性的学校学生管理系统,这它
集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统、学生
缴费管理系统等多种功能,因而具有较强的实用性和先进性。
1.1.1 系统需求
通过调查,要求系统需要有以下功能:
? 由于操作人员的计算机知识普遍较差,要求有良好的人机界面;
? 由于该系统的使用对象多,要求有较好的权限管理;
? 原始数据修改简单方便,支持多条件修改
? 方便的数据查询,支持多条件查询;
? 在相应的权限下,删除数据方便简单,数据稳定性好;
? 数据计算自动完成,尽量减少人工干预; 1.1.2可行性分析
由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较
强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库
管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的
指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因
1
此完全可以实现。
本系统的设计是在Windows 98中文版操作系统环境下,使用Visual Basic 6.0中文版开发成功的。数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品
较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,
应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如
下:
Visual Basic语言
Visual Basic是一种可视化的、面对对象和条用事件驱动方式的结构
化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单
易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软
件系统。
总的来说,Visual Basic具有以下特点:
可视化编程:
用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户
界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才
能观察。如果对界面的效果不满意,还要回到程序中修改。有时候,这种
编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起
来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的
2
屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,
并设置这些图形对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序
设计的效率。
面向对象的程序设计
4.0版以后的Visual Basic支持面向对象的程序设计,但它与一般的面
向对象的程序设计语言(C++)不完全相同。在一般的面向对象程序设计语
言中,对象由程序代码和数据组成,是抽象的概念;而Visual Basic则是
应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象
时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,
Visual Basic自动生成对象的程序代码并封装起来。每个对象以图形方式
显示在界面上,都是可视的。
结构化程序设计语言
Visual Basic是在BASIC语言的基础上发展起来的,具有高级程序设
计语言的语句结构,接近于自然语言和人类的逻辑思维方式。Visual Basic
语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时
具有功能强大且使用灵活的调试器和编译器。
Visual Basic是解释型语言,在输入代码的同时,解释系统将高级语言
分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。在
设计Visual Basic程序的过程中,随时可以运行程序,而在整个程序设计
好之后,可以编译生成可执行文件(.EXE),脱离Visual Basic环境,直接
在Windows环境下运行。
事件驱动编程机制
Visual Basic通过事件来执行对象的操作。一个对象可能会产生多个事
3
件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,
当用户单击该按钮时,将产生一个“单击“(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。
在用Visual Basic设计大型应用软件时,不必建立具有明显开始和结
束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不
同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由
事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,
提高效率。
访问数据库
Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理
窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库,如dBASE,FoxPro,Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。
Visual Basic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle
等。在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据
库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/
服务器(client/server)方案。
动态数据交换(DDE)
利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序
建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。
4
Visual Basic提供了动态数据交换的编程技术,可以在应用程序中与其他
Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。
对象的链接与嵌入(OLE)
对象的链接与嵌入(OLE)将每个应用程序都看做是一个对象(object),将不同的对象链接(link)起来,再嵌入(embed)某个应用程序中,从而可以
得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。
OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,
将每个应用程序看做是一个对象进行链接和嵌入,是一种应用程序一体化
的技术。利用OLE技术,可以方便地建立复合式文档(compound document),这种文档由来自多个不同应用程序的对象组成,文档中的每
个对象都与原来的应用程序相联系,并可执行与原来应用程序完全相同的
操作。
动态链接库(DLL)
Visual Basic是一种高级程序设计语言,不具备低级语言的功能,对
访问机器硬件的操作不太容易实现。但它可以通过动态链接库技术将
C/C++或汇编语言编写的程序加入到Visual Basic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可
以调用Windows应用程序接口(API)函数,实现SDK所具有的功能。
本系统主要可以实现以下的管理功能:班级管理、学生档案管理、学
生交费管理、课程管理、成绩管理等等。
1.3.1 项目规划
学生信息管理系统是一个典型的数据库应用程序,由班级管理、学生
5
档案管理、学生交费管理、课程管理、成绩管理等模块组成,特规划如下:
1.3.2系统管理模块(CTRL+O)
该模块的主要任务是维护系统的正常运行和安全性设置,包括添加用户(快捷键:CTRL+A)、修改密码(快捷键:CTRL+B)、重新登录(快捷键:CTRL+F1)等等。
1.3.3班级管理模块(CTRL+P):
该模块的功能是实现对全校班级的管理工作,包括:班级游览、班级
添加、班级查询等,这三个功能模块各自独立,完成学校的全部班级的管
理。
1.3.4学生档案管理模块(CTRL+T):
该模块的主要功能是实现对学生的个人信息的管理工作,包括档案添
加、档案浏览、档案查询等功能,从而方便学校管理部门对学校的基本情
况的快速查询和了解。
1.3.5课程管理模块(CTRL+R):
该模块对各个班级的课程进行设置,并可在其中设置各门课程的教材
选用情况,方便了学校教材管理部门和教务处的教学管理人员的工作。该
模块包括基本课程设计和班级课程设置两个模块。
6
1.3.6成绩管理模块(CTRL+F):
学校的成绩管理工作是检验学生学习情况的一个主要手段,本模块包
括考试类型设置,共有期中考试和期未考试两种类型,还设置了成绩添加、
成绩游览、成绩查询等功能模块。
出于本系统是学校学生管理的一个综合性的系统,本系统的设计目标
将最终定位于完成以上所述的系统主要业务的基本模型上。
7
2.
班级管理业务流程图:
输出
教务处 输入计算机
班学
级 生
班级
班主任 教务处
档案管理业务流程图:
输出
教务处 输入计算机
学档
生 案
档案 班主任 教务处
8
课程管理业务流程图:
输出
教务处 输入计算机
课学
程 生
课程 教师 教务处
成绩管理业务流程图:
输出
教务处 输入计算机
成学
绩 生
教师
教师 教务处
输出
教务处 输入计算机
班学
级 生
班级
班主任 教务处
9
2.2.1数据流程图:
由于本系统的数据模块较多,下面仅以学生成绩管理模块为例来进行编
制。
学学籍学生情况 生 管理成教务处 部门 查询 绩学生 管 统计分析 教师 理 学生成绩 系教师 教师 统
学生成绩管理系统0层数据流程图
10
1.0 管理 D1 学生 学生管理 部门
2.0 D2 课程 课程管理 教务
处
3.0 教师 查询成绩管理
者
成绩 D3
4.0
管理统计分析 者
学生成绩管理系统1层数据流程图
1、数据模型设计。首先来做出学生成绩管理系统的E-R图,分析这个问题的实体,从系统分析可以知道,学生的成绩是由任课教师按照课程
给出的,学生、课程、教师组成了这个系统的三个实体。
2、再分析三个实体之间的联系。首先,这三个实体不是一个统一体,
学生成绩与教师没有内在联系,教师必须通过课程实体才能与学生建立联
系,因而先不考虑。课程与学生这两个实体是多对多联系;一位学生要学
习多门课程,一门课程有多位学生共同学习。而学习成绩是这两个实体“学
11
生”和“成绩”共有的属性,应填在二者的联系“学习”边。因为成绩既
不是学生独有的,也不是课程独有的;“学生甲70分”或“英语70分”是不完全的,说“学生甲英语70分”才是正确的,因为70分是学生甲和英语课二者共有的。这个E-R图可画成下图。
m n
学生 课程 学习
成绩
学生成绩管理系统中学生与课程的E-R图
教师与课程这两个实体之间,是一对多联系;一位教师可以都多门课
程,而一门课程对于学生成绩来说只能有一位教师(英语、高等数学有多位教师教,但对某个固定的学生来说只能有一位教师)。其E-R图,如下所示。
l n 教学 教师 课程
12
教师与课程的E-R图组合到一起,得到最后的E-R图,有了E-R
图,就可以设计数据库。下图为数据模型图。
实体模型 数据模型
学生 教师 教师
m l
数据库 课程 学生 学习 学习
n m 学习 课程
学生信息管理系统
登录
成打系班档课 绩印统级案程
管报管管管管
理 理 理 理 理 表
基班基学学学
添修复班添班档档档本级本生生生
加改新级加级案案案课课学缴缴缴
用密登浏班查添浏查程程费费费费
户 码 录 览 级 询 加 览 询 设设设浏添查
置 置 置 览 加 询
13
3.1.1系统方案确定
通过对系统的调研与分析,系统主要应完成的功能有:班级管理、
学生成绩管理、学生交费管理、课程管理、成绩管理、系统管理等功能。 3.1.2软件结构设计
本系统在执行时,先根据不同的操作人员的需要来进行相应的模
块,然后可以输入数据或者进行其它的查询或浏览等操作;总体来说,本
系统属于一个事务型管理系统。
接受数
据
处理中
心
班级管档案管交费管课程管成绩管
理 理 理 理 理
打印报
表 14
数据库采用了Microsoft推出的Access数据库,这是微软集成到Office
中的一个桌面数
据库,能够快速方便的和Office的其他套件综合使用。由于Access具有显著的简易性和有效性,大量的桌面数据库系统都采用Access作为后台数据库。使用Access的好处还在于,如果你的系统扩展到Client/Server模式的时候,可以使用Microsoft的数据库服务器软件SQL Server,此时,程序只需要简单的修改一下链接(ADO的数据源)就可以,这样,为程
序的平滑扩展提供了非常有力的条件。
3.2.1 本系统中所涉及到的主要实体共有九个数据表: allkecheng表:{课程名称,教材}
cj表:{学号,学期,类型,课程名称,分数}
class表:{年级,班级,教室,年制,专业,班主任,备注} classkecheng表:{年级,专业,年制,学期,课程名称} jf表:{学号,学期,交费,欠费,日期,操作员}
kaoshileixing表:{类型}
use表:{username,password,admin,readonly,qx1,qx2,qx3,qx4}
xj表:{学号,姓名,性别,班级,出生年月,家庭住址,邮政编码,联
系电话,入学时间,备注}
suefei表:{年级,专业,年制,学期,学费}
15
3.2.2 各表的物理结构如下:
allkecheng表:
字段名称 类型 宽度 小数位 课程名称 文本 20 教材 文本 30 Cj表:
字段名称 类型 宽度 小数位 学号 文本 10 学期 文本 50 类型 文本 16 课程名称 文本 20 分数 单精度型数字 自动
Class表:
字段名称 类型 宽度 小数位 年级 文本 16 班级 文本 20 教室 文本 5 年制 文本 8 专业 文本 16 班主任 文本 8 备注 备注
16
Classkecheng表:
字段名称 类型 宽度 小数位 年级 文本 16 专业 文本 12 年制 文本 8 学期 文本 50 课程名称 文本 20
Jf表:
字段名称 类型 宽度 小数位 学号 文本 5 学期 文本 50 交费 货币 自动 欠费 货币 自动 日期 日期/时间 操作员 文本 10
Kaosileixing表:
字段名称 类型 宽度 小数位 类型 文本 10
17
Use表:
字段名称 类型 宽度 小数位 username 文本 20 password 文本 20 Admin 文本 2 Readonly 文本 2 Qx1 文本 2 Qx2 文本 2 Qx3 文本 2 Qx4 文本 2
xj表:
字段名称 类型 宽度 小数位 学号 文本 9 姓名 文本 8 性别 文本 2 班级 文本 10 出生年月 日期/时间 家庭住址 文本 30 邮政编码 数字(长整型) 联系电话 数字(长整型) 入学时间 日期/时间 备注 备注
18
xuefei表:
字段名称 类型 宽度 小数位 年级 文本 16 专业 文本 50 年制 文本 20 学期 文本 40 学费 货币 自动
19
4.系统的功能
本部分主要内容为本系统的运行界面以及主要界面的源代码。
本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和
密码保存在USE表中,本系统根据不同的用户而设置了不同的权限,可以
用909;909为用户名和密码来登陆本系统。
Private Sub Command1_Click()
Dim mrc As ADODB.Recordset
txtsql = "select username from use where username='" &
Trim(Text1.Text) & "'"
Set mrc = ExecuteSQL(txtsql)
If mrc.EOF = True Then
MsgBox " 用户名错误!", vbExclamation + vbOKOnly, "警告"
20
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Exit Sub
End If
username = mrc.Fields(0)
txtsql2 = "select username from use where password='" & Trim(Text2.Text) & "'"
Set mrc = ExecuteSQL(txtsql2)
If mrc.EOF = True Then
MsgBox " 密码错误!", vbExclamation + vbOKOnly, "警告"
Text2.SetFocus
Text2.SelStart = 0
Text2.SelLength = Len(Text2.Text)
Exit Sub
End If
txtsql = "select username from use where username='" & Trim(Text1.Text) & "'and password='" & Trim(Text2.Text) & "'" Set mrc = ExecuteSQL(txtsql)
If mrc.EOF = True Then
MsgBox "用户名称和密码不匹配!", vbExclamation + vbOKOnly, "
警告"
Exit Sub
End If
MDIForm1.Show
21
frmcpass.Text1.Text = Text1.Text Unload Me
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then
Text2.SetFocus
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then
Command1.SetFocus
End If
End Sub
22
本模块是本系统的应用界面,在本界面上集成了本系统的所有功能,
共有6个功能菜单和19个子菜单(功能模块),从而实现了本系统从班级管理、档案管理、缴费管理、课程管理、成绩管理等系统的具体功能,同
时,在系统管理模块中可以完成对本系统的安全性管理。
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As
Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As
Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As
Long
Dim find1 As Integer
Dim liulan1 As Integer
23
Private Sub add_Click()
qxstr = Executeqx(2)
If qxstr = "false" Or qxstr = "readonly" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Form1.Show
modi = False
Form1.ZOrder (0)
End Sub
Private Sub cjadd_Click()
fenshumodi = False
qxstr = Executeqx(4)
If qxstr = "false" Or qxstr = "readonly" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
frmcj2.Show
frmcj2.ZOrder 0
24
End Sub
Private Sub cjbrowse_Click()
qxstr = Executeqx(4)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
frmcj1.Show
frmcj1.ZOrder 0
End Sub
Private Sub claasfind_Click()
qxstr = Executeqx(2)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Form4.Show
Form4.ZOrder (0)
i = SetWindowPos(Form4.hwnd, -1, 0, 0, 0, 0, 3)
25
End Sub
Private Sub classapp_Click()
qxstr = Executeqx(2)
If qxstr = "false" Or qxstr = "readonly" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Formclass1.Show
classmodi = False
Formclass1.classload
Formclass1.ZOrder (0)
End Sub
Public Sub clabrowse()
txtsql = "select * from class"
Formclass2.ZOrder (0)
Formclass2.Caption = "浏览班级设置"
Formclass2.classshowtitle
Formclass2.classshowdata
End Sub
26
Private Sub classbrowse_Click()
qxstr = Executeqx(2)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Formclass2.Show
End Sub
Private Sub classfind_Click()
qxstr = Executeqx(2)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Formclass3.Show
Formclass3.ZOrder (0)
End Sub
Private Sub find_Click()
End Sub
27
Private Sub classkecheng_Click()
qxstr = Executeqx(4)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Frmclasskecheng1.Show
Frmclasskecheng1.ZOrder
End Sub
Private Sub denglu2_Click()
Frmdenlu.Show
Unload Me
End Sub
Private Sub jiaofeiadd_Click()
qxstr = Executeqx(3)
If qxstr = "false" Or qxstr = "readonly" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!
28
", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Frmjf1.Show
Frmjf1.ZOrder 0
End Sub
Private Sub jiaofeibrowse_Click()
qxstr = Executeqx(3)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!
", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
frmjf2.Show
frmjf2.ZOrder 0
End Sub
Private Sub jiaofeifind_Click()
qxstr = Executeqx(3)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!
", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
29
Frmjf4.Show
End Sub
Private Sub jibenkecheng_Click()
qxstr = Executeqx(4)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
frmjiben.Show
frmjiben.ZOrder 0
End Sub
Private Sub leixing_Click()
qxstr = Executeqx(4)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Frmleixing.Show
Frmleixing.ZOrder 0
30
End Sub
Private Sub liulan_Click()
qxstr = Executeqx(2)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
find = False
Form3.Show
End Sub
Private Sub MDIForm_Load()
'username = "0001"
DataEnv1.Connection1.ConnectionString = connstring
StatusBar1.Panels(2).Text = Now
StatusBar1.Panels(3).Text = "当前操作员: " & username
Dim aa As String
Select Case Executeqx(1)
Case "admin"
aa = "超级管理员" Case "readonly"
aa = "只读管理员" Case Else
31
aa = "普通管理员"
End Select
StatusBar1.Panels(4).Text = "状态: " & aa
End Sub
Private Sub useradd_Click()
qxstr = Executeqx(1)
If qxstr = "false" Or qxstr = "readonly" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!
", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
frmuser1.Show
frmuser1.ZOrder 0
End Sub
Private Sub usermodi_Click()
qxstr = Executeqx(1)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!
", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
frmcpass.Show
32
End Sub
Private Sub xuefeiadd_Click()
qxstr = Executeqx(3)
If qxstr = "false" Or qxstr = "readonly" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!
", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
xuefeimodi = False
Dim i As Integer
For i = 0 To 3
frmxuefei1.Combo1(i).Enabled = True
Next i
Me.Caption = "添加班级设置"
For i = 0 To 3
frmxuefei1.Combo1(i).Text = ""
Next i
frmxuefei1.Text1.Text = ""
frmxuefei1.Show
frmxuefei1.ZOrder 0
End Sub
Public Sub xfbrowse()
txtsql = "select * from xuefei order by 学期 desc, 年级 desc,专
33
业 desc"
Frmxuefei2.ZOrder (0)
Frmxuefei2.Caption = "浏览学费设置"
Frmxuefei2.xuefeishowtitle
Frmxuefei2.xuefeishowdata
End Sub
Private Sub xuefeibrowse_Click()
qxstr = Executeqx(3)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!
", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Frmxuefei2.Show
End Sub
Private Sub xuefeifind_Click()
qxstr = Executeqx(3)
If qxstr = "false" Then
ss = MsgBox("对不起,你没有管理本功能的权限,请与管理员联系!
", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Frmxuefei3.Show
34
Frmxuefei3.ZOrder (0)
i = SetWindowPos(Frmxuefei3.hwnd, -1, 0, 0, 0, 0, 3)
End Sub
本模块是本系统的安全性设置模块,根据学校不同部门以及不同使用
人员对本系统的要求和需要,从而实行了分级管理,对用户的权限和类别
进行了分类管理。
Private Sub Command1_Click()
If Trim(Text1(0).Text) = "" Then
MsgBox "用户名不能为空!", vbExclamation + vbOKOnly, "警告"
35
Text1(0).SetFocus
Exit Sub
End If
If Trim(Text1(1).Text) = "" Then
MsgBox "密码不能为空!", vbExclamation + vbOKOnly, "警告"
Text1(1).SetFocus
Exit Sub
End If
If Trim(Text1(2).Text) = "" Then
MsgBox "确认密码不能为空!", vbExclamation + vbOKOnly, "警告"
Text1(2).SetFocus
Exit Sub
End If
If Trim(Text1(1).Text) <> Trim(Text1(2).Text) Then
MsgBox "确认密码不正确!", vbExclamation + vbOKOnly, "警告"
Text1(2).SetFocus
Exit Sub
End If
Dim aa As Integer
aa = 0
If Option1(2).Value = True Then
For i = 0 To 3
If Check1(i).Value = 1 Then
aa = 1
Exit For
36
End If
Next i
If aa = 0 Then
MsgBox " 普通用户至少要有一项权限!", vbExclamation + vbOKOnly,
"警告" Exit Sub
End If
End If
Dim mrc As ADODB.Recordset
txtsql = "select * from use where username='" & Trim(Text1(0).Text) & "'"
Set mrc = ExecuteSQL(txtsql)
If mrc.EOF = False Then
MsgBox " 已存在该用户!", vbExclamation + vbOKOnly, "警告"
Text1(0).SetFocus
Text1(0).SelStart = 0
Text1(0).SelLength = Len(Text1(0).Text)
Exit Sub
End If
txtsql = "select * from use"
Set mrc = ExecuteSQL(txtsql)
mrc.AddNew
mrc.Fields(0) = Trim(Text1(0).Text)
mrc.Fields(1) = Trim(Text1(1).Text)
37
For i = 0 To 2
If Option1(i).Value = True Then
Select Case i
Case 0
mrc.Fields("admin") = "y"
Case 1
mrc.Fields("readonly") = "y"
Case 2
For j = 0 To 3
If Check1(j).Value = 1 Then
Select Case j
Case 0
mrc.Fields("qx1") = "y"
Case 1
mrc.Fields("qx2") = "y"
Case 2
mrc.Fields("qx3") = "y"
Case 3
mrc.Fields("qx4") = "y"
End Select
End If
Next j
End Select
38
End If
Next i
mrc.Update
MsgBox " 用户添加成功!", vbExclamation + vbOKOnly, "警告"
Text1(0).Text = ""
Text1(1).Text = ""
Text1(2).Text = ""
End Sub
Private Sub Command2_Click() Unload Me
End Sub
Private Sub Form_Load()
Option1(2).Value = True End Sub
Private Sub Form_Resize() Text1(0).SetFocus
End Sub
Private Sub Option1_Click(Index As Integer)
If Index <> 2 Then
39
For i = 0 To 3
Check1(i).Enabled = False
Next i
Else
For i = 0 To 3
Check1(i).Enabled = True
Next i
End If
End Sub
因为本系统中有些功能模块具有相似之处,因此在本文只用此模块进
行一个简单的说明。其它的相似模块的代码可能参阅本模块的设计思路。
Public printstr As String
40
Private Sub Command1_Click()
Dim dbSource As Database
Set dbSource = OpenDatabase("xs.mdb")
dbSource.Execute ("SELECT * INto 班级一览表 IN '学生管理一览
表.xls' 'EXCEL 5.0;' FROM class")
z = MsgBox("成功!", vbOKOnly, "查询")
End Sub
Public Sub classshowtitle()
Dim i As Integer
MSF1.Clear
With MSF1
.Cols = 8
.TextMatrix(0, 1) = "年级"
.TextMatrix(0, 2) = "班级"
.TextMatrix(0, 3) = "教室"
.TextMatrix(0, 4) = "年制"
.TextMatrix(0, 5) = "专业"
.TextMatrix(0, 6) = "班主任"
.TextMatrix(0, 7) = "备注"
.ColWidth(0) = 100
.ColWidth(1) = 1300
.ColWidth(2) = 1200
.ColWidth(3) = 800
41
.ColWidth(4) = 800
.ColWidth(5) = 800
.ColWidth(6) = 800
.ColWidth(7) = 5000
.FixedRows = 1
For i = 1 To 7
.ColAlignment(i) = 0
Next i
.FillStyle = flexFillSingle
.Col = 0
.Row = 0
.RowSel = 1
.ColSel = .Cols - 1
.CellAlignment = 4
.Row = 1
End With
End Sub
Public Sub classshowdata() Dim j As Integer
Dim i As Integer
Dim mrc1 As ADODB.Recordset
42
Set mrc1 = ExecuteSQL(Trim(txtsql))
If mrc1.EOF = False Then
mrc1.MoveFirst
With MSF1
.Rows = 1
Do While Not mrc1.EOF
.Rows = .Rows + 1
For i = 1 To mrc1.Fields.Count
.TextMatrix(.Rows - 1, i) = mrc1.Fields(i - 1)
Next i
mrc1.MoveNext
Loop
mrc1.Close
End With
Else
If classfind = True Then
Formclass2.Hide
Formclass3.Show
zzz = MsgBox("对不起,没有此班级的档案记录!", vbOKOnly, "
查询")
Formclass3.ZOrder (0)
Formclass3.Text1(0).SetFocus
End If
43
End If
End Sub
Private Sub cmddel_Click()
qxstr = Executeqx(2)
If qxstr = "readonly" Then
ss = MsgBox("对不起,你是只读用户不能删除记录,请与
管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
Dim mrc As ADODB.Recordset
Dim msgtext As String
Dim intcount As Integer
If Trim(Me.MSF1.TextMatrix(MSF1.Row, 1)) = ""
Then
sssss = MsgBox("你还没有选择记录!", vbOKOnly + vbExclamation, "警告")
Exit Sub
End If
If MsgBox("确定要删除班级为 " & Trim(Me.MSF1.TextMatrix(MSF1.Row, 2)) & " 的记录吗?" & Chr(13) & Chr(10) & "继续会导致该班级在成绩和学费记录的数据丢失,继续吗?
44
", vbOKCancel + vbExclamation, "警告") = vbOK Then
txtsql = "delete * from xj where 班级='" & Trim(Me.MSF1.TextMatrix(MSF1.Row, 2)) & "'"
Set mrc = ExecuteSQL(txtsql)
txtsql = "delete * from jf where 学号 in (select from xj where 班级='" & Trim(Me.MSF1.TextMatrix(MSF1.Row, 2)) &
"')"
Set mrc = ExecuteSQL(txtsql) '删除在交费表中的所有该班级的记录
txtsql = "delete * from cj where 学号 in (select from xj where 班级='" & Trim(Me.MSF1.TextMatrix(MSF1.Row, 2)) & "')"
Set mrc = ExecuteSQL(txtsql) '删除在成绩表中的所有该班级的记录
txtsql = "delete * from class where 班级='" & Trim(Me.MSF1.TextMatrix(MSF1.Row, 2)) & "'"
Set mrc = ExecuteSQL(txtsql) '删除该班级的记录
End If
zxh = MsgBox("记录成功删除!", vbOKOnly, "查询")
txtsql = "select* from class "
classshowtitle
classshowdata
Call Form_Activate
End Sub
45
Private Sub cmdfind_Click()
Formclass3.Show
End Sub
Private Sub cmdmodi_Click()
If Trim(Me.MSF1.TextMatrix(MSF1.Row, 1)) = "" Then
sssss = MsgBox("你还没有选择记录!", vbOKOnly +
vbExclamation, "警告")
Exit Sub
Else
qxstr = Executeqx(2)
If qxstr = "readonly" Then
ss = MsgBox("对不起,你是只读用户不能修改记录,请与管理员联系!", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
classmodi = True
Formclass1.Show
Formclass1.classload
Formclass1.ZOrder 0
Call Form_Activate
End If
End Sub
46
Private Sub cmdprint_Click()
If Trim(printstr) = "" Then
sssss = MsgBox("没有当前记录!", vbOKOnly + vbExclamation, "
警告")
Exit Sub
End If
If DataEnv1.rsCommand2.State = adStateOpen Then
DataEnv1.rsCommand2.Close
End If
DataEnv1.rsCommand2.Open printstr
If DataEnv1.rsCommand2.EOF = True Then
sssss = MsgBox("没有当前记录!", vbOKOnly +
vbExclamation, "警告")
Exit Sub
End If
DataReportclass2.Show 1
End Sub
Private Sub cmdprintall_Click()
If DataEnv1.rsCommand2.State = adStateOpen Then
DataEnv1.rsCommand2.Close
End If
DataEnv1.rsCommand2.Open ("select * from class")
If DataEnv1.rsCommand2.EOF = True Then
sssss = MsgBox("没有当前记录!", vbOKOnly +
47
vbExclamation, "警告")
Exit Sub
End If
DataReportclass2.Show 1 End Sub
Private Sub Form_Activate() If classfind = True Then
Formclass3.ZOrder 0
End If
If classfind = True Then
Exit Sub
ElseIf classmodi = True Then
classshowdata
' TreeView1_DblClick
' classmodi = False
Else
classtree
End If
'If classfind = True Then ' Exit Sub
'Else
' MDIForm1.clabrowse
48
'End If
End Sub
Public Sub classtree()
TreeView1.Nodes.Clear
Dim nodex As Node
Dim mrc As ADODB.Recordset
Dim mrc1 As ADODB.Recordset
Dim str As String
Dim a As String
a = "年级" TreeView1.LineStyle = tvwRootLines
str = "select distinct 年级 from class order by 年级"
Set mrc = ExecuteSQL(str)
str = "select distinct 年级,班级 from class order by 年级,班级"
Set mrc1 = ExecuteSQL(str)
'mrc.MoveFirst
Do Until mrc.EOF
mrc1.MoveFirst
Set nodex = TreeView1.Nodes.add(, , a, mrc.Fields(0), 1, 1)
Do While Not mrc1.EOF
If mrc1.Fields(0) = mrc.Fields(0) Then
Set nodex = TreeView1.Nodes.add(a, tvwChild, , mrc1.Fields(1),
49
2, 2)
End If
mrc1.MoveNext
Loop
a = a & "1"
mrc.MoveNext
Loop
mrc1.Close
mrc.Close
Set mrc = Nothing
Set mrc1 = Nothing
End Sub
Private Sub TreeView1_DblClick()
On Error GoTo ss
If TreeView1.SelectedItem.Index = 0 Then
MSF1.Clear
Exit Sub
End If
txtsql = TreeView1.Nodes.Item(TreeView1.SelectedItem.Index)
txtsql = " select * from class where 年级='" & Trim(txtsql) &
"' or 班级='" & Trim(txtsql) & "' order by 年级 ,班级 "
printstr = txtsql
Me.Caption = "浏览班级"
50
Me.classshowtitle
Me.classshowdata
Exit Sub
ss:
MSF1.Clear
End Sub
51
5.调试
6.全文总结
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方
面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,
该系统必然会存在一些缺陷和不足。因为对学生管理的整个流程不够熟
悉,在需求分析时未能做到完全满足用户的需求。虽然网络在学生管理系
统中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的
限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些
不必要的数据损失。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、
数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管
理系统所必需的。相信本学生管理系统是一套学校在日常管理中必不可少
的管理软件,通过开发这个系统,我掌握了的项本过程,了解了的基本知
识巩固了我对Visual Basic 6.0的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,
52
以及与同学们之间相互帮助的精神。
致 谢
在论文即将完成之际,回顾紧张但又充实的学习班和开发过程,本人
在此向所有关心我的及帮助我的老师和同学们致以最真诚的感谢。
在本次毕业设计中,我从指导老师--------刘老师,身上学到了很多东
西。他认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收
益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到
很大的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此感谢
他耐心的辅导。在撰写论文阶段,刘老师几次审阅我们的论文,提出了许多宝贵意见,没有她的指导,我们就不能较好的完成课题设计的任务。
另外,我还要感谢在这几年来对我有所教导的老师,他们孜孜不倦
的教诲不但让我学到了很多知识,而且让我掌握了学习的方法,
53
更教会了我做人处事的道理,在此表示感谢。同时,在系统开发过程中还有同组的同学也给了我不少帮助,这里一并表示感谢。
参考文献
[1] 周佩德.《数据库原理及应用》.电子工业出版社 [2] 刘炳文等,VISUAL BASIC程序设计——数据库篇,1999 [3] 李光明.《Visual Basic 6.0编程实例大制作》.冶金工业出版社 [4] 刘炳文,精通VISUAL BASIC 6.0入门与提高,人民邮电出版社 [5] 黄淼云.《VB6.0办公自动化编程》.国防工业出版社 [6] 王要武,管理系统,电子工业出版社,2003
[7] 李红等编著,管理信息系统开发与应用,电子工业出版社,2003
[8] 周之英缟著,现代软件工程,科学出版社,2003
[9] 康博工作室,张红军,王红等缟著《Visual Basic 6.0中文版高级
应用与开发指南》,人民邮电出版社,2001年4月第一版
[10] 林立军,程斌,翁迪恩缟著《Visual Basic 6.0数据库开发指南》,
西安电子科技大学出版社,2000年2月第一版
[11] 张宏林,孔艳,王哲等编著。《按实例学Visual Basic 6.0>北京,
人民邮电出版社,2000
54
[12] 宋伟,吴建国等编著《中文Visual Basic 6.0编程基础》,北京,
清华大学出版社
[13] [美]Jeffrey P.McManus著赵学锁,龚波,李志,曹天伟等译《Visual
Basic 6.0数据库存访问技术》,2000年3月第一版
55