


已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文档系作者精心整理编辑,实用价值高。课程设计 VB课程设计报告系 别 :计算机科学与技术系专业(班级): 作者(学号): 指导教师: 完成日期: 2008年12月20日 教务处制 题目: 学生信息管理系统的实现内容摘要:学生信息管理系统主要包括班级管理信息的输入、查询、修改;学校基本课程信息的输入、修改;学生课程信息的设置和修改;学生成绩信息的输入、修改、查询以及统计。 目录1. 需求分析-22. 概要设计-43. 详细设计-4 4. 测试-255.附录或参考资料-261: 需求分析随着学校规模的不断扩大,学生的数量急剧增加,有关学生的各种信息管理也成倍增长。而对于庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率,取代从前的手工操作。基于今后计算机的网路普及以及方便实现用户阅读及统一查询,所以使用SQL server2000做数据库系统,使用Visual Basic作为前台处理软件。(1) 系统分析a. 系统功能分析班级管理信息的输入,包括班级设置、年级的设置等;班级管理信息管理的查询;班级管理信息的修改;学校基本课程信息的输入;基本课程信息的修改;学生课程信息的设置和修改;学生成绩信息的输入;学生成绩信息的修改;学生成绩信息的查询;学生成绩信息的统计。b. 系统功能模块分析上述各功能的系统功能模块图如下:(2) 数据库分析数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。数据库需求分析用户的需求具体体现在各种信息的提供、保证、更新和查询,这就要求数据库结构能够充分满足各种信息的输出和输入。针对一般学生信息管理系统的要求,通过对学生学习过程的内容和数据流程分析,设计如下的数据项和数据结构:a 学生基本信息:包括的数据项有:学生学号、学生姓名、性别、出身日期、班号、联系电话、入校日期、家庭地址、备注等。b 班级信息:包括的数据项有:班号、所在年级、班主任姓名、所在教室等。c 课程基本信息:包括的数据项有:课程号、课程名称、课程类别、课程描述等。d 课程设置信息:包括数据项有:年级信息、所学课程等。e 学生成绩信息:包括数据项有:考试编号、所在班号、学生学号、学生姓名、所学课程、考试分数等。根据上面的数据结构、数据项和数据流程,进行一下的数据库设计。2. 概要设计(1)数据库设计利用SQL server2000数据库系统中的SQl企业管理器,建立数据库student.sql文件,数据库名为:student,在student数据库中创建6个表,分别为:学生基本信息表、班级基本信息表、课程基本信息表、年级课程基本信息表、学生成绩信息表、系统用户表。(2)系统设计用Visual Basic来编写数据库系统客户端程序即学生信息管理系统中各功能模块。该系统包括:工程文件Student_Mis.vbp,标准模块文件Module1.bas,主窗体文件frmMain.frm,登陆窗体文件frmLogin.frm,添加用户窗体文件frmAdduser.frm。修改用户密码窗体文件frmModifyuserinfo.frm,添加学籍信息窗体文件frmAddsinfo.frm,修改学籍信息窗体文件frmModifysinfo.frm,查询学籍信息窗体文件frmInquiresinfo.frm,添加班级信息窗体文件frmAddclassinfo.frm,修改班级信息窗体文件frmModifyclassinfo.frm,添加课程信息窗体文件frmAddcourseinfo.frm,修改课程信息窗体文件frmModifycourseinfo.frm,设置年级课程窗体文件frmSetcourseinfo.frm,添加成绩信息窗体文件frmAddresult.frm,修改成绩窗体文件frmModifyresult.frm,查询成绩信息窗体文件frmInquireresult.frm。3. 详细设计(1)数据库设计a数据库概念结构设计得到数据项和数据结构后,设计出能够满足用户需求的各种实体,以及它们之间的关系。这些实体包括具体信息,通过相互之间的作用形成数据段流动。设计规划出的实体有:年级实体、学生实体、课程实体。各个实体具体的描述及关系的E-R图如下图所示。b数据库逻辑结构设计学生信息管理系统数据库中各表设计结果如图1.11.6所示。每个表格表示在数据库中的一个表。表1.1 student_info 学生基本信息表表1.2 class_info 班级信息表表 1.3 course_info 课程基本信息表 1.4 gradecourse_info 年级课程设计表格表 1.5 result_info 学生成绩信息表表 1.6 user_info 系统用户表(2)系统设计 1.学生信息管理系统主窗体的创建a.创建一个工程名为Student_Mis的工程文件Student_Mis.vbp。b.创建学生信息管理系统的主窗体MID窗体,窗体名为frmMain,窗体文件名为:frmMain.frm。c.创建主窗体的菜单。主窗体表2.1菜单结果表对象属性属性值对象属性属性值主菜单项1名称sysMenu子菜单项2名称modifycionfoMenu标题系统标题修改班级信息子菜单项1名称adduserMenu主菜单项4名称courseMenu标题添加用户标题课程设置子菜单项2名称modifypwdMenu子菜单项1名称addcourseMenu标题修改密码标题添加课程设计子菜单项3名称exitMenu子菜单项2名称modifycourseMenu标题退出系统标题修改课程信息主菜单项2名称sinfoMenu子菜单项3名称gradecourseMenu标题学籍信息标题设计年级课程子菜单项1名称addsinfoMenu主菜单项5名称resultMenu标题添加学籍信息标题成绩管理子菜单项2名称modifysinfoMenu子菜单项1名称addresultMenu标题修改学籍信息标题添加成绩信息子菜单项3名称inquiresinfoMenu子菜单项2名称modifyresultMenu标题查询学籍信息标题修好学籍信息主菜单项3名称classinfoMenu子菜单项3名称inquireresultMenu标题班级管理标题查询成绩信息子菜单项1名称addcinfoMenu标题添加班级信息学生信息管理系统主窗体代码如下:Private Sub MDIForm_Load() Me.Left = GetSetting(App.Title, Settings, MainLeft, 1000) Me.Top = GetSetting(App.Title, Settings, MainTop, 1000) Me.Width = GetSetting(App.Title, Settings, MainWidth, 6500) Me.Height = GetSetting(App.Title, Settings, MainHeight, 6500)End SubPrivate Sub MDIForm_Unload(Cancel As Integer) If Me.WindowState vbMinimized Then SaveSetting App.Title, Settings, MainLeft, Me.Left SaveSetting App.Title, Settings, MainTop, Me.Top SaveSetting App.Title, Settings, MainWidth, Me.Width SaveSetting App.Title, Settings, MainHeight, Me.Height End IfEnd SubPrivate Sub modifycinfoMenu_Click() frmModifyclassinfo.ShowEnd SubPrivate Sub modifycourseMenu_Click() frmModifycourseinfo.ShowEnd SubPrivate Sub modifypwdMenu_Click() frmModifyuserinfo.ShowEnd SubPrivate Sub modifyresultMenu_Click() frmModifyresult.ShowEnd SubPrivate Sub modifysinfo_Menu_Click() frmModifysinfo.ShowEnd Subd创建公共模块。在工程资源管理器中为项目添加一个名称为Module的标准模块文件Module.bas。代码如下:Public fMainForm As frmMainPublic UserName As StringSub Main() Dim fLogin As New frmLogin fLogin.Show vbModal If Not fLogin.OK Then Login Failed so exit app End End If Unload fLogin Set fMainForm = New frmMain fMainForm.ShowEnd SubPublic Function ConnectString() _ As Stringreturns a DB ConnectString ConnectString = FileDSN=studentinfo.dsnEnd FunctionPublic Function ExecuteSQL(ByVal SQL _ As String, MsgString As String) _ As ADODB.Recordsetexecutes SQL and returns Recordset Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim sTokens() As String On Error GoTo ExecuteSQL_Error sTokens = Split(SQL) Set cnn = New ADODB.Connection cnn.Open ConnectString If InStr(INSERT,DELETE,UPDATE, _ UCase$(sTokens(0) Then cnn.Execute SQL MsgString = sTokens(0) & _ query successful Else Set rst = New ADODB.Recordset rst.Open Trim$(SQL), cnn, _ adOpenKeyset, _ adLockOptimistic rst.MoveLast get RecordCount Set ExecuteSQL = rst MsgString = 查询到 & rst.RecordCount & _ 条记录 End IfExecuteSQL_Exit: Set rst = Nothing Set cnn = Nothing Exit FunctionExecuteSQL_Error: MsgString = 查询错误: & _ Err.Description Resume ExecuteSQL_ExitEnd FunctionPublic Function Testtxt(txt As String) As Boolean If Trim(txt) = Then Testtxt = False Else Testtxt = True End IfEnd Function2系统用户管理模块的创建a系统用户管理模块主页实现:用户登陆;用户添加;修改用户密码用户登陆窗体的创建。进入系统后出现如图2.1所示用户登陆窗体,用户首先输入用户名,然后输入密码。如果用户3次输入密码不正确,将退出程序。图2.1代码如下:Option ExplicitPublic OK As Boolean记录确定次数Dim miCount As IntegerPrivate Sub Form_Load() OK = False miCount = 0End SubPrivate Sub cmdCancel_Click() OK = False Me.HideEnd SubPrivate Sub cmdOK_Click() Dim txtSQL As String Dim mrc As ADODB.Recordset Dim MsgText As String ToDo: create test for correct password check for correct password UserName = If Trim(txtUserName.Text = ) Then MsgBox 没有这个用户,请重新输入用户名!, vbOKOnly + vbExclamation, 警告 txtUserName.SetFocus Else txtSQL = select * from user_Info where user_ID = & txtUserName.Text & Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.EOF = True Then MsgBox 没有这个用户,请重新输入用户名!, vbOKOnly + vbExclamation, 警告 txtUserName.SetFocus Else If Trim(mrc.Fields(1) = Trim(txtPassword.Text) Then OK = True mrc.Close Me.Hide UserName = Trim(txtUserName.Text) Else MsgBox 输入密码不正确,请重新输入!, vbOKOnly + vbExclamation, 警告 txtPassword.SetFocus txtPassword.Text = End If End If End If miCount = miCount + 1 If miCount = 3 Then Me.Hide End If Exit SubEnd Sub用户添加窗体的创建。进入系统后,选择菜单“系统|添加用户”就可以添加用户,会出现如图2.2所示的窗体。图2.2代码如下:Private Sub cmdCancel_Click() Unload MeEnd SubPrivate Sub cmdOK_Click() Dim txtSQL As String Dim mrc As ADODB.Recordset Dim MsgText As String If Trim(Text1(0).Text) = Then MsgBox 请输入用户名称!, vbOKOnly + vbExclamation, 警告 Exit Sub Text1(0).SetFocus Else txtSQL = select * from user_Info Set mrc = ExecuteSQL(txtSQL, MsgText) While (mrc.EOF = False) If Trim(mrc.Fields(0) = Trim(Text1(0) Then MsgBox 用户已经存在,请重新输入用户名!, vbOKOnly + vbExclamation, 警告 Text1(0).SetFocus Text1(0).Text = Text1(1).Text = Text1(2).Text = Exit Sub Else mrc.MoveNext End If Wend End If If Trim(Text1(1).Text) Trim(Text1(2).Text) Then MsgBox 两次输入密码不一样,请确认!, vbOKOnly + vbExclamation, 警告 Text1(1).SetFocus Text1(1).Text = Text1(2).Text = Exit Sub Else If Text1(1).Text = Then MsgBox 密码不能为空!, vbOKOnly + vbExclamation, 警告 Text1(1).SetFocus Text1(1).Text = Text1(2).Text = Else mrc.AddNew mrc.Fields(0) = Trim(Text1(0).Text) mrc.Fields(1) = Trim(Text1(1).Text) mrc.Update mrc.Close Me.Hide MsgBox 添加用户成功!, vbOKOnly + vbExclamation, 添加用户 End If End If End Sub修改用户密码窗体的创建。用户可以修改自己的密码,选择“系统|修改密码”,出现如图2.3所示,在这个窗体中放置看两个文本框,用来输入密码和确认密码。图2.3代码如下:Private Sub cmdCancel_Click() Unload MeEnd SubPrivate Sub cmdOK_Click() Dim txtSQL, MsgText As String Dim mrc As ADODB.Recordset If Trim(Text1(1).Text) Trim(Text1(2).Text) Then MsgBox 密码输入不正确!, vbOKOnly + vbExclamation, 警告 Text1(1).SetFocus Text1(1).Text = Else txtSQL = select * from user_Info where user_ID = & UserName & Set mrc = ExecuteSQL(txtSQL, MsgText) mrc.Fields(1) = Text1(1).Text mrc.Update mrc.Close MsgBox 密码修改成功!, vbOKOnly + vbExclamation, 修改密码 Me.Hide End If End Sub3学籍管理模块的创建学籍信息管理主题实现如下功能:添加学籍信息;修改学籍信息;查询学校信息。添加学籍信息窗体的创建。选择“学籍管理|添加学籍信息”菜单,将出现如图2.4所示的窗体。图2.4代码如下:Private Sub Command1_Click() Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String if Not Testtxt(txtSID.Text) Then MsgBox 请输入学号!, vbOKOnly + vbExclamation, 警告 txtSID.SetFocus Exit Sub End If If Not Testtxt(txtName.Text) Then MsgBox 请输入姓名!, vbOKOnly + vbExclamation, 警告 txtName.SetFocus Exit Sub End If If Not Testtxt(comboSex.Text) Then MsgBox 请选择性别!, vbOKOnly + vbExclamation, 警告 comboSex.SetFocus Exit Sub End If If Not Testtxt(txtBorndate.Text) Then MsgBox 请输入出生日期!, vbOKOnly + vbExclamation, 警告 txtBorndate.SetFocus Exit Sub End If If Not Testtxt(comboClassno.Text) Then MsgBox 请选择班号!, vbOKOnly + vbExclamation, 警告 comboClassno.SetFocus Exit Sub End If If Not Testtxt(txtTel.Text) Then MsgBox 请输入联系电话!, vbOKOnly + vbExclamation, 警告 txtTel.SetFocus Exit Sub End If If Not Testtxt(txtRudate.Text) Then MsgBox 请输入入校日期!, vbOKOnly + vbExclamation, 警告 txtRudate.SetFocus Exit Sub End If If Not Testtxt(txtAddress.Text) Then MsgBox 请输入家庭住址!, vbOKOnly + vbExclamation, 警告 txtAddress.SetFocus Exit Sub End If If Not IsNumeric(Trim(txtSID.Text) Then MsgBox 请输入数字!, vbOKOnly + vbExclamation, 警告 Exit Sub txtSID.SetFocus End If txtSQL = select * from student_Info where student_ID = & Trim(txtSID.Text) & Set mrc = ExecuteSQL(txtSQL, MsgText) If mrc.EOF = False Then MsgBox 学号重复,请重新输入!, vbOKOnly + vbExclamation, 警告 mrc.Close txtSID.SetFocusElsemrc.Close If Not IsDate(txtBorndate.Text) Then MsgBox 出生时间应输入日期格式(yyyy-mm-dd)!, vbOKOnly + vbExclamation, 警告 txtBorndate.SetFocus Else txtBorndate = Format(txtBorndate, yyyy-mm-dd) If Not IsDate(txtRudate.Text) Then MsgBox 入校时间应输入日期格式(yyyy-mm-dd)!, vbOKOnly + vbExclamation, 警告 txtRudate.SetFocus Else txtRudate = Format(txtRudate, yyyy-mm-dd) txtSQL = select * from student_Info Set mrc = ExecuteSQL(txtSQL, MsgText) mrc.AddNew mrc.Fields(0) = Trim(txtSID.Text) mrc.Fields(1) = Trim(txtName.Text) mrc.Fields(2) = Trim(comboSex.Text) mrc.Fields(3) = Trim(txtBorndate.Text) mrc.Fields(4) = Trim(comboClassno.Text) mrc.Fields(5) = Trim(txtTel.Text) mrc.Fields(6) = Trim(txtRudate.Text) mrc.Fields(7) = Trim(txtAddress.Text) mrc.Fields(8) = Trim(txtComment.Text) mrc.Update MsgBox 添加学籍信息成功!, vbOKOnly + vbExclamation, 警告 mrc.Close Me.Hide End If End If End If End SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load() Dim mrc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String Dim i As Integer comboSex.AddItem 男 comboSex.AddItem 女 txtSQL = select * from class_Info Set mrc = ExecuteSQL(txtSQL, MsgText) For i = 1 To mrc.RecordCount comboClassno.AddItem mrc.Fields(0) mrc.MoveNext Next i mrc.CloseEnd Sub修改学籍信息窗体的创建。选择“学籍管理|修改学籍信息”菜单,将会出现如图2.5所示的窗体。这个窗体在添加学籍信息窗体的基础上增加了两排按钮。图2.5代码略。查询学籍信息窗体的建立。选择“学籍管理|查询学籍信息”菜单,将出现如图2.6所示的窗体。这里可以按照各种方式以及它们的组合进行查询。图2.6代码略。4班级管理模块的创建班级管理模块主要实现如下功能:添加班级信息;修改班级信息。添加班级信息窗体的创建。选择“班级管理|添加班级信息”菜单,将出现如图2.7所示的窗体。图2.7窗体中各个表的控件属性设置见下表:控件属性属性取值控件属性属性取值FrmAddclassinfo(Form)NameFrmAddclassinfoLabel1Caption班号Caption添加班级信息Command2NameCommand2MIDChildTrueCaption退出按钮txtClassnoNametxtClassnoLabel2Caption年级comboGradeNamecomboGradeLabel3Caption班主任txtDirectorNametxtDirectorLabel4Caption教室txtClassroomNametxtClassroomCommand1NameCommand1Caption确定添加输入完内容,单击按钮“确认添加”,触发Click事件,添加内容到数据库。代码如下:Private Sub Command1_Click() Dim mrc As ADODB.Recordset Dim MsgText As String Dim txtSQL As String If Not Testtxt(txtClassno.Text) Then MsgBox 请输入班号!, vbOKOnly + vbExclamation, 警告 txtClassno.SetFocus Exit Sub End If If Not Testtxt(comboGrade.Text) Then MsgBox 请选择年级!, vbOKOnly + vbExclamation, 警告 comboGrade.SetFocus Exit Sub End If If Not Testtxt(txtDirector.Text) Then MsgBox 请输入班主任姓名!, vbOKOnly + vbExclamation, 警告 txtDirector.SetFocus Exit Sub End If if Not Testtxt(txtClassroom.Text) Then MsgBox 请输入教室房间号!, vbOKOnly + vbExclamation, 警告 txtClassroom.SetFocus Exit Sub End If If Not IsNumeric(Trim(txtClassno.Text) Then MsgBox 请输入数字!, vbOKOnly + vbExclamation, 警告 Exit Sub txtClassno.SetFocus End If txtSQL = select * from class_Info Set mrc = ExecuteSQL(txtSQL, MsgText) mrc.MoveFirst While (mrc.EOF = False) If (Trim(mrc.Fields(0) = Trim(txtClassno.Text) Then MsgBox 班号已经存在,请重新输入班号!, vbOKOnly + vbExclamation, 警告 Exit Sub txtClassno.Text = txtClassno.SetFocus Else mrc.MoveNext End If Wend mrc.AddNew mrc.Fields(0) = Trim(txtClassno.Text) mrc.Fields(1) = Trim(comboGrade.Text) mrc.Fields(2) = Trim(txtDirector.Text) mrc.Fields(3) = Trim(txtClassroom.Text) mrc.Update mrc.Close MsgBox 添加班级信息成功!, vbOKOnly + vbExclamation, 添加班级信息 End SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load() comboGrade.AddItem 初中一年级 comboGrade.AddItem 初中二年级 comboGrade.AddItem 初中三年级 comboGrade.AddItem 高中一年级 comboGrade.AddItem 高中二年级 comboGrade.AddItem 高中三年级End Sub5课程设置模块的创建课程设置模块主要实现如下功能:添加课程信息;修改课程信息;设置年级课程。添加课程信息窗体的创建。选择“课程设置|添加课程信息”菜单,将出现如图2.8所示的窗体。图2.8单击“确定添加”按钮,添加班级信息。单击“取消添加”将退出程序。代码可以参照上面的添加班级信息修改课程信息窗体的创建。选择“课程设置|修改课程信息”菜单,将出现如图2.9所示的窗体。图2.9查看课程信息和修改基础信息框架中的按钮的功能,方法前面已经介绍过,参照前面的内容。设置年级课程窗体的创建。选择菜单“课程设置|设置年级课程”,将出现如图2.10所示的窗体。图2.10窗体中各个控件的属性如下表:控件属性属性取值控件属性属性取值frmSetcourseinfo(From)NamefrmSetcourseinfocmdModifyNamecmdModifyCaption设置年级课程信息Caption确认设置MIDChildTruecmdAddNamecmdAddcomboGradeNamecomboGradeCaption-listAllcourseNamelistAllcoursecmdDeleteNamecmdDeletelistSelectcourseNamelistSelectcourseCaption-cmdSetNamecmdSetLabel1Caption选择年级:Caption设置课程Label2Caption所有课程:Label3Caption已经选择程主要代码如下:Private Sub cmdModify_Click() Dim i As Integer Dim mrc As ADODB.Recordset Dim mrcc As ADODB.Recordset Dim txtSQL As String Dim MsgText As String Dim myBookmark As Variant If Not Testtxt(comboGrade.Text) Then MsgBox 请
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 5级考试题及答案
- 2025年广州市花都区狮岭镇芙蓉初级中学教师招聘考试笔试试题(含答案)
- 北京知识产权贯标培训课件
- 2025年佛山市南海区狮山镇英才学校教师招聘考试笔试试题(含答案)
- 医务人员营养培训考核试题(附答案)
- 2024贵州省社区《网格员》备考题汇编(含答案)
- 药品及医疗器械冷链操作培训试题测试题库含答案
- 导游业务综合测试题(含答案)
- 2025年XX市妇联普法知识竞赛题库及答案
- 2025年二级注册结构工程师模拟题和答案分析
- 2025年妊娠期糖尿病护理查房记录模板范文
- 2025年传动部件行业当前发展趋势与投资机遇洞察报告
- 基孔肯雅热预防宣传课件
- 2025-2030中国海水淡化技术经济性分析与政策补贴机制报告
- 学校学生一日常规管理细则(2025年修订)
- 【语文】小学四年级下册期末质量模拟试题测试卷
- 2025年甘南事业单位考试笔试试题
- 人大代表基础知识培训课件
- 2025年高压电工证考试题库及答案
- 湖北省襄阳市枣阳市2024-2025学年七年级下学期期末考试英语试卷(含答案无听力部分)
- 2025年供热公司培训试题及答案
评论
0/150
提交评论