《学生信息管理系统VB版知识分享.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统VB版知识分享.doc(57页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。学生信息管理系统VB版-课程设计VB课程设计报告系别:计算机科学与技术系专业(班级):作者(学号):指导教师:完成日期:2008年12月20日教务处制题目:学生信息管理系统的实现内容摘要:学生信息管理系统主要包括班级管理信息的输入、查询、修改;学校基本课程信息的输入、修改;学生课程信息的设置和修改;学生成绩信息的输入、修改、查询以及统计。目录1.需求分析-22.概要设计-43.详细设计-44.测试-255.附录或参考资料-261:需求分析随着学校规模的不断扩大,学生的数量急剧增加,有关学生的各种信息管理
2、也成倍增长。而对于庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率,取代从前的手工操作。基于今后计算机的网路普及以及方便实现用户阅读及统一查询,所以使用SQLserver2000做数据库系统,使用VisualBasic作为前台处理软件。(1) 系统分析a. 系统功能分析班级管理信息的输入,包括班级设置、年级的设置等;班级管理信息管理的查询;班级管理信息的修改;学校基本课程信息的输入;基本课程信息的修改;学生课程信息的设置和修改;学生成绩信息的输入;学生成绩信息的修改;学生成绩信息的查询;学生成绩信息的统计。b. 系统功能模块分析(2) 上述各功能的系统功能模块图如下:数据库分析数
3、据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。数据库需求分析用户的需求具体体现在各种信息的提供、保证、更新和查询,这就要求数据库结构能够充分满足各种信息的输出和输入。针对一般学生信息管理系统的要求,通过对学生学习过程的内容和数据流程分析,设计如下的数据项和数据结构:a 学生基本信息:包括的数据项有:学生学号、学生姓名、性别、出身日期、班号、联系电话、入校日期、家庭地址、备注等。b 班级信息:包括的数据项有:班号、所在年级、班
4、主任姓名、所在教室等。c 课程基本信息:包括的数据项有:课程号、课程名称、课程类别、课程描述等。d 课程设置信息:包括数据项有:年级信息、所学课程等。e 学生成绩信息:包括数据项有:考试编号、所在班号、学生学号、学生姓名、所学课程、考试分数等。根据上面的数据结构、数据项和数据流程,进行一下的数据库设计。2.概要设计(1)数据库设计利用SQLserver2000数据库系统中的SQl企业管理器,建立数据库student.sql文件,数据库名为:student,在student数据库中创建6个表,分别为:学生基本信息表、班级基本信息表、课程基本信息表、年级课程基本信息表、学生成绩信息表、系统用户表。
5、(2)系统设计用VisualBasic来编写数据库系统客户端程序即学生信息管理系统中各功能模块。该系统包括:工程文件Student_Mis.vbp,标准模块文件Module1.bas,主窗体文件frmMain.frm,登陆窗体文件frmLogin.frm,添加用户窗体文件frmAdduser.frm。修改用户密码窗体文件frmModifyuserinfo.frm,添加学籍信息窗体文件frmAddsinfo.frm,修改学籍信息窗体文件frmModifysinfo.frm,查询学籍信息窗体文件frmInquiresinfo.frm,添加班级信息窗体文件frmAddclassinfo.frm,修改
6、班级信息窗体文件frmModifyclassinfo.frm,添加课程信息窗体文件frmAddcourseinfo.frm,修改课程信息窗体文件frmModifycourseinfo.frm,设置年级课程窗体文件frmSetcourseinfo.frm,添加成绩信息窗体文件frmAddresult.frm,修改成绩窗体文件frmModifyresult.frm,查询成绩信息窗体文件frmInquireresult.frm。3.详细设计(1)数据库设计a数据库概念结构设计得到数据项和数据结构后,设计出能够满足用户需求的各种实体,以及它们之间的关系。这些实体包括具体信息,通过相互之间的作用形成数据
7、段流动。设计规划出的实体有:年级实体、学生实体、课程实体。各个实体具体的描述及关系的E-R图如下图所示。b数据库逻辑结构设计学生信息管理系统数据库中各表设计结果如图1.11.6所示。每个表格表示在数据库中的一个表。表1.1student_info学生基本信息表表1.2class_info班级信息表表1.3course_info课程基本信息表1.4gradecourse_info年级课程设计表格表1.5result_info学生成绩信息表表1.6user_info系统用户表(2)系统设计1.学生信息管理系统主窗体的创建a.创建一个工程名为Student_Mis的工程文件Student_Mis.v
8、bp。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
9、名称sinfoMenu子菜单项3名称gradecourseMenu标题学籍信息标题设计年级课程子菜单项1名称addsinfoMenu主菜单项5名称resultMenu标题添加学籍信息标题成绩管理子菜单项2名称modifysinfoMenu子菜单项1名称addresultMenu标题修改学籍信息标题添加成绩信息子菜单项3名称inquiresinfoMenu子菜单项2名称modifyresultMenu标题查询学籍信息标题修好学籍信息主菜单项3名称classinfoMenu子菜单项3名称inquireresultMenu标题班级管理标题查询成绩信息子菜单项1名称addcinfoMenu标题添加班级
10、信息学生信息管理系统主窗体代码如下:PrivateSubMDIForm_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)EndSubPrivateSubMDIForm_Unload(CancelAsInteger
11、)IfMe.WindowStatevbMinimizedThenSaveSettingApp.Title,Settings,MainLeft,Me.LeftSaveSettingApp.Title,Settings,MainTop,Me.TopSaveSettingApp.Title,Settings,MainWidth,Me.WidthSaveSettingApp.Title,Settings,MainHeight,Me.HeightEndIfEndSubPrivateSubmodifycinfoMenu_Click()frmModifyclassinfo.ShowEndSubPrivate
12、SubmodifycourseMenu_Click()frmModifycourseinfo.ShowEndSubPrivateSubmodifypwdMenu_Click()frmModifyuserinfo.ShowEndSubPrivateSubmodifyresultMenu_Click()frmModifyresult.ShowEndSubPrivateSubmodifysinfo_Menu_Click()frmModifysinfo.ShowEndSubd创建公共模块。在工程资源管理器中为项目添加一个名称为Module的标准模块文件Module.bas。代码如下:PublicfMa
13、inFormAsfrmMainPublicUserNameAsStringSubMain()DimfLoginAsNewfrmLoginfLogin.ShowvbModalIfNotfLogin.OKThenLoginFailedsoexitappEndEndIfUnloadfLoginSetfMainForm=NewfrmMainfMainForm.ShowEndSubPublicFunctionConnectString()_AsStringreturnsaDBConnectStringConnectString=FileDSN=studentinfo.dsnEndFunctionPubl
14、icFunctionExecuteSQL(ByValSQL_AsString,MsgStringAsString)_AsADODB.RecordsetexecutesSQLandreturnsRecordsetDimcnnAsADODB.ConnectionDimrstAsADODB.RecordsetDimsTokens()AsStringOnErrorGoToExecuteSQL_ErrorsTokens=Split(SQL)Setcnn=NewADODB.Connectioncnn.OpenConnectStringIfInStr(INSERT,DELETE,UPDATE,_UCase$
15、(sTokens(0)Thencnn.ExecuteSQLMsgString=sTokens(0)&_querysuccessfulElseSetrst=NewADODB.Recordsetrst.OpenTrim$(SQL),cnn,_adOpenKeyset,_adLockOptimisticrst.MoveLastgetRecordCountSetExecuteSQL=rstMsgString=查询到&rst.RecordCount&_条记录EndIfExecuteSQL_Exit:Setrst=NothingSetcnn=NothingExitFunctionExecuteSQL_Er
16、ror:MsgString=查询错误:&_Err.DescriptionResumeExecuteSQL_ExitEndFunctionPublicFunctionTesttxt(txtAsString)AsBooleanIfTrim(txt)=ThenTesttxt=FalseElseTesttxt=TrueEndIfEndFunction2系统用户管理模块的创建a系统用户管理模块主页实现:用户登陆;用户添加;修改用户密码用户登陆窗体的创建。进入系统后出现如图2.1所示用户登陆窗体,用户首先输入用户名,然后输入密码。如果用户3次输入密码不正确,将退出程序。图2.1代码如下:OptionExp
17、licitPublicOKAsBoolean记录确定次数DimmiCountAsIntegerPrivateSubForm_Load()OK=FalsemiCount=0EndSubPrivateSubcmdCancel_Click()OK=FalseMe.HideEndSubPrivateSubcmdOK_Click()DimtxtSQLAsStringDimmrcAsADODB.RecordsetDimMsgTextAsStringToDo:createtestforcorrectpasswordcheckforcorrectpasswordUserName=IfTrim(txtUserN
18、ame.Text=)ThenMsgBox没有这个用户,请重新输入用户名!,vbOKOnly+vbExclamation,警告txtUserName.SetFocusElsetxtSQL=select*fromuser_Infowhereuser_ID=&txtUserName.Text&Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=TrueThenMsgBox没有这个用户,请重新输入用户名!,vbOKOnly+vbExclamation,警告txtUserName.SetFocusElseIfTrim(mrc.Fields(1)=Trim(txtPass
19、word.Text)ThenOK=Truemrc.CloseMe.HideUserName=Trim(txtUserName.Text)ElseMsgBox输入密码不正确,请重新输入!,vbOKOnly+vbExclamation,警告txtPassword.SetFocustxtPassword.Text=EndIfEndIfEndIfmiCount=miCount+1IfmiCount=3ThenMe.HideEndIfExitSubEndSub用户添加窗体的创建。进入系统后,选择菜单“系统|添加用户”就可以添加用户,会出现如图2.2所示的窗体。图2.2代码如下:PrivateSubcmd
20、Cancel_Click()UnloadMeEndSubPrivateSubcmdOK_Click()DimtxtSQLAsStringDimmrcAsADODB.RecordsetDimMsgTextAsStringIfTrim(Text1(0).Text)=ThenMsgBox请输入用户名称!,vbOKOnly+vbExclamation,警告ExitSubText1(0).SetFocusElsetxtSQL=select*fromuser_InfoSetmrc=ExecuteSQL(txtSQL,MsgText)While(mrc.EOF=False)IfTrim(mrc.Fields
21、(0)=Trim(Text1(0)ThenMsgBox用户已经存在,请重新输入用户名!,vbOKOnly+vbExclamation,警告Text1(0).SetFocusText1(0).Text=Text1(1).Text=Text1(2).Text=ExitSubElsemrc.MoveNextEndIfWendEndIfIfTrim(Text1(1).Text)Trim(Text1(2).Text)ThenMsgBox两次输入密码不一样,请确认!,vbOKOnly+vbExclamation,警告Text1(1).SetFocusText1(1).Text=Text1(2).Text=
22、ExitSubElseIfText1(1).Text=ThenMsgBox密码不能为空!,vbOKOnly+vbExclamation,警告Text1(1).SetFocusText1(1).Text=Text1(2).Text=Elsemrc.AddNewmrc.Fields(0)=Trim(Text1(0).Text)mrc.Fields(1)=Trim(Text1(1).Text)mrc.Updatemrc.CloseMe.HideMsgBox添加用户成功!,vbOKOnly+vbExclamation,添加用户EndIfEndIfEndSub修改用户密码窗体的创建。用户可以修改自己的密
23、码,选择“系统|修改密码”,出现如图2.3所示,在这个窗体中放置看两个文本框,用来输入密码和确认密码。图2.3代码如下:PrivateSubcmdCancel_Click()UnloadMeEndSubPrivateSubcmdOK_Click()DimtxtSQL,MsgTextAsStringDimmrcAsADODB.RecordsetIfTrim(Text1(1).Text)Trim(Text1(2).Text)ThenMsgBox密码输入不正确!,vbOKOnly+vbExclamation,警告Text1(1).SetFocusText1(1).Text=ElsetxtSQL=se
24、lect*fromuser_Infowhereuser_ID=&UserName&Setmrc=ExecuteSQL(txtSQL,MsgText)mrc.Fields(1)=Text1(1).Textmrc.Updatemrc.CloseMsgBox密码修改成功!,vbOKOnly+vbExclamation,修改密码Me.HideEndIfEndSub3学籍管理模块的创建学籍信息管理主题实现如下功能:添加学籍信息;修改学籍信息;查询学校信息。添加学籍信息窗体的创建。选择“学籍管理|添加学籍信息”菜单,将出现如图2.4所示的窗体。图2.4代码如下:PrivateSubCommand1_Cli
25、ck()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringifNotTesttxt(txtSID.Text)ThenMsgBox请输入学号!,vbOKOnly+vbExclamation,警告txtSID.SetFocusExitSubEndIfIfNotTesttxt(txtName.Text)ThenMsgBox请输入姓名!,vbOKOnly+vbExclamation,警告txtName.SetFocusExitSubEndIfIfNotTesttxt(comboSex.Text)ThenMsgBox请选择性别!,vbOK
26、Only+vbExclamation,警告comboSex.SetFocusExitSubEndIfIfNotTesttxt(txtBorndate.Text)ThenMsgBox请输入出生日期!,vbOKOnly+vbExclamation,警告txtBorndate.SetFocusExitSubEndIfIfNotTesttxt(comboClassno.Text)ThenMsgBox请选择班号!,vbOKOnly+vbExclamation,警告comboClassno.SetFocusExitSubEndIfIfNotTesttxt(txtTel.Text)ThenMsgBox请输入
27、联系电话!,vbOKOnly+vbExclamation,警告txtTel.SetFocusExitSubEndIfIfNotTesttxt(txtRudate.Text)ThenMsgBox请输入入校日期!,vbOKOnly+vbExclamation,警告txtRudate.SetFocusExitSubEndIfIfNotTesttxt(txtAddress.Text)ThenMsgBox请输入家庭住址!,vbOKOnly+vbExclamation,警告txtAddress.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtSID.Text)Then
28、MsgBox请输入数字!,vbOKOnly+vbExclamation,警告ExitSubtxtSID.SetFocusEndIftxtSQL=select*fromstudent_Infowherestudent_ID=&Trim(txtSID.Text)&Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOF=FalseThenMsgBox学号重复,请重新输入!,vbOKOnly+vbExclamation,警告mrc.ClosetxtSID.SetFocusElsemrc.CloseIfNotIsDate(txtBorndate.Text)ThenMsgBo
29、x出生时间应输入日期格式(yyyy-mm-dd)!,vbOKOnly+vbExclamation,警告txtBorndate.SetFocusElsetxtBorndate=Format(txtBorndate,yyyy-mm-dd)IfNotIsDate(txtRudate.Text)ThenMsgBox入校时间应输入日期格式(yyyy-mm-dd)!,vbOKOnly+vbExclamation,警告txtRudate.SetFocusElsetxtRudate=Format(txtRudate,yyyy-mm-dd)txtSQL=select*fromstudent_InfoSetmrc
30、=ExecuteSQL(txtSQL,MsgText)mrc.AddNewmrc.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
31、.Text)mrc.Fields(8)=Trim(txtComment.Text)mrc.UpdateMsgBox添加学籍信息成功!,vbOKOnly+vbExclamation,警告mrc.CloseMe.HideEndIfEndIfEndIfEndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubForm_Load()DimmrcAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringDimiAsIntegercomboSex.AddItem男comboSex.AddItem女txtSQ
32、L=select*fromclass_InfoSetmrc=ExecuteSQL(txtSQL,MsgText)Fori=1Tomrc.RecordCountcomboClassno.AddItemmrc.Fields(0)mrc.MoveNextNextimrc.CloseEndSub修改学籍信息窗体的创建。选择“学籍管理|修改学籍信息”菜单,将会出现如图2.5所示的窗体。这个窗体在添加学籍信息窗体的基础上增加了两排按钮。图2.5代码略。查询学籍信息窗体的建立。选择“学籍管理|查询学籍信息”菜单,将出现如图2.6所示的窗体。这里可以按照各种方式以及它们的组合进行查询。图2.6代码略。4班级管
33、理模块的创建班级管理模块主要实现如下功能:添加班级信息;修改班级信息。添加班级信息窗体的创建。选择“班级管理|添加班级信息”菜单,将出现如图2.7所示的窗体。图2.7窗体中各个表的控件属性设置见下表:控件属性属性取值控件属性属性取值FrmAddclassinfo(Form)NameFrmAddclassinfoLabel1Caption班号Caption添加班级信息Command2NameCommand2MIDChildTrueCaption退出按钮txtClassnoNametxtClassnoLabel2Caption年级comboGradeNamecomboGradeLabel3Capt
34、ion班主任txtDirectorNametxtDirectorLabel4Caption教室txtClassroomNametxtClassroomCommand1NameCommand1Caption确定添加输入完内容,单击按钮“确认添加”,触发Click事件,添加内容到数据库。代码如下:PrivateSubCommand1_Click()DimmrcAsADODB.RecordsetDimMsgTextAsStringDimtxtSQLAsStringIfNotTesttxt(txtClassno.Text)ThenMsgBox请输入班号!,vbOKOnly+vbExclamation,
35、警告txtClassno.SetFocusExitSubEndIfIfNotTesttxt(comboGrade.Text)ThenMsgBox请选择年级!,vbOKOnly+vbExclamation,警告comboGrade.SetFocusExitSubEndIfIfNotTesttxt(txtDirector.Text)ThenMsgBox请输入班主任姓名!,vbOKOnly+vbExclamation,警告txtDirector.SetFocusExitSubEndIfifNotTesttxt(txtClassroom.Text)ThenMsgBox请输入教室房间号!,vbOKOnl
36、y+vbExclamation,警告txtClassroom.SetFocusExitSubEndIfIfNotIsNumeric(Trim(txtClassno.Text)ThenMsgBox请输入数字!,vbOKOnly+vbExclamation,警告ExitSubtxtClassno.SetFocusEndIftxtSQL=select*fromclass_InfoSetmrc=ExecuteSQL(txtSQL,MsgText)mrc.MoveFirstWhile(mrc.EOF=False)If(Trim(mrc.Fields(0)=Trim(txtClassno.Text)The
37、nMsgBox班号已经存在,请重新输入班号!,vbOKOnly+vbExclamation,警告ExitSubtxtClassno.Text=txtClassno.SetFocusElsemrc.MoveNextEndIfWendmrc.AddNewmrc.Fields(0)=Trim(txtClassno.Text)mrc.Fields(1)=Trim(comboGrade.Text)mrc.Fields(2)=Trim(txtDirector.Text)mrc.Fields(3)=Trim(txtClassroom.Text)mrc.Updatemrc.CloseMsgBox添加班级信息成
38、功!,vbOKOnly+vbExclamation,添加班级信息EndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubForm_Load()comboGrade.AddItem初中一年级comboGrade.AddItem初中二年级comboGrade.AddItem初中三年级comboGrade.AddItem高中一年级comboGrade.AddItem高中二年级comboGrade.AddItem高中三年级EndSub5课程设置模块的创建课程设置模块主要实现如下功能:添加课程信息;修改课程信息;设置年级课程。添加课程信息窗体的创建
39、。选择“课程设置|添加课程信息”菜单,将出现如图2.8所示的窗体。图2.8单击“确定添加”按钮,添加班级信息。单击“取消添加”将退出程序。代码可以参照上面的添加班级信息修改课程信息窗体的创建。选择“课程设置|修改课程信息”菜单,将出现如图2.9所示的窗体。图2.9查看课程信息和修改基础信息框架中的按钮的功能,方法前面已经介绍过,参照前面的内容。设置年级课程窗体的创建。选择菜单“课程设置|设置年级课程”,将出现如图2.10所示的窗体。图2.10窗体中各个控件的属性如下表:控件属性属性取值控件属性属性取值frmSetcourseinfo(From)NamefrmSetcourseinfocmdMo
40、difyNamecmdModifyCaption设置年级课程信息Caption确认设置MIDChildTruecmdAddNamecmdAddcomboGradeNamecomboGradeCaption-listAllcourseNamelistAllcoursecmdDeleteNamecmdDeletelistSelectcourseNamelistSelectcourseCaption-cmdSetNamecmdSetLabel1Caption选择年级:Caption设置课程Label2Caption所有课程:Label3Caption已经选择程主要代码如下:PrivateSubcmd
41、Modify_Click()DimiAsIntegerDimmrcAsADODB.RecordsetDimmrccAsADODB.RecordsetDimtxtSQLAsStringDimMsgTextAsStringDimmyBookmarkAsVariantIfNotTesttxt(comboGrade.Text)ThenMsgBox请先选择年级!,vbOKOnly+vbExclamation,警告ExitSubEndIfIfNotTesttxt(listSelectcourse.List(0)ThenMsgBox请选择课程!,vbOKOnly+vbExclamation,警告ExitSu
42、bEndIftxtSQL=select*fromgradecourse_Infowheregrade=&Trim(comboGrade.Text)&Setmrc=ExecuteSQL(txtSQL,MsgText)Ifmrc.EOFThenFori=1TolistSelectcourse.ListCountmrc.AddNewmrc.Fields(0)=comboGrade.Textmrc.Fields(1)=listSelectcourse.List(i-1)mrc.UpdateNextimrc.CloseMsgBox课程设置成功!,vbOKOnly+vbExclamation,警告Else
43、mrc.ClosetxtSQL=deletefromgradecourse_Infowheregrade=&Trim(comboGrade.Text)&Setmrcc=ExecuteSQL(txtSQL,MsgText)txtSQL=select*fromgradecourse_InfoSetmrcc=ExecuteSQL(txtSQL,MsgText)Fori=1TolistSelectcourse.ListCountmrcc.AddNewmrcc.Fields(0)=comboGrade.Textmrcc.Fields(1)=listSelectcourse.List(i-1)mrcc.UpdateNextimrcc.CloseMsgBox课程设置成功!,vbOKOnly+vbExclamation,警告