VB程序设计学生信息管理系统说明
广西城市职业学院 毕业统考
2011学年第二学期08级毕业 广西城市职业学院2010—
统考VB程序设计统考作品
《VB程序设计》课程设计说明书
——学生信息管理系统
专 业: 08计算机应用与技术
班 级: 08计应2班
学 号: xxxxxxxxxxxxx班
姓 名: xxx
日 期: 2011-03-20
广西城市职业学院
毕业统考
第1章 系统概述
1.系统概述
本学生信息管理系统可以说是一个综合性的学校学生管理系统,这它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统、系统等多种功能,因而具有较强的实用性和先进性。
1.1 系统及需求分析
1.1.1 系统需求
通过调查,要求系统需要有以下功能:
? 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; ? 由于该系统的使用对象多,要求有较好的权限管理;
? 原始数据修改简单方便,支持多条件修改
? 方便的数据查询,支持多条件查询;
? 在相应的权限下,删除数据方便简单,数据稳定性好;
? 数据计算自动完成,尽量减少人工干预;
1.1.2可行性分析
(1)对象运用可行性
由于本系统管理的对象单一,都是在校学生,且每个数据
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是PIII以上的机器,在存储量、速度方面都能满足数据库运行的要求。
(2)社会与经济可行性
利用学生信息管理系统实现了无纸化办公,提高效率的同时还保护了环境。本来大量的计算、数据统计工作需要几天、甚至一个月完成的工作,
广西城市职业学院
毕业统考
可以在几个小时,最多几天内完成,大量节省了人力资本。学生信息管理系统同时也给老师和学生带来了极大的方便。老师可以将课程安排,第一时间录入到系统。学生也可以第一时间登录到该系统,查询自己本学期课程安排和考试方式,
大大提高了时间成本。
1.2系统设计的背景
本系统的设计是在Windows 2000中文版操作系统环境下,使用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界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求
广西城市职业学院
毕业统考
的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。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通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。例如,命令按钮是一个对象,
广西城市职业学院
毕业统考
当用户单击该按钮时,将产生一个“单击“(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。
在用Visual Basic设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。
访问数据库
Visual Basic具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理Microsoft Access格式的数据库,并提供了强大的数据存储和检索功能。同时,Visual Basic还能直接编辑和访问其他外部数据库,如dBASE,
Paradox等,这些数据库格式都可以用Visual Basic编辑和处理。 FoxPro,
Visual Basic提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQL Server,Oracle等。在应用程序中,可以使用结构化查询语言SQL数据
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。
动态数据交换(DDE)
利用动态数据交换(Dynamic Data Exchange)技术,可以把一种应用程序中的数据动态地链接到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。当原始数据变化时,可以自动更新链接的数据。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.3.1 项目规划
学生信息管理系统是一个典型的数据库应用程序,由班级管理、学生档案管理、课程管理、成绩管理等模块组成,特规划如下
:
广西城市职业学院
毕业统考
1.3.2系统管理模块(CTRL+O)
该模块的主要任务是维护系统的正常运行和安全性设置,包括添加用户(快捷键:CTRL+A)、重新登录(快捷键:CTRL+F1)。
1.3.3班级管理模块(CTRL+P):
该模块的功能是实现对全校班级的管理工作,包括:班级游览、班级添加、班级查询等,这三个功能模块各自独立,完成学校的全部班级的管理。
1.3.4学生档案管理模块(CTRL+T):
该模块的主要功能是实现对学生的个人信息的管理工作,包括档案添加、档案浏览、档案查询等功能,从而方便学校管理部门对学校的基本情况的快速查询和了解。
1.3.5课程管理模块(CTRL+R):
该模块对各个班级的课程进行设置,并可在其中设置各门课程的教材选用情况,方便了学校教材管理部门和教务处的教学管理人员的工作。该模块包括基本课程设计和班级课程设置两个模块。
1.3.6成绩管理模块(CTRL+F):
学校的成绩管理工作是检验学生学习情况的一个主要手段,本模块包括考试类型设置,共有期中考试和期未考试两种类型,还设置了成绩添加、成绩游览功能模块。
1.4系统开发的目标
出于本系统是学校学生管理的一个综合性的系统,本系统的设计目标将最终定
位于完成以上所述的系统主要业务的基本模型上。
广西城市职业学院 毕业统考
系统分析 第2章
2.1系统
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
在用户启动应用程序时,首先进入登陆界面进行用户的身份验证。如果用户通过身份验证,系统将根据用户的不同级别分别引导用户进入不同的界面,超级管理员和老师可进入各自的管理界面进行操作和查询,而学生用户则只能通过输入姓名、学号来查询自己的信息。
2.2数据存储分析:实体联系图
1、数据模型设计。首先来做出学生成绩管理系统的E-R图,分析这个问题的实体,从系统分析可以知道,学生的成绩是由任课教师按照课程给出的,学生、课程、教师组成了这个系统的三个实体。
2、再分析三个实体之间的联系。首先,这三个实体不是一个统一体,学
生成绩与教师没有内在联系,教师必须通过课程实体才能与学生建立联
8
广西城市职业学院 毕业统考
系,因而先不考虑。课程与学生这两个实体是多对多联系;一位学生要学习多门课程,一门课程有多位学生共同学习。而学习成绩是这两个实体“学生”和“成绩”共有的属性,应填在二者的联系“学习”边。因为成绩既不是学生独有的,也不是课程独有的;“学生甲70分”或“英语70分”是不完全的,说“学生甲英语70分”才是正确的,因为70分是学生甲和英语课二者共有的。这个E-R图可画成下图。
学生
课程
成绩
学习
学生成绩管理系统中学生与课程的E-R图
教师与课程这两个实体之间,是一对多联系;一位教师可以都多门课程,而一门课程对于学生成绩来说只能有一位教师(英语、高等数学有多位教师教,但对
某个固定的学生来说只能有一位教师)。其E-R图,如下所示。
教师
课程
教学
教师与课程的E-R图组合到一起,得到最后的E-R图,有了E-R图,
9
广西城市职业学院 毕业统考
就可以设计数据库。下图为最后的e-r图。
10
广西城市职业学院 毕业统考
第3章 系统设计
3.1软件模块结构设计
3(1(1系统方案确定
通过对系统的调研与分析,系统主要应完成的功能有:班级管理、学生成绩管理、课程管理、成绩管理、系统管理等功能。
3(1(2软件结构设计
本系统在执行时,先根据不同的操作人员的需要来进行相应的模块,然后可以输入数据或者进行其它的查询或浏览等操作;总体来说,本系统属于
3(2数据库设计
(2(1 Acess数据库简介 3
数据库是有结构的数据集合,它与一般的数据文件不同,
(其中的数据是无结构的)是一串文字或数字流。数据库中的数据可以是文字、图象、声音等。
Microsoft Access是一种关系式数据库,关系式数据库由一系列表组成,表又由一系列行和列组成,每一行是一个记录,每一列是一个字段,每个字段有一个字段名,字段名在一个表中不能重复。表与表之间可以建立关系(或称关联,连接),以便查询相关联的信息。Access数据库以文件形式保存,文件的扩展名是MDB。
11
广西城市职业学院 毕业统考
Access 2000 的6种对象
Access 2000数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。
表(Table) ——表是数据库的基本对象,是创建其他5种对象的基础。表由记录组成,记录由字段组成,表用来存贮数据库的数据,故又称数据表。
查询(Query)——查询可以按索引快速查找到需要的记录,按要求筛选记录并能连接若干个表的字段组成新表。
窗体(Form)——窗体提供了一种方便的浏览、输入及更改数据的窗口。还可以创建子窗体显示相关联的表的 与Access 以前的版本比较,Access 2000新增了许多功能,字段类型增加了OLE对象和超级链接,特别是与Internet的融合,在数据库中可以直接链接到指定的Web页面或网络文件,也可以把Web页面上的表格导入到数据库。Access 2000可以方便地利用各种数据源,包括dBASE,
FoxBase,FoxPro,Excel,Word 等。Access 2000增加了数据库访问的安全机制,可对表一级设置访问许可权。Access 2000还可以方便地利用FoxPro数据库、Excel电子表格的数据,还可以和Word混合使用,打印通用信函或信封。
本次数据库采用了Microsoft推出的Access数据库,能够快速方便的和Office的其他套件综合使用。由于Access具有显著的简易性和有效性,大量的桌面数据库系统都采用Access作为后台数据库。使用Access的好处
12
广西城市职业学院 毕业统考
还在于,如果你的系统扩展到Client/Server模式的时候,可以使用
Microsoft的数据库服务器软件SQL Server,此时,程序只需要简单的修改一下链接(ADO的数据源)就可以,这样,为程序的平滑扩展提供了非常有力的条件。
3.2.2建立数据库
使用VB6.0所提供的“可视化数据管理器”建立数据库以及其中的数据表。
”菜单下的“可视化数据 a. 在VB集成环境中启动数据管理器:单击“外接程序
管理器”命令,打开可视化数据管理器“VisData”窗口。
b. 选择“文件”菜单中的“新建”项,在“新建”子菜单中,选择“Microsoft Access”
子菜单中“Version 7.0 MDB”,在创建数据库对框中选择保存数据库的路径和库文件名(XS)后保存。
本系统中所涉及到的主要实体共有七个数据表:
allkecheng表:{课程名称,教材}
cj表:{学号,学期,类型,课程名称,分数}
{年级,班级,教室,年制,专业,班主任,备注} class表:
classkecheng表:{年级,专业,年制,学期,课程名称}
kaoshileixing表:{类型}
use表:{username,password,admin,readonly,qx1,qx2,qx3,qx4}
xj表:{学号,姓名,性别,班级,出生年月,家庭住址,邮政编码,联系电话,入学时间,备注}
13
广西城市职业学院 毕业统考
14
广西城市职业学院 毕业统考
15
广西城市职业学院 毕业统考
系统的功能 第4章
本部分主要Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Exit Sub
16
广西城市职业学院 毕业统考
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
frmcpass.Text1.Text = Text1.Text
Unload Me
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
17
广西城市职业学院 毕业
统考 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
4.2系统管理模块设计
“系统管理”模块分为“添加新用户”和“退出”两个子模块。 在“
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
”菜单中选择
“添加窗体”,打开“添加窗体”对话框,选择添加“窗体”。并将新窗体保存为
“frmuser1”。
进行代码设计,代码如下:
Private Sub Command1_Click()
If Trim(Text1(0).Text) = "" Then
18
广西城市职业学院 毕业
统考
MsgBox "用户名不能为空~", vbExclamation + vbOKOnly, "警
告" 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 2
If Check1(i).Value = 1 Then
aa = 1
Exit For
End If
Next i
19
广西城市职业学院 毕业统考
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)
For i = 0 To 2
If Option1(i).Value = True Then
Select Case i
Case 0
mrc.Fields("admin") = "y"
Case 1
20
广西城市职业学院 毕业统考 mrc.Fields("readonly") = "y"
Case 2
For j = 0 To 2
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"
End Select
End If
Next j
End Select
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
21 警告"
广西城市职业学院 毕业统考
End Sub
Private Sub Form_Resize()
Text1(0).SetFocus
End Sub
Private Sub Option1_Click(Index As Integer)
If Index <> 2 Then
For i = 0 To 2
Check1(i).Enabled = False
Next i
Else
For i = 0 To 2
Check1(i).Enabled = True
Next i
End If
End Sub
通过代码设计,实现了对三种不同权限的新用户的添加,管理员具有所有得权限,老师在管理员的授权下可以选择系统管理、课程管理与档案管理、课程管理的一种、两种或者全部权限,学生则只有浏览的功能。
4.3班级管理
在完成了系统的登录页面设计、系统主页面系统设计后,接下来在总体设计思想的指导下完成系统的其余功能模块的设计。这些子模块作为《学生信息管理系统》的组成部分,在很大程度上增强了所开发系统的整体功能。以下主要讲述班级管理这个功能模块的具体设计和实现。
班级管理的主要功能是对各院系的班级的基本信息进行管理,这些信息包括年级、班级、教室、年制、专业、班主任、备注等。相应的管理操作包括:添加记录、修改记录、删除记录、查询记录以及打印记录。执行查询,先输入要进行操作的班级,确定后再进行对应的操作。添加操作可直接添加新的班级记录。
22
广西城市职业学院 毕业统考
4.3.1添加班级模块设计
在“工程”菜单中选择“添加窗体”,打开“添加窗体”对话框,选择添加“窗体”。并将新窗体保存为“formclass1”。添加代码并且进行属性设置。将“Caption”改为“添加班级”,并且调整窗口大小。 “添加系统”模块的界面如下图所示:
4.3.2浏览班级模块设计
在“工程”菜单中选择“添加窗体”,打开“添加窗体”对话框,选择添加“窗体”。并将新窗体保存为“formclass2”。添加代码并且进行属性设置。将“Caption”改为“浏览班级”,并且调整窗口大小。 “添加系统”模块的界面如下图所示:
23
广西城市职业学院 毕业统考
通过设计的浏览班级模块,可以根据年级,对本校的各班级信息进行总体浏览。并且根据需要,对班级设置进行修改,删除,打印。
4.3.3班级查询模块设计
”菜单中选择“添加窗体”,打开“添加窗体”对话框,选择添加“窗体”。 在“工程
并将新窗体保存为“formclass3”。进行属性设置。将“Caption”改为“班级查询”,并且调整窗口大小。通过设计,此模块可以通过年级、班级、专业对班级设计查询。
“添加系统”模块的界面如下图所示:
进行代码设计,代码如下:
Private Sub Command1_Click()
24
广西城市职业学院 毕业统考
txtsql = ""
If Text1(0).Text <> "" Then
If txtsql = "" Then
txtsql = "年级=„" & Trim(Text1(0).Text) & "?"
Else
txtsql = txtsql & "and 年级=„" & Trim(Text1(0).Text) &
"?" End If
End If
If Text1(1).Text <> "" Then
If txtsql = "" Then
txtsql = "班级=„" & Trim(Text1(1).Text) & "?"
Else
txtsql = txtsql & "and 班级=„" & Trim(Text1(1).Text) &
"?" End If
End If
If Text1(2).Text <> "" Then
aa = 1
If txtsql = "" Then
txtsql = "专业=„" & Trim(Text1(2).Text) & "?"
Else
txtsql = txtsql & "and 专业=„" & Trim(Text1(2).Text) &
"?" End If
End If
If txtsql = "" Then
ss = MsgBox("你至少要输入一个条件以上才能查询~", , " 警告") Text1(0).SetFocus
Exit Sub
End If
25
广西城市职业学院 毕业统考
txtsql = "select * from class where " & txtsql
Dim mrc As ADODB.Recordset
Set mrc = ExecuteSQL(txtsql)
If mrc.EOF = True Then
zzz = MsgBox("对不起,没有此班级的档案记录~", vbOKOnly, "
查询")
Formclass3.ZOrder (0)
Formclass3.Text1(0).SetFocus
Exit Sub
End If
Formclass2.printstr = txtsql
classfind = True
Formclass2.Show
Formclass2.classshowtitle
Formclass2.classshowdata
Formclass2.Caption = "班级设置查询结果"
Formclass2.ZOrder (0)
End Sub
Private Sub Form_Unload(Cancel As Integer)
classfind = False
End Sub
必须同时输入一个条件,否则将弹出警告对话框“你至少要输入一个以上条件以上才能查询~”用户可以同时设定一个、两个或者三个条件进行查询。
4. 4学生档案管理
学生档案管理是对全校学生的基本资料进行查询、修改、添加、删除、打印操作。执行查询操作时,可以根据学号、姓名、班级、姓名关键字进行查询。可以对查找到的信息进行修改和删除。添加操作可直接添加相应
26
广西城市职业学院 毕业统考
的学生基本情况。学生信息包括学号、姓名、性别、班级、家庭住址、出生年月、联系电话、入学时间、备注等信息。
4.4.1档案添加模块设计
首先明确档案添加的功能是添加对入学的学生进行入学档案登记,其中包括姓名、性别、班级、联系电话等信息。在“工程”菜单中选择“添加窗体”,打开“添加窗体”对话框,选择添加“窗体”。并将新窗体保存为“form1”。进行属性设置,并且编写代码,完成的页面如下图所示:
Private Sub Command1_Click()
For j = 0 To 7
If Text1(j) = "" Then
ss = MsgBox(Label1(j).Caption & "不能为空~", vbExclamation +
vbOKOnly, "警告")
27
广西城市职业学院 毕业统考
Text1(j).SetFocus
Text1(j).SelStart = 0
Text1(j).SelLength = Len(Text1(j).Text)
Exit Sub
End If
Next
Dim mrc As ADODB.Recordset
txtsql1 = "select * from xj where 学号=„" & Trim(Text1(0).Text)
& "?"
Set mrc = ExecuteSQL(txtsql1)
If modi = False Then
If mrc.EOF = False Then
sss = MsgBox("已经存在该学号的记录,学号不能重复~", vbExclamation + vbOKOnly, "警告")
Text1(0).SetFocus
Text1(0).SelStart = 0
Text1(0).SelLength = Len(Text1(0).Text)
mrc.Close
Exit Sub
End If
End If
If Not IsDate(Text1(2).Text) Then „判断是否日期格式
ssss = MsgBox("应输入日期 mm-dd-yy", vbInformation + vbOKOnly,
"警告")
Text1(2).SetFocus
Text1(2).SelStart = 0
Text1(2).SelLength = Len(Text1(2).Text)
Exit Sub
28
广西城市职业学院 毕业
统考
End If
If Not IsDate(Text1(6).Text) Then
ssss = MsgBox("应输入日期 mm-dd-yy", vbInformation + vbOKOnly, "警告")
Text1(6).SetFocus
Text1(6).SelStart = 0
Text1(6).SelLength = Len(Text1(6).Text)
Exit Sub
End If
If modi = True Then
txtsql1 = "update xj set 学号=„" & Trim(Text1(0).Text) & "?,姓名=„" & Trim(Text1(1).Text) & "?,性别
=„" & Trim(Combo1(0).Text) & "?,班级=„" & Trim(Combo1(1).Text) & "?,出生年月=#" & Trim(Text1(2).Text) & "# ,家庭住址=„" & Trim(Text1(3).Text) & "? ,邮政编码=„" & Trim(Text1(4).Text) & "? ,联系
电话=„" & Trim(Text1(5).Text) & "? ,入学时间=#" & Trim(Text1(6).Text) & "# ,备注=„" & Trim(Text1(7).Text) & "?where 学号=„" & Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & "?"
Set mrc = ExecuteSQL(txtsql1)
txtsql1 = "update cj set 学号=„" & Trim(Text1(0).Text) & "? where 学号=„" & Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & "?" Set mrc
= ExecuteSQL(txtsql1)
txtsql1 = "update jf set 学号=„" & Trim(Text1(0).Text) & "? where 学号=„" & Trim(Form3.MSF1.TextMatrix(Form3.MSF1.Row, 1)) & "?" „Set
mrc = ExecuteSQL(txtsql1)
Unload Me
Exit Sub
End If
29
广西城市职业学院 毕业
统考 txtsql1 = "select * from xj "
Set mrc = ExecuteSQL(txtsql1)
mrc.AddNew
For i = 4 To 9
mrc.Fields(i) = Text1(i - 2).Text
Next i
mrc.Fields(0) = Trim(Text1(0).Text)
mrc.Fields(1) = Trim(Text1(1).Text)
mrc.Fields(2) = Trim(Combo1(0).Text)
mrc.Fields(3) = Trim(Combo1(1).Text)
mrc.Update
Set mrc = Nothing
For j = 0 To 7
Text1(j) = ""
Next
End Sub
4.4.2档案浏览模块设计
类似可以进行档案浏览模块设计,完成之后的设计见面如下图所示:
30
广西城市职业学院 毕业统考 其代码如下:
Public Sub showdata()
Dim j As Integer
Dim i As Integer
Dim mrc As ADODB.Recordset
Set mrc = New ADODB.Recordset
Set mrc = ExecuteSQL(txtsql)
If mrc.EOF = False Then
mrc.MoveFirst
With MSF1
.Rows = 50
.Row = 1
Do While Not mrc.EOF
.Rows = .Rows + 1
For i = 1 To mrc.Fields.Count
.TextMatrix(.Row, i) = mrc.Fields(i - 1)
Next i
.Row = .Row + 1
mrc.MoveNext
Loop
End With
Else
If find = True Then
Form3.Hide
Form4.Show
zzz = MsgBox("对不起,没有此学生的档案记录~", vbOKOnly, "
询")
Form4.ZOrder (0)
31 查
广西城市职业学院 毕业统考
Form4.Text1(0).SetFocus
End If
End If
Set mrc = Nothing
End Sub
Public Sub tree()
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), 2, 2)
End If
32
广西城市职业学院 毕业统考
mrc1.MoveNext
Loop
a = a & "1"
mrc.MoveNext
Loop
mrc1.Close
mrc.Close
Set mrc = Nothing
Set mrc1 = Nothing
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Tag
Case "find"
Form4.Show
Case "modi"
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
33
广西城市职业学院 毕业统考
End If
modi = True
Form1.Show
Form1.ZOrder 0
End If
Case "del"
Dim mrc As ADODB.Recordset
Dim intcount As Integer
If Trim(Me.MSF1.TextMatrix(MSF1.Row, 1)) = "" Then
sssss = MsgBox("你还没有选择记录~", vbOKOnly + vbExclamation,
"警告")
Else
If qxstr = "readonly" Then
ss = MsgBox("对不起,你是只读用户不能删除记录,请与管理员联系~", vbInformation + vbOKOnly, " 警告")
Exit Sub
End If
If MsgBox("确定要删除学号为 " & Trim(Me.MSF1.TextMatrix(MSF1.Row, 1)) & " 的记录吗,"
& Chr(10) & Chr(13) & "该操作会导致该学生成绩记录的丢失~确定吗,", vbOKCancel + vbExclamation, "警告") = vbOK Then
intcount = Me.MSF1.Row
txtsql = "delete * from xj where 学号=„" & Trim(Me.MSF1.TextMatrix(MSF1.Row, 1)) & "?"
Set mrc = ExecuteSQL(txtsql)
txtsql = "delete * from jf where 学号=„" & Trim(Me.MSF1.TextMatrix(MSF1.Row, 1)) & "?"
Set mrc = ExecuteSQL(txtsql)
34
广西城市职业学院 毕业统考
txtsql = "delete * from cj where 学号=„" & Trim(Me.MSF1.TextMatrix(MSF1.Row, 1)) & "?"
Set mrc = ExecuteSQL(txtsql)
TreeView1_DblClick
End If
End If
„ Case "print"
„ Form6.Show
„ Form6.ZOrder 0
End Select
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 xj.学号,xj.姓名,xj.性别,class.年级,xj.班级,class.专业,class.年制,xj.出生年月,xj.家庭住址,xj.邮政编码,xj.联系电话,xj.入学时间,xj.备注 from xj inner join class on xj.班级=class.班级 where xj.班级=„" & txtsql & "? or 年级=„" & txtsql & "? order by class.年级 ,class.班级 ,xj.学号 "
printstr = txtsql
Me.Caption = "浏览学生档案"
Me.showtitle
Me.showdata
Exit Sub
35
广西城市职业学院 毕业
统考 ss:
MSF1.Clear
End Sub
4.4.3档案查询模块设计
档案查询模块的设计可以根据“班级管理”中的班级查询模块的设计来设计和
编写。
具体的代码如下:
Private Sub Command1_Click()
Dim aa As Integer
txtsql = ""
If Trim(Text1(0).Text) <> "" Then
aa = 1
If txtsql = "" Then
txtsql = "xj.学号=„" & Trim(Text1(0).Text) & "?"
Else
txtsql = txtsql & "and xj.学号=„" & Trim(Text1(0).Text) & "?"
End If
End If
If Trim(Text1(1).Text) <> "" Then
36
广西城市职业学院 毕业
统考
aa = 1
If txtsql = "" Then
txtsql = "xj.姓名=„" & Trim(Text1(1).Text) & "?"
Else
txtsql = txtsql & "and xj.姓名=„" & Trim(Text1(1).Text) & "?"
End If
End If
If Trim(Text1(2).Text) <> "" Then
aa = 1
If txtsql = "" Then
txtsql = "xj.班级=„" & Trim(Text1(2).Text) & "?"
Else
txtsql = txtsql & "and xj.班级=„" & Trim(Text1(2).Text)
& "?"
End If
End If
If Trim(Text1(3).Text) <> "" Then
aa = 1
txtsql = ""
txtsql = "xj.姓名 like „%" & Trim(Text1(3).Text) &
"%?" End If
If aa = 0 Then
ss = MsgBox("你至少要输入一个条件以上才能查询~", , " 警告")
Text1(0).SetFocus
Exit Sub
End If
37
广西城市职业学院 毕业统考
Dim str As String
str = "select * from xj where " & txtsql
Dim mrc As ADODB.Recordset
Set mrc = ExecuteSQL(str)
If mrc.EOF = True Then
zzz = MsgBox("对不起,没有此学生的档案记录~", vbOKOnly, "
查询")
Form4.ZOrder (0)
Form4.Text1(0).SetFocus
Exit Sub
End If
txtsql = "select xj.学号,xj.姓名,xj.性别,class.年级,xj.班级,class.专业,class.年制,xj.出生年月,xj.家庭住址,xj.邮政编码,xj.联系电话,xj.入学时间,xj.备注 from xj inner join class on xj.班级=class.班级 where " & txtsql &
"order by class.年级 desc,class.班级 desc,xj.学号 desc"
Form3.printstr = txtsql
find = True
Form3.Show
„select xj.学号,xj.姓名,xj.性别,class.年级,xj.班级,class.专业,class.年制,xj.出生年月,xj.家庭住址,xj.邮政编码,xj.联系电话,xj.入学时间,xj.备注 from xj inner join class on xj.班级=class.班级 where xj.班级=„01美术一? or 年级=„01美术一? order by class.年级 desc,class.班级 desc,xj.学号 desc
Form3.Caption = "学生档案查询结果"
Form3.showtitle
Form3.showdata
End Sub
38
广西城市职业学院 毕业统考
4.5课程管理
课程管理的主要功能是对学校所有开设的课程进行设置,添加、修改、删除课程名称和相应的教材。将学校开设的基本课程设置好后,就可以对选择班级进行班级课程设置,添加或者删除该班级开设的课程。
课程管理包括基本课程设置、班级课程设置两个模块。
4.5.1基本课程设置模块设计
在“工程”菜单中选择“添加窗体”,打开“添加窗体”对话框,选择添加“窗体”。并将新窗体保存为“frmjiben”。对模块进行总体规划,划分成小的区域,以及添加按钮。
基本课程的设置关系到本系统课程管理能否实现,因为它将添加学校所用到的所有课程,以及相应的教材。信息量很大,因此不能只有添加功能,还必须可以对其进行修改、删除等功能。
最终的基本课程设置模块设计的界面如下图所示:
4.5.2班级课程设置模块设计
进行了学校的基本课程设计之后,就要对班级的课程进行设置了。首
39
广西城市职业学院
毕业统考
先要在学校的众多班级中选择要设置的班级,这可以通过几个下拉列表进行选择。所以设计了年级、专业、年制、学期四个下拉列表进行选择需要的班级。然后设计分别指向相反方向的箭头,便于进行对选中的班级进行设置。向右的是增加课程,向左的是删除课程选择。最后在增加两个按钮,一个是确定设置,一个是取消设置。
总体思想框架有了之后就可以按照蓝图具体设计了。首先在“工程”菜单中选择“添加窗体”,打开“添加窗体”对话框,选择添加“窗体”。并将新窗体保存为“frmclasskecheng1”。
在模块建立之后,划分成几个模块。
添加四个下拉列表并命名。
添加两个相反方向的箭头。
添加两个按钮并命名。
最终班级课程模块设计的界面如下图所示:
成绩管理部分设计和班级管理的设计基本上是相同的,在这里就不在重复了。至此已完成了窗体部分的详细设计。
40
广西城市职业学院 毕业统考
第5章 全文总结
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对学生管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。虽然网络在学生管理系统中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本学生管理系统是一套学校在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了的项本过程,了解了的基本知识巩固了我对Visual Basic
6.0的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统
的思维方法,以及与同学们之间相互帮助的精神
一、 总结
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。。
通过开发这个系统,了解了的基本知识,巩固了我对Visual Basic 6.0的学习。最后,谢谢老师~
41