1引言1.1背景在21世纪,以高科技为核心的知识经济将占主导地位,国家的综合国力和国际竞争力将越来越取决于科学技术创新水平。教育作为知识创新、传播和应用的基础,培养和输送人才的摇篮,已经成为经济发展和社会进步的基础。尽管人类进步的程度随着不同时代,不同地区而有所变化,教育的口径却在不断扩宽,以便使过去仅供少数人使用的教育资源能够为更多各种年龄、不同社会阶层和背景的人们所用。在信息爆炸的时代,传统教学管理面临着诸多挑战。管理现代化,办公自动化和决策科学化,是现代办公管理发展的必然趋势。随着信息社会的不断发展,计算机的使用已经深入到人们工作生活中的每一个角落。而人们对数据库的运作和依赖同样也是计算机出现后的一大优势,在学校管理领域,引入计算机管理系统,可以大大提高管理效率和质量,是学校进行现代化、标准化建设的必然趋势。学生成绩管理工作被视作高校管理工作中一项不容忽视的重要分支,其工作量大,涉及面广,学生成绩管理工作运行的好坏直接影响着整个高校管理工作的各个环节。由于成绩管理工作的本身特点及特殊性质,单纯依靠人力,会使从事这项工作的管理人员过度缠身于繁琐的业务中,难免会发生许多错误,难以做到管理的规范化,这不符合管理工作的今后发展趋势。因此,需要开发一种功能全面,操作简便的管理系统软件来补助作用,人机配合,能够使机器承担部分工作,使管理员逐步摆脱一些无谓的,琐碎的业务,这对充分利用人力资源的主导作用及使管理工作逐步步入规范化轨道有着重要意义。1.2目的现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素。在今天的信息时代,这种传统的管理方法必然会被计算机为基础的信息管理系统所代替。所以我们就需要设计一套基于计算机技术和数据库技术的校园信息系统平台的学生成绩管理系统。它不仅仅限于一套管理软件,更要为校园信息系统提供强大的应用支持,在提高学生成绩基本信息的准确性,发挥系统的统计和分析功能的前提下,要大大提高工作效率,节约人手。一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息,高效,安全,学生也能方便的查看自己的成绩。因此一切从学校的实际出发,帮助广大教师提高工作效率,实现学生成绩信息管理工作流程的系统化、规范化和自动化成为本课程设计的主要目标。1.3内容学生成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性[1]和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本系统主要完成对学生成绩的管理,包括添加、修改、删除,查询,打印等几个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。系统的核心是添加、修改和删除三者之间的联系,每一个表的修改都将自动地影响其它的表,当完成添加或删除操作时系统会自动地完成学生成绩的修改。查询功能也是系统的核心之一。2系统开发环境的选择2.1SQLServer2000后台数据库管理系统本系统的开发选择了SQL数据库。SQL是MSSQLServer简述世界上及国内比较流行的关系数据库管理系统。它适用于中小型事物处理及客户端/服务端结构的应用系统。,它功能强大操作简便,日益为广大数据库用户所喜爱。越来越多的开发工具提供了与SQLServer的接口[2]。SQLServer是一个关系数据库管理系统,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。MSSQLServer不但可以应用于大中型数据库管理中,建立分布式关系数据库,并且也可以开发桌面数据库。事实上,SQLServer数据库处理的基本结构,采取关系型数据库模式[3],尽管如此,相信大家都可以轻易的发现,在SQLServer的数据库处理方式,则是使用面向对象的操作方式与精神,也就是说,SQLServer的所有功能,都可以基于系统已经建立好的一些对象来达成,是相当OO[4](面向对象)的一个系统结构。SQLServer企业管理器是SQLServer的主要管理工具,它提供了一个遵从MMC标准的用户界面,使用户得以:定义SQLServer实例组,将个别服务器注册到组中,为每个已注册的服务器配置所有SQLServer选项,在每个已注册的服务器中创建并管理所有SQLServer数据库、对象、登录、用户和权限,在每个已注册的服务器上定义并执行所有SQLServer管理任务,并且通过唤醒调用SQL查询分析器,交互地设计并测试SQL语句、批处理和脚本。它支持中小型数据库,多用户的高性能和事物处理,支持分布式数据库和分布处理,能够实现安全性和完整性控制,具有可移植性、可兼容性和可联结性,它具有良好的数据管理能力和良好的开发性。2.2SQL的优点SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。(1)非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引[5]。(2)统一的语言SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户[6]。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。SQL为许多任务提供了命令,包括:(一)查询数据(二)在表中插入、修改和删除记录(三)建立、修改和删除数据对象(四)控制对数据和数据对象的存取(五)保证数据库一致性和完整性以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。(3)是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。2.3VisualC++介绍VisualC++[5]与C++不同,C++是由C语言发展而来的,既可以用于面向过程的结构化程序设计,也可以用于面向对象的程序设计,是一门功能强大的程序设计语言。而VisualC++是一个功能强大的可视化软件开发工具,自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。所以实际中,更多的是以VisualC++6.0为平台。VisualC++6.0[8]是Microsoft公司在1998年推出的基于Windows9X和WindowsNT一个优秀集成开发环境。该开发环境为用户提供了良好的可视化编程环境,程序员可以利用该开发环境轻松地访问C++源代码编辑器、资源编辑器和使用内部调试器,并且可以创建项目文件。VisualC++6.0不仅包括编译器,而且它还包括许多有用组件[9],如程序向导AppWizard、类向导ClassWizard等,通过这些组件的协同工作,可以在VisualC++6.0集成开发环境中轻松的完成创建源文件、编辑资源,以及对程序的编译、连接和调试等各项工作。3系统分析3.1需求分析学生成绩管理系统的主要目的就是利用软件实现成绩的录入、查询、修改等功能,使教师对学生成绩的管理更加容易,提高工作效率、降低管理成本,同时也方便于学生对自己信息的查询。学生成绩的管理一般分为成绩查询和成绩维护两部分,在实际的教学过程中,学生主要对成绩进行查询,了解自己的成绩情况,而教师除了能够对成绩查询之外,还要对成绩进行录入,修改等操作。对于整个系统而言,为了便于对各种数据进行维护,还要为学生和教师设置不同的权限,从而达到灵活的管理学生成绩的效果。因此从安全角度来考虑,有必要针对不同的用户对数据的访问与编辑进行控制。其中学生只能对成绩进行查询,不允许修改和删除成绩。教师可以录入成绩,并可以修改已有的成绩,同时,教师也应该能够对成绩进行查询,以便了解整个教学情况。功能需求具体分析如下:●学生资料管理:能够对学生的一些基本信息进行添加、修改、打印和删除等操作。学生的基本信息包括学生学号、姓名、性别、年龄和所在院系。●课程基本信息管理:能够对选修课程的一些基本信息进行添加、修改、打印和删除等操作。课程基本信息包括课程号、课程名、任课老师以及所占学分。●学生成绩管理:能够对成绩的情况进行管理,该部分是系统的最主要的功能。当一门课的成绩结果公布时,要相应的记录到数据库中,这样,学生和教师才能够进行成绩的查询。可以根据学生学号查询,查询某个学生参加的所有课程成绩的情况,查询符合某种条件的学生成绩情况,比如说查询学号大于某一个数的学生成绩等;也可以根据课程信息进行查询,比如说查询选修了课程号为117的学生成绩;除此之外,通过系统还可以查询到补课通知或重修通知等。3.2系统模块根据以上功能需求的分析,学生成绩管理系统可以分为三个模块,每一个模块又提供了更为具体的功能。1.学生资料管理“学生资料管理”模块用于查询和维护学生信息,其包含的子功能模块如图3.1所示。图3.1“学生资料管理”功能模块“学生资料维护”用于新增、修改、删除学生的信息,包括学生学号、姓名、性别、年龄和所在院系等信息。“学生资料查询”主要功能是根据学生的学号、姓名等查询与之相关的详细信息。2.课程信息管理“课程信息管理”模块用于查询和维护课程信息,其包含的子功能模块如图3.2所示。图3.2“课程信息管理”功能模块“课程信息维护”用于新增、修改、删除课程的信息,包括课程号、课程名、任课老师以及所占学分。“课程信息查询”主要功能是根据课程的课程号、课程名等查询与之相关的详细信息。3.学生成绩管理“学生成绩管理”模块是本系统的核心内容,用于查询和维护学生选修课程成绩的课程信息管理课程信息维护课程信息查询学生资料管理学生资料维护学生资料查询信息,其包含的子功能模块如图3.3所示。图3.3“学生成绩管理”功能模块“学生成绩维护”用于新增、修改、删除学生成绩的信息,包括考试成绩、平时成绩、补考通知等相关信息。“学生成绩查询”主要功能是根据学生的学号、课程号等查询与之匹配的成绩。通过以上详细的分析,我们可以得到学生成绩管理系统详细的功能模块图,如图3.4所示。图3.4系统功能图学生成绩管理系统学生资料管理课程信息管理学生成绩管理学生资料维护学生资料查询课程信息维护课程信息查询学生成绩维护学生成绩查询课程信息管理课程信息维护课程信息查询4数据库分析与设计4.1概念设计概念设计即概念模型的设计。概念模型实际上是现实世界到机器世界的一个中间层次,用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。而信息世界涉及的概念主要有实体、属性、码、域以及联系。实体是客观存在并可相互区别的事物,可以使具体的人、事、物,也可以是抽象的概念和联系,例如,在学生成绩信息管理系统中,一个学生,一门课,一位授课老师等都是实体。属性是实体所具有的某一特性。一个实体可以有若跟个属性来刻画。例如,学生实体可以由学号、姓名、性别、年龄和所在院系等属性组成。码是能唯一标识实体的属性集,例如学号是学生实体