摘要 3
关键词 3
1 概述 3
1.1 课题开发背景及目前研究现状 3
1.2 课题研究(调查)的目的和意义 3
2 需求分析 4
2.1 可行性分析 4
2.2 需求分析 4
2.3 系统流程图 5
2.4 几个主要功能的数据流图 5
2.4.1 教师录入学生成绩登录数据流图 5
2.4.2 查询信息数据流图 5
3 系统总体设计 6
3.1 课题开发目标及思路 6
3.2 系统模块设计 6
3.2.1 系统维护模块 6
3.2.2 教务设置模块 6
3.2.3 教务安排模块 7
3.2.4 信息管理模块 7
3.2.5 学生成绩管理模块 7
3.2.6 系统帮助模块 7
3.2.7 系统模块框架图 8
3.3 数据库详细设计 8
3.3.1 建立概念性数据模型 8
3.3.2 数据库逻辑结构设计 9
3.3.3 关系数据库的规范化设计 10
3.3.4 关系数据库的完整性约束的建立 10
4 系统详细设计 11
4.1 系统窗体设计原则 11
4.2 系统部分关键窗体及设计思路介绍 11
4.2.1 系统登陆窗体及程序流程图 11
4.2.2 设置班级窗体及设计思路 12
4.2.3 设置课程窗体及设计思路 13
4.2.4 课程安排窗体及设计思路 14
4.2.5 教师安排窗体及设计思路 15
4.2.6 学生信息管理窗体及设计思路 16
4.2.7 学生成绩录入登录窗体及设计思路 16
4.2.8 学生成绩录入窗体及设计思路 17
4.2.9 学生成绩查询窗体(管理员权限查询)及设计思路 17
5 系统测试 18
5.1 系统测试设计 18
5.1.1 软件测试介绍 18
5.1.2 系统测试设计 18
5.1.3 系统测试主要步骤 18
5.2 系统测试举例 18
5.2.1 使用等价类划分法进行功能测试(黑盒测试)举例 18
5.2.2 使用逻辑覆盖法进行结构测试(白盒测试)举例 19
6 总结 20
6.1 系统开发总结 20
6.2 系统存在的问题 20
致谢 21
参考文献 21
高校学生成绩信息管理系统的设计
计算机科学与技术专业学生 许大姐
指导教师 黄勇
摘要:学生成绩信息管理是各高校的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学的不断改革,学生成绩信息日常管理工作日趋繁重、复杂。在信息时代的今天,数据库技术在数据处理方面的应用已经非常广泛,作为高校教育工作一部分的学生成绩管理更应赶上时代的步伐。在此种情况下我们利用Visual Basic 6.0的可视化操作环境及SQL Server来开发一套适合学校专业设置的高校学生成绩信息管理系统。本文在可行性分析和需求分析的基础上,明确了系统的目的与要求,得出了系统数据流图并具体介绍了系统的总体设计、详细设计及系统测试;根据系统的具体要求和需要实现的功能,详细地定义了各个模块的具体功能,并就主要模块的功能介绍了其设计思想、实现过程。
关键词:Visual Basic 6.0;学生成绩信息管理;设计
1概述
1.1课题开发背景及目前研究现状
高校学生成绩管理是教学管理中的一项重要工作,每个学期都要进行,成绩管理是一项工作量大、时间性强、易于出错且具有一定保密性的业务。特别是随着高校的不断扩招,进入高校的大学生越来越多,高校学生成绩管理工作量将大幅度增加,如果全由手工完成,耗时巨大,效率却很低。在信息时代的今天,数据库技术在数据处理方面的应用已经非常广泛,作为高校教育工作一部分的学生成绩信息管理更应赶上时代的步伐。因此,开发一套适合学校专业设置的计算机化成绩信息管理系统,不仅可以提高学校的管理效率,而且可以使我们的教学管理水平更上一层楼。
系统的开发主要包括后台数据库的建立、维护以及前端应用程序的开发两个方面。对于前者要求建立数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序以尽可能的方便用户使用为宗旨,还要尽可能的实用。纵观目前国内研究现状,在数据安全性和信息更新化方面仍存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。例如,在现已开发设计的学生成绩信息管理系统中,有些系统仍需较多的人工干预及用户操作,有些系统的人机界面不是很好,有些系统则出现了各个的子系统能够较好地运行,而子系统之间却不能很好地“协同”工作,数据共享性差的情况。另外,各个子系统之间在界面风格上也相差甚远。这样,给软件系统的应用带来了很大的不便。
针对以上情况,我采用VB 6.0来开发高校学生成绩信息管理系统。VB 6.0具有可视化集成开发环境,以事件驱动、图形用户界面等为特点,集成了强大的数据库开发引擎和OLE技术,在设计学生成绩信息管理系统方面有着独特的优越性。VB 6.0提供友好的界面,操作简单,能使非计算机专业人员很快熟悉系统的使用。
1.2课题研究(调查)的目的和意义
学生成绩信息管理是一个非常繁琐与复杂的一项工作,一个原因就是工作量大、不好管,尤其是随着学校规模的不断扩大,学生数量急剧增长,有关学生的各种信息也成倍增加。对于一个学校而言,更应该运用一些本地资源,提高管理的力度,对学生负责,对国家负责。运用学生成绩信息管理系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率;通过学生成绩信息管理系统学生能够尽快地知道自己的考试成绩,并合理安排时间,投入新的课程的学习或复习这次没有考过的课程。从大的方向说,就是为了加速我国四化建设的发展,实现全部的自动化,使我国发展成为通讯网络化、决策科学化、办公自动化的国家。
通过此次毕业设计,我的逻辑思维能力、编程能力、程序调试能力都得到很大的提高;通过此次毕业设计,我把在学校里学习的理论知识真正运用到实践中去,并在实践中进一步加深和巩固对所学专业知识的理解,这为我以后的工作奠定了坚实的基础。
2需求分析
2.1可行性分析
技术可行性:本系统是一个小型开发系统,使用Visual Basic 6.0作为系统开发工具。VB 6.0具有可视化集成开发环境,以事件驱动、图形用户界面等为特点, VB 6.0集成了强大的数据库开发引擎和OLE技术,在设计学生成绩管理系统方面有着独特的优越性。图书馆里也有很多关于使用VB开发学生成绩信息管理系统实例的图书。大学期间,我在学习多种程序设计语言的基础之上又学习了VB程序设计技术、SQL数据库技术以及软件工程课程,对数据库的设计、应用及软件开发有一定的认识,具备一定的动手实践能力;我经常使用学校的教务系统查询成绩等信息,并上网了解了不同学校的学生成绩信息管理系统的主要情况,对高校学生成绩信息管理系统功能有较清楚的认识。
2.2需求分析
由于我做的是高校学生成绩信息管理系统,就以本校的教务系统为模型参照,把
自己作为被调查用户之一。由于我只能以学生身份进入教务系统,所以实际上我相当
于学生用户,进入教务系统以后可以亲身实践作为学生用户所能查看的内容及具有的操
作权限,从而了解了学生用户对本系统的需求;之后我又向几位老师调查了他们作为
教师用户登陆系统后所能查看的内容及具有的操作权限,老师以教师的身份登陆教务系统演示给我看教师用户登陆后的系统界面及其所具有的操作权限,并跟我详细解释和分析了学校的教务系统以及教务处管理员进入系统后应有哪些操作权限。通过调查走访及自己的实践,最后确定本系统的各种权限用户需求内容:
(1)有三种用户登陆情况,教师登陆的用户名是教师的教职工号,学生登录的用户名是学生的学号,登陆密码只有本人可以修改;
(2)教务科相当于管理员,有一般教务管理及信息设置的权利,如:教师、学生基本信息的录入和修改;学期、学院、专业、班级、课程安排、教师安排等信息的设置;可以查询和统计本校学生成绩信息,并能用Excel表格的形式输出其结果;但没有录入或修改学生成绩的权利,可提供每门课程一个密码给教师让教师有录入或修改学生在自己所授课程上考试成绩的权利;
(3)教师可以查看自己的全部个人信息、修改自己的部分个人基本信息,如联系电话等,可以查看自己所带班级所有学生在自己所授课程上的成绩,期末考试之后教务科(相当于管理员)给教师每门课程一个密码(课程密码),教师进入系统以后可以输入相应课程的密码即可进入成绩录入界面来录入或修改学生在自己所授课程上的成绩。由于是高校学生成绩信息管理,所以有平时成绩和卷面成绩之分,教师在录入成绩的时候要同时录入平时成绩和卷面成绩,录入完成系统自动按照设置的权重(平时成绩占20%,卷面成绩占80%)核算出每位学生的综合成绩;
(4)学生可以查看自己的全部个人信息、修改自己的部分个人信息,如联系电话等,可以按学期查询自己的成绩(查询到的是平时成绩和卷面成绩经一定的权重折算以后的综合成绩)。
2.3系统流程图
根据系统需求分析,画出本系统的系统流程图如图1所示:
图1 系统流程图
2.4几个主要功能的数据流图
2.4.1教师录入学生成绩登录数据流图
图2 教师录入学生成绩登录数据流图
2.4.2查询信息数据流图
图3 查询信息数据流图
3系统总体设计
3.1课题开发目标及思路
通过对本校教务管理系统的使用及调查情况,我了解到高校学生成绩信息管理系统应具备的基本功能及各种类型的用户登陆系统后所具有的操作权限,决定设计一个满足基本功能要求的高校学生成绩信息管理系统,使用本系统对学生的成绩信息进行合理管理。针对前面的分析与构想,为实现系统基本功能需求,本系统的开发大概目标如下:
(1)只有管理员(教务科)可以进行学期、学院、专业、班级、课程等方面设置,进行课程安排、教师安排、教师信息、学生信息等方面管理,从而保证信息的准确性与安全性;
(2)学生某门课程的成绩只能由教此门课程的教师进行录入和修改,从而保证学生成绩信息的准确性与安全性;
(3)按学期、专业、班级、课程导出学生成绩清单,每学期给各科教师打印补考学生名单、重修学生名单,从而减轻学院教学人员的工作量,加快查询速度,提高高校管理学生成绩信息的效率;
(4)系统的界面友好,在操作上简单易行,易学易用,便于维护。
(5)系统内部数据应采用定长格式,以提高系统的运行效率;
(6)具有较高的安全性,运行采用全Windows界面,有很好的容错能力;
(7)系统工作模式为单机多用户模式。
3.2系统模块设计
对于复杂问题,人们习惯首先将该复杂问题分解成若干个子问题,然后对每个子问题进行研究,在充分了解每个子问题的基础上将子问题结合起来达到对整个问题认识的目的。这种思想实际上就是“各个击破”的思想。同样的,将软件系统分解成模块可以降低软件设计人员的劳动强度,降低软件的开发成本。而且采用模块化的原理可以使得软件结构清晰,不仅容易设计而且也容易阅读和理解,模块化使软件容易测试和修改,也有助于软件工程开发的工程管理。所以,基于上述思想,在参照前面的需求分析情况下,将本系统按功能分为6个主模块,并细化成18个子模块,划分如下:
3.2.1系统维护模块
本模块主要包括用户管理和密码管理两个子模块:
(1)用户管理模块
本模块功能只有管理员权限的用户登陆后才能使用,主要是添加和删除管理员权限的用户(注意,不可删除当前正在操作的管理员用户!)。
(2)密码管理模块
本模块功能是修改当前操作用户的密码,必须正确输入当前操作用户的旧密码且两次输入的新密码相同,才能成功修改当前操作用户的密码。从而保证了用户信息的安全性。
3.2.2教务设置模块
本模块只有管理员权限的用户登陆后才能使用,主要负责学期、学院、专业、班级、课程的基本设置,包括以下5个子模块:
(1)设置学期模块
本模块主要是根据实际情况增加或删除某个学期。
(2)设置学院模块
本模块主要是根据高校实际情况增加或删除某个学院。
(3)设置专业模块
本模块主要是根据高校实际情况增加或删除某个专业,所增加的专业必须所属某个学院的。
(4)设置班级模块
本模块主要是根据高校学生人数的实际情况增加或删除某个班级,所增加的班级必须所属某个专业的。
(5)设置课程模块
本模块主要是根据高校实际情况增加或删除某门课程。
3.2.3教务安排模块
本模块只有管理员权限的用户登陆后才能使用,主要是负责课程及教师的安排。包括以下2个子模块:
(1)课程安排模块
本模块主要是根据学校要求按照学期及专业安排课程。
(2)教师安排模块
本模块主要是根据学校各个专业的课程安排情况,分别按学期为各班级每门课程安排任课教师,并赋予教师在本门课程上一个课程密码,教师在期末考试结束后用此课程密码登陆录入学生成绩界面。
3.2.4信息管理模块
本模块只有管理员权限的用户登陆后才能使用,主要是负责教师基本信息、学生基本信息的管理以及学生成绩查询统计。主要包括以下3个子模块:
(1)教师信息管理模块
本模块主要是对教师基本信息的添加、修改和删除。如有新教师来校报到,则需在教师信息表中添加该教师的基本信息;如有教师退休或离职,则需在教师信息表中删除该教师的基本信息等等。
(2)学生信息管理模块
本模块主要是对学生基本信息的添加、修改和删除。如每年都有新生入学报到,则需根据学生的专业及班级通过Excel表格批量录入该学生的基本信息;如学生毕业离开学校,则需根据学生的专业及班级删除该学生的基本信息等等。
(3)学生成绩查询统计模块
本模块主要实现按学号、姓名、专业、班级、学期、课程名多重条件对高校学生成绩进行查询、补考学生名单查询统计、重修学生名单查询统计,并可通过Excel表格进行输出,以便安排学生补考或重修并通知需要参加补考或重修的学生。
3.2.5学生成绩管理模块
本模块只有教师权限的用户登陆后才能使用,主要负责学生期末成绩录入、学生补考重修成绩录入、学生成绩查询输出。包括以下3个子模块:
(1)学生期末成绩录入模块
本模块主要实现教师根据学期、所授班级、所授课程对学生期末成绩(包括学生平时成绩和卷面成绩)批量录入或修改。教师必须正确输入管理员(教务科)给出的课程密码才能登陆录入学生期末成绩界面,从而录入或修改学生成绩。
(2)学生补考重修成绩录入模块
本模块主要实现教师根据学期、所授班级、所授课程对参加补考或重修的学生成绩进行录入。
(3)学生成绩查询输出模块
本模块主要实现教师根据学期对自己所授班级的学生在自己所授课程上的成绩查询、需补考学生名单查询、需重修学生名单查询,并可通过Excel表格输出。
3.2.6系统帮助模块
本模块是公用的,主要是涉及本系统的一些相关信息及退出系统。包括以下3个子模块:
(1)系统关于模块
本模块主要是关于本系统设计的一些相关信息。
(2)系统帮助模块
本模块主要是对本系统的使用方法的一些简单介绍,不同权限的用户所能看到的帮助内容有所不同。
(3)退出系统模块
本模块主要实现成功退出系统。
3.2.7系统模块框架图
根据上面的模块划分,得到如下的主模块框架图,如图4所示:
图4 主模块框架图
3.3数据库详细设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。合理的数据库结构设计可以提高数据存储的效率、保证数据的完整性和一致性。同时,合理的数据库结构也将有利于程序的实现。
3.3.1建立概念性数据模型
通过建立概念性的数据模型(又称信息模型),可以把用户的数据要求清晰明确地表达出来。概念性数据模型是一种面向问题的数据模型,是按照用户的观点来对数据和信息建立的模型。用E-R(Entity-Relationship)图这种方法表示的概念性数据模型又称为E-R模型。学生成绩信息管理系统包含着大量的数据和信息,如何更有效、更高效的处理这些数据和信息,建立起一个准确的数据模型是必不可少的。根据调查研究和前面的需求分析得出高校学生成绩信息管理系统的E-R模型(如图5所示):
图5 高校学生成绩信息管理系统E-R模型
3.3.2数据库逻辑结构设计
根据前面的需求分析和E-R模型的描述,本系统的主要数据库表有以下10个:
(1)学生信息(学号、姓名、性别、籍贯、出生日期、入学时间、所在班级、政治面貌、联系电话、密码、备注)
(2)教师信息(教职工号、姓名、性别、出生日期、入职时间、联系电话、密码、备注)
(3)学期(学期)
(4)学院(学院代码、学院名称)
(5)专业(码、专业名称、所属学院)
(6)班级(班级代码、班级名称、所属专业)
(7)课程(课程号、课程名称、学分)
(8)课程安排信息(学期、码、课程号)
(9)教师安排信息(学期、班级代码、课程号、教职工号、课程密码)
(10)学生成绩信息(学号、学期、课程号、平时成绩、卷面成绩、综合成绩、补考成绩、重修成绩)
本系统中涉及六种代码的设计:
(1)学院代码共两位,分别表示高校的各个学院编号。例如理学院的学院代码为06。
(2)码共三位,前两位表示本专业所属的学院,第三位表示本专业在所属学院的编号。例如理学院的计算机科学与技术专业的码为061。
(3)班级代码共八位,前四位表示本班级学生的入学年份,接下来的三位表示本班级所属的专业,最后一位表示本班级在本专业中的编号。例如2005年入学的理学院计算机科学与技术专业1班的学生所在班级的班级代码为20050611.
(4)学号共十位,前八位表示学生所在的班级代码,第九、十位表示班内学号。例如2005 年入学的理学院计算机科学与技术专业1班15 号学生的学号为:2005061115。
(5)教职工号共五位,第一位数字统一是1,第二、三位表示教师所属的学院,第四、五位表示编号, 如10605 的教师编号,表示理学院的05号教师。
(6)课程号共六位,第一位数字统一是1,第二、三、四、五位表示课程门类,第六位表示某门课程的分册。如100012的课程号,表示大学英语第二册。
3.3.3关系数据库的规范化设计
规范化理论是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。
按关系数据库的设计规范,若遵循过高的范式进行设计,可能增加数据存取时间和次数,但冗余度低是关系数据库的优点,而且还能保证数据的更新一致性和数据完整性。比如对于学生成绩信息表,如果存储时只写入学号,虽输出成绩时需从学生信息表中取得对应的学生姓名,但冗余度低,节省存储空间;反之,若在学生成绩表中同时存放学号和姓名,虽然打印报表时只需从此表中取数据即可,不需要进行两个表之间的条件连接,查询、打印报表更简单省时,但具有更多的冗余,而且难以保持数据的更新一致性和数据完整性。本系统采用前一种方式定义数据表,数据冗余度低,节省存储空间,而且可以保证数据库中数据的更新一致性和数据完整性。
3.3.4关系数据库的完整性约束的建立
随着数据库技术的不断发展,数据库系统的工作模式已经有单机模式、主从式、分布式和客户/服务器模式四种供用户选择,数据库也由独占变为了共享。在单机多用户系统的操作过程中我们最关心的是数据的正确性,而数据完整性约束就数据的正确、合理进行了规范。标准的数据完整性约束是DBMS已经实现的内部规则,包括实体完整性、域完整性和引用完整性。
(1)实体完整性(Entity Integrity):保证一个表中的每一行必须是唯一的。为保证数据的完整性,需指定一个表中的一列或一组列作为它的主键(Primary Key),且主键必须非空和唯一。
(2)域完整性(Field Integrity):保证一个数据库不包含无意义的或不合理的值,即保证表的每一列的任何值是该列域(即合法的数据集合)的成员。方法是列的数据类型、精度、范围、格式和长度等。
(3)引用完整性(Reference Integrity):定义了一个关系数据库中不同的列和不同的表之间的关系(主键与外键)要求一列或一组列中的值必须要与相关的一列或一组列中的值相匹配。
完整性约束中的实体完整性和引用完整性可通过定义数据表的主键约束和外键约束来实现。域完整性可在用户进行前台操作时加入判断语句,确保每次写入的数据都在取值范围即可。由上述要求,根据概念性模型的建立和数据库逻辑结构的设计结果,对各表进行主键和外键的处理后,得出系统的数据库关系图如图6所示,学生成绩信息表的参照完整性关系属性设置如图7所示。
图6 高校学生成绩信息管理系统数据库关系图
图7 数据库关系图中学生成绩信息表的参照完整性关系图
4系统详细设计
4.1系统窗体设计原则
按上面功能模块的设计结果,一个模块对应一个窗体。另外由于本系统的操作者基本上不是计算机专业人员,所以界面的开发要本着以下几个原则:
(1)友好的用户界面;
(2)控件的有效性控制;
(3)强壮的出错处理机制。
4.2系统部分关键窗体及设计思路介绍
4.2.1系统登陆窗体及程序流程图
图8 系统登陆窗体
设计思路:系统登录程序流程图如图9所示
图9 系统登陆程序流程图
4.2.2设置班级窗体及设计思路
图10 设置班级窗体
设计思路:教务科(即管理员)要通过本窗体实现班级信息的增加和删除功能。由于高校里每个班级都是所属某个专业的,所以增加班级信息时要选择为哪个专业增加班级。而某个专业又是所属某个学院的,所以综合分析得出:增加某一班级信息之前要选择某个学院,再选择此学院下的某个专业(即该班级所属专业),确定了班级所属专业之后,在“班级代码”和“班级名称”所对应的文本框txtCode和txtName中分别输入所需增加的班级信息(班级代码及班级名称),单击“确定”按钮系统即可将所输入的班级信息添加到数据库的班级表中并显示“班级信息增加成功!”。
在增加班级信息时,系统要能够对不合法或错误的输入给出相应提示并做相应处理,如在数据库设计中,班级表中的“班级代码”、“班级名称”、“所属专业”三个字段都设置为“不允许空”,所以当List1.text、txtCode.text、txtName.text中有任何一个为空,系统都应提示“班级信息不全,请输入完整信息!”;由于班级表中的“所属专业”字段长度设计为为八位(前四位代表班级学生的入学年份,中间三位代表班级所属专业,最后一位代表班级在所属专业中的编号),所以系统应检查txtCode文本框中字符长度是否为八位,若不是,应给出提示“班级代码长度应为八位,请重修输入班级代码!”,此外,还应检查txtCode文本框中的第四、五、六位字符是否与List1.text中的码相同,若不相同,应给出提示“该班级代码无效,请重新输入属于本专业的班级代码!”;又因为班级表中的“班级代码”字段是主键,所以如果用户输入的班级代码在班级表中已存在,系统应提示“该班级代码已存在,请重新输入班级代码!”。
在数据库的关系图设计中,学生信息表中的“所在班级”属性列、教师安排信息表中的“班级代码”属性列都是参照班级表中的“班级代码”属性列的,并且对班级表的参照完整性关系属性设置为“级联更新相关的字段”、“级联删除相关的记录”,所以在选择某一班级之后单击“删除”按钮时,系统应给出警告“如果删除该班级则与该班级的所有相关信息都将全部删除,确认要删除此班级信息吗?”,以防用户在不知情的情况下删除某一班级,导致该班级的所有学生信息、与该班级有关的教师安排信息全部被删除,从而造成很多麻烦、甚至会出现严重后果,当用户确认删除此班级信息(比如此班级学生已经全部毕业离校)后,系统才真正从数据库的班级表中删除此班级信息。
4.2.3设置课程窗体及设计思路
图11 设置课程窗体
设计思路:教务科(即管理员)要通过本窗体实现课程信息的增加和删除功能。窗体左边List1框中显示课程表中已存在的课程信息,右边“课程号”、“课程名称”、“学分”所对应的文本框名称分别为txtCode、txtName、txtCredit。在txtCode、txtName、txtCredit文本框中输入相应信息之后,单击“确定”按钮系统即可将所输入的课程信息添加到数据库的课程表中并显示“课程信息增加成功!”。
在增加课程信息时,系统要能够对不合法或错误的输入给出相应提示并做相应处理,如在数据库设计中,课程表中的“课程号”、“课程名称”、“学分”三个字段都设置为“不允许空”,所以当txtCode.text、txtName.text、txtCredit.text中有任何一个为空,系统都应提示“课程信息不全,请输入完整信息!”;由于课程表中的“课程号”字段长度设计为六位,“学分”字段的数据类型设计为数值型,所以系统应检查txtCode文本框中字符长度是否为六位,若不是,应给出提示“课程号长度应为六位,请重修输入课程号!”,检查txtCredit文本框中输入的是否为数值型数据,若不是,应给出提示“学分应为数值型,请重新输入学分!”;又因为课程表中的“课程号”字段是主键,所以如果用户输入的课程号在课程表中已存在,系统应提示“该课程号已存在,请重新输入课程号!”。
在数据库的关系图设计中,课程安排信息表中的“课程号”属性列、教师安排信息表中的“课程号”属性列、学生成绩信息表中的“课程号”属性列都是参照课程表中的“课程号”属性列的,并且对课程表的参照完整性关系属性设置为“级联更新相关的字段”、“级联删除相关的记录”,所以在选择某一课程之后单击“删除”按钮时,系统应给出警告“如果删除该课程则与该课程相关的所有信息都将全部删除,确认要删除此课程信息吗?”,以防用户在不知情的情况下删除某一课程,导致与该课程相关的课程安排信息、教师安排信息、学生成绩信息全部被删除,从而造成很多麻烦、甚至会出现严重后果,当用户确认删除此课程信息(比如已经有了新的课程可以取代此课程)后,系统才真正从数据库的课程表中删除此课程信息。
4.2.4课程安排窗体及设计思路
图12课程安排窗体
设计思路:教务科(即管理员)要通过本窗体实现按学期、按专业进行课程安排。教务科在选择了学期、某个学院下的某个专业之后,在本窗体左侧的MSHFlexGrid2控件中应显示所选专业在所选学期里安排的全部课程,如果点击其中某门课程,然后单击“课程安排删除”按钮,即可从数据库的课程安排信息表中删除此项课程安排并显示“删除课程安排信息成功!”;如果点击窗体右侧的MSHFlexGrid1控件中显示的某门课程(此时在“选择课程号”所对应的文本框txtCourseID中会出现所选课程对应的课程号),然后单击“课程安排保存”,即可将所选课程安排保存到数据库的课程安排信息表中并显示“安排保存课程信息成功!”,同时在MSHFlexGrid2控件中也会显示为本专业新增加的课程安排。
在进行课程安排时,系统要能够对不合法的课程安排给出相应提示并做相应处理,如在数据库设计中,课程安排信息表中是以“学期”、“码”、“课程号”三个属性列联合作为主键的,所以当某学期某个专业已经安排过某门课程之后,如果用户再次为本专业在本学期安排此门课程的时候,系统应提示“本学期本专业已安排此门课程,请重新安排其他课程!”
4.2.5教师安排窗体及设计思路
图11 教师安排窗体
设计思路:教务科(即管理员)要通过本窗体实现按学期、按班级、按课程进行教师安排。教务科在选择了学期、某个学院下的某个专业之后,在本窗体左侧中间的ListClass框中中应显示所选专业下的所有班级,点击其中某个班级,则在下面的ListCourse框中应显示本学期本班级已安排的全部课程(其实显示的是本学期本班级所属专业已经安排的全部课程,事实上,在高校里也确实是这样的情况:按学期为某个专业安排课程,则此专业下的所有班级都相当于被安排了同样的课程),在“课程密码”所对应的文本框txtScorePwd中显示本班级的班级代码(教务科为每个班级每个教师设置的课程密码默认情况下为该班级的班级代码),并且在窗体右侧偏下的MSHFlexGrid2控件中显示本学期本班级课程的教师安排情况。此时如果点击MSHFlexGrid2控件中某一门课程的教师安排,然后单击“教师安排删除”按钮,即可从数据库的教师安排信息表中删除本学期本班级在本门课程上的教师安排并显示“删除此门课程的教师安排信息成功!”;如果点击窗体右侧偏上的MSHFlexGrid1控件中显示的某一条教师信息,则此教师的教职工号显示在“安排教师”所对应的文本框txtTeaID中,可以修改txtScorePwd中的课程密码(即教务科在学生期末考试之后提供给教师的课程密码,教师需要课程密码才能登陆录入学生期末考试成绩),然后单击“教师安排保存”按钮,即可将所做的教师安排保存到数据库的教师安排表中并显示“安排保存教师信息成功!”,同时在MSHFlexGrid2控件中也会显示为本班级课程新增加的教师安排。
在进行教师安排时,系统要能够对不合法的教师安排给出相应提示并做相应处理,如在数据库设计中,教师安排信息表中是以“学期”、“班级代码”、“课程号”三个属性列联合作为主键的,所以当某学期某个班级的某门课程已经安排了某个教师之后,如果用户再次为本学期本班级的此门课程再安排教师的时候,系统应提示“本学期本班级本门课程已安排了教师,请重新为本班级其他课程安排教师!”
4.2.6学生信息管理窗体及设计思路
图12 学生信息管理窗体
设计思路:教务科(即管理员)要通过本窗体实现按班级批量录入、修改学生基本信息。选择学院、专业、班级之后,如果单击“录入”按钮则打开一张Excel表格的Sheet1工作簿,此工作簿的第一行显示数据库里学生信息表中的部分字段名称,用户可以在此Excel表格中录入所选择班级的所有学生基本信息完成之后以“学生基本信息.xls”为文件名保存在D盘根目录下,然后单击“保存”按钮,即可将所选择班级的所有学生的基本信息保存到数据库的学生信息表中,并显示“保存本班学生信息成功!”;如果单击“修改”按钮也可打开一张Excel表格的Sheet1工作簿,此工作簿的内容是所选择班级的所有学生的基本信息,修改好需要修改的学生信息之后以“学生基本信息.xls”为文件名保存在D盘根目录下,然后单击“保存”按钮,即可将所选择班级的所有学生修改之后的基本信息保存到数据库的学生信息表中,并显示“保存本班学生信息成功!”
4.2.7学生成绩录入登录窗体及设计思路
图13 学生成绩录入登陆窗体
设计思路:不同教师登陆系统后进入的学生成绩录入登陆窗体在班级名称、课程名称的内容选择上有所不同,各个教师登陆此窗体后在combClass控件和combCourse控件里只显示本教师所教班级、所授课程,教师也只有选择了学期、班级名称、课程名称并正确输入教务科所给的本门课程的密码之后,才能进入学生成绩录入界面录入所教班级的学生在所授课程上的平时成绩及卷面成绩。
4.2.8学生成绩录入窗体及设计思路
图14 学生成绩录入窗体
设计思路:教师成功登陆学生成绩录入窗体后,在此窗体的txtTerm文本框、txtClass文本框、txtCourse文本框(三个Text文本框的enable属性都设置为False)里自动显示教师刚刚登陆时选择的学期、班级名称及课程名称,此时教师就可以选择录入、修改、保存或查询txtClass文本框中显示的班级的所有学生在txtCourse文本框中显示的课程名称上的成绩。班级学生成绩都是批量录入、修改和保存的,例如,单击“成绩录入”按钮,就会出现Excel表格,列出该班级所有学生的学号和姓名,教师须在“平时成绩”、“卷面成绩”两列分别录入相应学生的平时成绩及卷面成绩,然后以“学生成绩信息.xls”为文件名保存在D盘根目录下,再单击“成绩保存”按钮,则系统将本学期该班级所有学生在该门课程上的平时成绩、卷面成绩以及按权重折算后的学生综合成绩都保存在数据库的学生成绩信息表中。“成绩修改“与“成绩录入”类似,修改好之后也是以“学生成绩信息.xls”为文件名保存在D盘根目录下,再单击“成绩保存”按钮,学生平时成绩、卷面成绩及折算后的综合成绩就保存到数据库中的学生成绩信息表中。单击“成绩查询”按钮,即可查询刚刚录入或修改的学生成绩。
4.2.9学生成绩查询窗体(管理员权限查询)及设计思路
图15 学生成绩查询窗体(管理员权限查询)
设计思路:教务科(即管理员)可以按学号、姓名、专业、班级、学期、课程名多条件选择查询本校学生成绩及补考、重修学生名单统计,并用Excel表格输出。
5系统测试
5.1系统测试设计
5.1.1软件测试介绍
在软件系统的开发过程中,包含了人们大量的创造性生产活动。在这些生产活动中,犯错误的机会是很多的。据有关统计,软件测试作为软件质量保证的一个重要组成部分,在整个软件开发过程中占据了一半或一半以上的工作量。所以软件测试是系统开发中的一个重要环节,也是在成功开发软件系统的重要保证之一。其准确的定义是:为了发现错误而执行程序的过程。按照测试过程是否在实际应用环境中运行来分类,可以将测试方法分为静态测试与动态测试。静态测试就是不执行被分析的程序,直接通过桌面检查、代码会审和步行检查等方法对程序进行的测试;动态测试则是直接在计算机上运行所要测试的程序模块来进行测试的一种方法,按产生测试数据的不同方式,动态测试可以分为功能测试和结构测试两种。
(1)功能测试:又称为黑盒测试,通常是在已经知道了软件产品应具有的功能的情况下,把测试对象视为一个黑盒子,只着眼于软件的外部特性,而不考虑软件的内部逻辑结构,是在软件的接口上进行测试。
(2)结构测试:又称为白盒测试,这种测试是在已经知道了软件产品内部工作过程的情况下进行的。把测试对象视为一个打开的盒子,只着眼于软件内部的逻辑结构,以仔细检查程序招待过程的细节为基础,设计或选择测试用例,对程序所有逻辑路径进行测试。
5.1.2系统测试设计
由于本系统运行所需的软硬件设备齐全,运行环境可靠、稳定,所以对本系统的测试以动态测试为主,静态测试为辅。另外考虑到系统操作人员的不确定性、事件的突发性以及错误出现的随机性,动态测试中以功能测试为主,结构测试为辅。
5.1.3系统测试主要步骤
(1)单元测试:以每一模块为一个单元,对模块进行测试,最大程度减少模块内部的错误。
(2)系统测试:系统集成后,对模块之间的接口进行测试,保证系统运行的正确性。
(3)数据跟踪测试:观察功能使用前后数据的改变,以此来测试模块运行是否正确。
5.2系统测试举例
5.2.1使用等价类划分法进行功能测试(黑盒测试)举例
例:管理员在按学院设置专业测试用例,设计方法如下:
(1)划分有效等价类和无效等价类
在VB中将码的数据类型设置为字符型,其中数据宽度为3。前2位表示专业所属的学院,第3位表示本专业在所属学院的编号。为此划分出有效等价类和无效等价类 (如表1所示)
表1 码的等价类划分
| 输入条件 | 有效等价类 | 无效等价类 |
| 码 | 1 为3位字符 | 2 少于3位字符 3 多于3位字符 |
| 字符本身 | 4 码前两位与其所属学院代码相同且此码原来不存在 | 5 码前两位与其所属学院代码不相同 6 此码已存在 |
在设置专业信息的时候,选择专业所属学院为理学院(码为06),选择作为有效等价类的测试用例如下:
表2 有效等价类测试数据
| 测试数据 | 预期结果 | 测试范围 |
| 0 | 输入有效 | 1、4 |
表3 无效等价类测试数据
| 测试数据 | 预期结果 | 测试范围 |
| 06 | 码长度不符 | 2 |
| 0611 | 码长度不符 | 3 |
| 051 | 码无效 | 5 |
| 061 | 此码已存在 | 6 |
教务科在多条件查询学生成绩过程中,对成绩查询条件判断的测试用例,设计方法如下:
(1)先画出教务科按多条件查询学生成绩的程序流程图(如图11):
图11 教务科多条件查询学生成绩程流程图
(2)根据条件组合覆盖标准,设计出足够多的测试用例使得每个判定表达式中条件的各种可能组合都至少出现一次。根据上面的程序流程图,共有6个判断。每个判断取值有两个,分别是为Y和N。设计的测试用例如下所示(表4):
表4 条件覆盖法测试数据
| 测试数据 | 覆盖路径 |
| 按学号查询某个学生某个学期某门课程成绩 | ace |
| 按学号查询某个学生某个学期全部课程成绩 | acf |
| 按学号查询某个学生某门课程成绩 | adg |
| 按学号查询某个学生在校全部课程成绩 | adh |
| 查询某个班级学生某个学期某门课程成绩 | bikm |
| 查询某个班级学生某个学期全部课程成绩 | bikn |
| 查询某个班级学生在某门课程成绩 | bilo |
| 查询某个班级学生所学生课程成绩 | bilp |
| 请选择查询条件 | bj |
6.1系统开发总结
此次信息管理系统开发过程中,一开始我在对用户的需求理解得还不够透彻的情况下,就直接进入了系统设计阶段。在系统设计过程中才逐渐发现自己对用户需求理解得不够,数据库设计也很不合理,中期导师检查了我的系统,对我的系统提出了很多问题和建议,比如:高校学生成绩信息管理系统应该重在管理高校学生成绩,而我所设计的系统与学生成绩联系不多;教师应该能批量录入班级学生成绩,而不应该一个学生一个学生成绩的录入,这样太麻烦了等等。导师的建议让我对用户需求有了更深的理解,于是又我回头重新进行合理的数据库结构设计及系统功能设计。这样由于我前期的工作没做好,导致自己中期浪费了不少时间,幸好在导师的帮助下及时发现了问题,在接下来的时间里我及时补救了。以前学习《软件工程》课程的时候,老师说过需求分析在软件开发过程中的重要性,我当时没有很深的认识,这次经历使我对需求分析的重要性有了深刻的认识!
在系统设计过程中有时心里构思着应该实现什么样的功能以及怎样实现,可是在实际操作的时候总会遇到这样或那样的问题。在系统某个功能模块调试运行出现错误的时候,我一般都是通过在VB中设置断点以单步执行的方式来查找错误所在,有时是程序中所写SQL语句出现问题了,这可以通过添加监视来查看SQL字符串或者把此SQL语句复制到SQL Server查询分析器中来执行以查看SQL 字符串的错误所在。通过这次毕业设计,我对程序调试修改产生了兴趣,当修改成功一处错误,心里感觉很高兴!
个人的能力是有限的,有时可以向老师或同学请教,可以利用网络、图书馆等多方面的资源,比如在此次毕业设计的过程中,我也遇到了很多自己难以解决的问题,后来在老师、同学的帮助下,利用网络资源才把问题解决了。
经过几个月的设计与开发,系统已经设计完成,其功能基本符合用户需求。通过此次毕业设计,我的逻辑思维能力、编程能力、程序调试能力都得到了很大的提高;通过此次毕业设计,我把在学校里学习的理论知识真正地运用到实践中去,并在实践中进一步加深和巩固对所学专业知识的理解。此次毕业设计对我的心理素质是一次很好的锻炼,这对我以后的工作很有好处。
6.2系统存在的问题
由于毕业设计时间较短,工作任务繁重,加上本人能力有限,所以该系统还有许多不尽如人意的地方,最主要的就是本系统未能实现高校里有关学分制、学生选课等方面的功能,有待进一步修改。另外,用户界面不够美观、出错处理机制还不够强大等一些问题,这些都有待进一步改善。还有最重要的一点,这只是一个单机多用户版的高校学生成绩信息管理系统,目前来说虽然可以在高校校园内安装系统终端,师生可以通过终端登陆系统,但这毕竟很不方便,一方面学校学生人数众多,另一方面学生如果不在学校的话就不能登陆系统查询成绩了,如果进一步扩大其为基于B/S模式、网络化管理的系统,会更有优势的。
致谢
在本次毕业设计过程中,我的指导老师黄勇老师给了我很多帮助。黄勇老师认真负责的工作态度、深厚扎实的理论水平、和蔼可亲的待人态度使我受益匪浅。黄老师不但在我的毕业设计整体设计思想方面给予我指导及建议,而且很诚恳给予我工作方面的建议,使我对自己以后的工作有了更清楚地认识,很是感激!
另外,同学们也给予了我很多的帮助,在我调试运行系统出现问题而自己解决不了的时候,向同学请教,同学都会很热心的帮我查找问题。周末机房不开放,我宿舍同学主动把她们的电脑让我使用,而且在我中期有段时间比较忙的时候,她们一直支持鼓励着我,在此一并表示感谢!
参考文献:
[1] 周文艳. 谈学生成绩管理系统中的数据库设计[J]. 沧州师范专科学校学报, 2006,(02):65-67.
[2] 王惠荣. 基于VB访问SQL SERVER数据库的常用方法[J]. 电脑知识与技术, 2008,(15):996-997
[3] 石文华. 基于VB的学生成绩管理系统设计与实现[J]. 山东电力高等专科学校学报, 2004,(01):32-34.
[4] 柴瑞敏,李梁斌. 高校学生成绩管理系统设计[J]. 辽宁工程技术大学学报,2001,6 (03):3-366.
[5] 张益星,罗敬. 高校学生成绩管理系统的设计与实现[J]. 信息技术,2006,(04):131-134.
[6] 陈曦. 高校学籍管理系统的开发[J].江汉大学学报(自然科学版), 2002,(4):9-13.
[7] 萨师煊,王珊. 数据库系统概论[M].4版.北京.高等教育出版社.2007.
[8] 郑海春,谢维成. Visual Basic 编程及实例分析教程[M].1版.北京.清华大学出版社,2007.
[9] David Bearman. Archives and Museum Informatics[J]. Springer Netherlands,1990,(02):20-21.
[10]Subhash Bhalla. Information Systems and Data Management[M]. Heidelberg: Springer Berlin,1995:14-44.
The design of the college students’ scores management system
Student majoring in computer science and technology Xu Dajie
Tutor Huang yong
Abstract: Students’ scores information management is one of main daily management work of every college and university, related to many aspects of colleges, departments, teachers and students. With the continuous reform of education system, daily management work of students’ scores information becomes more and more complex. In the information age of today, the database technology have been widely applied on data procession, so the students’ scores management as part of work of college education should catch up with the times. In this case we make use of the visual operation environment of Visual Basic 6.0 and SQL Server to develop students’ scores management information system which is suit to the department settings of college and university. This thesis ensures the aim and requirements of the system on the base of the feasibility analysis and demand analysis, and forms the data flow diagram, and introduces the whole design, the detailed design and the system testing. According to the detailed requirement and the functions of system, this thesis defines the detailed functions of every modules, and introduces the design idea and the achievement procession of these main modules.
Keywords: Visual Basic 6.0; students’ scores information management; design下载本文