学生学籍管理系统课程设计.doc_第1页
学生学籍管理系统课程设计.doc_第2页
学生学籍管理系统课程设计.doc_第3页
学生学籍管理系统课程设计.doc_第4页
学生学籍管理系统课程设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要本文首先简要地介绍了学生学籍管理现代化的时代背景,指出学籍管理现代化的必要性和重要性,接着详细阐述了学生学籍管理系统的设计与实现,在学籍系统的设计这一部分,主要是对系统设计到的数据以及主要的功能进行分析,在实现这一部分主要介绍了与管理信息系统设计开发结合最紧密的三个方面:管理信息系统MIS(Management Information System)、Visual Basic数据库知识。在管理信息系统中论述了其基本概念、特点、开发过程和方法及其发展;在Visual Basica数据库中主要介绍了概念模型、数据模型和基本语法三个方面以及SQL语句编程。本文的重点是系统的设计与实现,以自己开发的学生管理信息系统为例,详细说明开发的一般流程和开发数据库的基本语言。 关键词 学籍管理 教育管理 信息化 VB SQL目录一引言 31.1设计目的 31.2设计要求 31.3设计环境 31.4分工情况 3二概要设计 32.1系统需求分析 32.2系统结构及功能设计 3 三详细设计 53.1主要功能模块设计 5 3.2数据库设计 63.3各模块主要源代码 10四调试运行结果 234.1调试运行 23五总结 25六参考文献 25一引言1.1 设计目的数据库系统原理及应用课程设计是我校计算机科学与技术学科中计算机应用专业(本科)教学大纲要求的重要实践性环节之一,是学习完数据库系统概论课程后进行的一次性全面的综合练习。其目的在于:配合数据库系统概论课程的教学,使学生能巩固和加深对数据库基础理论和基本知识的理解;掌握使用数据库进行软件设计的基本思想和方法;提高学生运用数据库理论解决实际问题的能力;培养学生调查研究、查阅技术文献、资料、以及编写技术文献的能力。1.2 设计要求 调查学校学生处、教务处、设计一个学生信息管理系统。要求:1。建立学生档案,设计学生入学、管理及查询界面;2。设计学生各学期、学年成绩输入及查询界面;3。设计统计报表并能完成打印;4。系统维护:如数据安全管理(含备分与恢复)、操作员管理、权限设置等; 1.3 设计环境 Microsoft Windows XP操作系统,Microsoft SQL Server 2000数据库管理系统个人版。1.4 分工情况 本次程序设计由本人自己独立完成。二概要设计2.1 系统需求分析 系统开发的总体任务是实现学生信息关系的系统化,规范化和自动化。该管理系统的功能主要有:用户管理:包括用户填加、用户删除和用户密码修改。年级信息管理:包括学校信息设置、学校年级设置。班级信息管理:包括班级信息设置。课程信息管理:包括课程信息设置、年级课程开设。学籍信息管理:包括学籍信息设置。成绩信息管理:包括成绩信息设置。查询管理:包括班级信息查询、课程信息查询、成绩信息查询、学籍信息查询。统计报表中心:班级信息报表、学生信息报表。 系统维护管理:数据库还原和备分。2.2 系统结构及功能设计对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如下图所示的系统功能模块图。学生信息管理系统成绩信息管理课程管理系统班级信息管理学籍信息管理 系统管理成绩信息查询成绩信息修改成绩信息添加年级课程设置课程信息修改课程信息添加班级信息添加班级信息修改学籍信息添加学籍信息查询学籍信息修改 密码管理 用户管理年级信息管理年级信息添加年级信息修改报表统计中心班级信息报表学生信息报表系统维护管理数据库备分数据库还原三详细设计3.1主要功能模块设计在仔细分析调查有关学生信息需要的基础上,将得到如下图所示的本系统所处理的数据流程:学生注册基本信息输入学籍信息管理班级设置班级管理班级课程设置课程基本信息成绩信息输入班级课程管理成绩信息管理学生信息报表成绩信息报表报表统计中心系统维护管理学生信息备分还原成绩信息备分还原3.2 数据库设计 针对学生管理系统的要求,通过对学生学习过程的内容和数据流程分析,设计如下面所示的数据项和数据结构数据库中各个表格的设计如下面各表所示。每个表表示数据库中的一个数据表。Class_info班级信息基本表列 名数据类型可否为空说 明class_NoCHAR (3)NOT NULL班级编号(主键)grade_NoCHAR(10)NULL年级编号user_idVARCHAR (10)NULL班主任编号course_No课程信息基本表列 名数据类型可否为空说 明course_NoINT (4)NOT NULL课程编号(主键)course_NameVARCHAR(30)NULL课程名称course_typeCHAR (20)NULL课程类型course_desVARCHAR(60)NULL备注GradeCourse_info年级课程开设基本表列 名数据类型可否为空说 明grade_NoCHAR (8)NOT NULL年级编号(主键)course_NoINT(4)NULL课程编号Result_info成绩基本表列 名数据类型可否为空说 明exam_NoCHAR (10)NOT NULL考试编号(主键)cstudent_IdVARCHAR(15)NOT NULL学生编号course_noINT(4)NOT NULL课程编号resultFLOAT(8)NULL学习成绩School_info学校信息基本表列 名数据类型可否为空说 明school_nameVARCHAR (12)NULL学校名称school_telVARCHAR (12)NULL学校电话SchoolGrade_info年级信息基本表列 名数据类型可否为空说 明school_nameVARCHAR (12)NULL学校名称school_telVARCHAR (12)NULL学校电话User_info用户信息基本表列 名数据类型可否为空说 明user_idVARCHAR (10)NOT NULL用户编号(主键)user_nameVARCHAR (20)NULL用户名称 user_pwdVARCHAR (10)NULL用户密码user_desVARCHAR (20)NULL用户描述user_levelINT(4)NOT NULL用户类别学生实体E-R图:学生基本信息学生班级信息学生成绩学生课程信息学 生班级实体E-R图:班 级班 号所在班级班主任所在教室课程实体E-R图:课 程课程编号课程名称课程类型课程描述年级实体E-R图:年 级年级名称包括班级设置课程实体和实体之间的关系E-R图:考核过程学 生班级设置班 级年级设置年 级年级设置课 程3.3各模块主要原代码公用模快定义一个属性过程反映连接字符串Public Property Get conString() As VariantconString = data source=.;initial catalog=Sims_four;user id=sa;password=;End Property定义一个提供者反映数据库类型Public Property Get conProvide() As VariantconProvide = sqloledbEnd PropertyPublic Declare Function GetPrivateProfileString Lib kernel32 Alias GetPrivateProfileStringA (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPublic Declare Function WritePrivateProfileString Lib kernel32 Alias WritePrivateProfileStringA (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As LongPublic Declare Function ShellAbout Lib shell32.dll Alias ShellAboutA (ByVal hwnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As LongOption ExplicitPrivate cnSIMS As ADODB.Connection 声明一个连接Private rsSims As ADODB.Recordset 声明一个连接记录集Public rs1 As ADODB.Recordset 声明一个连接到所需表的记录集Public rs2 As ADODB.RecordsetPublic rst As ADODB.RecordsetPrivate Data As Object- 在类初始化时建立连接-Private Sub Class_Initialize() On Error GoTo DbnotOpen Set cnSIMS = New ADODB.Connection With cnSIMS .Provider = conProvide .ConnectionString = conString .ConnectionTimeout = 10 .Open Set rst = New ADODB.Recordset End With Exit SubDbnotOpen: If Err = -2147467259 Then Set cnSIMS = Nothing MsgBox 连接后台数据库失败! & vbCrLf & vbCrLf & 请检查配置是否完好,数据库Sims_four是否存在?, vbOKOnly + vbInformation, 学生信息管理系统 End End IfEnd Sub-data是一个指向ADO记录集的对象的引用用于设置class的数据源内容-Private Sub Class_GetDataMember(DataMember As String, Data As Object) Set Data = rsSimsEnd Sub-建立一个可以打开记录集的函数,需要是必须把表名传给函数-Public Function rsDK(Table As String) Set rsSims = New ADODB.Recordset With rsSims .Source = Table .ActiveConnection = cnSIMS .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open , , , , adCmdTable End WithEnd Function-建立一个可以打开记录集(动态游标)的函数需要把SQL语句传递给函数-Public Function rsDK1(sql As String) Set rs1 = New ADODB.Recordset With rs1 .Source = sql .ActiveConnection = cnSIMS .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open , , , , adCmdText End WithEnd Function-建立一个可以打开记录集(静态游标)的函数需要把SQL语句传递给函数-Public Function rsDK2(sql As String) Set rs2 = New ADODB.Recordset With rs2 .Source = sql .ActiveConnection = cnSIMS .CursorType = adOpenStatic .LockType = adLockOptimistic .Open , , , , adCmdText End WithEnd Function-类终止时,释放一切可能占据的资源-Private Sub Class_Terminate() Set cnSIMS = Nothing Set rs1 = Nothing Set rs2 = Nothing Set rsSims = Nothing Set rst = NothingEnd Sub学籍信息管理主要功能代码Private Sub Cmdfind_Click()Dim sql As StringDim sql1 As StringDim sql2 As StringIf txtName.Text = Empty And txtClass.Text = Empty ThenMsgBox 请输入查询条件!, vbOKOnly + vbInformation, 学籍信息设置Exit SubEnd IfIf txtName.Text Then sql1 = and student_name= & txtName.Text & Else sql1 = End IfIf txtClass.Text Then sql2 = and class_no= & txtClass.Text & Else sql2 = End Ifsql = SELECT * FROM student_info where 1=1 & sql1 & sql2myModiStudent.rsDK1 sqlIf myModiStudent.rs1.EOF Then StudentGrid.Clear StudentGrid.FormatString = | 学号| 姓名|性别| 出生日期|班号| 联系电话| 入校时间| 家庭住址 | 注释 MsgBox 没有找到符合条件的记录!, vbOKOnly + vbInformation, 提示 txtName.Text = Else Set StudentGrid.DataSource = myModiStudent.rs1 StudentGrid.FormatString = | 学号| 姓名|性别| 出生日期|班号| 联系电话| 入校时间| 家庭住址 | 注释 Frame2.Enabled = True Change = False txtstudentName.Text = myModiStudent.rs1!student_name cboClass.Text = myModiStudent.rs1!Class_no txtStudentId.Text = myModiStudent.rs1!student_id cboSex.Text = myModiStudent.rs1!student_gender txtBirth.Text = Format(myModiStudent.rs1!birth_date, yyyy-mm-dd) txtTel.Text = myModiStudent.rs1!tele_number txtInDate.Text = Format(myModiStudent.rs1!in_date, yyyy-mm-dd) txtAdd.Text = myModiStudent.rs1!address txtcomment.Text = myModiStudent.rs1!comment cboGrade.Text = Mid(txtStudentId.Text, 5, 2) cmdAdd.Enabled = True cmdSave.Caption = 更新(&U) cmdSave.Enabled = True cmdDel.Enabled = TrueEnd IfEnd SubPrivate Sub cmdReturn_Click()myModiStudent.rsDK1 SELECT * FROM student_infoIf Not myModiStudent.rs1.EOF Then Set StudentGrid.DataSource = myModiStudent.rs1 StudentGrid.FormatString = |学号|姓名|性别| 出生日期|班号|联系电话|入校时间| 家庭住址|注释End IfEnd SubPrivate Sub Cmdsave_Click()If txtstudentName.Text = Empty Then MsgBox 请输入学生姓名!, vbInformation, 提示 txtstudentName.SetFocus Exit SubEnd IfIf cboGrade.Text = Empty Then MsgBox 请选择年级!, vbInformation, 提示 cboGrade.SetFocus Exit SubEnd IfIf cboClass.Text = Empty Then MsgBox 请选择班级!, vbInformation, 提示 cboClass.SetFocus Exit SubEnd IfIf cboSex.Text = Empty Then MsgBox 请选择性别!, vbInformation, 提示 cboSex.SetFocus Exit SubEnd IfIf txtStudentId.Text = Empty Then MsgBox 请输入学号!, vbInformation, 提示 txtStudentId.SetFocus Exit SubEnd IfIf txtBirth.Text = Empty Then MsgBox 请输入出生日期!, vbInformation, 提示 txtBirth.SetFocus Exit SubElseIf Not IsDate(txtBirth) Then MsgBox 出生日期不是有效日期,请重新输入., vbInformation, 提示 txtBirth.SetFocus txtBirth.Text = _-_-_ Exit SubElseIf Format(txtBirth.Text, yyyy/mm/dd) Format(Date, yyyy/mm/dd) Then MsgBox 出生日期不能大于今日,请重新输入!, vbInformation, 提示 txtBirth.SetFocus Exit SubElseIf Format(txtBirth.Text, yyyy/mm/dd) Format(Date, yyyy/mm/dd) Then MsgBox 入校日期不能大于今日,请重新输入!, vbInformation, 提示 txtInDate.SetFocus txtInDate.Text = _-_-_ Exit SubElseIf Format(txtInDate.Text, yyyy/mm/dd) 99 Then MsgBox 超过最大学号界限,不能再添加学号., vbInformation, 提示 Exit Sub End If id = Trim(Str(i) If Len(id) = 33 And KeyAscii = 91 And KeyAscii = 123 And KeyAscii = 32 And KeyAscii = 36 And KeyAscii 45 And KeyAscii = 58 And KeyAscii = 127 Then KeyAscii = 0If KeyAscii = 13 Then txtInDate.SetFocusEnd Sub其他模快功能代码的算法与该模快算法一致,只是数据字段及相关处理信息稍有改动,此处不再罗列,详细的请参考源程序。数据备分还原模块Dim cn As ADODB.ConnectionDim success As LongDim ret As Long 返回值Dim buff As StringPrivate Sub Check1_Click()buff = String(255, 0)ret = GetPrivateProfileString(BackUp, Restore, , buff, 256, App.Path & Sims.ini)If ret = 0 Then MsgBox 你无权执行还原数据库的操作,请与管理员联系!, vbOKOnly + vbInformation, 还原数据库 Unload Me Exit SubEnd IfIf Check1.Value = 1 Then buff = String(255, 0) ret = GetPrivateProfileString(BackUp, NewFile, , buff, 256, App.Path & Sims.ini) If ret 0 Then cboFile.Text = buffElse cboFile.Text = End IfEnd SubPrivate Sub cmdExit_Click()success = WritePrivateProfileString(BackUp, Restore, , App.Path & Sims.ini)Unload MeEnd SubPrivate Sub cmdRestore_Click()On Error GoTo err1buff = String(255, 0)ret = GetPrivateProfileString(BackUp, Restore, , buff, 256, App.Path & Sims.ini)If ret = 0 Then MsgBox 你无权执行还原数据库的操作,请与管理员联系!, vbOKOnly + vbInformation, 还原数据库 Unload Me Exit SubEnd IfIf cboFile.Text Then cn.Execute (use master) cn.Execute restore database Sims_four from disk= & App.Path & BackUP & cboFile.Text & MsgBox 数据库还原成功!, vbOKOnly + vbInformation, 还原数据库 cboFile.Text = Check1.Value = 0Else MsgBox 请选择备份文件!, vbOKOnly + vbInformation, 还原数据库End IfExit Suberr1: If Err = -2147217900 Then MsgBox 找不到指定的备份文件。 & vbCrLf & vbCrLf & 数据库还原失败!, vbOKOnly + vbInformation, 还原数据库 cboFile.Text = Check1.Value = 0 Else MsgBox 未知错误,数据库还原失败!, vbOKOnly + vbInformation, 还原数据库 End IfEnd SubPrivat

温馨提示

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

评论

0/150

提交评论