644522879毕业设计(论文)基于VB的学生信息管理系统设计与实现.doc
学生信息管理系统(系统登陆及学籍管理模块)【摘要】 随着学校规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。而对庞大的信息量,需要有学生管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。 系统的开发采用SQLServer2000为数据库管理平台、VB6.0为客户端开发工具,系统架构为客户机/服务器(C/S)两层结构。应用软件工程原则,严格按照项目计划、需求分析、概念设计、逻辑设计、物理设计、编码、实现与维护等步骤进行。完成了系统的登陆及学籍管理模块开发工作。关键词:管理信息系统 学生管理 VB SQLServer2000目 录摘要-目录-第1章 概述 -1 1.1 课题研究背景与研究目的意义-11.1.1 研究背景-11.1.2 研究目的及意义-11.1.3 本课题的发展前景及趋势-11. 2 系统内容简介及课题调研-21.2.1 系统内容简介-21.2.2 课题调研-21.2.3 本课题的实现途径-3第2章 系统需求分析 -42.1 系统功能需求分析-42.1.1 系统功能体系结构图-42.1.2 系统功能体系结构的主要模块及基本功能-4第3章 系统设计-53.1 系统内容详细说明-53.2 系统数据模型设计-53.2.1 数据库的设计-53.3 系统开发与运行环境确定-63.3.1 系统开发-63.3.2 系统开发环境-6第4章 系统登陆模块-84.1 系统登录模块-84.2 系统模块详细介绍-9第5章 学籍信息管理模块-145.1 学籍管理模块详细设计 -14总结-21致谢-22参考文献-23第1章 概述随着计算机技术的进步和推广普及,尤其是自上个世纪90年代以来,计算机新技术的飞速发展已经为各行各业发展的突飞猛进带来了新生的动力,现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,推动了其他各个行业向更高的层次跃进。1.1 课题研究背景与研究目的、意义1.1.1 研究背景 随着学校规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。而对庞大的信息量,需要有学生管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。但一直以来人们使用传统人工的方式管理各种数据,这种管理方式存在着许多缺点,比如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学技术日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生的各项信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作的效率,也是教育的科学化、正规化管理与世界接轨的重要条件。1.1.2 研究目的及意义 在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。我作为一个计算机应用的大专生,希望能有所贡献。用我五年的所学编制了一个实用的程序来帮助我们学校进行更有效的学生信息管理。1.1.3 本课题的发展前景及趋势21世纪是信息科学技术飞跃发展的时代,信息技术在经济管理领域应用广泛,网络经济的发展对电子商务、金融工程等人才的需求势必增加,随着全球经济一体化形势的发展,信息管理与信息系统专业培养的人才将受到人才市场的青睐。 经济全球化和我国加入WTO,IT企业迎来前所未有的发展机遇和压力,这些企业不仅需要计算机软、硬件工程师,网络工程师,通信工程师,更需要信息化建设的复合型开发和管理人才,以便进行企事 业和部门的应用系统的开发、维护,进行信息资源的开发利用。 进入新世纪,我国开始了第三步战略目标的奋斗历程,国家提出了“以信息化带动工业化,以工业化促进信息化”的战略举措,提出了我国国家信息化宏伟蓝图。对于这样一个伟大的历史进程,应该而且必须有强有力的学科支持,以便培养数以千万计、几千万计的管理人才、IT人才及其综合型的复合人才。 1.2 系统内容简介及课题调研1.2.1 系统内容简介学生信息管理系统使针对当代社会,教育越来越成为社会的主流这一市场需要而应运而生的。本系统主要包括系统管理模块,学籍信息管理模块,班级信息管理模块,课程设置模块,成绩管理模块,用户投诉管理模块,用户班级管理模块和库存信息管理模块。1.2.2 课题调研学生信息管理系统软件的设计从低到高有三个层次:第一个层次为单项数据处理,模仿手工管理方式,多用于简单的事物性工作,这是目前国内大多数物业管理公司计算机应用水平;第二个层次是数据综合处理,此时计算机应用呈现网络化和实时处理特点,已经具备部分提高物业管理效率的特点;第三个层次则是管理信息系统,此时信息论、控制论、系统工程等优化理论在软件程序中得以运用,计算机网络和数据库的建立,使计算机有管理某个单一系统发展成全面的管理系统。系统集成能力的高低和决策分析功能成为衡量此阶段物业管理软件水平的依据。一个好的信息管理软件,应构建在一个好的数据库、程序语言和操作系统平台上。客户端软件以客户/服务器(C/S)模式开发,能为小区内部不同职能部门的合作提供服务,包括文件共享、数据共享等。客户/服务器(Client/Server)是近年来迅速发展的分布式信息处理体系结构。客户/服务器体系把信息处理过程分成几个部分,并把它分配到整个计算机网络上,使信息处理过程能最佳地利用计算机的系统资源。在物业管理系统中,为了避免多个用户同时对同一数据进行操作,减少系统开销,系统采用客户/服务器结构。1.2.3 本课题的实现途径本课题应用软件工程原则,严格按照项目计划、需求分析、概念设计、逻辑设计、物理设计、编码、实现与维护等步骤进行。选用SQL Server2000为数据库管理平台、VB6.0为客户端开发工具,系统架构为客户机/服务器(C/S)两层结构。第2章 系统需求分析2.1 系统功能需求分析2.1.1系统功能体系结构图学生信息管理系统系统模块帮助模块成绩管理模块课程设置模块班级管理模块学籍管理模块2.1.2 系统功能体系结构的主要模块及基本功能 系统模块:包括对系统的用户和密码进行修改,增加用户等功能。学籍管理模块:包括添加学籍信息,查询和修改学籍信息等。班级管理模块:包括班级信息的录入,查询和修改等功能。课程设置模块:包括课程信息信息的录入,查询和删除等功能。成绩管理模块:包括成绩信息的录入,查询和删除,成绩排名等功能。帮助模块:包括使用说明。第3章 系统设计3.1 系统内容详细说明本课题所研究的学生管理系统由系统模块,学籍管理模块,班级信息管理模块,课程设置模块,成绩管理模块,帮助模块6个部分构成。启动系统先通过登录界面窗口进入用户权限认证窗口,通过了用户名和密码验证的用户方可进入系统主窗口进行浏览与操作。学籍管理模块的主要功能是录入学生的学籍信息,其中用户的个人信息包括学号,姓名,班级编号,出生年月,性别,年制,联系电话,通讯地址,备注等。班级信息管理模块的主要功能是系统建成后班级信息的添加,班级信息的查询。班级信息包括学号,班级名称,辅导员,班主任等信息。课程设置模块的主要功能是课程信息的录入,查询和删除。成绩管理模块的主要功能首先是学生成绩的输入,查询和修改此模块还能实现成绩的排名。3.2 系统数据模型设计3.2.1 数据库的设计表3-1用户信息表(userinfo)字段名称字段类型字段大小是否可为空user_namenvarchar10nopasswordint4no表3-2学籍信息表(studentinfo)字段名称字段类型字段大小是否可为空stu_novarchar10nonamevarchar12noclass_novarchar10nobirthdatadatetime8nosexvarchar4noaddressvarchar50notelnovarchar20YESmemovarchar20YESnianzhivarchar20no3.3 系统开发与运行环境确定3.3.1 系统开发(1)此系统是基于Windows 2000 网络环境的数据库管理,后台数据库采用 SQL Server2000,前端使用 vb6.0 进行开发。(2)开发系统中,数据库则是用SQL Server2000开发,综合开发整个系统都是为了适应学生管理的需要。在程序设计过程中,我们为了保证程序能正常的运行,根据学生的一些实际情况来进行设计。(3)编程中,我在指导老师和同学的帮助下并结合了自己的实际水平,在网上查阅了大量资料后尽量使软件界面完美化。(4)为了方便领导对信息的查询,引入了下拉组合框控件用于选择查询条件,尽量做到查询的智能化和多样性。3.3.2 系统开发环境此系统是基于Windows 2000 网络环境的数据库管理属,后台数据库采用 SQL Server2000,前端使用 Vb 6.0 进行开发。本课题的开发需要采用一种适合于数据库编程,而且具备同时访问多种数据库系统能力的开发语言与工具。Vb 是一种优秀的可视化软件开发工具,它以其简洁明快的编程语言、功能强大的组件和灵活方便的编程环境在竞争激烈的市场越来越得青睐。它的功能可以与庞大的VisualC+媲美;它易学易用。VB 作为全球公认的快速应用程序开发工具的领导地位。Vb 以其友好的可视化开发环境、完全编译执行的高效性而著称。Vb 遵循业界标准来开发分布式多级应用系统,所以他能够使应用系统使用于大部分的异构环境。Vb 确定了高效率和快速开发高性能的客户端/服务器(Client/Server)及Enterprise和Internet上的多层体系结构应用的标准,其快速应用开发、可伸缩的多层数据库开发、真正的面向对象的可重用性及本地代码优化编译技术,为企业范围内的Client/Server开发及Internet应用创造了条件。Vb 拥有及其强大的数据库操作能力,包括支持对Windows NT Services的开发,支持大型数据库等。SQL Server 2000是Microsoft公司开发的企业级数据库软件,SQL Server 2000 beta的开发充分利用了64位硬件平台的增强性能。它为需要使用大量内存的数据应用程序(例如大型电子商务、数据仓库和分析应用程序)提供了具有更高水平的单系统伸缩性。目前,为SQL Server 2000(64位)计划开发的硬件产品最大可以支持64GB线性物理内存,将来的硬件产品将可以支持多达4TB的线性物理内存。Microsoft SQL Server是一个高性能的关系型数据库管理系统,它具有客户机/服务器体系结构,能够满足大规模分布式计算环境的需要。系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。本系统是以Vb 6.0为前台,SQL Server2000为后台,因此要求系统运行在:Windows 2000 系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好。硬件条件:586 CPU以上软件条件:Windows 2000/Windows XP 本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可修改性、可测试性、等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制的条件下(经费、时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。 第4章 系统登陆模块4.1 系统登录模块此界面的功能是提供用户登录进入本系统所用,是系统的身份验证中心,在此进行用户账号和密码的验证。如果验证通过则进入系统操作界面进行相关的操作,否则提示相关的错误信息提醒用户修改。另外界面中设置了下拉列表方便用户进行身份选择。登陆界面如图4.1所示:图4.1用户登陆界面此模块的核心代码如下:Private Sub Command1_Click() Set cn = New ADODB.Connection Set rst = New ADODB.Recordset cn.ConnectionString = " Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;database=luhengxiu;server=(local)" cn.Open UserName = Trim(Text1.Text) mysql = "select * from userinfo where user_name='" & UserName & "'" rst.Open mysql, cn If rst.EOF Then MsgBox "没有这个用户,请重新输入用户名!", vbOKOnly + vbExclamation, "警告" 'vbOKOnly仅显示确定按钮vbExclamation显示!号图标 cn.Close Text1.Text = "" Text1.SetFocus Else If Trim(rst("password") = Trim(Text2.Text) Then 'rst.fields(1) = Text2.Text FrmMain.Show Else MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告" cn.Close Text2.Text = "" Text2.SetFocus End If End IfEnd Sub4.2 系统模块详细介绍添加用户的界面如下图4.2所示:图4-2 添加用户界面这个模块的核心代码如下:Private Sub Command1_Click()If Trim(Text1.Text) = "" Then MsgBox "用户名不能为空!", vbExclamation + vbOKOnly, "警告" Text1.SetFocus Exit SubEnd IfIf Trim(Text2.Text) = "" Then MsgBox "密码不能为空!", vbExclamation + vbOKOnly, "警告" Text2.SetFocus Exit SubEnd IfIf Trim(Text3.Text) = "" Then MsgBox "确认密码不能为空!", vbExclamation + vbOKOnly, "警告" Text3.SetFocus Exit SubEnd IfIf Trim(Text2.Text) <> Trim(Text3.Text) Then MsgBox "确认密码不正确!", vbExclamation + vbOKOnly, "警告" Text3.Text = "" Text3.SetFocus Exit SubEnd If'*连接数据库 'Dim cn As New ADODB.Connection 'Dim rst As New ADODB.Recordset Set cn = New ADODB.Connection Set rst = New ADODB.Recordset cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;database=luhengxiu;server=(local)" cn.Open '*检测用户是否存在 UserName = Trim(Text1.Text) mysql = "select * from userinfo where user_name='" & UserName & "'" rst.Open mysql, cn With rst If Not rst.EOF Then MsgBox "该用户已存在,请重新输入新用户!", vbExclamation + vbOKOnly, "提示" rst.Close cn.Close Text1.Text = "" Text2.Text = "" Text3.Text = "" Text1.SetFocus Exit Sub End If End With rst.Close'*添加用户 rst.Open "select * from userinfo ", cn, adOpenDynamic, adLockPessimistic With rst .AddNew .Fields("user_name").Value = Trim(Text1) .Fields("password").Value = Trim(Text2) .Update rst.Close MsgBox "添加新用户成功!", vbOKOnly + vbExclamation, "添加新用户"End WithEnd Sub修改密码界面如下:图4.3 修改密码界面核心代码如下:Private Sub Command1_Click() Dim cn As New ADODB.Connection Dim rst As New ADODB.RecordsetIf Trim(Text1.Text) = "" Then MsgBox "请输入用户名!", vbExclamation + vbOKOnly, "警告" Text1.SetFocus Exit Sub End If If Trim(Text2.Text) = "" Then MsgBox "请输入您的原始密码!", vbExclamation + vbOKOnly, "警告" Text2.SetFocus Exit Sub End If If Trim(Text3.Text) = "" Then MsgBox "请输入新密码!", vbExclamation + vbOKOnly, "警告" Text3.SetFocus Exit SubEnd IfIf Trim(Text4.Text) = "" Then MsgBox "请确认新密码!", vbExclamation + vbOKOnly, "警告" Text4.SetFocus Exit SubEnd IfIf (Trim(Text4.Text) <> Trim(Text3.Text) Then MsgBox "您输入的第二次密码不正确,请重新输入!", vbExclamation + vbOKOnly, "警告" Text4.SetFocus Text4.Text = "" Exit SubEnd If cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;database=luhengxiu;server=(local)" cn.Open UserName = Trim(Text1.Text) mysql = "select * from userinfo where user_name='" & UserName & "'and password='" & Text2.Text & "'" rst.Open mysql, cn If rst.EOF Then MsgBox "您输入的用户名或密码不正确,请重新输入!", vbExclamation + vbOKOnly, "警告" cn.Close Text1.Text = "" Text2.Text = "" Text1.SetFocus Exit Sub Else cn.Close cn.Open '*修改密码 rst.Open "select * from userinfo where user_name='" + Text1.Text + "'", cn, adOpenDynamic, adLockPessimistic With rst .Fields("Password").Value = Trim(Text3) .Update ' rst.Close MsgBox "恭喜您已成功修改密码!", vbOKOnly + vbExclamation, "修改密码" Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" End With End IfEnd Sub 第5章 学籍信息管理模块5.1 学籍管理模块详细设计学生信息的增加,查询,修改的界面如图5.1所示:图5.1 添加学籍信息界面核心代码如下:Private Sub Command1_Click() '添加Dim rst As New ADODB.RecordsetDim sex As StringIf Trim(Text1.Text) = "" Then MsgBox "请输入学号!", vbOKOnly + vbExclamation, "警告" '要求输入范围 Text1.SetFocus Exit Sub End IfIf Trim(Text2.Text) = "" Then MsgBox "请输入姓名!", vbOKOnly + vbExclamation, "警告" Text2.SetFocus Exit Sub End IfIf Trim(Text3.Text) = "" Then MsgBox "请输入出生日期!", vbOKOnly + vbExclamation, "警告" Text3.SetFocus Exit Sub End IfIf Not Trim(Option1.Value Or Option2.Value) Then MsgBox "请选择性别!", vbOKOnly + vbExclamation, "警告" Option1.SetFocus Exit Sub End IfIf Option1.Value Then sex = "男" Else sex = "女"End If'*连接数据库 Set cn = New ADODB.Connection Set rst = New ADODB.Recordset cn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;database=luhengxiu;server=(local)" cn.Open '*检查学生信息是否存在 stu_no = Trim(Text1.Text) mysql = "select * from studentinfo where stu_no='" & stu_no & "'" rst.Open mysql, cn With rst If Not rst.EOF Then MsgBox "该学生信息已存在,请重新输入!", vbExclamation + vbOKOnly, "提示" rst.Close cn.Close Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6(6).Text = "" Text1.SetFocus Exit Sub End If End With rst.Close'*添加学生信息 rst.Open "select * from studentInfo ", cn, adOpenDynamic, adLockPessimistic With rst .AddNew .Fields("stu_no").Value = Trim(Text1) .Fields("name").Value = Trim(Text2) .Fields("sex").Value = sex .Fields("birthdate").Value = Trim(Text3) .Fields("class_no").Value = Trim(Combo1(1) .Fields("nianzhi").Value = Trim(Combo2(0) .Fields("tel_no").Value = Trim(Text4) .Fields("address").Value = Trim(Text5) .Fields("memo").Value = Trim(Text6(6) .Update rst.Close MsgBox "添加学生信息成功!", vbOKOnly + vbExclamation, "添加学生信息" End WithEnd Sub查询修改学籍信息模块的界面如图5.2所示:图5.2 查询修改学籍信息界面核心代码如下:Private Sub Command1_Click() Dim txtSQL As String '声明字符串变量 Dim rst As New ADODB.Recordset Dim dd(4) As Boolean Dim cn As ADODB.Connection '*按学号查询 If Check1.Value Then If Trim(Text1) = "" Then MsgBox "学号不能为空", vbOKOnly + vbExclamation, "警告" Text1.SetFocus Exit Sub ElseIf Not IsNumeric(Trim(Text1.Text) Then MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告" Exit Sub Text1.SetFocus Else dd(0) = True txtSQL = "select * from studentinfo where stu_no='" & Trim(Text1.Text) & "'" End If End If If Check2.Value Then '*按姓名查询 If Trim(Text2) = "" Then MsgBox "姓名不能为空", vbOKOnly + vbExclamation, "警告" Text2.SetFocus Exit Sub Else dd(1) = True If dd(0) Then txtSQL = "select * from studentinfo where stu_no='" & Trim(Text1.Text) & "' and Name='" & Trim(Text2.Text) & "'" Else txtSQL = "select * from studentinfo where Name='" & Trim(Text2.Text) & "'" End If End If End If '* If Not (dd(0) Or dd(1) Then MsgBox "请设置查询方式!", vbOKOnly + vbExclamation, "警告" Exit Sub End If'*连接数据库 Set cn = New ADODB.Connection Set rst = New ADODB.Recordset cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;user id=sa;Initial Catalog=luhengxiu;Data Source=(local)" cn.Open rst.Open txtSQL, cn If rst.EOF Then MsgBox "没有该学生", vbOKOnly + vbExclamation, "警告" Text1 = "" Text2 = "" Exit Sub End If With MSFlexGrid1 .TextMatrix(1, 1) = "学号" '显示 .TextMatrix(1, 2) = "姓名" .TextMatrix(1, 3) = "班级号" .TextMatrix(1,