已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
佛山科学技术学院课程设计指导书课程名称:_学生成绩管理系统的设计_题目:_学生成绩管理系统的设计_学生姓名:_陈劲洪_学号: _309104544009_班级: _09计算机科学与技术_指导教师:_李娅_目录一、 绪论31.1. 研究课题的背景31.2. 现有系统存在的问题分析31.3. 系统开发目标与意义41.3.1 系统开发目标41.3.1 意义41.4. 可行性分析41.4.1 技术上可行性41.4.2 运行上可行性4二、 需求分析 52.1. 教育系统学生管理现状系统分析52.1.1 学校工作流程分析52.1.2 学校具体需求分析52.1.3 系统设计思想52.1.4 系统设计分析62.1.5 系统功能分析62.1.6 学生学籍系统的目标62.2 基于B/S结构技术的应用72.2.1 B/S结构技术发展简述72.2.2 动态网站开发技术比较72.2.3 本系统的开发采用Asp.Net-一种全新的设计模式92.2.4 面向对象的开发过程10三、 数据库的概念结构模型设计113.1. 数据库的逻辑结构模型设计13四、 源程序代码15五、 参考文献33一、绪 论本毕业论文是以学校学生管理信息系统建设中的成绩管理系统的开发为背景,论述了管理信息系统的概念、结构及系统开发的基本原理和方法,全文共分为绪论、系统分析、概要设计、详细设计、开发总结、致谢、参考文献、附录等。1.1研究课题的背景随着计算机技术的发展,特别是计算机网络技术与数据库技术的发展,使用人们的生活与工作方式发生了很大的改观。网络技术的应用使得计算机之间通信、信息共享成为可能,而数据库技术的应用则为人们提供了数据存储、信息检索、信息分析等功能,从而使得工作更高效地进行。数据库始于20世纪60年代,经过40多年的发展,现在已经形成了理论体系,成为计算机软件的一个重要分支。数据库技术体现了当代先进的数据管理方法,使计算机的应用真正渗透到国民经济各个部门,在数据处理领域发挥着越来越大的作用。而互联网技术的出现,更是进一步丰富的人类生活,数字化生存已经一步步走进我们的生活与工作。互联网技术与数据库技术的结合为计算的在人类生活中的应用带来了巨大的影响。产业信息化,管理现代化,科学化已经成为行业发展的重要课题,这不仅是企业提高自身竞争力,甚至是国家提高综合国力,走向国民富强的重要手段。在我国,教育是一个影响着国富民强的重要行业,随着改革开放和市场经济的发展根据中国特有的国情发展,教育得到了国家的大力扶持与社会各界的高度重视,从而使教育业向规范性与现代化的方向高速发展,但是同发达国家相比,我国的教育行业的信息技术的应用程度还很低,只有在大城市中发展较早、规模较大的院校中才使用计算机进行大规模操作,从各方面提高工作效率,取得良好的社会和经济效益,而一些新兴的、规模较小的教育机构还没有全部具备这种功能。因此可见,随着我国教育的迅速发展,信息技术在其上的应用会更加地广泛和深入。 1.2现有系统存在问题的分析在我国,各大中小学校的各类信息管理系统并非一个新的课题,但也有的学校根本就没有信息任何管理系统,所有的工作几乎还是手工操作来完成。计算机技术在日新月异的发展,但是有的很多学校,特别是在西部贫困地区,学校的种类管理都依然由手工操作来完成,这十分落后,效率极低,成本很大,而且极异出错。随着社会的发展,信息化是社会进程的必然趋势,学校管理只有只有快,准,精才能发挥其价值。所以机器代替人力是必然的历史发展趋势,只有领导的重视和支持才能从人工操作改为计算机的自动化系统。人工操作必将被计算机代替。有些学校虽使用了计算机,甚至管理系统,但是仍然存在很多问题,问题一日不解决,效率就一日提不上去。还有,有的系统很不完善到处是漏洞,可以说是千疮百孔,这样极不完善的系统对管理来说是没有任何保障的。1.3系统开发目标与意义1.3.1系统开发目标本系统是将现代化的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:1.系统应具有实用性、可靠性和适用性,同时注意到先进性。2.对各个数据库进行动态管理,防止混乱。3.能够按照用户选择的不同的条件进行简单查询和复合查询。4.能够对查询结果进行分类汇总,实现报表打印。5.注意数据的安全性,具有数据备份和恢复的功能。6.方便用户的操作,尽量减少用户的操作。1.3.2意义:在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。1.4可行性分析 可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能够解决。1.4.1技术上可行性本系统的开发利用Microsoft SQL Server2000作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用Visual S作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。1.4.2运行上可行性:本系统为一个小型的学生信息管理系统,所耗费的资源非常的小,学校的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。二、需求分析21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。2.1 教育系统学生管理现状分析2.1.1 学校工作流程分析学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。新的学年,教务人员首先加入年级信息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。在每个学期开始,教务处根据班级的情况,以班为单位,为每个班级安排一个班主任及对此年级安排一个年级组长。并对各科老师进行安排。每举行一次考试后由任课老师对成绩进行录入。班主任对本班的成绩汇总。并进行排名,然后年级组长再进行汇总,并对本年级各科成绩及总成绩进行排名。教务处、年级组长、班主任及任课老师跟据实际情况对录入的成绩进行维护,各位同学对以上录入的信息可以跟据自己的需要进行适当的查询。2.1.2 学校具体需求分析学生:对各科成绩的查询及查看本班成绩排名等情况。任课老师:输入并维护所教科目的学生成绩,计算本科的成绩排名、本科成绩在班上的排名。输出本班科目的成绩及排名情况。班主任:输入并维护本班的基本信息,对本班的各科成绩汇总,计算各科成绩的总分,排名,本班平均分等需求。输出学生的基本信息,各科的成绩及各科成绩的部分,各科成绩的排名,总分的排名情况。教务处: 学校全体成员的信息管理,对考试科目,时间及对所考科目的编号等进行具体的管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护,可打印学生的所有信息。2.1.3 系统设计思想1、 采用现有的资源,先进的管理系统开发方案,充分利用学校现有的资源,减少开发中的时间和财力、物力、提高系统开发的水平和应用效果。2、 系统就满足学校的需求,例如学生信息的录入、查询、更新等。学生录入与排名。3、 系统就具备数据库维护功能,及时根据用户需求进行数据添加、删除、修改等操作。2.1.4 系统设计分析 本系统适用于中小学校,其功能主要分为六大类: 用户管理:用于对用户的添加,赋于不同权限及对用户的修改及查询。 课程管理:用于对各学期课程的开设和修改。 成绩管理:用于对成绩的输入、修改、汇总及排名。 学生信息管理:添加,删除,修改学生信息等。 授课信息管理: 对授课教师,课程号,学时数,班级等信息的添加,维护等。 学生信息查询: 对学生成绩等信息的查询,查询方式为模糊,且具有多条件组合查询功能。 学生成绩统计: 统计本科的总分,平均分等信息。本系统性能力求易于使用,具体有较高的扩展性和可维护性。2.1.5 系统功能分析 权限功能:系统具有动态的权限分配功能,可按用户权限对用户进行分组。可分为普通用户,一般用户,超级用户。普通用户只是查询不能修改,一般用户只能对授权范围内进行相应修改及删除,超级用户能修改、删除所有信息。 录入功能:为一般用户提供相应的录入功能,为超级用户提供对所有信息的录入功能。 查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息。 维护功能:为一般用户提供查询及相应的修改,删除功能,为超级用户提供对所有信息的修改删除功能。 退出功能:结束并关闭系统。2.1.6 学生学籍系统的目标节约资源,提高学籍信息的精确度 本系统能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。方便快速操作,精减人员,节约开支方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为学校节约了开支。为学校增加了财富。数据库分析 用户需求具体有学籍管理系统提供保存、更新、查询、维护和打印,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。2.2 基于B/S结构技术的应用2.2.1 B/S结构技术发展简述随着IT技术的高速发展, 互联网几乎已经渗透到人们生活的每一个角落。而网络技术与数据库技术的应用,则大大改变的人们的学习、生活与工作的方式,提高并丰富了人类生活。互联网的发展应用促使网页技术的产生。但在不久后,人们对静态页面并不满足,随后出现了采用CGI(Common Gateway Interface通用网关接口)和ISAPI(Internet Server Application Program Interface互联网服务器应用程序接口)来编写网页,但它们的编程比较复杂,用Perl或者是VC进行编写,将HTML标识嵌入代码中,维护相当困难。此后,随着技术日新月异的发展,相断出现了ASP,PHP,JSP等网站开发技术,它们给网站开发带来了一阵狂潮。ASP是一个Web服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的Web服务应用程序,ASP支持VBScript,JavaScript等多种脚本语言。PHP是一种跨平台的服务器端嵌入式脚本语言。其大量地借用C,Java和Perl语言的语法,并耦合PHP自身的特性,使Web开发者能够快速地生成动态页面,PHP是完全免费的,而且可以不受限制地获得源代码,甚至可以按用户需要进行个性化设计。JSP是Sun公司推出的新一代网站开发语言,具有很强的多平台支持和极大的伸缩能力,JSP可在Serverlet和JavaBean的支持下,建立功能强大的Web应用程序。在推出ASP之后,微软于1998年又发布了ASP2.0,其与ASP1.0的主要区别是ASP1.0外部的组件需要实例化。在这之后,Microsoft又推出了ASP.Net,它并不是ASP的简单升级,而是全新的一个动态网页实现体系。ASP.Net是微软发展的新的体系结构.NET的一部分,其策略是将互联网本身作为构建新一代操作系统的基础,对互联网和操作系统的设计思想进行合理延伸,这样开发将可创建出摆脱设备硬件束缚的应用程序,轻松实现互联网连接。2.2.2 动态网站开发技术比较现在,在互联网中流行着多种动态网页实现技术,例如ASP、JSP、CGI、PHP等。对应于这些动态网页技术,也存在有多种多样的Web服务器系统,例如Microsoft IIS、Apache、Cold Fusion等。而对于这些实现动态网页的技术,ASP.NET技术可以说是现在最为流行和应用最为广泛的一种。ASP.NET向世界展现了一种更为领先的技术,这正是它推出不久就深受开发人员青睐的原因。WEB开发与数据库是密不可分的。目前流行的数据库有Microsoft公司的SQL Server 2003,IBM公司的DB2,开源的MySQL,以及Oracle公司的Oracle 9i等。在ASP.NET Web开发最受青睐的是Microsoft公司的SQL Server 2003。动态网站语言及技术比较:(1)ASP,JSP,PHP共同点都提供在HTML代码中混合某种程序代码,由语言引擎解释执行程序代码的能力。在这种方式下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP,PHP,JSP页面则需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送到浏览器。都是面向WEB服务器的技术,客户端浏览器不需要任何附加的软件支持。(2)ASP,JSP,PHP的平台支撑区别ASP是微软公司开发的动态网页语言,也继承了其产品一贯的传统,只能执行于微软的服务器产品IIS或者PWS上。虽然在UNIX下也有Chili Soft的组件来支持ASP,但是因为ASP本身的功能有限,所以必须通过ASP+COM的群组合来扩充。PHP3可以在Windows,UNIX,Linux的WEB服务器上正常运行,还支持IIS,Apache等一般的Web服务器,有相当好的跨平台性。JSP与ASP在技术方面有很多相似之处,都是基于WEB应用实现动态交互网站的技术环境,但也有很多不同之处,两者的本质区别在于来源于不同的技术规范组织,其实现的基础Web服务器平台要求不同。JSP技术基于平台和服务器的相互独立,技术支持由广泛的,专门的各种工具包,服务器的组件和数据库产品开发商提供,相比之下,ASP技术则主要是靠Microsoft的支持。Jsp可支持任何Web服务器,包括Apache,IIS等,并技术绝大多数的流行平台,包括Solaris操作系统,Windows操作系统,MAC OS,Linux及其他NUIX系列平台。(3)ASP,JSP,PHP的应用情况PHP存在着缺乏规模支持,缺乏多层结构和提供的数据库接口支持不统一等缺点,因此PHP不适合应用于大型电子商务站点或者大型的基于B/S结构的应用程序,其适合应用在一些小型的商业站点。ASP和JSP则没有以上缺陷,ASP可通过COM/DCOM获得ActiveX规模支持,通过DCOM和Transaction Server获得结构支持;JSP则可通过Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。目前国内ASP与PHP应用最为广泛,尤其是ASP。而JSP则在国外非常流行,国外电子商务类的网站许多都采用JSP。(4) ASP.Net -全新的Web开发理念与技术由于ASP的核心编辑语言为VB Script或JavaScript等脚本语言,这决定了ASP先天不足,它无法进行象传统编程语言那样的底层操作,所以如果需要进行一些诸如socket,文件等的操作时不得不借助于其它传统语言。而 PHP则存在着缺乏规模支持,缺乏多层结构和提供的数据库接口支持不统一等缺点,只适合应用于一些小型商务网站或者业务处理系统。另外,ASP与PHP等都属于解释型的编辑架构,其运行是边解释边执行的,因此在运行效率上会有很大的损失。所以,在开发本系统的时候,我选择了微软新一代的Web开发技术ASP.Net。ASP.Net有以下几个重要的优点:(1) 强大的动态Web支持:ASP虽有较大的灵活性,但效率不高,且缺乏面向对象的设计,从页导致ASP代码比较凌乱,开发维护都相对困难。ASP.Net为Web页面提供了一种集成式的支持。使用ASP.Net,可以编译页面中的代码,而这些代码可以运用高级语言来编写,因此易于实现并有较高的运行效率。(2) 高效的数据访问技术:ASP.Net中可以运用ADO.NET。ADO.NET提供了对关系数据库和各种数据源的高效访问。这些组件甚至可以访问文件系统和目录。另外,.Net内置了XML的支持,可以处理从非Windows平台导入或者导出的数据。(3) 代码共享:ASP.Net沿用.Net中引入的程序集概念,替代了传统的DLL,可较好的实现代码在应用程序之间的共享方式。(4) 面向对象的编程:ASP.Net处于.NET Framework中,.NET Framework及其推荐采用的语言C#是完全基于面向对象的。(5) 语言的无关性:在.NET中,VB.Net,C#,J#和Managed C+等语言都可以编译为通用的中间语言(IL)。这说明语言可以用从前未有的方式交互操作。(6) 增强的安全性:每个程序集可以包含内置的安全信息,这样就可以非常准确的控制程序集的使用方式。(7) 可运用C#:C#是.Net的一种面向对象的新语言。这种企业编程语言带有下一代编程语言服务运行时( NGWS Runtime ): NGWS Runtime 是一个不仅管理执行代码、同时也提供使编程更加容易的动态环境.编译器产生受管代码以指向这种受管理执行环境.你获得跨平台语言集成、跨平台语言异常处理、增强安全性、版本控制、安排支持和查错服务.支持NGWS Runtime 的主要语言是C#.支持NGWS框架的很多程序是用C#写的, C#语言借鉴了C+,但是具备现代化和新增的类型安全使C#成为企业解决方案的首选语言.在企业计算领域,C#将会变成为用于编写下一代窗口服务( Next Generation Windows Services,简写为NGWS)应用程序的主要语言. 基于C#具有如此多的优良特性,而且又是.net开发的首选语言,因此,在开发本系统时我选择了它作为开发语言。2.2.3 本系统的开发采用Asp.Net- 一种全新的设计模式A之三层WEB结构及其优点三层模式是在两层模式的基础上,增加了新的一级。这种模式在逻辑上将应用功能分为三层:客户显示层、业务逻辑层、数据层。客户显示层是为客户提供应用服务的图形界面,有助于用户理解和高效的定位应用服务,负责处理用户的输入和向用户的输出,但并不负责解释其含义(出于效率的考虑,它可能在向上传输用户输入前进行合法性验证),这一层通常用前端工具(VB,VC,ASP等)开发;业务逻辑层位于显示层和数据层之间,专门为实现企业的业务逻辑提供了一个明确的层次,在这个层次封装了与系统关联的应用模型,并把用户表示层和数据库代码分开 。其主要功能是执行应用策略和封装应用模式,并将封装的模式呈现给客户应用程序,它是上下两层的纽带,它建立实际的数据库连接,根据用户的请求生成SQL语句检索或更新数据库,并把结果返回给客户端,这一层通常以动态链接库的形式存在并注册到服务器的注册簿(Registry)中,它与客户端通讯的接口符合某一特定的组件标准(如COM,CORBA),可以用任何支持这种标准的工具开发;数据层是三层模式中最底层,他用来定义、维护、访问和更新数据并管理和满足应用服务对数据的请求。三层模式的主要优点为 :良好的灵活性和可扩展性。对于环境和应用条件经常变动的情况,只要对应用层实施相应的改变,就能够达到目的。可共享性。单个应用服务器可以为处于不同平台的客户应用程序提供服务,在很大程度上节省了开发时间和资金投入;较好的安全性。在这种结构中,客户应用程序不能直接访问数据,应用服务器不仅可控制哪些数据被改变和被访问,而且还可控制数据的改变和访问方式 。增强了企业对象的重复可用性。“企业对象”是指封装了企业逻辑程序代码,能够执行特定功能的对象。随着组件技术的发展,这种可重用的组件模式越来越为软件开发所接受。三层模式成为真正意义上的“瘦客户端”,从而具备了很高的稳定性、延展性和执行校率。三层模式可以将服务集中在一起管理,统一服务于客户端,从而具备了良好的容错能力和负载平衡能力。 ASP.Net的运用可以轻松地使用近年流行的三层结构模式开发WEB站点或基于B/S结构的应用程序。它可以使程序具有更好的扩展性,灵活性,安全性,平台无关性以及可维护性。ASP.Net的三层结构开发方法思想与Java类似:Java中的三层架构为前端的HTML,JSP,Serverlet,中间层为JavaBean,EJB,后面为数据器库服务器。而在ASP.Net中,前端为HTML,asp,aspx等,中间层为扩展名是.vb,.cs等文件编译而成的.dll控件,后面为数据库服务器。多层结构的应用正是在对C/S 结构的总结基础上产生的,并且也已经扩展到了B/S应用开发领域。学生成绩管理信息系统是由 Web后台进行统一管理,所有业务逻辑都集中在Web应用程序中管理和制定,具有数据的录入和查询统计等功能,客户端的分布广泛,数据集中处理,因此在设计时充分考虑各种体系结构的优缺点,选择三层WEB模式进行开发实现。2.2.4 面向对象的开发过程面向对象的软件开发和相应的面向对象的问题求解是当今计算机技术发展的重要成果和趋势之一,C#是一种面向对象的语言。面向对象编程具备了几个优点,比如:代码维护方便、可扩展性好、支持代码重用技术等等。这些优点是过程编程语言所不具备的。下面我们就来谈谈面向对象技术的这些优点: (1) 可管理性 维护简单 对于面向过程的开发来说,版本管理主要是管理函数以及全程变量,而函数可以有很大的变动,同样,全程变量也可以有较大的变动,但是,对于面向对象程序设计来讲,一个系统是有对象来组成的,而对象是由类生成的,因此只需管理类就行,一个系统中,类是相对稳定的,因此便于管理. (2) 模块化 是面向对象编程中的一个特征。实体被表示为类和同一名字空间中具有相同功能的类,我们可以在名字空间中添加一个类而不会影响该名字空间的其他成员。 (3) 可扩充性 是对现代应用软件提出的又一个重要要求,即要求应用软件能够很方便,容易的进行扩充和修改,这种扩充和修改的范围不但涉及到软件的内容,也涉及到软件的形式和工作机制. 面向对象编程从本质上支持扩充性。如果有一个具有某种功能的类,就可以很快地扩充这个类,创建一个具有扩充的功能的类。 面向对象的程序设计可以用很好的可扩充性.这是由于类可以根据人对事物的理解而进行丰富,没有必要进行作大的改动,可以利用继承,对新的类添加属性和方法.用它可以生成系统的简单雏形,在征求用户的意见,在加入新的类,以及类的方法与属性等.(4) 代码重用 可重用性是面向对象软件开发的一个核心思路.面向对象程序设计的抽象,封装,继承,多态的四大特点都无一例外,或多或少的围绕着可重用性这个核心并为之服务.由于功能是被封装在类中的,并且类是作为一个独立实体而存在的,提供一个类库就非常简单了。事实上,任何一个.NET Framework编程语言的程序员都可以使用.NET Framework类库,.NET Framework类库提供了很多的功能。更令人高兴的是,我们可以通过提供符合需求的类来扩充这些功能。 可重用性体现在两个方面: (1) 开发的类可以被别人以及别的项目使用 (2) 由于可以继承,因此可以实现代码级的重用. 三、 数据库的概念结构模型设计 概念设计用来反映现实世界中的实体、属性和他们之间的关系等的原始数据形式,建立数据库的每一幅用户视图。学生成绩管理系统分为七大实体(模块),七个实体包括各属性,如下图是各系统模块的ER图:用户:用户身份用户登陆密码用户ID用户学生:学生性别学生学号学生姓名所在班级(院系)号学生入学时间教师:所在院系教师姓名教师号教师班级:班级所在院班级所在系班级名称班级号班级课程:课程学分课程名课程号课程课程学时课程类型学生-课程:学生成绩学生所学课程学生学号学生-课程ID学生-课程教师-课程:教师课程ID年度所教课程教师号教师-课程3.1数据库的逻辑结构模型设计 数据库的逻辑设计是将各局部的ER图进行分解、合并后重新组织起来形成的数据库的全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构、所建立的各个数据之间的相互关系。本系统的数据库表如下:用户信息表:名称字段名称类型长度允许空用户IDuser-idvarchar50no用户登陆密码user-passwordvarchar50yes用户身份user-powerint4yes学生信息表:名称字段名称类型长度允许空学生学号sidvarchar50no学生姓名snamevarchar50yes学生性别ssexchar10yes学生所在班级号sclaidvarchar52yes学生入学时间stimevarchar50yes教师信息表:名称字段名称类型长度允许空教师号Tidvarchar50no教师姓名Tnamevarchar50yes教师所在院系Tcolvarchar50yes班级信息表:名称字段名称类型长度允许空班级号Cidvarchar50no班级名称Cnamevarchar50yes班级所在系Cdepvarchar50yes班级所在院Ccolvarchar50yes课程信息表:名称字段名称类型长度允许空课程号cridvarchar50no课程名crnamevarchar50yes课程学时crperint4yes课程学分crcreint4yes课程类型crkindvarchar50yes学生-课程信息表:名称字段名称类型长度允许空学生-课程IDSCidint4no学生学号Sidvarchar50yes学生所学课程号Cridvarchar50yes学生成绩Scoreint4yes年度CRyearchar10yes教师-课程信息表:名称字段名称类型长度允许空教师号Tidvarchar50no年度Cyearchar10yes教师-课程IDTCidvarchar50yes教师所教课程号Cridint4yes四、源程序代码#include #include #include #include #include using namespace std;struct Node/定义链表结点char* class_0;/班级int number;char* name;/姓名float elec;/电子技术成绩float c_prog;/C程序设计成绩float media;/多媒体技术成绩float eng;/大学英语成绩float math;/高等数学成绩float sport;/大学体育成绩float polity;/马克思主义政治经济学成绩float ave;/平均成绩int order;/名次Node* link;Node()link=NULL;Node(int _number,char* _class_0,char* _name,float _elec,float _c_prog,float _media,float _eng,float _math,float _sport,float _polity,float _ave,int _order,Node* next)number=_number;class_0=new char21;strcpy(class_0,_class_0);name=new char9;strcpy(name,_name);elec=_elec;c_prog=_c_prog;media=_media;eng=_eng;math=_math;sport=_sport;polity=_polity;ave=_ave;order=_order;link=next;Node()删除 class_0;删除 name;class StudentScoreprivate:Node* first;/链表的头指针int choice;/选择数据的读入方式int fileNum;/当前文件数减一int fileLoc;/定位当前文件string* fileName;int operChoice;int RecordLength;public:StudentScore();void Save();void BuildList();/手工建立成绩链表void ReadInfo(int k);/从内存中读入学生信息void ClearList();void Statistic();void Sort();void Add();void 删除();void PrintList();void Menu();StudentScore:StudentScore()RecordLength=0;operChoice=0;first=NULL;choice=0;fileLoc=0;fileNum=0;fileName=new string10;/最多可以存10个文件int GetOrder(Node* first,float ave);void StudentScore:BuildList()int _number;/学号char* _class_0=new char21;/班级char* _name=new char9;/姓名float _elec;/电子技术成绩float _c_prog;/C程序设计成绩float _media;/多媒体技术成绩float _eng;/大学英语成绩float _math;/高等数学成绩float _sport;/大学体育成绩float _polity;/马克思主义政治经济学成绩float _ave;/平均成绩int _order;/名次char c;Node *p,*r=NULL;first=NULL;cout您要输入学生成绩信息?_class_0;/班级cin_number;cin_name;/姓名cin_elec;cin_c_prog;cin_media;cin_eng;cin_math;cin_sport;cin_polity;_ave=(_elec+_c_prog+_media+_eng+_math+_sport+_polity)/7;/求得平均成绩_order=GetOrder(first,_ave);p=new Node(_number,_class_0,_name,_elec,_c_prog,_media,_eng,_math,_sport,_polity,_ave,_order,NULL);/建立一个新的结点储存信息if(first!=NULL)r-link=p;else first=p;r=p;RecordLength+;cout您要输入学生成绩信息?link) if(temp-aveave) order+;if(temp-aveorder)+;return order;void StudentScore:Statistic()Node* temp=first;float a_elec=0.0;/电子技术成绩float a_c_prog=0.0;/C程序设计成绩float a_media=0.0;/多媒体技术成绩float a_eng=0.0;/大学英语成绩float a_math=0.0;/高等数学成绩float a_sport=0.0;/大学体育成绩float a_polity=0.0;/马克思主义政治经济学成绩int i=0;while(temp)a_elec+=temp-elec;a_c_prog+=temp-c_prog;a_media+=temp-media;a_eng+=temp-eng;a_math+=temp-math;a_sport+=temp-sport;a_polity+=temp-polity;i+;temp=temp-link;a_elec=a_elec/i;a_c_prog=a_c_prog/i;a_media=a_media/i;a_eng=a_eng/i;a_math=a_math/i;a_sport=a_sport/i;a_polity=a_polity/i;cout电子技术平均成绩为:A_ELECENDL;coutc程序设计平均成绩为:A_C_PROGENDL;cout多媒体技术平均成绩为:A_MEDIAENDL;cout英语平均成绩为:A_ENGENDL;cout高等数学平均成绩为:A_MATHENDL;cout体育平均成绩为:A_SPORTENDL;cout政治平均成绩为:A_POLITYENDL;void StudentScore:删除()int studNum;Node* p;Node* temp=first;cout请输入要删除的学生学号studNum;float average;for(;temp;temp=temp-link)coutnumber=studNum)average=temp-ave;if(temp=first)/说明是第一次first=first-link;删除 temp;break;/如果不跳出的话 temp=temp-link会出错elsep-link=temp-link;删除 temp;break;p=temp;RecordLength-; /下面修改学生排名temp=first;for(;temp;temp=temp-link)if(temp-aveorder-;void StudentScore:Add()int _number;/学号char* _class_0=new char21;/班级char* _name=new char9;/姓名float _elec;/电子技术成绩float _c_prog;/C程序设计成绩float _media;/多媒体技术成绩float _eng;/大学英语成绩float _math;/高等数学成绩float _sport;/大学体育成绩float _polity;/马克思主义政治经济学成绩float _ave;/平均成绩int _order;/名次char c;Node *p,*r=NULL;r=first;while(r-link)r=r-link;/ first=NULL;cout您要输入学生成绩信息?_class_0;/班级cin_number;cin_name;/姓名cin_elec;cin_c_prog;cin_media;cin_eng;cin_math;cin_sport;cin_p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应链管理师持续改进评优考核试卷含答案
- 选剥混茧工安全意识模拟考核试卷含答案
- 野生植物监测工岗前创新方法考核试卷含答案
- 森林抚育工安全生产能力水平考核试卷含答案
- 塑料热合工持续改进评优考核试卷含答案
- 制浆工QC考核试卷含答案
- 2024年贵阳信息科技学院辅导员招聘备考题库附答案
- 整经工操作能力模拟考核试卷含答案
- 水上打桩工操作评估测试考核试卷含答案
- 织袜工岗前理论评估考核试卷含答案
- 2026年年长租公寓市场分析
- 生态环境监测数据分析报告
- 金融机构衍生品交易操作规范
- 医院检查、检验结果互认制度
- 2025年医院物价科工作总结及2026年工作计划
- 2025年下半年四川成都温江兴蓉西城市运营集团有限公司第二次招聘人力资源部副部长等岗位5人考试参考试题及答案解析
- 2025-2026学年上学期成都小学数学四年级期末典型卷1
- 2026年江西应用技术职业学院单招职业适应性测试必刷测试卷必考题
- 浙江省杭州市萧山区2024-2025学年六年级上学期语文期末试卷(含答案)
- 学堂在线 雨课堂 学堂云 实绳结技术 章节测试答案
- 水车浇水施工方案
评论
0/150
提交评论