求“学生管理信息系统开发案例分析”

求“学生管理信息系统开发案例分析”,第1张

基于VB的学生信息管理系统的设计

摘要:本系统针对高校学生信息的特点以及管理中的弊端而设计,实现了学生信息管理的信息化、减轻了管理人员的工作负担,能

够规范、高效地管理大量的学生信息,该系统旨在更好地管理高校的教学和资源的整合,推动科技成果的转化,推进高校改革,提高

高校的办学效率。

关键词:信息管理;VB;系统

近几年来,随着各高校办公自动化工作的推进,学生信息管理自动化也被摆上了日程。在学校工作中占有很大比重的一项就是

每学期的学生信息管理工作。由于教工、教室和设备的相对紧张,如何进行合理地安排和分配,从而充分利用教学资源是我们不得

不面对的问题。而人工进行管理不仅任务重,效率低,而且易出错,难于维护,想要排出一张各方面都满意的信息管理表非常困难。

并且随着高校规模的扩大手工管理的难度和工作量呈几何级数增长。

学生信息管理系统正是为了减轻教务人员工作量,实现学校管理科学发展观自动化,解决管理难这一老大难题的教务办公软

件。本系统以中文版Visual Basic 6.0为前台开发工具,用Microsoft Access2000作为后台数据库。系统的 *** 作对人员的素质的要求不

高,只需对他们稍加培训便能胜任。

本系统最大的优点就是学生的所有信息及全部 *** 作完全可以通过各功能模块直接写入后台数据库, *** 作简单易行,使信息管

理流程能够在一个安全可视的环境下运行。

1学生信息管理系统的设计

学生信息管理系统的设计主要是为了更好的实现学校学生信息的系统化、规范化和自动化。其主要功能包括 *** 作员权限设置、

便于信息管理、信息的查询、以及生成各种报表。其中查询包括姓名查询、学号查询、班级查询、性别查询、年龄、电话及住址查询、组

合查询、模糊查询等,查询可按建表输入的时间,进行统计人数和成绩等统计,查询其中的一种或多种方法。

1.1系统设计思想和特点

现状:学校管理工作对于学校的决策者和管理者来说至关重要。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式

存在着许多缺点,如:效率低、保密性差。另外,时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

设计思想:《学生信息管理系统》采用面向对象的程序设计思想为基本的设计指导思想。本系统主要实施目标是帮助学校的学

生档案管理人员对学校学生信息进行管理。

本系统优点:检索迅速、查询方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理

的效率,也是学校的科学化、正规化管理的重要条件。

1.2系统目标和功能模块

本信息管理系统在追求完善的同时应达到以下目标:

1)界面友好、易于 *** 作;

2)实现基本信息管理,包括 *** 作员的注册及权限设置,所需基本信息的建立与设置等功能;

3)实现数据库管理,包括数据库的自动创建,备份与恢复;4)实现智能跟踪用户 *** 作,智能容错处理,数据统计与分析等功能;

5)真正意义上实现该高校从原始的手工阶段走向了方便快捷的计算机实现阶段。

功能模块如图1所示。

运行主窗体如图2。

2.3登录模块设计

登录界面是进入系统的大门,是对管理员身份的验证,只有输入

了正确的名称和密码,才有权进入系统。因为系统有许多管理员,他

们拥有不同的权限,当有不同的用户登录到系统中时,系统便会根据

数据库中记载的内容而赋予其不同的权限

关键代码如下:

Dim a As String

Dim b As String

Dim str As String

Dim strr As String

str=InStr(Text2.Text,"'")

If str<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

Else

strr=InStr(Text1.Text,"'")

If strr<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

End If

End If

a=Trim(Text1)

b=Trim(Text2)

If a=""Then

MsgBox"用户名不能为空!",vbCritical,"错误"

Text1.SetFocus

Text1.SelStart=0

Text1.SelLength=Len(Text1)

Else

Dim r As New ADODB.Recordset

Set r=DataEnvironment1.rsuser

Dim c As String

Static nTryCount As Integer

c="select*from用户登陆where用户名='"&a&"'"

If r.State=adStateOpen Then r.Close

r.Open c

If r.EOF Then

MsgBox"无此用户!请重新登陆!!",vbCritical,"错误"

Text1.SetFocus

Text1.SelStart=0

Text1.SelLength=Len(Text1)

nTryCount=nTryCount+1

If nTryCount>=5 Then

MsgBox"您无权 *** 作本系统!",vbCritical,"错误"

Unload Me

End If

Else

If b=Trim(r.Fields(1))Then

quanxian=Trim(r.Fields(2))

MDIForm1.Show

Unload Me

Else

MsgBox"密码错误!请重新登陆!!",vbCritical,"错误"

Text2.SetFocus

Text2.SelStart=0

Text2.SelLength=Len(Text2)

nTryCount=nTryCount+1

If nTryCount>=5 Then

MsgBox"您无权 *** 作本系统!",vbCritical,"错误"

Unload Me

End If

End If

End If

End If

图End Sub

2.4信息管理和信息查询模块设计

信息管理和信息查询分别如图3。

关键代码如下:

On Error Resume Next

Dim str As String

Dim strr As String

Select Case Command2.Caption

Case"启用组合查找"

Select Case Combo1.Text

Case"学号"

str=InStr(Text9.Text,"'")

If str<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

Else

strr=InStr(Text10.Text,"'")

If strr<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

End If

End If

TYCZ

Case"姓名"

str=InStr(Text9.Text,"'")

If str<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

Else

strr=InStr(Text10.Text,"'")

If strr<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

End If

End If

TYCZ

Case"年龄"

str=InStr(Text9.Text,"'")

If str<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

Else

strr=InStr(Text10.Text,"'")

If strr<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

End If

End If

TYCZ

Case"性别"

str=InStr(Text9.Text,"'")

If str<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

Else

strr=InStr(Text10.Text,"'")

If strr<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

End If

End If

SEX

Case"所属班级"

str=InStr(Text9.Text,"'")

If str<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

Else

strr=InStr(Text10.Text,"'")

If strr<>0 ThenMsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

End If

End If

TYCZ

Case"家庭地址"

str=InStr(Text9.Text,"'")

If str<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

Else

strr=InStr(Text10.Text,"'")

If strr<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

End If

End If

TYCZ

End Select

Case"关闭组合查找"

str=InStr(Text9.Text,"'")

If str<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

Else

strr=InStr(Text10.Text,"'")

If strr<>0 Then

MsgBox"不能输入非法字符!!",vbCritical+vbOKOnly,"错误"

Exit Sub

End If

End If

If Combo1.Text="性别"Or Combo2.Text="性别"Then

Combination

Else

Combination_Faintness_nosex

End If

End Select

Public Sub TYCZ()

On Error Resume Next

Dim a As New ADODB.Recordset

Set a=DataEnvironment1.rsstudent

Dim b As String

If Trim(Combo3.Text)<>"模糊"Then

b="select*from学生信息表where"&Trim(Combo1.Text)&""&Trim(Combo3.Text)&"'"&Trim(Text9.Text)&"'"

If a.State=adStateOpen Then a.Close

a.Open b

dgre

Else

b="select*from学生信息表where"&Trim(Combo1.Text)&"like'%"&Trim(Text9.Text)&"%'"

If a.State=adStateOpen Then a.Close

a.Open b

dgre

End If

End Sub

Public Sub dgre()

DataGrid1.DataMember=""

DataGrid1.Refresh

DataEnvironment1.rsstudent.Requery

DataGrid1.DataMember="Student"

DataGrid1.Refresh

End Sub

3结束语

本系统达到了预期的要求,系统设计是根据学校的学生信息管理流程,合理设置各种 *** 作模块,各管理员和 *** 作员之间分工明

确,并且能够及时、准确地记录每次 *** 作信息。 *** 作简单易行,定期审核,确保了数据的正确性。从根本上解决了学生管理的计算机

实现方式,对学校管理来讲是一个大的跨越。

下面以一个学校的学生系统为例分析说明,这几个范式的应用。 数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。在当前的任何关系数据库管理系统(DBMS)中,傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS不允许你把数据库表的一列再分成二列或多列。因此,你想在现有的DBMS中设计出不符合第一范式的数据库都是不可能的。

首先我们确定一下要设计的内容包括那些。学号、学生姓名、年龄、性别、课程名称、课程学分、系别、学科成绩,系办地址、系办电话等信息。为了简单我们暂时只考虑这些字段信息。我们对于这些信息,所关心的问题有如下几个方面。

学生有那些基本信息

学生选了那些课,成绩是什么?

每个课的学分是多少

学生属于那个系,系的基本信息是什么。 首先我们考虑,把所有这些信息放到一个表中(学号,学生姓名、年龄、性别、课程、课程学分、系别、学科成绩,系办地址、系办电话)下面存在如下的依赖关系。

(学号, 课程名称) → (姓名, 年龄, 成绩, 学分)

问题分析

因此不满足第二范式的要求,会产生如下问题

数据冗余:同一门课程由n个学生选修,学分就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次。

更新异常:

1)若调整了某门课程的学分,数据表中所有行的学分值都要更新,否则会出现同一门课程学分不同的情况。

2)假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有学号关键字,课程名称和学分也无法记录入数据库。

删除异常 :假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。但是,与此同时,课程名称和学分信息也被删除了。很显然,这也会导致插入异常。

解决方案

把选课关系表SelectCourse改为如下三个表:

学生:Student(学号,姓名,年龄,性别,系别,系办地址、系办电话);

课程:Course(课程名称,学分);

选课关系:SelectCourse(学号,课程名称,成绩)。 接着看上面的学生表Student(学号,姓名,年龄,性别,系别,系办地址、系办电话),关键字为单一关键字学号,因为存在如下决定关系:

(学号)→ (姓名,年龄,性别,系别,系办地址、系办电话

但是还存在下面的决定关系

(学号) → (系别)→(系办地点,系办电话)

即存在非关键字段系办地点、系办电话对关键字段学号的传递函数依赖。

它也会存在数据冗余、更新异常、插入异常和删除异常的情况。(数据的更新,删除异常这里就不分析了,可以参照2.1.1进行分析)

根据第三范式把学生关系表分为如下两个表就可以满足第三范式了:

学生:(学号,姓名,年龄,性别,系别);

系别:(系别,系办地址、系办电话)。

上面的数据库表就是符合I,Ⅱ,Ⅲ范式的,消除了数据冗余、更新异常、插入异常和删除异常。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10053229.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存