《学生成绩管理系统的设计与实现(共26页).doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统的设计与实现(共26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上学生成绩管理系统的设计与实现摘 要:本论文叙述了我校学成绩管理的现状以及Visual basic6.0语言的概况。重点介绍了学生成绩管理系统的实现过程:包括系统分析、系统调查、数据流程分析、功能设计、数据库设计、系统物理配置方案、系统实现、系统测试和调试。本系统主要功能有用户管理、学生注册、班级信息录入、学生信息录入、班级课程录入、学校专业信息录入、课程信息录入、学生成绩录入、教师信息录入、数据查询、打印输出等功能。总结了本系统的特点:界面美观、操作方便、容错性强、效率高,从而节约学生成绩管理成本。本论文主要内容是:简要介绍了本系统的应用背景、需求分析,设计总体思路。
2、概述了管理信息系统的相关理论及开发语言的有关知识,对本系统进行了系统分析和设计,包括功能需求描述、数据库设计等内容。介绍了本系统的具体实现。关于本系统开发过程中的结论及体会.本系统主要使用Visual Basic语言作为前台界面设计,后台使用Access数据库来完成学生成绩管理系统。Access数据库,其稳定安全简单的设计风格,为本系统的开发减少许多困难。本论文只详细论述查询管理模块、添加读者管理模块和打印模块,界面友好,操作简便。关键词:数据库;智能化;面向对象目 录专心-专注-专业一、引言(一)管理信息系统基础管理信息系统就是我们常说的MIS (Management Information
3、 System),是集成了计算机网络技术、信息处理技术,对信息进行收集处理、传输及存储,进行事务管理的一种人机交互的智能化计算机系统。(二)软件工程理论的概述软件工程是一门旨在研究计算机软件开发与维护的普遍原理和技术的工程学科。它的研究范围涉及到技术方法、软件工具、科学管理等诸多方面。实践证明:在软件的设计和开发过程中,运用软件工程的方法,可以大大提高软件开发的成功率,能够显著减少软件开发和维护中的问题。(三)软件工程理论对本系统的指导学生成绩管理系统的设计和开发是一个较为庞大的系统工程,应以软件工程的思想和方法为指导,进行设计和开发。软件工程理论对本系统的指导,主要表现在:帮助我们理清思路,
4、建立较为科学的结构和开发制作流程方面。上述的各种理论,对我们设计和开发学生成绩管理系统提供了重要的理论基础,同时也为我们如何进行具体的设计和开发工作,提供了必要的思路和方法。二、需求分析(一)项目开发的背景分析几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。但手工管理具有效率底、易出错、检索信息慢、对学校的管理提供决策信息较为困难等缺点。我校尽管部分学院或系已开出学生成绩管理系统,但开发的系统不具有通用性,所以我想借本次毕业设计之际,开发一个通用高校学生成绩管理系统。(二)
5、项目开发的目标建立学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化(三)项目提出的意义现在我国的大中专院校的学生成绩管理水平普遍不高,有的还停留在纸介质基础上,这种管理手段已不能适应时代的发展,因为它浪费了了许多的人力和物力。在当今信息时代这种传统的管理方法必然被计算机为基础的信息管理系统所代替。如果本系统能被学校所采用,将会改变以前靠手工管理学生成绩的状况,可以树立良好的办学形象,提高工作效率。学生信息管理系统是为本校开发的,本系统所采用的语言是Visual Basic语言,通过本校
6、内部的信息,依据统一数据信息进行管理,把任何一块信息所产生的数据变动及时地反映给其它相关信息,做到数据共享。(四)国内外研究现状在教育技术水平比较发达的国家,前几年就已经开发成绩管理系统,但都是根据他们本国的实际情况来进行开发的,在语言文字、价格及对象的要求等方面都不符合我国的国情。在国内,虽然现在也有很多的成绩管理系统,但大多是封闭性的。三、开发工具及编程环境(一)开发工具的选择基于系统的需求分析以及系统的应用,系统将采用微软的Visual Studio6.0简体中文版进行开发,所选择的语言是Visual Basci6.0,微软公司的Visual Basic 开发系统6.0版,是开发效率极高
7、的用于创建高性能组件和应用程序的工具。Visual Basic 6.0可支持开发人员基于客户端或服务器端创建优秀的应用程序,或是在分布式n层环境下操作。Visual Basic 是快速应用程序开发(RAD)工具,可作为独立的产品使用,也可作为Visual Studio 6.0套件的一部分使用。(二)编程环境的选择微软公司的Visual Basic 6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visual Basic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和
8、可靠性。故而,实现本系统Visual Basic 6.0是一个相对较好的选择。Windows下的Visual Basic 面对对象的编程面对对象的编程;面向对象的设计方法 (OOP, Objected Programming) 从应用领域内的问题着手,以直观自然的方式描述客观世界的实体。Visual Basic 作为一种面向对象的编程方法,把程序和数据封装起来作为一个对象,并为每个对象赋予相应的属性。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,由 Visual Basic 自动生成对象的程序代码并封装起来。Visual Basic 应用程序基本的构建块是用户所创建
9、的对象,每一个对象都具有一些特性和行为(属性、事件和方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性可说扩展性和强有力的功能。Visual Basic 应用由一系列对象组成,包括有函数、菜单、函数、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。(三)数据库的选择数据库是信息系统的核心和基础,是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。而数据库设计是信息系统开发和建设的重要组成部分,是指对于一个给定的应用环境构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数
10、据,满足用户的需求。本系统采用Access数据库作为数据后台。建立各表之间的关系,通过主表与子表之间的关系,清晰的显现出本系统的数据关系,方便本组其他成员进行数据的调用与查询。针对一般学生成绩管理信息系统的需求,通过对成绩管理过程的内容和数据流程分析,可以设计出该系统的数据项和数据结构:1、“学生信息”的数据项有:学号、姓名、班级、生日、性别、身份证号,登录系统密码等;2、“课程信息”的数据项有:课程编号、课程名称、学时和课程类型等3、“学生成绩信息”的数据项有:学号、姓名、班级、选修课程、考试成绩,初考成绩1,初考成绩2等。4、“班级信息”的数据项有:班级号,班级名称,入学年份,所在院系专业
11、。5、“院系信息”的数据项有:编号,名称,简述。6、“教师信息”的数据项有:编号,姓名,性别,生日,所在院系,电话,家庭住址,简历,登录系统密码7、“管理员信息”的数据项有:名称,密码。8、“专业信息”的数据项有:序号,名称,系别。四、系统详细步骤及代码(一)系统的开发学生成绩管理系统对学校加强学生成绩的管理有着极其重要的作用。由于各个大学都在持续扩招,学生的数量日益庞大,传统的手工成绩管理不仅工作量大,而且容易出现问题。而本系统则是在以前成绩管理系统的基础之上开发出来的。(二)功能需求描述按学生角度管理教师可以看到学生信息和成绩信息。学生信息包括学生姓名,各科成绩及班级排名等,可以自动显示出
12、该课程的这个学生所有课程的学习成绩,并同时自动计算出这个学生的总分。在成绩信息中,教师可以对学习成绩进行增加、修改和删除,字体可大可小。(三)系统逻辑方案系统数据流图(简称为DFD)(限于篇幅,仅列举部分)信息录入数据流图如图4-1所示。计算机系数据库学生信息录入补考信息录入成绩信息录入教师信息录入班级信息录入专业信息录入课程信息录入学生信息表学生成绩表教师信息表班级信息表院系信息表课程信息表图4-1信息录入流图信息查询流图如图4-2所示。使用人员成绩数据表班级数据表课程数据表学生数据表查询条件查询结果学生信息录入成绩信息录入班级信息录入课程信息录入图4-2 学生信息查询流图(四)登录界面编码
13、设计首先是进入登录界面,如图4-4所示,本窗体显示系统名称,密码校验等信息,本系统的用户分为三类:管理员,教师,学生。使用者可以在组合框中选择所要登录的用户的类型,并输入相应的用户名和密码,单击“确定”就会将输入提交给系统以验证用户、密码及身份。如果用户类型及密码正确,则会进入系统的MDI主窗体(MDIMain.frm).本模块的流程图如图4-3所示。选择用户,输入密码密码正确?Y进入界面N 图4-3登录流程图图4-4 登录界面代码如下:Private Sub CmdOk_Click()Dim Conn As New ADODB.ConnectionDim mlink As Stringmli
14、nk = provider=microsoft.jet.oledb.3.51;data source=score.mdb;Conn.Open mlink当用户名密码为空时给出提示If Text1.Text = Then MsgBox 请输入用户名, vbOKOnly, 注意 Text1.SetFocus Exit SubElseIf Text2.Text = Then MsgBox 请输入密码, vbOKOnly, 注意 Text2.SetFocus Exit SubEnd IfDim rs As New ADODB.RecordsetSelect Case Combo1.ListIndexC
15、ase 0: 管理员msql = select *from admin where admin.admin= & Text1.Text & and admin.pwd= & Text2.Text & Case 1: 教师msql = select *from teacher where teacher.name= & Text1.Text & and teacher.pwd= & Text2.Text & Case 2: 学生msql = select *from student where student.name= & Text1.Text & and student.pwd= & Tex
16、t2.Text & End Selectrs.Open msql, Conn, adOpenStatic, adLockPessimisticIf rs.EOF Then MsgBox (对不起用户名密码错误请重新输入) ElseSelect Case Combo1.ListIndex Case 0: 管理员MsgBox 管 理 员 ,欢迎您登陆维护本学生成绩管理系统!, vbOKOnly, 管 理 员 -登陆成功!MDIMain.Enabled = TrueMDIMain.register.Enabled = TrueMDIMain.system1.Enabled = TrueMDIMain
17、.score.Enabled = TrueMDIMain.manage.Enabled = TrueMDIMain.bak.Enabled = TrueMDIMain.table.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible = TrueUnload LoginCase 1: 教师 MsgBox 老 师 您好!欢迎您使用本学生成绩管理系统!, vbOKOnly, 老 师 -登陆成功! MDIMain.Enabled = TrueMDIMain.regis
18、ter.Enabled = FalseMDIMain.system1.Enabled = TrueMDIMain.score.Enabled = TrueMDIMain.manage.Enabled = TrueMDIMain.bak.Enabled = TrueMDIMain.table.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible = TrueUnload Login Case 2: 学生 MsgBox 同 学 你好!欢迎使用本学生成绩管理系统!,
19、vbOKOnly, 同 学 -登陆成功! MDIMain.Enabled = TrueMDIMain.register.Enabled = FalseMDIMain.system1.Enabled = FalseMDIMain.score.Enabled = FalseMDIMain.manage.Enabled = FalseMDIMain.bak.Enabled = FalseMDIMain.table.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible
20、= FalseUnload LoginEnd SelectUnload MeEnd IfEnd SubPrivate Sub Command1_Click()Dim Conn As New ADODB.ConnectionDim mlink As Stringmlink = provider=microsoft.jet.oledb.3.51;data source=score.mdb;Conn.Open mlink当用户名密码为空时给出提示If Text1.Text = Then MsgBox 请输入用户名, vbOKOnly, 注意 Text1.SetFocus Exit SubElseIf
21、 Text2.Text = Then MsgBox 请输入密码, vbOKOnly, 注意 Text2.SetFocus Exit SubEnd IfDim rs As New ADODB.RecordsetSelect Case Combo1.ListIndexCase 0: 管理员msql = select *from admin where admin.admin= & Text1.Text & and admin.pwd= & Text2.Text & Case 1: 教师msql = select *from teacher where teacher.name= & Text1.T
22、ext & and teacher.pwd= & Text2.Text & Case 2: 学生msql = select *from student where student.name= & Text1.Text & and student.pwd= & Text2.Text & End Selectrs.Open msql, Conn, adOpenStatic, adLockPessimisticIf rs.EOF Then MsgBox (对不起用户名密码错误请重新输入) ElseSelect Case Combo1.ListIndex Case 0: 管理员MsgBox 【 管 理
23、 员 】,欢迎您登陆维护本学生成绩管理系统!, vbOKOnly, 【 管 理 员 】-登陆成功!MDIMain.Enabled = TrueMDIMain.register.Enabled = TrueMDIMain.system1.Enabled = TrueMDIMain.score.Enabled = TrueMDIMain.manage.Enabled = TrueMDIMain.bak.Enabled = TrueMDIMain.table.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMD
24、IMain.Toolbar1.Visible = TrueUnload LoginCase 1: 教师 MsgBox 老 师您好!欢迎您使用本学生成绩管理系统!, vbOKOnly, 老 师 -登陆成功! MDIMain.Enabled = TrueMDIMain.register.Enabled = FalseMDIMain.system1.Enabled = TrueMDIMain.score.Enabled = TrueMDIMain.manage.Enabled = TrueMDIMain.bak.Enabled = TrueMDIMain.table.Enabled = TrueMD
25、IMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible = TrueUnload Login Case 2: 学生 MsgBox 同 学 你好!欢迎使用本学生成绩管理系统!, vbOKOnly, 同 学-登陆成功! MDIMain.Enabled = TrueMDIMain.register.Enabled = FalseMDIMain.system1.Enabled = FalseMDIMain.score.Enabled = FalseMDIMain.manage.Enabled = Fal
26、seMDIMain.bak.Enabled = FalseMDIMain.table.Enabled = TrueMDIMain.log.Enabled = FalseMDIMain.again.Enabled = TrueMDIMain.Toolbar1.Visible = FalseUnload LoginEnd SelectUnload MeEnd IfEnd SubPrivate Sub Command2_Click()If MsgBox(提示:您真的要退出本系统吗?, vbQuestion + vbYesNo + vbDefaultButton2, 退出) = vbNo Then C
27、ancel = 1 ElseEndEnd IfEnd SubPrivate Sub Command3_Click()If MsgBox(提示:您真的要退出本系统吗?, vbQuestion + vbYesNo + vbDefaultButton2, 退出) = vbNo Then Cancel = 1 ElseEndEnd IfEnd SubPrivate Sub Form_Load()Combo1.ListIndex = 0MDIMain.ShowMDIMain.Enabled = FalseEnd Sub(五)主窗体在frmlogin窗体中如果用户登录成功,将会出现如图4-5所示的MDI主
28、窗体。图4-5系统主窗体若是学生用户,则有些菜单项不可用,只能运行本系统的部分功能(即重新登录和信息查询功能可用)。如图4-6所示。图4-6系统主窗体(六)教师管理界面编码设计本节以按学生角度进行管理为例,介绍教师管理的编码设计。教师用户进入“成绩管理”中的“按学生进行管理”功能,出现如图4-7所示界面。图4-7 “按学生进行管理”学生信息功能界面教师用户用鼠标双击学生信息后,系统会显示出该学生的成绩信息。如图4-8所示。图4-8 “按学生进行管理”成绩信息功能界面Option Explicit当改变记录集时,需要刷新整个网格控件Sub RefreshGrid() grdScan.DataMe
29、mber = grdScan.Refresh If DataEnv.rssqlStudent.State adStateClosed Then DataEnv.rssqlStudent.Close DataEnv.rssqlStudent.Open grdScan.DataMember = sqlStudent grdScan.Refresh 刷新各个绑定控件 Call grdScan_ChangeEnd Sub用以在浏览时,根据当前记录所出的位置不同,来改变个浏览按钮的状态Sub ChangeBrowseState() With DataEnv.rssqlStudent 如果没有任何记录,则
30、清空显示目录;并且使浏览部分和管理部分的按钮无效 If .State = adStateClosed Then .Open 假如处于记录的头部 If .BOF Then If Not .EOF Then DataEnv.rssqlStudent.MoveFirst cmdPrevious.Enabled = False cmdFirst.Enabled = False Else cmdPrevious.Enabled = True cmdFirst.Enabled = True End If 假如处于记录的尾部 If .EOF Then If Not .BOF Then DataEnv.rss
31、qlStudent.MoveLast cmdNext.Enabled = False cmdLast.Enabled = False Else cmdNext.Enabled = True cmdLast.Enabled = True End If End WithEnd Sub通过当前学生的成绩,来得到该学生的总成绩和平均成绩Sub Calculate(sSerial As String) Dim rs As New ADODB.Recordset Dim str str = select avg(score) as avg_score, sum(score) as sum_score fr
32、om score where studentid= & sSerial & rs.Open str, DataEnv.Con, adOpenStatic If Not rs.EOF Then txtSum.Text = FormatNumber(rs(sum_score), 2) txtAverage.Text = FormatNumber(rs(avg_score), 2) End IfEnd Sub刷新学生号为sSerial的成绩的网格控件grdScoreSub RefreshScore(sSerial As String) With DataEnv.rsOneScore If .Stat
33、e adStateClosed Then .Close Dim str If sSerial = Then str = select course.*, score.score from score, course where course.serial=Score.courseid Else str = select course.*, score.score from score, course where course.serial=Score.courseid & _ and Score.studentid = & sSerial & End If .Open str 根据DataEn
34、v.rsOneScore的记录状态,来改变管理grdScore的各个按钮的状态 If .BOF And .EOF Then cmdAdd.Enabled = True cmdEdit.Enabled = False cmdDelete.Enabled = False cmdReport.Enabled = False Else cmdAdd.Enabled = True cmdEdit.Enabled = True cmdDelete.Enabled = True cmdReport.Enabled = True End If End With grdScore.DataMember = on
35、eScore grdScore.Caption = 学号: & grdScan.Columns(0).CellText(grdScan.Bookmark) & 姓名: & grdScan.Columns(1).CellText(grdScan.Bookmark) grdScore.Refresh 计算该学生的总成绩和平均成绩 Call Calculate(grdScan.Columns(0).CellText(grdScan.Bookmark)End SubPrivate Sub cmdAdd_Click() On Error GoTo errHandler With frmAddCourse
36、 Load frmAddCourse .Caption = 添加成绩信息 .Show vbModal 如果用户没有点击确认按钮,则退出处理过程 If Not .mbAdded Then Unload frmAddCourse Exit Sub End If 添加成绩记录 Dim str str = insert into score(StudentID, CourseID, Score) values( str = str & grdScan.Columns(0).CellText(grdScan.Bookmark) & , & .dcbSerial.Text & , & .txtScore.
37、Text str = str & ) DataEnv.Con.Execute str Unload frmAddCourse End With Unload frmAddCourse 刷新整个网格控件 Call RefreshScore(grdScan.Columns(0).CellText(grdScan.Bookmark) Exit Sub errHandler: MsgBox Err.Description, vbCritical, 错误End SubPrivate Sub cmdClose_Click() Unload MeEnd SubPrivate Sub cmdDelete_Cl
38、ick() On Error GoTo errHandler If MsgBox(确实要删除此成绩记录?, vbYesNo + vbQuestion + vbDefaultButton2, 确认) = vbYes Then Dim sSerial sSerial = grdScore.Columns(0).CellText(grdScore.Bookmark) Dim stuSerial stuSerial = grdScan.Columns(0).CellText(grdScan.Bookmark) Dim str str = delete from score where studenti
39、d = & stuSerial & and courseid= & sSerial & 使用con来删除所选的记录 DataEnv.Con.Execute str DataEnv.rsOneScore.Requery 刷新grdScore控件 grdScore.DataMember = OneScore grdScore.Refresh Call Calculate(grdScan.Columns(0).CellText(grdScan.Bookmark) End If Exit SuberrHandler: MsgBox Err.Description, vbCritical, 错误End
40、SubPrivate Sub cmdEdit_Click() 修改当前所选的成绩信息 On Error GoTo errHandler With frmAddCourse Load frmAddCourse .Caption = 修改成绩信息 将当前所定位的课程信息写入到frmAddCourse的dcbSerial和dcbName控件中 .dcbSerial.Text = grdScore.Columns(0).CellText(grdScore.Bookmark) .dcbName.Text = .dcbSerial.BoundText 将当前所定位的课程的成绩写入到frsScore.txt
41、Score中 .txtScore.Text = grdScore.Columns(grdScore.Columns.Count - 1).CellText(grdScore.Bookmark) .cmdOK.Enabled = True .Show vbModal 如果用户没有点击确认按钮,则退出处理过程 If Not .mbAdded Then Unload frmAddCourse Exit Sub End If 添加成绩记录 Dim str str = update score set score= & .txtScore.Text str = str & where studentid
42、= & grdScan.Columns(0).CellText(grdScan.Bookmark) & str = str & and courseID= & .dcbSerial.Text & DataEnv.Con.Execute str Unload frmAddCourse End With Unload frmAddCourse 刷新整个网格控件 Call RefreshScore(grdScan.Columns(0).CellText(grdScan.Bookmark) Exit SuberrHandler: MsgBox Err.Description, vbCritical, 错误End SubPrivate Sub cmdFirst_Click() DataEnv.rssqlStudent.MoveFirst Call ChangeBrowseStateEnd SubPrivate Sub cmdLast_Click() DataEnv.rssqlStudent.M