当前位置:文档之家› 管理信息系统课程设计

管理信息系统课程设计

管理信息系统课程设计——学籍管理系统CC小组成员:项目规划和需求分析:倪明明学号:059094191系统分析员:李擎学号:059094185顾佳杰学号:系统设计员:王涨飞学号:059094201吕丹学号:系统实施:周小磊学号:0590942062007.11学籍管理系统学籍管理系统的分析、设计和实施报告目录:1、学籍管理系统的规划2、学籍管理系统的设计3、学籍管理系统的分析4、学籍管理系统的实施5、学籍管理系统的总结一、系统规划1、随着计算机技术的不断发展,公司、企业和机关的计算机化管理已经逐渐普及,计算机技术已经深入到企业管理的各个方面。

学籍管理系统是高校及机关的信息化管理环节不可缺少的一部分,它的内容对高校及机关的计算机化管理的决策者和管理者来说至关重要,所以该系统应该能够为学籍管理员提供充足的信息和快捷的查询手段。

2、一直以来人们使用传统人工方式管理文件档案,这种管理式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不便。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,他已进入人类社会的各个领域并发挥着越来越重要的作用。

早期的网络、如今的web宽带网都为我们共享数据提供了前所未有的方便,由此,建立高性能的学籍管理系统,作为计算机应用的一部分,使用计算机对访客的管理,具有手工管理无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,这些优点能够极大的提高学籍管理的效率,也是科学化、正规化的体现。

因此,开发这样的软件系统是很必要的。

3、根据现今的学籍管理信息系统得知,其总体任务是实现学生学籍信息管理的自动化、规范化和系统化。

通过具体的需求分析,要求该系统至少应有以下功能:*学生的基本资料,包括学生学号、姓名、班级、出生年月、性别、地址、电话、简历等,并将学生的信息存入学生信息表中。

*学生资料数据的维护,即维护学生数据表,完成各种对学生的操作,如学生登录、添加学生、更改密码和查看学生信息等。

*学生使用,如查看学生资料,查看学生资料(依用户权限查看,可以按系名、班级来查看并可以按自定义的要求进行查询)等。

*用户权限管理,按照数据表里的记录确定用户的权限,并允许其执行相应的功能。

在此学籍管理系统中,定义了两种用户权限,第一种是学生,只能登陆查询自己的信息;第二种管理员,能执行任何命令,除能查询所有记录的学生的资料外,还能运用各种方式进行查询。

4、该系统的主要任务是学籍管理员提供充足的学生信息和快捷的查询手段并给让学生了解自己的学生信息,所以该系统与数据库技术相关联,应用到数据库的知识和理论,所以后面的分析及设计与数据库数据表的建立有关。

二、系统分析1、因为数据库系统要应用于学生学籍管理,所以必须充分满足学籍管理的各种要求。

此系统要求纪录每一个学生的资料,并允许有权限的用户查询修改这些资料,也因为这样,系统必须同时维护用户数据,登陆时要判断用户权限是否符合要求,只有满足条件的才能有权进入系统。

通过上述分析,数据库设计必须满足以下几点:*管理员ID必须唯一。

*每个学生ID必须唯一,并具有可行性。

*系统管理员可以查看学生资料。

*学生登记的学生字段必须和学生信息表中的学生ID相关联,并且学生信息表要和班级信息表及系信息表有一定关系。

2、系统功能模块划分根据上述的系统总体设计思想的分析,可将系统分为以下几部分:*学生登陆模块:用于实现学生资料查询功能。

*学籍管理模块:用于实现管理员对学生资料的查询、添加、更新、编辑、删除打印报表等功能。

*自定义查询模块:用于实现各种方式查询操作。

系统模块如下所示3、系统流程分析该系统流程较简单,用户登记检验成功后,就进入系统。

用户选择不同的操作,有些操作需要判断权限,然后对数据库进行相应的操作。

系统流程图如下所示。

4、系统结构分析该系统主要分为系统登录界面、学籍信息显示界面、学籍管理界面和自定义查询界面几部分。

系统结构设计图如下三、系统设计1、本系统主要完成学生学籍信息的查询,为此,系统必须能够维护一个记录学生详细资料的数据表,对该表进行写入和读出数据的操作。

与此同时,本系统还要维护用户权限,这样系统必须维护学生信息数据表,管理用户ID、密码类型。

2、数据库概念结构设计通过对该系统的总体分析,我由此可得出大概的实体-关系模型(E-R模型),如下: *学生:{学号,姓名,班级,出生年月,性别、地址,电话、简历}。

*班级:{班级名,系ID }。

*系:{系ID,系名 }。

综上所述,可得出整个系统的E-R模型,如下所示。

2、用户登录界面实现代码1)、用户登录界面设计完成之后,接着就需要编写代码来实现该界面的相应功能。

下面首先四 系统实施1 2(1) Form_Load 过程 "四 系统实施(一)用户登录界面设计1、系统进入初始界面如下图所示:2、 实现代码: Option Explicit ''该窗体有两个作用,一为系统启动时的窗体,二为系统运行时的“关于...”窗体,而mbAbout 即为标识''若mbAbout 为true, 则表示为系统启动时的窗体''若mbAbout 为false ,则表示为系统运行时的“关于...”窗体 Public mbAbout As BooleanSub UnloadForm() Unload Me'''如果当前为系统启动时所显示窗体,则在退出本窗体之后,需要加载登录窗体If Not mbAbout Then frmLogin.ShowEnd Sub''以下各代码,表示:如果点击窗体上的任何部分,或者按下任一个键,都会调用UnloadForm子程序Private Sub Form_Click()UnloadFormEnd SubPrivate Sub Form_KeyPress(KeyAscii As Integer)UnloadFormEnd SubPrivate Sub fraEdge_Click()UnloadFormEnd SubPrivate Sub imgLogo_Click()UnloadFormEnd SubPrivate Sub lblInfo_Click(Index As Integer)UnloadFormEnd Sub(二)用户登陆界面设计1、用户管登陆界面如下图所示:2、用户登陆界面的实现代码Option Explicit'表示当前用户登录所选择的身份,即用户类型, 0-表示管理员;1-表示学生Dim mnUserType As IntegerPrivate Sub cboUserType_Change()mnUserType = cboUserType.ListIndexEnd SubPrivate Sub cboUserType_Click()mnUserType = cboUserType.ListIndexEnd SubPrivate Sub cmdCancel_Click()Unload MeEnd SubPrivate Sub cmdOK_Click()''取得用户输入的用户名和密码Dim user As String, pwd As Stringuser = txtUserpwd = txtPwd''根据不同的身份,选择不同的表用以查询Dim r As New ADODB.RecordsetSet r = DataEnv.rssqlSeekDim strSQL As StringSelect Case mnUserTypeCase 0: '若身份为管理员strSQL = "select * from admin where name='" & user & "' and pwd='" & pwd & "'"Case 1: '若身份为学生strSQL = "select * from student where name='" & user & "' and serial='" & pwd & "'"End SelectOn Error Resume Next''查询DataEnv.rssqlSeek的状态,如果已经打开,则先关闭If r.State = adStateOpen Then r.Closer.Open strSQL ''根据strSQL的内容刷新DataEnv.rssqlSeek''用户密码错误的次数,如果错误次数超过3次,则退出系统Static nTryCount As IntegerIf r.EOF Then ''登录失败MsgBox "对不起,无此用户或者密码不正确!请重新输入!!", vbCritical, "错误"txtUser.SetFocustxtUser.SelStart = 0txtUser.SelLength = Len(txtUser)nTryCount = nTryCount + 1If nTryCount >= 3 ThenMsgBox "您无权操作本系统!再见!", vbCritical, "无权限"Unload MeEnd IfElse ''登陆成功''显示MDI窗体, 并将用户类型和用户名传到MDI窗体中的mnUserType, msUserName中Load MDIMainWith MDIMain.mnUserType = cboUserType.ListIndex.msUserName = pwd.ShowEnd WithUnload MeEnd IfEnd SubPrivate Sub Form_Load()cboUserType.ListIndex = 0End Sub(三)学生登陆操作界面设计1、学生信息显示界面:2、学生信息显示实现代码Option ExplicitPrivate Sub cmdClose_Click()Unload MeEnd SubPrivate Sub Form_Load()''根据当前登录的用户在DataEnv.rsStudent中查找到对应的记录DataEnv.rsStudent.Find "serial = '" & MDIMain.msUserName & "'"End Sub(四)学籍查询界面设计1、学籍自定义查询界面如下所示:2、实现代码Option ExplicitPublic msFindField As String '查找的字段Public msFindOp As String '查找的运算符Public msFindExpr As String '查找的表达式的值'表示用户是否取消查询,如果取消查询则为就为True;否则为FalsePublic mbFindFailed As BooleanPrivate Sub cmdCancel_Click()mbFindFailed = TrueMe.HideEnd SubPrivate Sub txtExpression_Change()cmdOK.Enabled = Len(lstFields.Text) > 0 And Len(lstOperators.Text) > 0 AndLen(txtExpression.Text) > 0End SubPrivate Sub lstFields_Click()cmdOK.Enabled = Len(lstFields.Text) > 0 And Len(lstOperators.Text) > 0 AndLen(txtExpression.Text) > 0End SubPrivate Sub lstOperators_Click()cmdOK.Enabled = Len(lstFields.Text) > 0 And Len(lstOperators.Text) > 0 AndLen(txtExpression.Text) > 0End SubPrivate Sub Form_Load()''加载查询所需要使用的运算符号lstOperators.AddItem "="lstOperators.AddItem "<>"lstOperators.AddItem ">="lstOperators.AddItem "<="lstOperators.AddItem ">"lstOperators.AddItem "<"lstOperators.AddItem "Like"lstOperators.ListIndex = 0mbFindFailed = TrueEnd SubPrivate Sub cmdOK_Click()mbFindFailed = False''改变指针,告知读者当前处于忙的状态Screen.MousePointer = vbHourglass''取得查询所需要的字段、符号和值msFindField = lstFields.TextmsFindExpr = txtExpression.TextmsFindOp = lstOperators.TextMe.Hide''恢复指针,告知读者系统已经不忙了Screen.MousePointer = vbDefault(五)学籍管理主界面设计1、学籍管理主界面及学籍管理界面如下所示2、实现代码Option Explicit'标示是否能关闭Dim mbClose As Boolean''当DataEnv.rsStudent的当前记录发生变化时,刷新所绑定的控件(用户改变了当前记录) Sub RefreshBinding()On Error Resume NextWith DataEnv.rsStudentIf DataEnv.rssqlSeek.BOF And DataEnv.rssqlSeek.EOF Then''如果不存在任何记录,则清空所有的绑定的内容txtSerial = ""txtName = ""txtBirthday = ""txtTelephone = ""txtAddress = ""txtResume = ""Else ''否则和相应的字段进行绑定txtSerial = .Fields("serial")txtName = .Fields("name")txtBirthday = .Fields("birthday")txtTelephone = .Fields("tel")txtAddress = .Fields("address")txtResume = .Fields("resume")cboSex.Text = .Fields("sex")dcbClass.Text = .Fields("class")End IfEnd WithEnd Sub'''在DataEnv.rsStudent中查询serial为sSerial的学籍信息Sub SeekStudent(sSerial As String)If Not (DataEnv.rsStudent.EOF And DataEnv.rsStudent.BOF) Then Dim Temp As StringTemp = "serial = " & "'" & sSerial & "'"DataEnv.rsStudent.MoveFirstDataEnv.rsStudent.Find Temp''刷新所绑定的控件Call RefreshBindingEnd IfEnd Sub'''当改变记录集时,需要刷新用户导航的网格控件Sub RefreshGrid()grdScan.DataMember = ""grdScan.RefreshDataEnv.rssqlSeek.RequerygrdScan.DataMember = "sqlSeek"grdScan.Refresh''刷新各个绑定控件Call grdScan_ChangeEnd Sub'''用以在浏览时,根据当前记录所出的位置不同,来改变个浏览按钮的状态Sub ChangeBrowseState()With DataEnv.rssqlSeekIf .State = adStateClosed Then .Open''如果没有任何记录,使某些按钮无效;否则则使这些按钮有效If .BOF And .EOF ThencmdAdd.Enabled = TruecmdEdit.Enabled = FalsecmdDelete.Enabled = FalsecmdUpdate.Enabled = FalsecmdReport.Enabled = FalsefraBrowse.Enabled = FalseElsecmdAdd.Enabled = TruecmdEdit.Enabled = TruecmdDelete.Enabled = TruecmdUpdate.Enabled = FalsecmdReport.Enabled = TruefraBrowse.Enabled = TrueEnd If'''假如处于记录的头部If .BOF ThenIf Not .EOF Then DataEnv.rsStudent.MoveFirstcmdPrevious.Enabled = FalsecmdFirst.Enabled = FalseElsecmdPrevious.Enabled = TruecmdFirst.Enabled = TrueEnd If'''假如处于记录的尾部If .EOF ThenIf Not .BOF Then DataEnv.rsStudent.MoveLastcmdNext.Enabled = FalsecmdLast.Enabled = FalseElsecmdNext.Enabled = TruecmdLast.Enabled = TrueEnd IfEnd WithEnd SubPrivate Sub cboDep_Click()Dim rsClass As New ADODB.RecordsetDim strSQL'根据所选的系的不同,采用不同的SQL语句If cboDep.ItemData(cboDep.ListIndex) = 0 ThenstrSQL = "select * from class"ElsestrSQL = "select * from class where dept_id=" & cboDep.ItemData(cboDep.ListIndex) End IfrsClass.Open strSQL, DataEnv.Con''将所查到的rsClass中的内容来填充cboClasscboClass.ClearcboClass.AddItem "全部"While Not rsClass.EOFcboClass.AddItem rsClass("Name")rsClass.MoveNextcboClass.ListIndex = 0rsClass.CloseSet rsClass = NothingEnd SubPrivate Sub cmdAdd_Click()''添加记录DataEnv.rsStudent.AddNewtxtBirthday.Text = "1980-01-01"fraInfo.Enabled = TruefraBrowse.Enabled = FalsecmdAdd.Enabled = FalsecmdEdit.Enabled = FalsecmdDelete.Enabled = FalsecmdUpdate.Enabled = TruecmdReport.Caption = "取消"cmdReport.Enabled = TruembClose = False '不能关闭窗口End SubPrivate Sub cmdDelete_Click()''如果出错,则显示错误代码On Error GoTo errHandlerIf MsgBox("要删除记录?", vbYesNo + vbQuestion + vbDefaultButton2, "确认") = vbYes Then''通过在DataEnv.Con中执行SQL命令,来删除记录DataEnv.Con.Execute "delete from student where serial ='" & txtSerial & "'"DataEnv.rsStudent.MoveNextIf DataEnv.rsStudent.EOF Then DataEnv.rsStudent.MoveLast''刷新用户导航的网格控件Call RefreshGridEnd IfExit SuberrHandler:MsgBox Err.Description, vbCritical, "错误"Private Sub cmdEdit_Click()''编辑记录fraInfo.Enabled = TruecmdAdd.Enabled = FalsecmdEdit.Enabled = FalsecmdDelete.Enabled = FalsecmdUpdate.Enabled = TruecmdReport.Caption = "取消" '''更改cmdReport标题cmdReport.Enabled = TruembClose = False ''出于编辑状态,则用户不能关闭窗口End SubPrivate Sub cmdFirst_Click()''移动到记录的头部,并改变各个浏览按钮的状态DataEnv.rssqlSeek.MoveFirstDataEnv.rssqlSeek.MovePreviousCall ChangeBrowseStateEnd SubPrivate Sub cmdLast_Click()''移动到记录的尾部,并改变各个浏览按钮的状态DataEnv.rssqlSeek.MoveLastDataEnv.rssqlSeek.MoveNextCall ChangeBrowseStateEnd SubPrivate Sub cmdList_Click()''针对所选的班级,列出班级中所有的学籍信息Dim strSQLIf cboClass.Text = "全部" ThenstrSQL = " from student order by serial"ElsestrSQL = " from student where class='" & cboClass & "' order by serial"End IfDataEnv.rsStudent.CloseDataEnv.rsStudent.Open "select * " & strSQLDataEnv.rssqlSeek.CloseDataEnv.rssqlSeek.Open "select serial, name " & strSQL''刷新用户导航的网格控件,并且根据记录集中记录的数目,来改变各个浏览按钮的状态。

相关主题