你好! - 轻松快乐从此开始!

香山红叶网-计算机技术交流

当前位置: 主页 > 综合 >

学生管理系统的系统启动和登录界面的设计...

时间:2013-06-10 22:47来源: 作者: 点击:等待统计信息……
摘要:学生管理系统是一个比较典型的数据库应用程序,这里我打算将学生管理系统分几部分陆续发表,希望对大家有帮助。本章主要阐述学生管理系统的系统启动和登录界面的设计。 工具/原料 由于前一段时间比较忙,没有及时将学生管理系统的文章发表,现在有了一点空闲……

 

学生管理系统是一个比较典型的数据库应用程序,这里我打算将学生管理系统分几部分陆续发表,希望对大家有帮助。本章主要阐述学生管理系统的系统启动和登录界面的设计。 香山红叶网- hO!xFe#4&JM(ncLe

  香山红叶网- JcuL5WI|v5[Av0qn

使用工具
由于前一段时间比较忙,没有及时将学生管理系统的文章发表,现在有了一点空闲,就学生管理系统的后续文章发表,希望对大家有点帮助。
 

香山红叶网- gc_AD5IipUt8{r8m

 

香山红叶网- 0C8}o2L6K~9t(0vA

步骤/方法
一个程序在启动后首先需要进入启动界面,学生管理系统(以下均称系统)也不例外,在启动后进入的是使用者身份确认界面,因为目前大学的结构是学校→学院→系结构,也就是一个大学下面包含几个学院,一个学院下面又包含几个系,因此一个完善的学生管理系统必须考虑到这个问题,在系统启动后首先确定登录人的身份是至关重要的。下面的图就是登录身份确认:
 

香山红叶网- N~XPSnIup)L10D2^

  香山红叶网- ~GXVk4gQ*$kL(3Rp

图一、登录身份确认界面
  香山红叶网- [bz5*g|oOeI#*8$N

登录身份无非是管理员或用户,但是如何确定登录人是那一级的管理员或用户,必须提前在数据库这进行设定,我们在这个系统中,使用Access数据库,数据库的文件名是:学生管理.mdb,在这个数据库这有8个数据表,我们在以后将陆续介绍,今天我们首先介绍数据表【用户资料】,下面是这个数据表的结构和数据表的部分数据:
  香山红叶网- !ljqB"*D%OkK"a|%

  香山红叶网- (l7P :Pfj1PVq4{e

表一、用户资料数据表(部分示例数据,可根据你的需要修改)
 

从数据表可以明显看出,管理员或用户不是一个,而且他们的部门是不同的,由于部门不同,登录权限同样不同,这就为我们在界面设置中提供了不少便利。
 

登录人在选定身份后,根据身份不同,将进入不同的登录界面,下面是管理员登录界面和用户登录界面:
 

 

 

图二、管理员登录界面            图三、用户登录界面
 

好了,到这里界面和数据库都介绍了,下面我们介绍程序窗口和窗口所需要的基本代码。
 

程序的启动和登录由二个窗口和一个模块组成,二个窗口的名称分别是:启动窗口.frm、用户登录.frm。
 

启动窗口

启动窗口如图一,主要控件是:一个ComboBox控件,名称为Combo1;三个CommandButton控件,名称为Command1、Command2、Command3;一个Timer控件,名称为Time1;以及几个Label控件。
 

Combo1的List值有二项,分别是:管理员和用户,他的作用是提供登录人选择身份。Command1的Caption是“确定”,Command2的Caption是“退出”,Command3的Caption是“系统帮助”,其作用是让程序产生单击动作,在点击【确定】按钮时,进入登录界面,点击【退出】按钮时,退出系统,点击【系统帮助】按钮时,显示系统帮助界面(至于系统帮助问题不是本文讨论的问题,我们将不予介绍。)。
 

下面是启动界面的主要代码:
 

 

Private SubCommand1_Click()    ‘按钮【确定】的点击过程
 

Dim MC As String
 

MC = Combo1.Text
 

If MC = ""Then
 

MsgBox "您没有选择登录方式,请重新选择!", 16, "错误!"
 

Exit Sub
 

End If
 

If MC = "管理员" Then
 

DLQX1 = "管理员"
 

ElseIf MC = "用户" Then
 

DLQX1 = "用户"
 

End If
 

Unload Me
 

用户登录.Show
 

End Sub
 

 

Private SubCommand2_Click()
 

End
 

End Sub
 

 

Private SubCommand3_Click()
 

系统帮助.Show
 

End Sub
 

 

Private Sub Form_Load()
 

Label4(1).Caption ="当代电子科技学院"
 

Label2.Caption =FormatDateTime(Date, 1)
 

Label3.Caption =FormatDateTime(Now, 3)
 

Timer1.Interval = 1000
 

Timer1.Enabled = True
 

End Sub
 

 

Private SubTimer1_Timer()
 

Label3.Caption =FormatDateTime(Now, vbLongTime)
 

End Sub
 

 

上面代码都特别简单,这里就不一一解释了。
 

用户登录

在启动窗口不论你选择管理员还是用户,点击【确定】后都会进入用户登录窗口,由于选择身份不同,程序会给出不同的运行界面,如果身份是管理员,以图二的界面运行,如果身份是用户,则以图三的界面运行,不论是那个界面,其实就是一个窗口“用户登录”窗口。
 

用户登录如图二、图三,主要控件是:二个TextBox控件,名称为Text1、Text2;三个CommandButton控件,名称为Command1、Command2、Command3;以及几个Label控件。
 

Text1是一个输入框,需要登录人输入登录名称,Text2也是一个输入框,需要登录人输入登录密码。Command1的Caption是“登录”,Command2的Caption是“退出”,Command3的Caption是“返回”,其作用是让程序产生单击动作,在点击【登录】按钮时,系统根据数据库的记录,检测这个登录人是否存在,如果存在,进入登录人应该进入的界面;如果不存在,将终止登录。点击【退出】按钮时,退出系统。点击【返回】按钮时,将返回到启动界面。
 

下面是用户登录窗口的主要代码:
 

Dim zong As Integer     ‘声明窗口级公用变量
 

 

Private SubCommand1_Click()
 

'登录确认
 

If zong = 3 Then    '若用户输入的次数超过三次,则自动退出
 

    Unload Me
 

    Exit Sub
 

End If
 

 

If Trim(Text1.Text ="") Then
 

    MsgBox "没有输入用户名,请输入!", vbOKOnly + vbExclamation, "警告"
 

    Text2.Text = ""
 

    Exit Sub
 

End If
 

    Call SJK(db)    ‘注意:这里在调用一个过程,请查看模块一节!
 

    strSQL = "select * from 用户资料where 用户名='" & Text1.Text & "' AND 身份='" & DLQX1 & "'"
 

    RS.Open strSQL, db, 2, 2    ‘RS是什么呀?请查看模块一节!
 

If RS.EOF = True Then
 

    MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告"
 

    Text1.Text = ""
 

    Text2.Text = ""
 

    RS.Close
 

    Call GBSJK
 

    zong = zong + 1          '累加输入次数
 

    Exit Sub
 

End If
 

 

If RS("密码") <> Trim(Text2.Text)Then
 

    MsgBox "密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
 

    Text2.SetFocus
 

    RS.Close
 

    Call GBSJK
 

    zong = zong + 1          '累加输入次数
 

    Exit Sub
 

End If
 

SZBM = RS("部门")
 

YHMC = RS("用户名")
 

YHMM = RS("密码")
 

YHSF= RS("身份")
 

YHQX== RS("权限")
 

RS.Close
 

Set RS = Nothing
 

Call GBSJK    ‘注意:这里在调用一个过程,请查看模块一节!
 

Unload Me
 

主窗口.Show
 

End Sub
 

 

Private SubCommand2_Click()
 

Dim anw As Intege        ‘声明过程级变量r
 

anw = MsgBox("确定要退出系统吗?", vbYesNo, "请问")
 

If anw = 6 Then
 

    Unload Me
 

Else
 

    Text1.Text = ""
 

    Text2.Text = ""
 

End If
 

End Sub
 

 

Private SubCommand3_Click()
 

Unload Me
 

启动窗口.Show
 

End Sub
 

 

Private Sub Form_Load()
 

    Me.Caption = DLQX1 & "登录"
 

    Label4(1).Caption = DLQX1 & "登录"
 

    Label4(2).Caption = "当代电子科技学院"
 

    Label1.Caption = DLQX1 & "名称:"
 

    Label2.Caption = DLQX1 & "密码:"
 

    zong = 0
 

    Text1.Text = ""
 

    Text2.Text = ""
 

End Sub
 

模块(程序共用变量、过程在模块中设置)模块名称  Module1

前面的程序代码中,出现了几个调用过程和几个变量,这些过程和变量是全局公用过程和变量,那么这些过程和变量是如何设置的?在VB中有一个模块程序,这个模块是用来设置全局调用过程和全局调用变量的。我们点击【工程】-【添加模块】,出现添加模块对话框,点击【打开】按钮,在工程中就会添加一个名称为Module1的模块,模块名称可以修改为你认为比较容易理解的名称,我们在这里仍然使用程序默认的名称。注意:模块仅仅是代码,没有界面的。
 

在模块中我们就可以添加程序公用的变量和过程(或函数),在模块中声明公用变量必须使用关键字Public,在设置公用过程也必须使用关键字Public。
 

在我们这个程序中,需要链接数据库,VB不默认链接数据库,因此我们必须添加链接数据库的引用,添加方法是点击【工程】-【引用】,打开引用对话框,在对话框中选择Microsoft DAO 3.6 Object Library 和Microsoft ActiveX Data Object 2.7 Library,勾选这二项,点击确定。这样链接数据库的引用就添加成功了。
 

添加了数据库的引用,我们在模块中就可以声明数据库链接对象和记录集对象了,在我们的模块中,我们声明了这二个对象,分别是db(数据库链接对象)、RS(记录集对象)。另外,我们在模块中还设置了5个公用变量,这些变量是程序在运行过程中需要随时调用的,并且在运行过程中需要确定运行窗口的变量,其实这些变量就是登录人的信息。
 

下面是模块代码:(这里声明的变量、对象、过程都是全局的)
 

 

Public db As NewADODB.Connection    ‘数据库链接对象
 

Public RS As NewADODB.Recordset    ‘数据库记录集对象
 

 

Public DLQX1 As String     ‘登录人身份变量
 

Public SZBM AsString     ' = 登录人的("部门")
 

Public YHMC As String     ' = 登录人的("用户名")
 

Public YHMM AsString     ' = 登录人的("密码")
 

Public YHSF AsString     ' = 登录人的("身份")
 

Public YHQX AsString     ' = 登录人的("权限")
 

 

Public Sub SJK(db)      “数据库链接公用过程
 

  db.ConnectionString = "DRIVER=MicrosoftAccess Driver (*.mdb);DBQ=" & App.Path & "\DATA\学生管理.mdb"      ‘注意:数据库名是学生管理.mdb
 

  db.Open
 

End Sub
 

 

Public Sub GBSJK()      “关闭数据库公用过程
 

  db.Close
 

  Set db = Nothing
 

End Sub
 

最后说明一点:在程序中声明的变量可以是全局变量,也可以是模块级(窗体)变量,还可以是过程级变量,变量声明的位置不同,使用的关键字不同,变量的级别是不同的。
 

如果你需要设置全局变量,必须在模块中声明,使用Public关键字。
 

如果你声明模块级变量(注意:所谓模块级其实就是一个窗体,不要和程序模块混淆),必须在窗体的代码窗口的通用部分声明(通用部分就是窗体代码窗口的最上端),使用Dim关键字或Private关键字。
 

如果你需要声明过程级变量,在一个过程的任何部位都可以声明,使用Dim关键字。
 

全局变量的生命期在程序运行开始就已经声明了,这个变量直至程序运行结束才结束。全局变量在任何一个窗体或任何一个过程中都可以调用他的值,也可以在任何一个窗体或任何一个过程中都可以赋值,在程序结束后这个变量的生命就结束了,但是如果你在程序中转换窗体,这个变量仍然存在,直至程序结束(即关闭程序)这个变量才结束。
 

模块级变量的生命期是一个窗体在运行时,这个变量就被声明,在这个窗体运行过程中,这个变量始终是存在的,在这个窗体的任何过程都可以调用这个变量,同样也可以给变量赋值,在转换窗体后,这个模块级变量的生命就结束了。
 

过程级变量的生命期是一个窗体的某一个过程在运行时被声明,这个变量在这个过程中使用,包括调用和赋值,在过程结束后,这个变量的生命就结束了。
 

 

下一节我们介绍程序最关键的一个窗体“主窗口”,在主窗口牵扯到程序菜单,程序菜单是程序运行的依据,根据登录权限不同,所需要的菜单不同。


由于时间比较紧,本文可能存在不少问题,请对本文提出你的宝贵意见和建议。

(责任编辑:admin)

------分隔线----------------------------
栏目列表
推荐内容
二维码生成器
AD-code726