学生信息管理系统毕业论文3.doc
上海xx大学 毕业设计(论文、作业)毕业设计(论文、作业)题目: 学生信息管理系统 分校(站、点): XX 年级、专业: 2011秋计算机实用技术 教育层次: 学生姓名: XX 学 号: XXXXXXXXXX 指导教师: XXX 完成日期: 2013年X月1X号 目录内容摘要I一、序言1二、需求分析1三、总体设计2(一)系统开发工具及其介绍21.VB.NET22.SQLServer20052(二)系统模块及功能2(三)系统流程图3(四)系统结构图4四、 数据库设计4(一)数据库表结构的详细设计4(二) 数据库表之间的关系6五 、系统功能代码实现7(一)主窗体设置7(二)登录7(三)基础资料管理81.用户注册82.用户管理9(四)学生资料管理101.输入学生资料102.修改学生资料123.查询学生资料134.删除学生资料14(五)学生成绩管理151.输入学生成绩152.查询学生成绩163.修改学生成绩174删除学生成绩18(六)班级管理191.学科管理192.班级管理19(七)密码修改19六 、小结20参考文献:20致谢21内容摘要信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。计算机已经成为我们学习和工作的得力助手。学生信息管理系统是学校教务管理中的一个极为重要的环节,它是整个学校管理的核心和基础。本文介绍了学生信息管理系统的开发整个过程,阐述了数据库设计、系统设计和系统实施的全部过程。采用VisualS2005作为开放工具,SQL Server Management Studio作为后台数据库。本系统具有基本资料管理(用户注册、用户管理两个模块功能)、学生信息管理、学生成绩管理、班级管理、密码修改等模块,可分别完成学生基本信息和学生成绩管理的输入、修改、查询、删除等功能。通过学生信息管理系统,可以做到学生信息、成绩的规范管理、科学统计和快速的查询,从而减少管理方便的工作量。关键词: VB.NET 数据库 信息管理 学生信息学生信息管理系统一、序言随着科学技术的不断进步,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一个重要部分,信息管理系统是一个由用户和计算机组成的进行信息管理、信息收集、存储处理、传递使用和维护的软件系统。学生信息管理系统是学校地方管理工作过程中不可缺少的部分,对学生信息管理工作,具有着手工管理所无法比拟的优点,检索迅速、查找方便、可靠性高、存储量大等。这些优点能够极大地提高日常查询的效率。因此,设计一个功能完整、操作简便、界面友好的学生信息管理系统已经势在必行。本系统开发的目的是提高学校管理工作的效率,保证信息的准确和规范,减少相关人员的工作量,使学校的教务管理工作真正做到科学、合理的规划,系统、高效的实施。数据库技术是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据。本文介绍了学生管理系统的设计开发,主要是基于这样一种体系,前台使用VB.NET设计开发,通过ADO.NET来实现对后台SQL Server数据库设计管理。从功能上来说,该系统实现课程管理、学生信息管理、成绩管理和系统管理功能,基本满足了用户在教务管理方面的要求,同时又能解决实际问题,简化用户的操作。二、需求分析为什么需要学生信息管理系统,以往的手工记录耗时、耗力,不但浪费了大量的资源,并且得不到充分的信息数据保护,所以需要一个既能保护数据又能省时省力的管理软件来进行管理。从而开发出一款学生信息管理系统,此系统必须具备能够管理基础资料信息、学生资料、学生成绩、班级管理、密码修改以及用户登录模块,既然是一款管理软件,那必然需要管理人员来管理,所以在系统中必须要有对用户的管理,以方便管理人员对用户进行管理。系统中的登录管理模块可以限制用户的登录权限,不同的用户登陆有着不同的管理权限,如果没有登陆模块,那么所有用户就可以随便的进入系统,拥有同样的权限,那样整个系统就会乱掉,所以需要登陆模块来限制登陆用户的权限从而开发出登陆模块。基础资料管理模块可以对用户进行注册、修改和删除,此功能只有管理员才具备,在一个管理软件中,必须要有一个管理员对系统中所有的用户进行添加、修改和删除,从而更好的有效的管理好这款软件,所以开发出来了基础资料管理模块。对学生的资料管理比较复杂,所以需要对学生的信息进行统一的有序的管理,因为在一个学校中,学生成千上万,学生的资料数据也比较的杂乱,所以需要能够有序统一的来管理学生信息,学生资料管理模块是统一的对学生的基本信息进行的添加、删除、查询和修改,从而开发出了学生资料管理模块。对学生的成绩管理也是要有序的管理,学生成绩管理模块是对学生的学生成绩输入、学生成绩查询、学生成绩删除和对成绩的修改,手工输入成绩那是避免不了的,但是查看方式比以往的查看成绩信息方便多了,一目了然,所以开发出了学生成绩管理模块。班级管理是对学生所在的班级进行的修改、添加和删除,因为学生所在的班级一定要规划好,才能更好的管理学生,开发班级模块只是能够对更好方便的管理学生,所以开发出了班级管理模块。学科管理对学生在某一学期所有课程的管理,对课程的添加、修改和删除,所以开发出了课程管理。成绩管理模块是用户对成绩进行查询使用的,该模块中用户可以按班级、学号和课程对学生成绩进行查询,成绩查询模块只是为了让用户更方便的查看成绩信息,所以开发了成绩管理模块。该系统实现课程管理、学生资料管理、学生成绩管理、班级管理、成绩查询和系统管理功能,基本满足了用户在教务管理方面的要求,并具有良好的可扩充性。三、总体设计(一)系统开发工具及其介绍 1.VB.NETVisual Basic.NET是基于微软。NETFramework之上的面向对象的中间解释性语言,可以看作是Visual Basic在。Net Framework平台上的升级版本,增强了对面向对象的支持。但由于改动太大,导致VB.net对VB的向后兼容性不好,在业界引起不小的争议。 大多的VB.Net程序员使用Visual Studio .Net作为IDE(integrated development environment). SharpDevelop是另一种可用的开源的IDE。VB.Net需要在。Net Framework平台上才能执行。 2.SQLServer2005SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。SQL Server 2005 数据引擎是本企业数据管理解决方案的核心。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 SQL Server 2005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。(二)系统模块及功能系统模块划分如下所示:登陆管理模块:为了系统的安全性,根据不同权限给出不同服务。基础资料模块:仅系统管理员可用,对这个系统的所有用户进行管理和新用户的注册。学生资料模块:仅教务可用,对学生资料的管理,输入、修改、查询、删除等操作。学生成绩模块:仅今教师可用,对学生成绩的管理,输入、修改、查询、删除等操作。班级管理模块:对学生班级课程添加、删除的管理,这是教务教师管理员都有的权限。密码修改模块:对登陆用户的密码修改。只限修改登陆号的秘密。(三)系统流程图系统登录分登陆成功和失败,失败则重新登陆或退出,成功则进入相应的权限模块,基本资料管理模块、学生资料管理模块、学生成绩管理模块和班级管理模块等,基本资料管理模块主要是对系统中用户的管理,对用户进行的添加、修改和删除。 图 1 系统流程(四)系统结构图在学生信息管理系统中分为登陆、修改密码、学生资料管理、学生成绩管理、基本资料管理和班级管理,登陆和基本资料管理在系统流程中已作解释,下面对学生资料管理、学生成绩管理和班级管理。学生资料管理中分为输入学生资料、修改学生资料、查询学生资料和删除学生资料。学生成绩管理中分为输入学生成绩、修改学生成绩、查询学生成绩和删除学生成绩,手工输入成绩那是避免不了的,但是查看方式比以往的查看成绩信息方便多了,一目了然。学生成绩查询的开发是能让用户更详细的查询到某一个学生、班级、课程的所有信息。班级管理分为班级管理、学科管理,对班级和学科进行添加、修改和删除的管理,相对以往的手工管理方便的很多。图 2 系统结构四、 数据库设计(一)数据库表结构的详细设计本系统采用SQL Server 2000数据库系统,在该系统中新建一个数据库,将其命名为xsxx,然后再在该数据库中创建5个数据表:用户表其中姓名是用户表的用户名,它是用来用户登录用户表,其字段都不为空,姓名设为主键。如下图3所示:图3 用户表成绩表是来存放科目成绩的,其中ID为主键而且序号是自增长(也就是标识为是),除ID以外其它字段都为空。如图4所示:图4 成绩表科目表存放着科目信息字段有科目编号、科目名称,科目编号设为主键,两个字段都不允许为空,如图5所示:图5 科目表学生基本信息表存放了学生的基本信息,其中电话、住址和相片的字段允许为空其余的不允许为空,学号设为主键如下图6所示:图6 学生基本信息表班级表存放着班级信息字段有班号、班级其字段都不为空,班号设为主键。如图7所示:图7 班级表 (二) 数据库表之间的关系 数据库表之间的关系如图8所示。 图8数据库表之间的关系五 、系统功能代码实现(一)主窗体设置 前面已经介绍了本系统的模块划分,每个子模块就代表一个窗体。主窗体有三个界面都是一样的。主窗体就是将各个子窗体通过菜单项结合在一起,方便调用。不同的用户拥有不同的权限,管理员在主窗体里只能进入基础资料管理和修改自己的登录密码和班级管理,教师在主窗体除了对学生成绩管理和班级管理进行操作外,也可以对自己的登录密码进行修改。教务的权限是对学生资料管理、班级管理的操作和对自己登录密码的修改。主窗体界面: 图9主窗体功能代码如下: Dim frl As New 登录 frl.Show()用来跳转界面的,定义新的窗体,在主窗体当用户单击这个事件的时候跳转到这个界面。其它跳转界面的代码与此一样,就此省略。 (二)登录 程序运行时进入的是主界面,然后要进入登陆界面,在登陆中输入正确用户、密码后才能进入所相对权限的管理,登陆界面有分用户权限,不同用户进入后具备的功能不同。功能代码如下:For i As Integer = 0 To Me.XsxxDataSet.用户.Count - 1 If TextBox1.Text.Trim = Me.XsxxDataSet.用户(i).姓名.Trim And TextBox2.Text.Trim = Me.XsxxDataSet.用户(i).密码.Trim ThenForm1.Timer1.Tag = Me.XsxxDataSet.用户(i).权限Form1.Timer1.Enabled = TrueMe.Close()Exit SubEnd IfNextMsgBox("姓名或密码输入错误!")End Sub首先进行判断用户名和密码是否为空,如果为空就会报错。如果在文本框中输入用户名和密码,和数据库中的用户名密码进行比对,失败则系统提示登陆失败,密码或用户名。并判断用户类型也就是用户的权限,给出相应的功能。 登陆界面: 图10登录界面(三)基础资料管理 基础资料管理有2个界面。分别是用户注册界面,用户管理界面。 1.用户注册 用户的姓名和密码不能为空,已经注册过的用户不能重复注册,用户权限采用选择输入法。用户注册界面只有管理员可以进行注册,其他用户不开放。功能代码如下: For i As Integer = 0 To Me.XsxxDataSet.用户.Count - 1 If Me.Text.Trim = Me.XsxxDataSet.用户(i).姓名.Trim Then MsgBox("该用户已经存在!") Exit Sub End If Next If TextBox1.Text = "" Or TextBox2.Text = "" Then MsgBox("姓名和密码不能为空!") Else Me.XsxxDataSet.用户.Add用户Row(TextBox1.Text, TextBox2.Text, ComboBox1.SelectedIndex.ToString) Me.用户TableAdapter.Update(Me.XsxxDataSet.用户) Me.XsxxDataSet.用户.AcceptChanges() MsgBox("注册成功!")用户注册界面:图11用户注册2.用户管理用户管理是对用户进行删除和权限修改,窗体使用了DataGridView控件用来显示用户表的信息,该窗体只有管理员能进行操作。Me.用户TableAdapter.Fill(Me.XsxxDataSet.用户)拖拉到界面上自动生成的代码Me.DataGridView1.DataSource = Me.用户BindingSource这是DataGridView与用户表绑定下面的代码是打在DataGridView的单击事件下,使单击DataGridView里的条信息进行修改:TextBox1.Text = Me.XsxxDataSet.用户(Me.用户DataGridView.CurrentRow.Index).密码 If Me.XsxxDataSet.用户(Me.用户DataGridView.CurrentRow.Index).权限 = "0" Then ComboBox1.Text = "管理员" ComboBox1.SelectedIndex = 0 End If If Me.XsxxDataSet.用户(Me.用户DataGridView.CurrentRow.Index).权限 = "1" Then ComboBox1.Text = "教师" ComboBox1.SelectedIndex = 1 End If If Me.XsxxDataSet.用户(Me.用户DataGridView.CurrentRow.Index).权限 = "2" Then ComboBox1.Text = "教务" ComboBox1.SelectedIndex = 2 End If权限修改代码如下: Me.XsxxDataSet.用户(Me.用户DataGridView.CurrentRow.Index).密码 = TextBox1.Text Me.XsxxDataSet.用户(Me.用户DataGridView.CurrentRow.Index).权限 = ComboBox1.SelectedIndex.ToString Me.用户TableAdapter.Update(Me.XsxxDataSet.用户) Me.XsxxDataSet.用户.AcceptChanges() MsgBox("修改成功")删除代码如下: If MsgBox("确定删除吗?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then Me.XsxxDataSet.用户(Me.用户DataGridView.CurrentRow.Index).Delete() Me.用户TableAdapter.Update(Me.XsxxDataSet.用户) Me.XsxxDataSet.用户.AcceptChanges()用户管理界面:图12 用户管理(四)学生资料管理 1.输入学生资料按班级逐个输入新生资料:新生的学号由系统自动生成;用打开文件对话框和图片对话框控件完成学生相片文件的导入和显示。输入学生资料界面:图13输入学生资料功能代码如下: If Me.OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then Try Me.PictureBox1.Image = Image.FromFile(Me.OpenFileDialog1.FileName) zx = TextBox1.Text + _ Me.OpenFileDialog1.FileName.Substring(Me.OpenFileDialog1.FileName.LastIndexOf(".") Catch ex As Exception zx = "无.jpg" End Try Else zx = "无.jpg" End If Button3.Enabled = True以上这段代码是导入照片功能,只有导入照片后,存入资料按钮才能有用。在保存新生资料时对输入项作必要验证,把新生的相片文件改名为其学号+文件后缀后存放到项目的debug/pc文件夹内。如果没有正常导入相片文件,则暂时用”无.jif ”相片名称。 Sub bh() If Me.XsxxDataSet.学生基本信息.Count = 0 Then TextBox1.Text = Me.班级ComboBox.SelectedValue + "1" Exit Sub End If Dim cl As String = XsxxDataSet.学生基本信息(XsxxDataSet.学生基本信息.Count - 1).学号.Substring(6, 2) If cl.Substring(1, 1) = "9" Then TextBox1.Text = Trim(Me.班级ComboBox.SelectedValue) + "0" + (Val(cl.Substring(0, 1) + 1).ToString + "0" Else TextBox1.Text = Trim(Me.班级ComboBox.SelectedValue) + "0" + cl.Substring(0, 1) + (Val(cl.Substring(1, 1) + 1).ToString在输入学生资料窗体中,有三处代码要实现学号的自动生成功能,为此,以上编写一个用户自定义过程bh()来实现学号自动生成功能。 If TextBox2.Text = "" Then MsgBox("必须输入姓名!") Exit Sub End If If zx <> "无.jpg" Then Me.PictureBox1.Image.Save(Application.StartupPath + "/pc/" + zx) End If以上是存入资料事件过程的代码。 2.修改学生资料按班级显示学生资料,选择要修改的学生,显示该学生的所有信息(包括相片图像),再修改,替换该学生资料额相片后予以保存。修改学生资料管理界面:图14 修改学生资料这个窗体在运行时不但在班级下拉列表,学生资料数据表格里出现了第一个班级名称和这个班级的学生资料,在修改学生资料的框内,也已经显示了该班第一个学生的资料以待修改。存入资料按钮代码功能代码如下: Dim n As Integer = Me.学生基本信息DataGridView.CurrentRow.Index Me.XsxxDataSet.学生基本信息(n).姓名 = TextBox2.Text Me.XsxxDataSet.学生基本信息(n).电话 = TextBox3.Text Me.XsxxDataSet.学生基本信息(n).住址 = TextBox4.Text Me.XsxxDataSet.学生基本信息(n).出生日期 = Me.DateTimePicker1.Value Me.XsxxDataSet.学生基本信息(n).性别 = Me.ComboBox2.Text Me.XsxxDataSet.学生基本信息(n).相片 = zx Me.学生基本信息TableAdapter.Update(Me.XsxxDataSet.学生基本信息) Me.XsxxDataSet.学生基本信息.AcceptChanges()学生基本信息DataGridView_Click事件过程中的代码如下: Try Dim n As Integer = Me.学生基本信息DataGridView.CurrentRow.Index TextBox1.Text = Me.XsxxDataSet.学生基本信息(n).学号 TextBox2.Text = Me.XsxxDataSet.学生基本信息(n).姓名 TextBox3.Text = Me.XsxxDataSet.学生基本信息(n).电话 TextBox4.Text = Me.XsxxDataSet.学生基本信息(n).住址 Me.DateTimePicker1.Value = Me.XsxxDataSet.学生基本信息(n).出生日期 ComboBox2.Text = Me.XsxxDataSet.学生基本信息(n).性别 zx = Me.XsxxDataSet.学生基本信息(n).相片.Trim Me.PictureBox1.Image = Image.FromFile("./pc/" + zx) Catch ex As Exception End Try3.查询学生资料查询学生资料可以按照学号和姓名进行详细查询,也可以根据班级索引进行查询,对查询学生的基本信息十分便捷。既可以按班级显示该学生姓名,再选定要查询的学生完成查询,也可以按学生的学号或姓名进行模糊查找来完成查询。查询学生资料界面:图15 查询学生资料查询功能代码如下: Try Dim n As Integer = Me.学生基本信息ListBox.SelectedIndex TextBox2.Text = Me.XsxxDataSet.学生基本信息(n).班号 TextBox3.Text = Me.XsxxDataSet.学生基本信息(n).班级 TextBox4.Text = Me.XsxxDataSet.学生基本信息(n).学号 TextBox5.Text = Me.XsxxDataSet.学生基本信息(n).姓名 TextBox6.Text = Me.XsxxDataSet.学生基本信息(n).性别 TextBox7.Text = Me.XsxxDataSet.学生基本信息(n).出生日期 TextBox8.Text = Me.XsxxDataSet.学生基本信息(n).电话 TextBox9.Text = Me.XsxxDataSet.学生基本信息(n).住址 Me.PictureBox1.Image = Image.FromFile("./pc/" + Me.XsxxDataSet.学生基本信息(n).相片) Catch ex As Exception End Try以上是学生基本信息ListBox_Click的代码。 If RadioButton1.Checked Then cl = "select * from 学生基本信息 where 学号 like '%" + TextBox1.Text.Trim + "%'" Else cl = "select * from 学生基本信息 where 姓名 like '%" + TextBox1.Text.Trim + "%'" End If Dim ad As New SqlClient.SqlDataAdapter(cl, 学生基本信息TableAdapter.Connection) Me.XsxxDataSet.学生基本信息.Clear() ad.Fill(Me.XsxxDataSet.学生基本信息) 学生基本信息ListBox_Click(sender, e)以上是“确定”按钮Button1_Click事件过程的代码。 4.删除学生资料 删除学生资料是对错误的学生信息、多余的进行删除,设计简单,这里就不多做说明了。 删除学生资料界面:图16删除学生资料主要功能代码如下: If MsgBox("确定删除吗?", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then End If Me.XsxxDataSet.学生基本信息(Me.学生基本信息DataGridView.CurrentRow.Index).Delete() Me.学生基本信息TableAdapter.Update(Me.XsxxDataSet.学生基本信息) Me.XsxxDataSet.学生基本信息.AcceptChanges()(五)学生成绩管理 1.输入学生成绩按班级逐个输入学生一门学科成绩,一个班级的这门学科成绩如果已经输入完毕,就会显示相应提示,如果这个班级的魔门学科成绩输入到退出了操作,下次进入同一个班级同一门学科成绩输入时,会自动从上次没有输入成绩的第一个学生开始提示输入。这样既符合用户的工作习惯,提高系统效率,又不会重复某个输入某个学生的单科成绩。输入学生成绩管理界面:图17 输入学生成绩存入按钮功能代码如下: Me.XsxxDataSet.成绩.Add成绩Row(Me.XsxxDataSet.学生基本信息(n).学号, Me.科目ComboBox.SelectedValue, TextBox2.Text, Me.班级ComboBox.Text, Me.班级ComboBox.SelectedValue) Me.Validate() Me.成绩BindingSource.EndEdit() Me.成绩TableAdapter.Update(Me.XsxxDataSet.成绩) n += 1 If n < Me.XsxxDataSet.学生基本信息.Count Then TextBox1.Text = Me.XsxxDataSet.学生基本信息(n).姓名 TextBox2.Text = 0 Else MsgBox("该班级本门学科成绩输入完毕!") Button1.Enabled = False班级ComboBox_SelectedIndexChanged事件过程代码如下: Try Me.成绩TableAdapter.FillBy(Me.XsxxDataSet.成绩, Me.班级ComboBox.SelectedValue, Me.科目ComboBox.SelectedValue) Me.学生基本信息TableAdapter.FillBy(Me.XsxxDataSet.学生基本信息, Me.班级ComboBox.SelectedValue) n = Me.XsxxDataSet.成绩.Count If n < Me.XsxxDataSet.学生基本信息.Count Then TextBox1.Text = Me.XsxxDataSet.学生基本信息(n).姓名 TextBox2.Text = 0 Button1.Enabled = True Else MsgBox("该班级部门学科成绩输入完毕!") Button1.Enabled = False End If Catch ex As Exception End Try 2.查询学生成绩查询学生成绩既可以按班级和学科显示该班学生这门学科的成绩,也可以按学号或姓名模糊查询一个学生全部学科的成绩。 查询学生成绩界面:图18查询学生成绩班级ComboBox_SelectedIndexChanged事件过程代码如下: Try Me.成绩TableAdapter.FillBy(Me.XsxxDataSet.成绩, Me.班级ComboBox.SelectedValue, Me.科目名称ComboBox.SelectedValue) Me.学生基本信息TableAdapter.FillBy(Me.XsxxDataSet.学生基本信息, Me.班级ComboBox.SelectedValue) Catch ex As Exception End Try Try确定按钮过程代码如下: Me.XsxxDataSet.学生基本信息.Clear() If RadioButton1.Checked Then cl = "select * from 学生基本信息 where 学号 like '%" + TextBox1.Text.Trim + "%'" Else cl = "select * from 学生基本信息 where 姓名 like '%" + TextBox1.Text.Trim + "%'" End If Dim ad As New SqlClient.SqlDataAdapter(cl, Me.学生基本信息TableAdapter.Connection) ad.Fill(Me.XsxxDataSet.学生基本信息) ListBox1_Click(sender, e) 3.修改学生成绩修改学生成绩,按班级和学科显示学生成绩,选择要修改的学生,显示该学生的这门学科成绩以待修改,修改后可保存修改结果并在DataGridView.上显示修改结果。 修改学生成绩界面:图19修改学生成绩成绩DataGridView_Click功能代码如下: Dim cl As String = XsxxDataSet.成绩(成绩DataGridView.CurrentRow.Index).学号 TextBox1.Text = XsxxDataSet.学生基本信息.FindBy学号(cl).姓名 TextBox2.Text = XsxxDataSet.成绩(成绩DataGridView.CurrentRow.Index).科目成绩班级ComboBox_Select