毕业设计(论文)
题 目 学生选课管理系统
英文题目 Student enrollment management system
学生姓名 刘小亮
班 级1140302
专 业[1**********]6
东华理工大学高职学院
2014年 5 月15日
目 录
第一章 开发背景及开发环境介绍„„„„„„„„„„„„„„„„„„„„„„„„„1
1.1开发背景„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„1
1.2开发的意义„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„1
1.3开发环境及开发工具介绍„„„„„„„„„„„„„„„„„„„„„„„„„„1
第二章 需求分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
2.1需求概述„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
2.2 系统设计总体目标„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
2.3 系统设计的需求概况功能分析„„„„„„„„„„„„„„„„„„„„„„„3
2.4 性能需求„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„4
2.5 用户特点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„4
第三章 概要设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„5
3.1 功能模块详解„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„5
3.2 系统流程图„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„6
3.3系统功能程序介绍„„„„„„„„„„„„„„„„„„„„„„„„„„„„7
第四章 详细设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„8
4.1 创建空数据库及数据表„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 8
4.2实现数据库连接模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 9
4.3实现系统登陆功能模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„12
4.4实现用户管理功能„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„14
4.5实现基本信息维护模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„19
4.5.1实现教师基本信息维护模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 19
4.5.2实现学生基本信息维护模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„19
4.5.3实现课程基本信息维护模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„20
4.6 实现教学管理模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„20
4.7实现考试管理模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„21
4.7.1实现考试计划安排模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„21
4.7.2实现考试成绩修改模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„22
4.7.3实现考试成绩输入模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„22
4.8实现信息查询模„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„23
第五章 设计总结„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„25 主要参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„26
前 言
课背景和意义
数据库是从60年代初发展起来的计算机技术。经过四十来年的发展,数据库技术己经趋于成熟。Web 数据库在新的Internet 环境中发生了很大的变化。就数据应用而言呈现出多样化的空间,如数字图书馆、电子出版物、电子商务、远程教育系统等的出现,给web 数据库技术提出了更多、更高的要求。同时,随着国内高校校园网的建设,基于互联网的应用系统的开发正在蓬勃发展并发挥着较大的作用。例如,我国许多高校的网上招生系统,学校的各种管理信息系统,学校选课系统,还有一些医学院校开发出的网上诊所、远程诊断系统等等,都是基于校园网的应用系统。
国外的教学科研软件与国内相比开发的早而且比较成熟。早在七十年代末,美国就建成了NSFNET(国家科学基金网) ,其课题的申报及课题的进展情况汇报都在网上进行。其网上教学教务管理系统也十分完善,世界各地的学生可以坐在家里通过互联网完成入学报名、选课、考试、毕业论文、取得学位这一学习生活的全过程。目前,国际上已具规模的远程教育学校就有数百所之多,网上教育正在各地发挥着巨大的作用,为世界各国培养出大批人才。所有这些都表明,基于Internet 的校园网的应用已深入到校园内的各个方面。
在高等学校的教务管理工作中,课程表的编排是一项十分复杂、棘手的工作。在排课过程中,除了满足大量的制约条件以外,还必须解决许多冲突与矛盾,例如:两位教师不能同一时间在同一班级上课、一位教师不能在同一时间上两门课等等。利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。
我国不少高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。
从系统开发的复杂程度来看,计算机辅助排课与选课是高校教务系统中的两个关键子系统,目前不少教务系统尚未很好地解决排课与选课问题。本文主要对高校教务管理系统中计算机课表编排与选课子系统的基本功能、设计思想、需求分析以及实现技术进行探讨。
学生选课系统是一个学校不可缺少的部分, 它的内容对于学校的决策者和管理者来说都至关重要, 所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点, 如:效率低、保密性差, 另外时间一长, 将产生大量的文件和数据, 这对于查找、更新和维护都带来了不少的困难。
摘 要
本文通过用 MICROSOFT公司的 VISUAL BASIC开发工具,Microsoft Access进行后台数据库的开发,使用ADO (ActiveX Data Objects)控件进行数据库的连接。开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,实现了学生基本信息的维护、教师基本信息的维护、课程信息的维护、学生选课、课表查询、成绩输入、成绩查询等功能。本系统的用户界面十分简洁、实用,系统编制过程中充分考虑了计算机的优越性,对于不是计算机专业的人员来说,也可以很方便的进入系统和使用本系统提供的功能。 Abstract In this paper, by using MICROSOFT's VISUAL BASIC development tools, Microsoft Access database, using the ADO (ActiveX Data Objects) connection control database.Development mainly includes two aspects: the background of the establishment and maintenance of database and front-end application development, the students realize the basic information maintenance,teachers' basic information maintenance, curriculum information maintenance, students, curriculum inquiry,score input, query results and other functions. The system's user interface is very simple, practical,systematic process had fully considered the computer superiority, for whose major is not computer, also can easily enter the system and use the function of this system provide.
关键词:教务管理,软件工程,VB ,ADO 控件,Microsoft Access
第一章 开发背景及开发环境介绍
1.1开发背景
随着科学技术的不断提高, 计算机科学日渐成熟, 其强大的功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分, 使用计算机进行教务管理, 具有着手工管理所无法比拟的优点. 例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提教务管理的效率, 也是企业的科学化、正规化管理, 与世界接轨的重要条件。
开发这样一套管理软件成为很有必要的事情, 在下面的各章中我们将以开发一套教务管理系统为例, 谈谈其开发过程和所涉及到的问题及解决方法. 教务管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
1.2 开发的意义
毕业设计是大学学习的总结,同时也是自己综合运用所学知识解决实际问题的一次锻炼。教务管理系统的主要目的是为了方便学校对教师信息、学生基本信息、课程信息、考试安排、学生成绩录入、修改、查询,提高学校的工作效率。这一系统的开发成功,解决了手写速度慢、容易出错的现状。无论是在学籍管理、成绩管理、课程管理等方面都可以帮助学校最迅速最准确的完成所需的工作。无论是在适用性、灵活性和易操作性方面都显示出了它的强大功能。
1.3.1 系统的运行环境
在操作系统方面,虽然现在Linux 的发展速度非常的快,但是对于大多数的使用者来说,操作显然没有微软的WINDOWS 那么的流行和简单化。所以我决定该教务管理系统将运行在Windows 系统下面。
1.3.2 开发工具
1、Visual Basic的简介
Visual Basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB 都是世界上使用人数最多的语言——不仅是盛赞VB 的开发者还是抱怨VB 的开发者的数量。它源自于BASIC 编程语言。VB 拥有图形用户界面(GUI )和快速应用程序开发(RAD )系统,可以轻易的使用DAO 、RDO 、ADO 连接数据库,或者轻松的创建ActiveX 控件。程序员可以轻松的使用VB 提供的组件快速建立一个应用程序。
总的看来Visual Basic有以下主要特点:
① 可视化编程
② 面向对象的程序设计
③ 结构化程序设计语言
④ 事件驱动编程机制
⑤ 访问数据库
2、ADO 控件的简介
ADO Data 控件使用 Microsoft ActiveX 数据对象(ADO) 来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合 OLEDB 规范的数据源。使用 Visual Basic 的类模块也可以很方便地创建子集的数据提供者。
尽管可以在应用程序中直接使用 ActiveX 数据对象,但 ADO Data 控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使您可以用最少的代码创建数据库应用程序。
ADO (ActiveX Data Objects)Active 数据对象。ADO 设计为一种极为简单的格式,通过ODBC 的方法同数据库接口。可以用任何一种ODBC 数据源,如:SQL Server、Oracle 、Access 、Excel 、文本文件、图形文件和无格式的数据文件。
在VB 中使用ADO :在一个打开的Visual basic 6.0的工程中,选择菜单【工程】→【部件】命令,出现“部件”对话框,在“控件”选项卡的列表中选择“Microsoft ADO Data Control 6.0 (OLEDB)”选项,单击【确定】按钮。这样在程序中便加入了对ADO 的引用。
3、Micrsoft Access 简介
Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程式之一。
在这个系统中我们使用Micrsoft Access进行后台数据库的开发。Micrsoft Access是Micrsoft Office系列中数据处理软件, Access2003是关系数据库开发工具,1992年,Microsoft Access 作为第一个面向Windows 操作平台的桌面数据库管理系统而诞生,它不但充分体现了面向对象的思想,提供可视化的编程手段,而且充分利用了Windows 操作平台的优越性,采用与Windows 完全一致的界面风格,使界面非常友好。在Access 中,用户不需要编写复杂的程序就可以建立一个完整的数据库应用系统,是一个典型的开放式数据库系统,它可以和Windows 下的其他应用程序共享数据库资源。
第二章 需求分析
2.1需求概述
由于现今的教务管理非常繁琐,行政人员付出大量的工作时间,得到的效率很低。因此为提高工作效率,减轻校方人员的工作负担,决定开发教务管理系统软件。
开发此教务管理系统软件,以供教学人员及操作者进行教务管理,方便操作者随时添加、查询、修改等。为了我们提高软件开发的能力,学习汉语编程的技巧,提高工作设计思想,通过本次的工程开发,开发小组成员与辅助老师,公司的技师交流,能从中学习知识吸取经验,在技术和软件思想上同时得到锻炼和提高,从而使总体水升到一个新的高度。
2.2 系统设计总体目标
(1)本系统具有很强的可靠行,可以学生、教师、课程等信息进行效验,对数据进行修改、删除,规定各类人员的权限。
(2)本系统中的模块具有很强的可续性,可以方教务管理人员的修改与维护。
(3)本系统操作方便、灵活、简单。操作人员只需录入教务相关的基本信息和数据就可以在以后的工作中方便的调用。
(4)本系统可高效、快速的查询到考试的基本信息和成绩,便于各个学院和学生查询和比对成绩。
2.3 系统设计的需求概况功能分析
对于学生选课信息系统的设计本组通过阅读了大量相关文献,了解了管理信息系统的发展、相关技术和开发方法,以及软件工程学的相关理论。基于对以上情况的了解和对阅读参考文献的体会。总结了本系统的相关需求。包括学生信息的输入,包括学生的基本信息、课程基本信息,教师基本信息,选课表基本信息等。各种信息的查询,包括学生基本信息、课程基本信息,教师基本信息,选课信息的查询等。最后设计如下的数据项和数据结构:
学生:学号,姓名,性别,年龄,年级,班级,专业,地址。
教师:教师号,姓名,性别,年龄,电话号码。
课程:课程号,课程名称,课时,开课状态,已选人数,限选人数,选课期限。
选课:学号,课程号,分数。
界面设计,系统应使用较浅的颜色最好用浅蓝色。突出标明部分最好用红色,界面友好,操作应该简单。 数据库概念结构设计
根据前面的设计规划出的实体有:学生实体、课程实体、教师实体等
学生实体包括的数据项有:学号,性别,姓名,年龄,年级,班级,系别名,专业名。
教师信息包括项有:教师号,姓名,性别,系别号,电话号。
课程信息项:课程号,课程名,学分,学时,开课状态,已选人数,限选人数。
依据高校数据库管理系统的需求,对应数据表的设计及功能如下:
(1)课程表:存储课程的基本信息。
(2)学生信息表:存储学生的基本信息。
(3)教师表:存储教师的基本信息。
(4)系别/专业表:存储系别/专业的基本信息。
(5)选课结果表:存储与学生选课情况相关的具体条目信息。
(6)授课表:存储教师授课情况相关的具体条目信息。
(7)管理员表:存储管理员的信息。
2.4 性能需求
(1)安全性
在高系统配置、高网络带宽和容易得到保证的情况下,我们最需要考虑的性能需求就是系统安全性问题。在开发系统的每个阶段,均需要考虑彼此间的认证与授权。尤其要注意认证,简单地说就是确定谁是特定用户,并针对安全源验证该用户的身份。在处理完识别用户的方法之后,必须利用一种方法以向用户授权,从而能够使用系统的特定功能。
(2)数据录入和处理的准确性和实时性
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。
(3)数据的一致性与完整性
由于系统的数据是共享的,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,要求对数据库的数据完整性进行严格的约束。
(4)易用性
界面应采用图形化操作方式,便于各类人员操作。适用于Windows 2000/xp及以上操作系统。
2.5 用户的特点
由于使用本系统的人员是学校教务管理人员和本院校的学生,所以本系统的操作界面应满足适应不同操作人员对应不同的操作管理界面。
第三章 概要设计
概要分析
学生选课管理系统,主要是针对学生的选课进行需求分析的。首先,学生选课的前提是课程已经由教务,或者教师进行科学的,无冲突的排课后才可以进行的。因此,在选课功能之前,排课成为了选课功能的前提。而这两个功能所涉及的用户为:学生,教师,管理员。而他们的信息也应该被合理的管理,这也决定了本系统中必然的三个功能:登陆管理,即用户信息管理;排课控制;选课控制。
通过对各个高校现存选课需求,确定了本系统中用户应该含有的三类用户:管理员,教师,学生。各类用户描述如下:
(1) 管理员
描述:管理员主要是对整个系统进行维护,包括设置选课时段,选课规则,如选课前,学生不可登陆,而选课后,学生不可更改,只能查看。管理员可以对选课结果进行统计;查询选课情况,对学生的选课申请进行审查;进行用户管理;排课,发布选课信息等。
(2) 教师
描述:教师主要是查询课程基本情况,备选情况,以及选课学生的基本情况。
(3) 学生
描述:在选课系统中的主要功能是查询课程,教室信息,提交选课申请或删除选课申请,查询选课情况,登陆系统,进行个人信息修改等于选课有关的活动。
根据上面的叙述,对本系统进行了划分,主要分为三个功能模块:登陆控制,排课控制和选课控制,相应的对应三个之系统,登陆系统,排课系统与选课系统。其中,登陆系统是整个系统的前提,主要是区分登陆者(管理员,教师或是学生)不同身份,并给予不通的权限,在页面中根据部通身份判断其相应的权限,进行不同的操作。排课系统是本系统的基础,主要提供给管理员使用,主要功能是合理的对课程进行编排,在本系统中主要是:设定选课时间段,进行排课并检测排课冲突,发布选课信息。选课子系统是本系统最终要实现的功能,主要供学生使用,包括课程浏览,选课,退课等于选课有关的一切操作。
3.1 功能模块详解
本文通过用 MICROSOFT公司的 VISUAL BASIC开发工具, 利用其提供的各种面向对象的编程环境编写教务管理系统,全面部析教务管理的内容,由此得出教务管理系统的需求分析和数据建模,利用软件工程原理,用模块化设计方式将系统的各个功能模块层层分解,设计出系统的模块化结构,并根据系统的具体要求和需要实
现的功能,详细地定义了各个模块的具体功能。
本系统的功能模块图如下:
图3.1 功能模块图
3.2 系统流程图
系统流程图如图 3.2 所示:
3.3系统功能程序介绍
本应用程序系统采用的是多文档窗体程序,每一功能模块对应一个窗体。现在将逐个介绍各个模块的功能。
1.系统管理模块
该模块的主要任务是维护系统的正常运行和安全性设置, 包括添加用户、修改密码、删除用户,这三个功能模块各自独立,完成该系统的用户管理。
2.教师信息维护模块:
该模块的功能是实现对全校教师信息的管理工作,包括:教师基本信息、联系方式、入职时间、职称等教师信息的维护。
3.学生信息维护模块:
该模块的主要功能是实现对学生的个人信息的管理工作,包括学生信息增加、学生信息查询等功能,从而方便学校教务部门对学校的基本情况的快速查询和了解。
4.课程信息维护模块:
该模块对各个课程信息进行设置,包括对课程信息记录的添加、修改、删除、保存和搜索等功能,以便教务部门可以快速的查询和修改课程信息,完善高校专业建设。此外,还设置了学生选课模块,学生可以根据提供的课程信息选择本学期的课程。同时,学生还可以查看自已的课程表,包括上课时间、上课地点。
5.成绩管理模块:
学校的成绩管理工作是检验学生学习情况的一个主要手段,设置了成绩输入、成绩查询等功能模块。
6.考试安排模块:
该模块可实现各班考试时间、考试科目的输入,同时可以按系别进行各科目考试时间的查询。
本系统的设计是在Windows XP中文版操作系统环境下,使用Visual Basic 6.0中文版开发成功的。数据库是MIS 中的重要支持技术,在MIS 开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的编程软件Visual Basic 6.0中文版以及数据库软件Microsoft Access2003。数据库的修改分为;添加、编辑和删除记录。
第四章 详细设计
4.1 创建空数据库及数据表
本系统是使用Microsoft Access2003 创建后台数据库的,因此下我们就介绍一下在Microsoft Access2003 创建数据库文件。
本根系统的需求,首先要创建一个“教务管理系统.mdb ”空数据库并建立下面的表:
教师信息 保存教师的基础信息 学生信息 保存学生的基本信息 课程信息 保存课程的基本信息
选课表 保存学生根据课程表进行选课的结果 成绩表 保存学生的课程成绩 考试安排表 保存各科考试安排信息
用户表 保存能够使用系统的各类用户的信息
如图 4.1所示
图4.1 创建的数据库
下面分别对各表的结构进行介绍。
“教师信息”表的结构如表4.1 所示。
表4.1 “教师信息”表结构
“学生信息”表的结构如表4.2 所示。
表4.2 “学生信息”表结构
“课程信息”表的结构如表4.3 所示。
表4.3 “课程信息”表结构
“选课表”表的结构如表4.4 所示。
表4.4“选课表”表结构
“考试计划表”表的结构如表4.5 所示。
表4.5
“考试计划表”表结构
“成绩表”表的结构如表4.6 所示。
表4.6“成绩表”表结构
别外还有一个关于系统用户的数据库,该数据库中有一个 “用户信息”表。该表的表结构如表 4.7 所示。
表4.7 “用户信息”表结构
4.2实现数据库连接模块
对于系统前端应用程序和后台Access 数据库的链接则采用编写全局模块的方式,实现的代码如下: Public Sub Main()
Dim strAccess As String
strAccess = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\教务管理系统\ACCESS\学生选课.mdb"
If ADOcn Is Nothing Then Set ADOcn = New Connection ADOcn.Open strAccess End If logon.Show End Sub
以后各模块中实现对数据库的链接都是通过本模块中定义的数据库连接数据连接对象ADOcn 来实现与后台
数据库的各种操作,后面将不再详细绍介。
4.3实现系统登录功能模块
对于数据库管理系统,安全的重要性是不言而喻的。一个设计良好的安全机制能确保用户的合法操作的简单、容易,同时可以尽量避免非法操作和意外破坏。数据库的安全性以被访问的数据库的对象和访问者为主要管理对象,用户只有具有对某个对象的访问权限才可以对该对象进行访问。
本系统【用户登陆】窗体的运行结果如图4.2 所示。
图4.3.1【用户登陆】窗体
在该窗本中输入用户名、密码后,如果是合法的用户则可以进入该系统,系统可以通过用户名来判断用户的权限,从而转到不通的页面执行操作。例如,具有学生权限的用户只能查看课程、考试时间、考试成绩等信息,不允许登陆到带有管理模块的窗体上。而管理员和教师则可以登陆到具有管理内容的窗体中。
图4.3.2和4.3.3分别演示了教师和学生登录后的不同效果。
图4.3.2教师登陆【主窗体】
图4.3.3学生登陆【主窗体】
系统判断该用户输入的用户名、密码及用户类型是否吻合,进而决定该用户是否可以登陆到相应操作界面中。实现该功能的方法是【登陆】按钮的“单击”事件中添加如下代码:
Private Sub Command1_Click() ' 检查正确用户和密码
Set rs = ADOcn.Execute("select 用户名 from 用户表 where 用户名='" & Trim(txtUserName.Text) & "'")
If rs.EOF And rs.BOF Then
MsgBox "用户名错误或用户不存在,再试一次!", , "登录" txtUserName.Text = "" txtPassword.Text = "" txtUserName.SetFocus rs.Close Else
Set rs = ADOcn.Execute("select 密码 from 用户表 where 用户名='" & Trim(txtUserName.Text) & "' And 密码='" & Trim(txtPassword.Text) & "'")
If rs.EOF And rs.BOF Then
MsgBox "密码错误,再试一次!", , "登录" txtPassword.Text = "" txtPassword.SetFocus Else
' 根据用户的权限转到相应窗口
Set rs = New ADODB.Recordset
SQL = "select 用户类型 from 用户表 where 用户名 = '" & Trim(txtUserName) & "'" Set rs = ADOcn.Execute(SQL) Permission = rs.Fields(0) If Permission = 0 Then FormMain.Show
LoadUser = txtUserName.Text '对登录到系统的当前用户信息进行保存 Unload Me rs.Close
Else
StuShow.Show rs.Close Unload Me End If End If End If End Sub
4.4 实现用户管理功能
本系统中设置的权限有三种分别是:管理员权限,教师权限和学生权限,根据用户所具有的权限不同能够使用该系统中的功能模块也不同。系统通过在登陆时保存的登陆用户的信息来决定用户所能执行的操作。在此模块中教师只能修改自己的密码,而具有管理员权限的用户则可以执行用户管理和添加用户的功能。
实现判断的代码如下所示:
Private Sub 用户管理_Click()
Set rs = New ADODB.Recordset
SQL = "select 用户类型 from 用户表 where 用户名 = '" & Trim(LoadUser) & "'" Set rs = ADOcn.Execute(SQL) Permission = rs.Fields(0) If Permission = 0 Then UserMe.Show rs.Close Else
MsgBox "您的权限不够,不能执行该项操作" rs.Close End If
图4.4.1 【用户登陆】窗体
本窗体数据库绑定控件MSFlexGird 来显示数据库中已经存在的用户信息,单击MSFlexGird 控件中所要修改用户后,该用户的基本信息则显示在左面的相应的textbox 中,当对用户的信息进行修改完成后,管理员通过单击“修改”来实现对用户信息的修改,此时“修改”按钮变化为“确定”按钮用以提示管理员对所要修改的信息进行确认,此时“取消”按钮变为可用状态,若管理员对所要修改的信息仍要改动,则单击“取消”来取消之前的操作,若确认无误,则单击“确定”按钮修改用户信息,同事在右侧的MSFlexGird 控件中更新所修改后的信息。具体实现代码如下:
Private Sub Command1_Click()
If Command1.Caption = "修改" Then Command1.Caption = "确定" UserGrid.Enabled = False Command2.Enabled = False Command3.Enabled = False Command4.Enabled = True Text1.Enabled = False Text2.Enabled = True Text3.Enabled = True Exit Sub Else
If Trim(Text2.Text) = "" Or Trim(Text3.Text) = "" Then MsgBox "输入信息不完整, 请检查是否有项目未输入." Exit Sub End If
If Not (Trim(Text3.Text) = "0" Or Trim(Text3.Text) = "1" Or Trim(Text3.Text) = "2") Then MsgBox "用户类型只能为‘0’、‘1’和‘2’" Exit Sub End If
On Error GoTo ErrMsg1
SQL = "update 用户表 set " & _
"密码 = '" & Trim(Text2.Text) & "',用户类型 = '" & Trim(Text3.Text) & "' " & _ "where 用户名 = '" & Trim(Text1.Text) & "'" ADOcn.Execute (SQL) Call Display
MsgBox ("修改成功")
Command1.Caption = "修改" UserGrid.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Text1.Text = "" Text2.Text = "" Text3.Text = ""
Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Exit Sub End If ErrMsg1:
MsgBox "输入信息有错误,请检查输入信息格式是否有误或长度是否超过限度!" End Sub
“删除”按钮来实现对是对于不在使用该系统的用户管理进行删除操作,以保持数据库的数据的有效性。单击“删除”按钮即对当前在MSFlexGird 中选定的用户执行删除。具体实现代码如下:
Private Sub Command2_Click()
strOK = MsgBox("确定删除该用户?", vbOKCancel) If strOK = vbOK Then
ADOcn.Execute ("delete from 用户表 where 用户名= '" & Trim(Text1.Text) & "'") Call Display '调用display 函数对MSFlexGird 中数据进行同步更新 MsgBox "删除成功"
Command1.Enabled = False Command2.Enabled = True Command4.Enabled = False Text1.Text = "" Text2.Text = "" Text3.Text = "" End If End Sub
这里在对MSFlexGird 中数据进行同步更新时采用调用Display 函数的形式,将MSFlexGird 的更新操作卸载一个函数体中,以便于多次调用,在前面执行用户修改操作时就是才用这种方法。这样做不仅使程序的模块化,也增加了程序的简洁性和易理解性,便于后期维护和修改。
本例的【添加用户】窗体运行结果如图4.4.2所示
图4.4.2 【添加用户】窗体
在调用本窗体时仍然有用户使用权限的限制,实现的代码同用户管理的代码相同,这里不在重复。系统的管理员将要添加的用户名、密码、相应的权限添加到对应的文本框中,单击“添加”按钮完成添加用户操作。具体实现的代码如下:
Private Sub Command1_Click()
If Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" Or Trim(Text3.Text) = "" Then
MsgBox "输入信息不完整, 请检查是否有项目未输入。"
Exit Sub
End If
If Not (Trim(Text3.Text) = "0" Or Trim(Text3.Text) = "1" Or Trim(Text3.Text) = "2") Then MsgBox "用户类型只能为‘0’、‘1’和‘2’"
Exit Sub
End If
Set rs = New ADODB.Recordset
SQL = "select * from 用户表 where 用户名 = '" & Trim(Text1.Text) & "'"
Set rs = ADOcn.Execute(SQL)
If Not (rs.EOF Or rs.BOF) Then
MsgBox "该用户已经存在,请重新输入。"
rs.Close
Text1.SetFocus
Exit Sub
End If
SQL = "insert into 用户表 values(" & _
"'" & Trim(Text1.Text) & "','" & Trim(Text2.Text) & "','" & Trim(Text3.Text) & "')" ADOcn.Execute (SQL)
MsgBox "添加成功"
rs.Close
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End Sub
注意:在本代码块中加入了对输入数据的判断,如权限的设置中只能为“0” 、“1” 、“2”对于输入的数据为非这3个数字的时候系统将拒绝执行操作,从而保证了进入数据中数据的正确性。
本例的【修改密码】窗体运行结果如图4.4.3所示
图4.4.3 【密码修改】窗体
系统将对用户修改的密码进行再次确认,以防止用户无意中的错误输入,所带来的不必要的麻烦。用户单击“提交”后,完成修改。
具体实现代码如下:
Private Sub Command1_Click()
If Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" Or Trim(Text3.Text) = "" Then
MsgBox "输入信息不完整, 请检查是否有项目未输入。"
Exit Sub
End If
Set rs = New ADODB.Recordset
SQL = "select 密码 from 用户表 where 用户名 = '" & Trim(LoadUser) & "'"
Set rs = ADOcn.Execute(SQL)
unpassword = rs.Fields(0)
If unpassword Trim(Text1.Text) Then
MsgBox "密码错误,请重新输入。"
rs.Close
Text1.Text = ""
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) Trim(Text3.Text) Then
MsgBox "两次输入密码不一致,请重新输入。"
Text2.Text = ""
Text3.Text = ""
Text2.SetFocus
Else
SQL = "update 用户表 set " & _
"密码 = '" & Trim(Text2.Text) & "' " & _
"where 用户名 = '" & Trim(LoadUser) & "'"
ADOcn.Execute (SQL)
MsgBox ("修改成功")
rs.Close
Unload Me
End If
End Sub
本模块中调用了全局模块中保存的登录用户的基本信息,用以验证用户所要修改密码的正确性,防止用户错误输入或与本系统无关的人员对数据记录的错误修改。
4.5 实现基本信息维护模块
在本系统中基本信息维护模块分为教师信息维护、学生信息维护、课程信息维护,用户可以通过选择主窗菜单中的各菜单项进入相应的功能模块。
4.5.1 实现教师基本信息维护模块
该模块的主要功能是实现对教师的个人信息的管理工作,包括教师信息增加、教师信息查询等功能,从而方便学校教务部门对学校的基本情况的快速查询和了解。在主窗体中单击“基础维护”菜单选择“教师信息维护”命令,可以打开“教师信息维护”窗体,该窗体的运行结果如图4.5.1所示。
图4.5.1教师信息维护模块
该窗体中底部工具栏上有修改、添加、删除、取消和退出5个按钮,可以对“教师信息”进行设置,包括教师信息记录的添加、修改、删除、和保存等功能。顶部的“教师信息表”可以直观的显示出当前在职教师的信息,教务人员还可以通过点选教师信息表中的信息,对教师进的基本信息进行修改。
由于学生基本信息维护、课程基本信息维护和教师基本信息维护在实现的原理上基本相同,这里不予详细介绍,只列出相关窗体。
4.5.2 实现学生基本信息维护模块
图4.5.2学生信息维护模块
4.5.3 实现课程基本信息维护模块
图4.5.3课程信息维护模块
4.6 实现教学管理模块
该模块的功能是实现对学生选课和教师授课情况查询的管理工作,教务工作人员通过对所调查到的学生的选课情况进行录入,对于每个系不同教师的授课情况进行直观的查询。例如在图4.6.1学生选课模块中通过复选框来选择某个学生所对应系的课程,方便教务工作人员的输入。在图4.6.2教师授课查询模块中又能够直观
的查询出某位教师在本学期的授课情况。
图4.6.1学生选课管理维护模块
图4.6.2教师授课查询模块
4.7 实现考试管理模块
该模块实现了对考试相关的信息进行设置,包括对考试科目和时间的计划安排、考试成绩的录入、考试成绩的修改和历次考试相关的信息。
4.7.1 实现考试计划安排模块
该模块的主要功能是对考试的时间进行安排,教务工作人员可以通过的选择某教学系和本学期所开设的课程,方便的添加、修改考试时间信息。在右侧的显示栏中也能够方便的查阅各个科目的具体考试时间。运行结果如图4.7.1所示。
图4.7.1考试计划安排模块
4.7.2 实现考试成绩修改模块 本模块的主要功能是对已输入到数据库中的学生考试成绩进行修改,由于在考试评卷及数据输入的过程中难免出现各种各样的错误输入或成绩合分的错误,造成学生考试成绩的不真实。通过对学生学号的查询,能够查阅出此学生本学期的考试科目,再选择所要修改成的科目,对学生的成绩进行修改。本模块还充分考虑到教学过程中的复杂性,所以添加了考试时间选项,以方便教务处对学生考核时补考或加考成绩情况的管理。运行结果如图4.7.2所示。
图4.7.2考试成绩修改模块
4.7.3 实现考试成绩输入模块
在本模块中学校教务人员可以将考试成绩统计好的数据输入到管理系统中,以方便以后的查阅。在设计此模块时充分考虑到输入数据的简洁性,操作人员只需通过点选考试时间、考试课程、学生学号就可以方便的进行成绩的录入工作。在选择考试课程时只会产生参加此次考试的学生的学号,因而简化了输入的工作,也有效的防止错误的数据进入数据库。运行效果如图4.7.3所示。
图4.7.3考试成绩输入模块
4.8 实现信息查询模块
在主窗体中图标栏中分为课表查询、考试时间查询和程序查询,主要目的是为了教务管理人员实现对整个系统关键的信息的直观浏览和各系各个科目平均成绩的统计。同时也方便学生对自己考试成绩的查询。
4.8.1 实现课程查询模块
该模块通过选择开课系、课程名称能够方便的查阅出该课程的上课时间和地点,对于学生选择课程之后确定上课时间和地点提供了很大的方便。运行效果如图4.8.1所示。
图4.8.1课程查询模块
4.8.2 实现考试时间查询模块
该模块是为教务人员及学生查阅某一科目的具体考试时间所设计。在设计过程中,为了提供简便的查询功
能,仍采用逐层细化的模式。例如在图4.8.2中操作人员选择了工学系,则在课程名称中自动生成工学系相关的课程,以方便用户缩小查询的范围,自动屏蔽掉无用的数据。用户单击确定后便可以直观的显示出该科目的考试时间。运行效果如图4.8.2所示。
图4.8.2考试时间查询模块
4.8.3 实现成绩查询模块
该模块设计的主要目的是为了教务人员对某次考试科目的平均成绩的统计,以方便对以往历次成绩进行比对。同时该模块也兼顾了学生对考试成绩查阅的要求,例如在图4.8.3中学生可以通过输入学号来查询自己在此次考试当中的成绩,也可以通过点选学科查询来比对其他同学的成绩。运行效果如图4.8.3所示。
图4.8.3成绩查询模块
第五章 设计总结
随着信息技术的发展,办公自动化已成为社会发展的主要趋势,学生选课管理因其劳动的复杂性已经无法适应手工操作,所以应用先进的计算机技术对学生选课进行管理是势在必行的,
(1)学生选课管理因为其日常事务比较繁琐,所以在设计数据库表之前一定要对系统的设计有一个整体的认识,对学生信息和课程信息进行整理,设计好各功能模块的E-R 图。这样,在后期的设计时,会因前期工作处理的好而减少许多麻烦,为设计的顺利进行作好了铺垫。
(2)在设计各个功能模块时,要考虑和其他模块的联系,更要结合实际情况对窗口要放置的空间进行分析,尤其在编制代码是要充分考虑各种限制条件,对不同的身份规定其不同的登录权限。
(3)在使用学生选课系统后,提高了学生选课的准确性,信息能够准确无误的输入计算机并在数据库中存储起来。按照规范设定标准代码,既保证了统计原始数据的准确性,又在分析统计时最大限度的减少了人为的影响,提高了工作效率。
通过本次的毕业设计,我们不仅掌握了设计的基本步骤,更重要的是学会了解科学的系统设计方法,加深了我们对软件开发的认识与理解。
随着毕业日子的到来,毕业设计也接近了尾声。经过几周的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。
能够完成这样一个完整教务管理系统,是与老师和同学的帮助密不可分的。在程序的开发过程中虽然遇到了很多的困难,但经过同学和指导老师的帮助,一一化解了困难,并从中学到了很多编程方面的知识。但是由于经验方面的原因该系统还有许多不尽如人意的地方和功能上的缺陷,而且系统的可移植性比较差,这些都有待于进一步改善。
在本次毕业设计中,我要感谢我们的指导老师,他们帮助我解决了设计中的疑难和困惑,为我完成设计提供了极大的帮助。在我遇到问题时他总是耐心的为我们作出解答,并帮我查找相关资料;在我遇到困难时帮助解决了不少的难点,使得系统能及时完成。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢指导老师耐心的辅导。
本人在此对所有向我提供帮助的老师和同学致以最诚挚的敬意
参考文献
[1] 汉清计算机工作室, 《 Visual Basic 6.0 数据库开发实例 》, 机械工业出版社 2000.3
[2] 何旭洪, 《Visual Basic 数据库开发实例导航》, 人民邮电出版社 2002
[3] 孙健鹏, 《VB 数据库开发实例解析》, 机械工业出版社
[4] 王汉新, 《Visual Basic程序设计》, 科学出版社 2002
[5] 陈惟斌, 《Visual Basic 6.0开发指南》, 清华大学出版社 2001.1
[6] 张春葆, 《VB 数据库系统设计与开发》, 清华大学出版社
[7] Buczek,《Access 2003数据库开发即时应用》, 人民邮电出版社 2003
[8] Visual Basic 6 Harry M. Deitel, Paul J. Deitel, Tem R. Nieto 电子工业出版社
[9] 王晟,韩泽坤《Access 数据库开发经典案例解析》,清华大学出版社2006.1
[10] 潇湘工作室 《Access2002中文版从入门到精通》 人民邮电出版社 2001.10
[11] 李真文编著,《Visual Basic 6.0全实例教程》, 北京希望电子出版社, 2002.6
[12] 张海藩编著,《软件工程导论》, 清华大学出版社, 2002.1
毕业设计(论文)
题 目 学生选课管理系统
英文题目 Student enrollment management system
学生姓名 刘小亮
班 级1140302
专 业[1**********]6
东华理工大学高职学院
2014年 5 月15日
目 录
第一章 开发背景及开发环境介绍„„„„„„„„„„„„„„„„„„„„„„„„„1
1.1开发背景„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„1
1.2开发的意义„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„1
1.3开发环境及开发工具介绍„„„„„„„„„„„„„„„„„„„„„„„„„„1
第二章 需求分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
2.1需求概述„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
2.2 系统设计总体目标„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
2.3 系统设计的需求概况功能分析„„„„„„„„„„„„„„„„„„„„„„„3
2.4 性能需求„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„4
2.5 用户特点„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„4
第三章 概要设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„5
3.1 功能模块详解„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„5
3.2 系统流程图„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„6
3.3系统功能程序介绍„„„„„„„„„„„„„„„„„„„„„„„„„„„„7
第四章 详细设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„8
4.1 创建空数据库及数据表„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 8
4.2实现数据库连接模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 9
4.3实现系统登陆功能模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„12
4.4实现用户管理功能„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„14
4.5实现基本信息维护模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„19
4.5.1实现教师基本信息维护模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 19
4.5.2实现学生基本信息维护模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„19
4.5.3实现课程基本信息维护模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„20
4.6 实现教学管理模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„20
4.7实现考试管理模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„21
4.7.1实现考试计划安排模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„21
4.7.2实现考试成绩修改模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„22
4.7.3实现考试成绩输入模块„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„22
4.8实现信息查询模„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„23
第五章 设计总结„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„25 主要参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„26
前 言
课背景和意义
数据库是从60年代初发展起来的计算机技术。经过四十来年的发展,数据库技术己经趋于成熟。Web 数据库在新的Internet 环境中发生了很大的变化。就数据应用而言呈现出多样化的空间,如数字图书馆、电子出版物、电子商务、远程教育系统等的出现,给web 数据库技术提出了更多、更高的要求。同时,随着国内高校校园网的建设,基于互联网的应用系统的开发正在蓬勃发展并发挥着较大的作用。例如,我国许多高校的网上招生系统,学校的各种管理信息系统,学校选课系统,还有一些医学院校开发出的网上诊所、远程诊断系统等等,都是基于校园网的应用系统。
国外的教学科研软件与国内相比开发的早而且比较成熟。早在七十年代末,美国就建成了NSFNET(国家科学基金网) ,其课题的申报及课题的进展情况汇报都在网上进行。其网上教学教务管理系统也十分完善,世界各地的学生可以坐在家里通过互联网完成入学报名、选课、考试、毕业论文、取得学位这一学习生活的全过程。目前,国际上已具规模的远程教育学校就有数百所之多,网上教育正在各地发挥着巨大的作用,为世界各国培养出大批人才。所有这些都表明,基于Internet 的校园网的应用已深入到校园内的各个方面。
在高等学校的教务管理工作中,课程表的编排是一项十分复杂、棘手的工作。在排课过程中,除了满足大量的制约条件以外,还必须解决许多冲突与矛盾,例如:两位教师不能同一时间在同一班级上课、一位教师不能在同一时间上两门课等等。利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。
我国不少高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。
从系统开发的复杂程度来看,计算机辅助排课与选课是高校教务系统中的两个关键子系统,目前不少教务系统尚未很好地解决排课与选课问题。本文主要对高校教务管理系统中计算机课表编排与选课子系统的基本功能、设计思想、需求分析以及实现技术进行探讨。
学生选课系统是一个学校不可缺少的部分, 它的内容对于学校的决策者和管理者来说都至关重要, 所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点, 如:效率低、保密性差, 另外时间一长, 将产生大量的文件和数据, 这对于查找、更新和维护都带来了不少的困难。
摘 要
本文通过用 MICROSOFT公司的 VISUAL BASIC开发工具,Microsoft Access进行后台数据库的开发,使用ADO (ActiveX Data Objects)控件进行数据库的连接。开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,实现了学生基本信息的维护、教师基本信息的维护、课程信息的维护、学生选课、课表查询、成绩输入、成绩查询等功能。本系统的用户界面十分简洁、实用,系统编制过程中充分考虑了计算机的优越性,对于不是计算机专业的人员来说,也可以很方便的进入系统和使用本系统提供的功能。 Abstract In this paper, by using MICROSOFT's VISUAL BASIC development tools, Microsoft Access database, using the ADO (ActiveX Data Objects) connection control database.Development mainly includes two aspects: the background of the establishment and maintenance of database and front-end application development, the students realize the basic information maintenance,teachers' basic information maintenance, curriculum information maintenance, students, curriculum inquiry,score input, query results and other functions. The system's user interface is very simple, practical,systematic process had fully considered the computer superiority, for whose major is not computer, also can easily enter the system and use the function of this system provide.
关键词:教务管理,软件工程,VB ,ADO 控件,Microsoft Access
第一章 开发背景及开发环境介绍
1.1开发背景
随着科学技术的不断提高, 计算机科学日渐成熟, 其强大的功能已为人们深刻认识, 它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分, 使用计算机进行教务管理, 具有着手工管理所无法比拟的优点. 例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提教务管理的效率, 也是企业的科学化、正规化管理, 与世界接轨的重要条件。
开发这样一套管理软件成为很有必要的事情, 在下面的各章中我们将以开发一套教务管理系统为例, 谈谈其开发过程和所涉及到的问题及解决方法. 教务管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
1.2 开发的意义
毕业设计是大学学习的总结,同时也是自己综合运用所学知识解决实际问题的一次锻炼。教务管理系统的主要目的是为了方便学校对教师信息、学生基本信息、课程信息、考试安排、学生成绩录入、修改、查询,提高学校的工作效率。这一系统的开发成功,解决了手写速度慢、容易出错的现状。无论是在学籍管理、成绩管理、课程管理等方面都可以帮助学校最迅速最准确的完成所需的工作。无论是在适用性、灵活性和易操作性方面都显示出了它的强大功能。
1.3.1 系统的运行环境
在操作系统方面,虽然现在Linux 的发展速度非常的快,但是对于大多数的使用者来说,操作显然没有微软的WINDOWS 那么的流行和简单化。所以我决定该教务管理系统将运行在Windows 系统下面。
1.3.2 开发工具
1、Visual Basic的简介
Visual Basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB 都是世界上使用人数最多的语言——不仅是盛赞VB 的开发者还是抱怨VB 的开发者的数量。它源自于BASIC 编程语言。VB 拥有图形用户界面(GUI )和快速应用程序开发(RAD )系统,可以轻易的使用DAO 、RDO 、ADO 连接数据库,或者轻松的创建ActiveX 控件。程序员可以轻松的使用VB 提供的组件快速建立一个应用程序。
总的看来Visual Basic有以下主要特点:
① 可视化编程
② 面向对象的程序设计
③ 结构化程序设计语言
④ 事件驱动编程机制
⑤ 访问数据库
2、ADO 控件的简介
ADO Data 控件使用 Microsoft ActiveX 数据对象(ADO) 来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合 OLEDB 规范的数据源。使用 Visual Basic 的类模块也可以很方便地创建子集的数据提供者。
尽管可以在应用程序中直接使用 ActiveX 数据对象,但 ADO Data 控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使您可以用最少的代码创建数据库应用程序。
ADO (ActiveX Data Objects)Active 数据对象。ADO 设计为一种极为简单的格式,通过ODBC 的方法同数据库接口。可以用任何一种ODBC 数据源,如:SQL Server、Oracle 、Access 、Excel 、文本文件、图形文件和无格式的数据文件。
在VB 中使用ADO :在一个打开的Visual basic 6.0的工程中,选择菜单【工程】→【部件】命令,出现“部件”对话框,在“控件”选项卡的列表中选择“Microsoft ADO Data Control 6.0 (OLEDB)”选项,单击【确定】按钮。这样在程序中便加入了对ADO 的引用。
3、Micrsoft Access 简介
Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程式之一。
在这个系统中我们使用Micrsoft Access进行后台数据库的开发。Micrsoft Access是Micrsoft Office系列中数据处理软件, Access2003是关系数据库开发工具,1992年,Microsoft Access 作为第一个面向Windows 操作平台的桌面数据库管理系统而诞生,它不但充分体现了面向对象的思想,提供可视化的编程手段,而且充分利用了Windows 操作平台的优越性,采用与Windows 完全一致的界面风格,使界面非常友好。在Access 中,用户不需要编写复杂的程序就可以建立一个完整的数据库应用系统,是一个典型的开放式数据库系统,它可以和Windows 下的其他应用程序共享数据库资源。
第二章 需求分析
2.1需求概述
由于现今的教务管理非常繁琐,行政人员付出大量的工作时间,得到的效率很低。因此为提高工作效率,减轻校方人员的工作负担,决定开发教务管理系统软件。
开发此教务管理系统软件,以供教学人员及操作者进行教务管理,方便操作者随时添加、查询、修改等。为了我们提高软件开发的能力,学习汉语编程的技巧,提高工作设计思想,通过本次的工程开发,开发小组成员与辅助老师,公司的技师交流,能从中学习知识吸取经验,在技术和软件思想上同时得到锻炼和提高,从而使总体水升到一个新的高度。
2.2 系统设计总体目标
(1)本系统具有很强的可靠行,可以学生、教师、课程等信息进行效验,对数据进行修改、删除,规定各类人员的权限。
(2)本系统中的模块具有很强的可续性,可以方教务管理人员的修改与维护。
(3)本系统操作方便、灵活、简单。操作人员只需录入教务相关的基本信息和数据就可以在以后的工作中方便的调用。
(4)本系统可高效、快速的查询到考试的基本信息和成绩,便于各个学院和学生查询和比对成绩。
2.3 系统设计的需求概况功能分析
对于学生选课信息系统的设计本组通过阅读了大量相关文献,了解了管理信息系统的发展、相关技术和开发方法,以及软件工程学的相关理论。基于对以上情况的了解和对阅读参考文献的体会。总结了本系统的相关需求。包括学生信息的输入,包括学生的基本信息、课程基本信息,教师基本信息,选课表基本信息等。各种信息的查询,包括学生基本信息、课程基本信息,教师基本信息,选课信息的查询等。最后设计如下的数据项和数据结构:
学生:学号,姓名,性别,年龄,年级,班级,专业,地址。
教师:教师号,姓名,性别,年龄,电话号码。
课程:课程号,课程名称,课时,开课状态,已选人数,限选人数,选课期限。
选课:学号,课程号,分数。
界面设计,系统应使用较浅的颜色最好用浅蓝色。突出标明部分最好用红色,界面友好,操作应该简单。 数据库概念结构设计
根据前面的设计规划出的实体有:学生实体、课程实体、教师实体等
学生实体包括的数据项有:学号,性别,姓名,年龄,年级,班级,系别名,专业名。
教师信息包括项有:教师号,姓名,性别,系别号,电话号。
课程信息项:课程号,课程名,学分,学时,开课状态,已选人数,限选人数。
依据高校数据库管理系统的需求,对应数据表的设计及功能如下:
(1)课程表:存储课程的基本信息。
(2)学生信息表:存储学生的基本信息。
(3)教师表:存储教师的基本信息。
(4)系别/专业表:存储系别/专业的基本信息。
(5)选课结果表:存储与学生选课情况相关的具体条目信息。
(6)授课表:存储教师授课情况相关的具体条目信息。
(7)管理员表:存储管理员的信息。
2.4 性能需求
(1)安全性
在高系统配置、高网络带宽和容易得到保证的情况下,我们最需要考虑的性能需求就是系统安全性问题。在开发系统的每个阶段,均需要考虑彼此间的认证与授权。尤其要注意认证,简单地说就是确定谁是特定用户,并针对安全源验证该用户的身份。在处理完识别用户的方法之后,必须利用一种方法以向用户授权,从而能够使用系统的特定功能。
(2)数据录入和处理的准确性和实时性
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。
(3)数据的一致性与完整性
由于系统的数据是共享的,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,要求对数据库的数据完整性进行严格的约束。
(4)易用性
界面应采用图形化操作方式,便于各类人员操作。适用于Windows 2000/xp及以上操作系统。
2.5 用户的特点
由于使用本系统的人员是学校教务管理人员和本院校的学生,所以本系统的操作界面应满足适应不同操作人员对应不同的操作管理界面。
第三章 概要设计
概要分析
学生选课管理系统,主要是针对学生的选课进行需求分析的。首先,学生选课的前提是课程已经由教务,或者教师进行科学的,无冲突的排课后才可以进行的。因此,在选课功能之前,排课成为了选课功能的前提。而这两个功能所涉及的用户为:学生,教师,管理员。而他们的信息也应该被合理的管理,这也决定了本系统中必然的三个功能:登陆管理,即用户信息管理;排课控制;选课控制。
通过对各个高校现存选课需求,确定了本系统中用户应该含有的三类用户:管理员,教师,学生。各类用户描述如下:
(1) 管理员
描述:管理员主要是对整个系统进行维护,包括设置选课时段,选课规则,如选课前,学生不可登陆,而选课后,学生不可更改,只能查看。管理员可以对选课结果进行统计;查询选课情况,对学生的选课申请进行审查;进行用户管理;排课,发布选课信息等。
(2) 教师
描述:教师主要是查询课程基本情况,备选情况,以及选课学生的基本情况。
(3) 学生
描述:在选课系统中的主要功能是查询课程,教室信息,提交选课申请或删除选课申请,查询选课情况,登陆系统,进行个人信息修改等于选课有关的活动。
根据上面的叙述,对本系统进行了划分,主要分为三个功能模块:登陆控制,排课控制和选课控制,相应的对应三个之系统,登陆系统,排课系统与选课系统。其中,登陆系统是整个系统的前提,主要是区分登陆者(管理员,教师或是学生)不同身份,并给予不通的权限,在页面中根据部通身份判断其相应的权限,进行不同的操作。排课系统是本系统的基础,主要提供给管理员使用,主要功能是合理的对课程进行编排,在本系统中主要是:设定选课时间段,进行排课并检测排课冲突,发布选课信息。选课子系统是本系统最终要实现的功能,主要供学生使用,包括课程浏览,选课,退课等于选课有关的一切操作。
3.1 功能模块详解
本文通过用 MICROSOFT公司的 VISUAL BASIC开发工具, 利用其提供的各种面向对象的编程环境编写教务管理系统,全面部析教务管理的内容,由此得出教务管理系统的需求分析和数据建模,利用软件工程原理,用模块化设计方式将系统的各个功能模块层层分解,设计出系统的模块化结构,并根据系统的具体要求和需要实
现的功能,详细地定义了各个模块的具体功能。
本系统的功能模块图如下:
图3.1 功能模块图
3.2 系统流程图
系统流程图如图 3.2 所示:
3.3系统功能程序介绍
本应用程序系统采用的是多文档窗体程序,每一功能模块对应一个窗体。现在将逐个介绍各个模块的功能。
1.系统管理模块
该模块的主要任务是维护系统的正常运行和安全性设置, 包括添加用户、修改密码、删除用户,这三个功能模块各自独立,完成该系统的用户管理。
2.教师信息维护模块:
该模块的功能是实现对全校教师信息的管理工作,包括:教师基本信息、联系方式、入职时间、职称等教师信息的维护。
3.学生信息维护模块:
该模块的主要功能是实现对学生的个人信息的管理工作,包括学生信息增加、学生信息查询等功能,从而方便学校教务部门对学校的基本情况的快速查询和了解。
4.课程信息维护模块:
该模块对各个课程信息进行设置,包括对课程信息记录的添加、修改、删除、保存和搜索等功能,以便教务部门可以快速的查询和修改课程信息,完善高校专业建设。此外,还设置了学生选课模块,学生可以根据提供的课程信息选择本学期的课程。同时,学生还可以查看自已的课程表,包括上课时间、上课地点。
5.成绩管理模块:
学校的成绩管理工作是检验学生学习情况的一个主要手段,设置了成绩输入、成绩查询等功能模块。
6.考试安排模块:
该模块可实现各班考试时间、考试科目的输入,同时可以按系别进行各科目考试时间的查询。
本系统的设计是在Windows XP中文版操作系统环境下,使用Visual Basic 6.0中文版开发成功的。数据库是MIS 中的重要支持技术,在MIS 开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统选用的编程软件Visual Basic 6.0中文版以及数据库软件Microsoft Access2003。数据库的修改分为;添加、编辑和删除记录。
第四章 详细设计
4.1 创建空数据库及数据表
本系统是使用Microsoft Access2003 创建后台数据库的,因此下我们就介绍一下在Microsoft Access2003 创建数据库文件。
本根系统的需求,首先要创建一个“教务管理系统.mdb ”空数据库并建立下面的表:
教师信息 保存教师的基础信息 学生信息 保存学生的基本信息 课程信息 保存课程的基本信息
选课表 保存学生根据课程表进行选课的结果 成绩表 保存学生的课程成绩 考试安排表 保存各科考试安排信息
用户表 保存能够使用系统的各类用户的信息
如图 4.1所示
图4.1 创建的数据库
下面分别对各表的结构进行介绍。
“教师信息”表的结构如表4.1 所示。
表4.1 “教师信息”表结构
“学生信息”表的结构如表4.2 所示。
表4.2 “学生信息”表结构
“课程信息”表的结构如表4.3 所示。
表4.3 “课程信息”表结构
“选课表”表的结构如表4.4 所示。
表4.4“选课表”表结构
“考试计划表”表的结构如表4.5 所示。
表4.5
“考试计划表”表结构
“成绩表”表的结构如表4.6 所示。
表4.6“成绩表”表结构
别外还有一个关于系统用户的数据库,该数据库中有一个 “用户信息”表。该表的表结构如表 4.7 所示。
表4.7 “用户信息”表结构
4.2实现数据库连接模块
对于系统前端应用程序和后台Access 数据库的链接则采用编写全局模块的方式,实现的代码如下: Public Sub Main()
Dim strAccess As String
strAccess = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\教务管理系统\ACCESS\学生选课.mdb"
If ADOcn Is Nothing Then Set ADOcn = New Connection ADOcn.Open strAccess End If logon.Show End Sub
以后各模块中实现对数据库的链接都是通过本模块中定义的数据库连接数据连接对象ADOcn 来实现与后台
数据库的各种操作,后面将不再详细绍介。
4.3实现系统登录功能模块
对于数据库管理系统,安全的重要性是不言而喻的。一个设计良好的安全机制能确保用户的合法操作的简单、容易,同时可以尽量避免非法操作和意外破坏。数据库的安全性以被访问的数据库的对象和访问者为主要管理对象,用户只有具有对某个对象的访问权限才可以对该对象进行访问。
本系统【用户登陆】窗体的运行结果如图4.2 所示。
图4.3.1【用户登陆】窗体
在该窗本中输入用户名、密码后,如果是合法的用户则可以进入该系统,系统可以通过用户名来判断用户的权限,从而转到不通的页面执行操作。例如,具有学生权限的用户只能查看课程、考试时间、考试成绩等信息,不允许登陆到带有管理模块的窗体上。而管理员和教师则可以登陆到具有管理内容的窗体中。
图4.3.2和4.3.3分别演示了教师和学生登录后的不同效果。
图4.3.2教师登陆【主窗体】
图4.3.3学生登陆【主窗体】
系统判断该用户输入的用户名、密码及用户类型是否吻合,进而决定该用户是否可以登陆到相应操作界面中。实现该功能的方法是【登陆】按钮的“单击”事件中添加如下代码:
Private Sub Command1_Click() ' 检查正确用户和密码
Set rs = ADOcn.Execute("select 用户名 from 用户表 where 用户名='" & Trim(txtUserName.Text) & "'")
If rs.EOF And rs.BOF Then
MsgBox "用户名错误或用户不存在,再试一次!", , "登录" txtUserName.Text = "" txtPassword.Text = "" txtUserName.SetFocus rs.Close Else
Set rs = ADOcn.Execute("select 密码 from 用户表 where 用户名='" & Trim(txtUserName.Text) & "' And 密码='" & Trim(txtPassword.Text) & "'")
If rs.EOF And rs.BOF Then
MsgBox "密码错误,再试一次!", , "登录" txtPassword.Text = "" txtPassword.SetFocus Else
' 根据用户的权限转到相应窗口
Set rs = New ADODB.Recordset
SQL = "select 用户类型 from 用户表 where 用户名 = '" & Trim(txtUserName) & "'" Set rs = ADOcn.Execute(SQL) Permission = rs.Fields(0) If Permission = 0 Then FormMain.Show
LoadUser = txtUserName.Text '对登录到系统的当前用户信息进行保存 Unload Me rs.Close
Else
StuShow.Show rs.Close Unload Me End If End If End If End Sub
4.4 实现用户管理功能
本系统中设置的权限有三种分别是:管理员权限,教师权限和学生权限,根据用户所具有的权限不同能够使用该系统中的功能模块也不同。系统通过在登陆时保存的登陆用户的信息来决定用户所能执行的操作。在此模块中教师只能修改自己的密码,而具有管理员权限的用户则可以执行用户管理和添加用户的功能。
实现判断的代码如下所示:
Private Sub 用户管理_Click()
Set rs = New ADODB.Recordset
SQL = "select 用户类型 from 用户表 where 用户名 = '" & Trim(LoadUser) & "'" Set rs = ADOcn.Execute(SQL) Permission = rs.Fields(0) If Permission = 0 Then UserMe.Show rs.Close Else
MsgBox "您的权限不够,不能执行该项操作" rs.Close End If
图4.4.1 【用户登陆】窗体
本窗体数据库绑定控件MSFlexGird 来显示数据库中已经存在的用户信息,单击MSFlexGird 控件中所要修改用户后,该用户的基本信息则显示在左面的相应的textbox 中,当对用户的信息进行修改完成后,管理员通过单击“修改”来实现对用户信息的修改,此时“修改”按钮变化为“确定”按钮用以提示管理员对所要修改的信息进行确认,此时“取消”按钮变为可用状态,若管理员对所要修改的信息仍要改动,则单击“取消”来取消之前的操作,若确认无误,则单击“确定”按钮修改用户信息,同事在右侧的MSFlexGird 控件中更新所修改后的信息。具体实现代码如下:
Private Sub Command1_Click()
If Command1.Caption = "修改" Then Command1.Caption = "确定" UserGrid.Enabled = False Command2.Enabled = False Command3.Enabled = False Command4.Enabled = True Text1.Enabled = False Text2.Enabled = True Text3.Enabled = True Exit Sub Else
If Trim(Text2.Text) = "" Or Trim(Text3.Text) = "" Then MsgBox "输入信息不完整, 请检查是否有项目未输入." Exit Sub End If
If Not (Trim(Text3.Text) = "0" Or Trim(Text3.Text) = "1" Or Trim(Text3.Text) = "2") Then MsgBox "用户类型只能为‘0’、‘1’和‘2’" Exit Sub End If
On Error GoTo ErrMsg1
SQL = "update 用户表 set " & _
"密码 = '" & Trim(Text2.Text) & "',用户类型 = '" & Trim(Text3.Text) & "' " & _ "where 用户名 = '" & Trim(Text1.Text) & "'" ADOcn.Execute (SQL) Call Display
MsgBox ("修改成功")
Command1.Caption = "修改" UserGrid.Enabled = True Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False Text1.Text = "" Text2.Text = "" Text3.Text = ""
Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Exit Sub End If ErrMsg1:
MsgBox "输入信息有错误,请检查输入信息格式是否有误或长度是否超过限度!" End Sub
“删除”按钮来实现对是对于不在使用该系统的用户管理进行删除操作,以保持数据库的数据的有效性。单击“删除”按钮即对当前在MSFlexGird 中选定的用户执行删除。具体实现代码如下:
Private Sub Command2_Click()
strOK = MsgBox("确定删除该用户?", vbOKCancel) If strOK = vbOK Then
ADOcn.Execute ("delete from 用户表 where 用户名= '" & Trim(Text1.Text) & "'") Call Display '调用display 函数对MSFlexGird 中数据进行同步更新 MsgBox "删除成功"
Command1.Enabled = False Command2.Enabled = True Command4.Enabled = False Text1.Text = "" Text2.Text = "" Text3.Text = "" End If End Sub
这里在对MSFlexGird 中数据进行同步更新时采用调用Display 函数的形式,将MSFlexGird 的更新操作卸载一个函数体中,以便于多次调用,在前面执行用户修改操作时就是才用这种方法。这样做不仅使程序的模块化,也增加了程序的简洁性和易理解性,便于后期维护和修改。
本例的【添加用户】窗体运行结果如图4.4.2所示
图4.4.2 【添加用户】窗体
在调用本窗体时仍然有用户使用权限的限制,实现的代码同用户管理的代码相同,这里不在重复。系统的管理员将要添加的用户名、密码、相应的权限添加到对应的文本框中,单击“添加”按钮完成添加用户操作。具体实现的代码如下:
Private Sub Command1_Click()
If Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" Or Trim(Text3.Text) = "" Then
MsgBox "输入信息不完整, 请检查是否有项目未输入。"
Exit Sub
End If
If Not (Trim(Text3.Text) = "0" Or Trim(Text3.Text) = "1" Or Trim(Text3.Text) = "2") Then MsgBox "用户类型只能为‘0’、‘1’和‘2’"
Exit Sub
End If
Set rs = New ADODB.Recordset
SQL = "select * from 用户表 where 用户名 = '" & Trim(Text1.Text) & "'"
Set rs = ADOcn.Execute(SQL)
If Not (rs.EOF Or rs.BOF) Then
MsgBox "该用户已经存在,请重新输入。"
rs.Close
Text1.SetFocus
Exit Sub
End If
SQL = "insert into 用户表 values(" & _
"'" & Trim(Text1.Text) & "','" & Trim(Text2.Text) & "','" & Trim(Text3.Text) & "')" ADOcn.Execute (SQL)
MsgBox "添加成功"
rs.Close
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text1.SetFocus
End Sub
注意:在本代码块中加入了对输入数据的判断,如权限的设置中只能为“0” 、“1” 、“2”对于输入的数据为非这3个数字的时候系统将拒绝执行操作,从而保证了进入数据中数据的正确性。
本例的【修改密码】窗体运行结果如图4.4.3所示
图4.4.3 【密码修改】窗体
系统将对用户修改的密码进行再次确认,以防止用户无意中的错误输入,所带来的不必要的麻烦。用户单击“提交”后,完成修改。
具体实现代码如下:
Private Sub Command1_Click()
If Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" Or Trim(Text3.Text) = "" Then
MsgBox "输入信息不完整, 请检查是否有项目未输入。"
Exit Sub
End If
Set rs = New ADODB.Recordset
SQL = "select 密码 from 用户表 where 用户名 = '" & Trim(LoadUser) & "'"
Set rs = ADOcn.Execute(SQL)
unpassword = rs.Fields(0)
If unpassword Trim(Text1.Text) Then
MsgBox "密码错误,请重新输入。"
rs.Close
Text1.Text = ""
Text1.SetFocus
Exit Sub
End If
If Trim(Text2.Text) Trim(Text3.Text) Then
MsgBox "两次输入密码不一致,请重新输入。"
Text2.Text = ""
Text3.Text = ""
Text2.SetFocus
Else
SQL = "update 用户表 set " & _
"密码 = '" & Trim(Text2.Text) & "' " & _
"where 用户名 = '" & Trim(LoadUser) & "'"
ADOcn.Execute (SQL)
MsgBox ("修改成功")
rs.Close
Unload Me
End If
End Sub
本模块中调用了全局模块中保存的登录用户的基本信息,用以验证用户所要修改密码的正确性,防止用户错误输入或与本系统无关的人员对数据记录的错误修改。
4.5 实现基本信息维护模块
在本系统中基本信息维护模块分为教师信息维护、学生信息维护、课程信息维护,用户可以通过选择主窗菜单中的各菜单项进入相应的功能模块。
4.5.1 实现教师基本信息维护模块
该模块的主要功能是实现对教师的个人信息的管理工作,包括教师信息增加、教师信息查询等功能,从而方便学校教务部门对学校的基本情况的快速查询和了解。在主窗体中单击“基础维护”菜单选择“教师信息维护”命令,可以打开“教师信息维护”窗体,该窗体的运行结果如图4.5.1所示。
图4.5.1教师信息维护模块
该窗体中底部工具栏上有修改、添加、删除、取消和退出5个按钮,可以对“教师信息”进行设置,包括教师信息记录的添加、修改、删除、和保存等功能。顶部的“教师信息表”可以直观的显示出当前在职教师的信息,教务人员还可以通过点选教师信息表中的信息,对教师进的基本信息进行修改。
由于学生基本信息维护、课程基本信息维护和教师基本信息维护在实现的原理上基本相同,这里不予详细介绍,只列出相关窗体。
4.5.2 实现学生基本信息维护模块
图4.5.2学生信息维护模块
4.5.3 实现课程基本信息维护模块
图4.5.3课程信息维护模块
4.6 实现教学管理模块
该模块的功能是实现对学生选课和教师授课情况查询的管理工作,教务工作人员通过对所调查到的学生的选课情况进行录入,对于每个系不同教师的授课情况进行直观的查询。例如在图4.6.1学生选课模块中通过复选框来选择某个学生所对应系的课程,方便教务工作人员的输入。在图4.6.2教师授课查询模块中又能够直观
的查询出某位教师在本学期的授课情况。
图4.6.1学生选课管理维护模块
图4.6.2教师授课查询模块
4.7 实现考试管理模块
该模块实现了对考试相关的信息进行设置,包括对考试科目和时间的计划安排、考试成绩的录入、考试成绩的修改和历次考试相关的信息。
4.7.1 实现考试计划安排模块
该模块的主要功能是对考试的时间进行安排,教务工作人员可以通过的选择某教学系和本学期所开设的课程,方便的添加、修改考试时间信息。在右侧的显示栏中也能够方便的查阅各个科目的具体考试时间。运行结果如图4.7.1所示。
图4.7.1考试计划安排模块
4.7.2 实现考试成绩修改模块 本模块的主要功能是对已输入到数据库中的学生考试成绩进行修改,由于在考试评卷及数据输入的过程中难免出现各种各样的错误输入或成绩合分的错误,造成学生考试成绩的不真实。通过对学生学号的查询,能够查阅出此学生本学期的考试科目,再选择所要修改成的科目,对学生的成绩进行修改。本模块还充分考虑到教学过程中的复杂性,所以添加了考试时间选项,以方便教务处对学生考核时补考或加考成绩情况的管理。运行结果如图4.7.2所示。
图4.7.2考试成绩修改模块
4.7.3 实现考试成绩输入模块
在本模块中学校教务人员可以将考试成绩统计好的数据输入到管理系统中,以方便以后的查阅。在设计此模块时充分考虑到输入数据的简洁性,操作人员只需通过点选考试时间、考试课程、学生学号就可以方便的进行成绩的录入工作。在选择考试课程时只会产生参加此次考试的学生的学号,因而简化了输入的工作,也有效的防止错误的数据进入数据库。运行效果如图4.7.3所示。
图4.7.3考试成绩输入模块
4.8 实现信息查询模块
在主窗体中图标栏中分为课表查询、考试时间查询和程序查询,主要目的是为了教务管理人员实现对整个系统关键的信息的直观浏览和各系各个科目平均成绩的统计。同时也方便学生对自己考试成绩的查询。
4.8.1 实现课程查询模块
该模块通过选择开课系、课程名称能够方便的查阅出该课程的上课时间和地点,对于学生选择课程之后确定上课时间和地点提供了很大的方便。运行效果如图4.8.1所示。
图4.8.1课程查询模块
4.8.2 实现考试时间查询模块
该模块是为教务人员及学生查阅某一科目的具体考试时间所设计。在设计过程中,为了提供简便的查询功
能,仍采用逐层细化的模式。例如在图4.8.2中操作人员选择了工学系,则在课程名称中自动生成工学系相关的课程,以方便用户缩小查询的范围,自动屏蔽掉无用的数据。用户单击确定后便可以直观的显示出该科目的考试时间。运行效果如图4.8.2所示。
图4.8.2考试时间查询模块
4.8.3 实现成绩查询模块
该模块设计的主要目的是为了教务人员对某次考试科目的平均成绩的统计,以方便对以往历次成绩进行比对。同时该模块也兼顾了学生对考试成绩查阅的要求,例如在图4.8.3中学生可以通过输入学号来查询自己在此次考试当中的成绩,也可以通过点选学科查询来比对其他同学的成绩。运行效果如图4.8.3所示。
图4.8.3成绩查询模块
第五章 设计总结
随着信息技术的发展,办公自动化已成为社会发展的主要趋势,学生选课管理因其劳动的复杂性已经无法适应手工操作,所以应用先进的计算机技术对学生选课进行管理是势在必行的,
(1)学生选课管理因为其日常事务比较繁琐,所以在设计数据库表之前一定要对系统的设计有一个整体的认识,对学生信息和课程信息进行整理,设计好各功能模块的E-R 图。这样,在后期的设计时,会因前期工作处理的好而减少许多麻烦,为设计的顺利进行作好了铺垫。
(2)在设计各个功能模块时,要考虑和其他模块的联系,更要结合实际情况对窗口要放置的空间进行分析,尤其在编制代码是要充分考虑各种限制条件,对不同的身份规定其不同的登录权限。
(3)在使用学生选课系统后,提高了学生选课的准确性,信息能够准确无误的输入计算机并在数据库中存储起来。按照规范设定标准代码,既保证了统计原始数据的准确性,又在分析统计时最大限度的减少了人为的影响,提高了工作效率。
通过本次的毕业设计,我们不仅掌握了设计的基本步骤,更重要的是学会了解科学的系统设计方法,加深了我们对软件开发的认识与理解。
随着毕业日子的到来,毕业设计也接近了尾声。经过几周的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。
能够完成这样一个完整教务管理系统,是与老师和同学的帮助密不可分的。在程序的开发过程中虽然遇到了很多的困难,但经过同学和指导老师的帮助,一一化解了困难,并从中学到了很多编程方面的知识。但是由于经验方面的原因该系统还有许多不尽如人意的地方和功能上的缺陷,而且系统的可移植性比较差,这些都有待于进一步改善。
在本次毕业设计中,我要感谢我们的指导老师,他们帮助我解决了设计中的疑难和困惑,为我完成设计提供了极大的帮助。在我遇到问题时他总是耐心的为我们作出解答,并帮我查找相关资料;在我遇到困难时帮助解决了不少的难点,使得系统能及时完成。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢指导老师耐心的辅导。
本人在此对所有向我提供帮助的老师和同学致以最诚挚的敬意
参考文献
[1] 汉清计算机工作室, 《 Visual Basic 6.0 数据库开发实例 》, 机械工业出版社 2000.3
[2] 何旭洪, 《Visual Basic 数据库开发实例导航》, 人民邮电出版社 2002
[3] 孙健鹏, 《VB 数据库开发实例解析》, 机械工业出版社
[4] 王汉新, 《Visual Basic程序设计》, 科学出版社 2002
[5] 陈惟斌, 《Visual Basic 6.0开发指南》, 清华大学出版社 2001.1
[6] 张春葆, 《VB 数据库系统设计与开发》, 清华大学出版社
[7] Buczek,《Access 2003数据库开发即时应用》, 人民邮电出版社 2003
[8] Visual Basic 6 Harry M. Deitel, Paul J. Deitel, Tem R. Nieto 电子工业出版社
[9] 王晟,韩泽坤《Access 数据库开发经典案例解析》,清华大学出版社2006.1
[10] 潇湘工作室 《Access2002中文版从入门到精通》 人民邮电出版社 2001.10
[11] 李真文编著,《Visual Basic 6.0全实例教程》, 北京希望电子出版社, 2002.6
[12] 张海藩编著,《软件工程导论》, 清华大学出版社, 2002.1