SQL学生信息管理系统.doc_第1页
SQL学生信息管理系统.doc_第2页
SQL学生信息管理系统.doc_第3页
SQL学生信息管理系统.doc_第4页
SQL学生信息管理系统.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)题目 学生信息管理系统设计与实现系 别 软件工程系 专 业 软件技术 班 级 姓 名 学 号 指导老师(职称) 日 期 兰州工业高等专科学校毕业设计(论文)任务书 软件工程 系 2008 届 计算机软件 专业毕业设计(论文)任务书毕业设计(论文)题目VB学生管理系统课题内容性质软件开发课题来源性质教师收集的结合生产实际的课题设计/论文校内(外)指导教师职 称工作单位及部门联系方式一、题目说明(目的和意义):Visual Basic 是一个强有力的系统开发软件之一,以其实用、方便、快捷、开发周期短,越来越被广大编程人员所青睐。VB更容易上手,进而提高软件开发的效率。通过实际设计,掌握VB应用程序开发软件的设计方法,理解软件工程思想。本次设计的主要目的是提高学生综合分析问题和解决实际问题的能力,为将来走上工作岗位打下一个良好的基础。学生信息管理系统主要包括对学生信息的查询和修改等操作。二、设计(论文)要求(工作量、内容):(一)系统需求分析(占全部工作量的20%)1、认真阅读毕业设计任务书,对设计题目的实用性、可行性进行论证。2、收集资料:认真阅读毕业设计任务书。了解设计目标及要求与开发环境。主要是软件环境,即系统中将采用的开发工具,如有异议,可及时与指导老师进行交流。3、设计目标及要求:实现对学生信息的查询和修改。主要实现以下几方面功能:用户登录系统:实现用户可以以各种身份登录。信息查询:包括单项查询和综合查询。系统维护:包括系统中涉及到的规范化数据字典表的管理、用户管理等。(二)数据库系统分析、设计(占全部工作量的20%)1、采用VB数据库系统VB+ACCESS2、设计数据库中需要的表设计表结构,设计表中的字段、类型、长度等。3、分析系统中表之间的关系(三)程序设计、调试(占全部工作量的30%)(四)系统测试(占全部工作量的20%)(五)书写设计论文(占全部工作量的10%)三、进度表日 期内 容第15周第一阶段:系统需求分析1。系统的实用性、可行性分析2。业务分析3。设计目标4。功能设计第16周第二阶段:数据库设计1。数据库设计:设计数据库结构2。给出ER图及相应数据流图第17-18周第三阶段:程序设计、调试和系统测试 1. 程序编制2. 系统测试3. 系统打包、完成第19-20周第四阶段:写毕业论文完成日期答辩日期 四、主要参考文献、资料、设备和实习地点及翻译工作量:1主要参考文献:1 萨师煊 王珊。数据库系统概论。第三版。北京:高等教育出版社,2000。2周霭如、官士鸿、林伟健。Visual Basic程序设计。北京:电子工业出版社,2003。1。3尹贵祥。 Visual Basic6。0程序设计案例教程。 。北京:中国铁道出版社,2005。14 (美) Stephen R。Schach。软件工程。北京: 机械工业出版社,1999。92设备:计算机一台,自己解决。3翻译工作量:论文摘要。指导教师签字教研室主任签字主管系领导签字年 月 日年 月 日年 月 日注:本任务书要求一式两份,一份系部留存,一份报教务处实践教学科。摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。学生成绩管理系统主要提供方便高效的管理功能,该实现以下一些基本功能: 1。系统管理模块:维护系统的正常运行和安全性设置,包括添加用户、修改密码、删除用户等等。 2。学院信息模块:实现对学校院系、专业、班级操作。包括:添加、修改、删除院系、专业、班级等信息。这三个功能模块各自独立,完成学校的全部班级的管理。 3。学生学籍管理模块:实现对学生的个人信息的管理工作,包括学籍添加、 学籍查询、学籍修改等功能,从而方便学校管理部门对学校的基本情况的快速查询和了解。 4。课程管理模块:该模块对各个班级的课程进行设置,并可在其中设置各门 课程的教材选用情况,方便了学校教材管理部门和教务处的教学管理人员的工作。该模块包括基本课程设置和班级课程设置两个模块。5。成绩管理模块:检验学生学习情况的一个主要手段,本模块包括考试类型 设置,共有期中考试和期未考试两种类型,还设置了成绩添加、成绩查询、成绩浏览、成绩修改等功能模块。6。 退出模块:此模块完成程序的退出。 该程序界面友好,功能强大,适合实际应用。关键字:数据库 ACCESS 数据库第一章 绪论1.概述该信息管理系统可以说是一个综合性的学校学生管理系统,它集成了学生学籍管理系统、学生成绩管理系统、学生档案管理系统等多种功能,因而具有较强的实用性和先进性。项目提出的意义现在我国的大中专院校的学生信息管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了许多的人力和物力。在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替。如果本系统能被学校所采用,将会改变以前靠手工管理 学生成绩的状况,可以树立良好的办学形象,提高工作效率。项目开发背景学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,对学生来说也可以轻松的查阅自己在校的成绩以及信息等。但是一直以来人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机对学生信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速,查找方便,可靠性高,存储量大,保密性好,寿命长,成本低等。这些优点能够极大地提高学生信息管理的效率,方便系统管理员对学 生成绩等信息的添加,修改,删除,查询,留言等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。项目开发的目标建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。二、相关技术与开发工具介绍本系统采用面向对象的软件开发办法,以Microsoft公司的可视开发环境 Visual Basic6.0 作为主要开发工具,使用Microsoft Access 2000作为关系数据库,并为VB编程语言中采用ADO数据库编程模型,配合功能强大的SQL查询语言实现建立关系数据库,放问数据库,对数据库的更新,较好地实现了预定的需求功能。第二章 需求分析通过调查,要求系统需要有以下功能: 要求有良好的人机界面;较好的权限管理;原始数据修改简单方便,支持多条件修改;方便的数据查询,支持多条件查询;相应的权限下,删除数据方便简单,数据稳定性好;数据计算自动完成,尽量减少人工干预;可行性分析:由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是奔腾 3 以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。数据库是 MIS 中的重要支持技术,在 MIS 开发过程中,如何选择数据库管理 是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的数据库语言介绍如下: Visual Basic 是一种可视化的、面对对象和调用事件驱动方式的结构化 高级程序设计,可用于开发 Windows 环境下的种类应用程序。它简单易学、效率 高,且功能强大。在 Visual Basic 环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,可以高效、快速地开发出 Windows 环境下功能强大、图 形界面丰富的应用软件系统。第三章 功能设计2.3 业务流程分析学生信息管理系统普通用户中级用户管理员查询个人信息查询个人成绩查询个人信息改查学生成绩修改密码添加学生教师添加管理员查询数据设置学院信息2.4 数据流程分析:普通用户(学生):提供查询(需登录,仅显示登录用户信息)中等用户(教师):提供增删改查(需登录,只可操作成绩表,并且教师工号对自己对应的成绩)管理员(教务处):提供增删改查(可对学生,教师,成绩等操作)学生信息管理系统普通用户中级用户管理员学生表教师表管理员表成绩表普通用户:登录账户为学生学号中级用户:登录账号为教师工号,密码自定义,可修改管理员:登录账号为特定,密码可修改,可增加特殊账号管理员管理员表增查个人信息增查教师信息教师表修改学院信息专业表院系表班级表软件功能设计第四章 详细设计数据库设计学生表(student):列字段名类型长度是否为空主键学号IdChar20否是姓名nameChar20否否性别sexChar2是否出生年月birthdayDate/time8是否民族nationText10是否籍贯nativetext10是否入学时间enterTimeDate/time8是否院系编号fIDtext5是否专业编号speIDtext5是否班级编号cIDtext5是否教师表:()列字段名类型长度是否为空主键教师工号tIDtext20否是教师姓名tNametext10否否性别tSextext2是否名族tNationtext10是否籍贯tNativetext10是否政治面貌Politicaltext10是否职称titaltext10是否所属部门departmenttext10是否登陆密码passwordtext50是否管理员表:()列字段名类型长度是否为空主键管理员编号adIDtext10否是管理员账号adNametext50否否密码adPasswordtext50否否所属部门adDeparttext10否否成绩表:()列字段名类型长度是否为空主键学生编号stuIDtext12否否学科编号subIDtext10否否平时成绩usualtext10否否期末finaltext10否否总评efftext10是否教师工号teacherIDtext20否否院系表(faculty):列字段名类型长度是否为空主键院系编号fIDtext2否是院系名称fNametext10否否专业表(special):列字段名类型长度是否为空主键专业编号speIDtext2否是专业名称sNametext50否否所属院系sfIDtext2否否学科表(subject):列字段名类型长度是否为空主键编号subIDtext5否是名称subNametext50否否班级表(class):列字段名类型长度是否为空主键班级编号cIDtext2是否班级名称cNametext50是否所属院系fIDtext2是否所属专业sIDtext2是否程序代码设计要求:根据系统的主要功能及上一章的总体设计,系统开发进入第二个阶段:详细设计。在这一阶段的工作中,主要任务有以下几项:1、根据原型化的开发原则,为系统的每个模块功能进行界面设计,作为进一步优化的基础。2、进行系统的流程分析,为模块的细化做好准备。3、对每个模块进行详细的算法设计。详细代码设计公共模块:解决登陆用户信息以及数据库标志等公共信息,所以定义通用变量Public gUserName As String 保存用户名称Public gTid As String 保存教师信息Public gStuID As String 保存学生登录信息Public flag As Integer 添加和修改的标志Public gSQL As String 保存SQL语句Public kqsql2 As String 保存查询其他考勤结果SQL语句Public ArecordID As IntegerPublic LrecordID As IntegerPublic orecordID As IntegerPublic ErecordID As IntegerPublic iflag As Integer 数据库是否打开标志数据库连接选用ADODB连接方式,首先先编写一公共模块,用于存放数据库访问类。Public Function TransactSQL(ByVal sql As String) As ADODB.RecordsetDim con As ADODB.ConnectionDim rs As ADODB.RecordsetDim strConnection As StringDim strArray() As StringSet con = New ADODB.ConnectionSet rs = New ADODB.RecordsetOn Error GoTo TransactSQL_Error strConnection = Provider=Microsoft.jet.oledb.4.0;Data Source= & App.Path & DBStuData.mdb strArray = Split(sql) con.Open strConnection If StrComp(UCase$(strArray(0), select, vbTextCompare) = 0 Then rs.Open Trim$(sql), con, adOpenKeyset, adLockOptimistic Set TransactSQL = rs iflag = 1 Else con.Execute sql iflag = 1 End IfTransactSQL_Exit: Set rs = Nothing Set con = Nothing Exit FunctionTransactSQL_Error: MsgBox 查询错误: & Err.Description iflag = 2 Resume TransactSQL_ExitEnd Function解决关闭窗口后程序任在后台运行类:Public Sub Shutdown(Optional ByVal Force As Boolean = False)Dim I As LongOn Error Resume Next For I = Forms.Count - 1 To 0 Step -1 If Not Force Then If Forms.Count I Then Exit Sub End If End If Next IIf Force Or (Forms.Count = 0) Then CloseIf Force Or (Forms.Count 0) Then EndEnd Sub识别tab键Public Sub TabToEnter(Key As Integer) If Key = 13 Then SendKeys TAB End If End Sub登陆界面设计由于有三类用户同时登陆其中,学生输入学号登陆,教师登陆由教工号于密码登陆,管理员由账号密码登陆。代码如下:Private Sub cmdOK_Click() Dim sql As String Dim rs As ADODB.Recordset If Trim(UserName.Text = ) Then MsgBox 没有输入用户名,请重新输入!, vbOKOnly + vbExclamation, 警告 UserName.SetFocus Else sql = select * from Administrator where adName= & UserName.Text & Set rs = TransactSQL(sql) If iflag = 1 Then If rs.EOF = True Then MsgBox 没有这个用户,请重新输入!, vbOKOnly + vbExclamation, 警告 UserName.SetFocus Else If Trim(rs.Fields(2) = Trim(adPassWord.Text) Then rs.Close Me.Hide gUserName = Trim(UserName.Text) 记录用户 adminFrm.Show Unload Me Else MsgBox 密码不正确,请重新输入!, vbOKOnly + vbExclamation, 警告 adPassWord.SetFocus adPassWord.Text = End If End If Else Unload Me End If End IfEnd Sub主窗体设计系统选项中提供管理员注册,修改,删除功能其中,注册界面代码如下:代码:Private Sub cmdOK_Click() Dim sql As String Dim rs As ADODB.Recordset If Trim(adName.Text) = Then MsgBox 请输入用户名称, vbOKOnly + vbExclamation, 警告 Exit Sub adName.SetFocus Else sql = select * from Administrator where adName= & adName.Text & Set rs = TransactSQL(sql) 判断用户名是否存在 If rs.EOF = False Then MsgBox 这个用户已存在,请重新输入!, vbOKOnly + vbExclamation, 警告 adName.SetFocus adName.Text = passW1.Text = passW2.Text = Exit Sub Else If Trim(passW1.Text) = Then MsgBox 请输入密码, vbOKOnly + vbExclamation, 警告 passW1.SetFocus Exit Sub ElseIf Trim(passW2.Text) = Then MsgBox 请再次输入密码!, vbOKOnly + vbExclamation, 警告 passW2.SetFocus Exit Sub ElseIf Trim(passW1.Text) Trim(passW2.Text) Then MsgBox 两次输入不一致,请重新输入, vbOKOnly + vbExclamation, 警告 passW2.Text = passW2.SetFocus Exit Sub Else sql = insert into Administrator ( adID,adName,adPassword,adDepart )values( & id.Text & , & adName.Text & , & passW1.Text & , & Depart.Text & ) Call TransactSQL(sql) MsgBox 注册成功!, vbOKOnly + vbExclamation, 添加结果 Call init End If End If End IfEnd Sub学生注册页面优化功能:为用户提供便捷的操作,以及在目标中提到的要求,在学生注册系统中加入了一些便捷操作:1, 由于没个学生由于院系,专业,班级不同学号有所不同所以学号由系统自动生成,以减少人工干预,降低系统出错率。Private Sub cmdID_Click() Dim sql As String Dim rs As New ADODB.Recordset Dim endID As String Dim tempID As String Dim eID As String Dim rsa As String Dim faculty, special, class As String If facultyID = Then MsgBox 请输入院系!, vbOKOnly + vbExclamation, 警告 faculty.SetFocus Exit Sub ElseIf specialID = Then MsgBox 请输入专业!, vbOKOnly + vbExclamation, 警告 special.SetFocus Exit Sub ElseIf classID = Then MsgBox 请输入班级!, vbOKOnly + vbExclamation, 警告 class.SetFocus Exit Sub Else enterTime = Mid(entTime.Value, 1, 4) sql = select id from student where id and fID= & facultyID & and speID= & specialID & and cID= & classID & order by id desc Set rs = TransactSQL(sql) eID = rs(0) eID = Right(eID, 2) + 1 native.Text = classID native.Text = sql endID = Right(Format(1000 + eID), 2) rs.Close tempID = enterTime & facultyID & specialID & classID & endID id.Text = tempID End If End Sub2, 院系,专业,班级都从数据库中提取,在学生表中只存储编号代码。 Dim sql As String Dim rs As ADODB.Recordset sql = select * from special where sName= & special.Text & Set rs = TransactSQL(sql) classID = rs(0) rs.Close 3, 由于院系,专业,班级有包含关系所以在这里combobox控件加入代码,实现选择院系后所包含的专业自动加入队列。Private Sub faculty_click() Dim sql As String Dim rs As ADODB.Recordset Dim fID As String Dim s As String special.Clear 选定院系后刷新获得院系所含专业 specialID = class.Clear classID = sql = select * from faculty where fName= & faculty.Text & Set rs = TransactSQL(sql) facultyID = rs(0) rs.Close sql = select * from special where sfID= & facultyID & Set rs = TransactSQL(sql) Do While Not rs.EOF s = rs(1) special.AddItem (s) rs.MoveNext Loop rs.CloseEnd Sub4, 由于在表中只存储编号信息,程序中显示名称我们以添加新的班级为例。 在窗口加载时得将院系信息加入到combobox控件队列,实现代码如下:Private Sub Form_Load() Dim sql As String Dim rs As ADODB.Recordset Dim f As String sql = select * from faculty where fName Set rs = TransactSQL(sql) Do While Not rs.EOF f = rs(1) fID.AddItem (f) rs.MoveNext Loop rs.CloseEnd Sub在选取院系信息后要将院系所包含的专业信息加入到队列,实现代码如下:Private Sub fID_Click() Dim sql As String Dim rs As ADODB.Recordset Dim s As String sID.Clear 选定院系后刷新获得院系所含专业 sql = select * from faculty where fName= & fID.Text & Set rs = TransactSQL(sql) facID = rs(0) rs.Close sql = select * from special where sfID= & facID & Set rs = TransactSQL(sql) Do While Not rs.EOF s = rs(1) sID.AddItem (s) rs.MoveNext Loop rs.CloseEnd Sub由于班级编号在同一专业不能重复,所以编号由系统自动生成。当选定院系,专业后系统将从所数据库获得选定院系,专业现存的班级编号,按倒序排列后获得最后的编码,由系统自动加1显示在控件上。实现代码如下:Private Sub init() Dim tempID As String Dim sql As String Dim rs As ADODB.Recordset Dim num As Integer sql = select cID from class where fID= & facID & and sID= & speID & order by cID desc Set rs = TransactSQL(sql) num = rs(0) num = num + 1 + 0 rs.Close cID.Text = num End Sub其中参数facID,speID在选取时记录如以下代码:Private Sub sID_Click() Dim sql As String Dim rs As ADODB.Recordset sql = select * from special where sfID= & facID & Set rs = TransactSQL(sql) speID = rs(0) rs.Close Call initEnd Sub5, 修改用户信息由严谨的逻辑关系控制,确保数据库中信息安全。以修改管理员密码为例。基本流程为:验证原密码-新密码与确认密码相同然后执行修改。代码实现如下:Private Sub cmdOK_Click() Dim sql As String Dim rs As ADODB.Recordset If Trim(oldPas.Text) = Then MsgBox 请输入旧密码!, vbOKOnly + vbExclamation, 警告 oldPas.SetFocus Exit Sub ElseIf Trim(newPas1.Text) = Then MsgBox 请输入新密码!, vbOKOnly + vbExclamation, 警告 newPas1.SetFocus Exit Sub ElseIf Trim(newPas2.Text = ) Then MsgBox 请再次输入新密码, vbOKOnly + vbExclamation, 警告 newPas2.Text = newPas2.SetFocus Exit Sub ElseIf Trim(newPas1.Text) Trim(newPas2.Text) Then MsgBox 两次输入不一致!, vbOKOnly + vbExclamation, 警告 newPas2.Text = newPas2.SetFocus Else sql = select * from Administrator where adName= & gUserName & Set rs = TransactSQL(sql) If iflag = 1 Then If rs.EOF = True Then MsgBox 登陆信息出错请重新登陆!, vbOKOnly + v

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论