您的当前位置:首页正文

学生成绩管理系统设计

2020-09-26 来源:步旅网
学生成绩管理系统设计

六安职业技术学院

课程设计报告

课程名称 系 别 所在专业 所在班级 系统名称 组 长 小组成员 指导教师 成 绩 教师签字

C++课程设计

信息工程系 计算机应用技术 计算机1001 学生成绩管理系统

卢明燃

乐志勇、武 昆、符传坚 倪林华、孙红霞、吴 梅

吴 涛

2011年12月 日

1 / 28

学生成绩管理系统设计

课程设计时间:2011年12月5日至2011年12月9日

目 录

第一章 课程设计概述 ............................................................................................. - 0 -

1.1 课程设计的目的 ........................................................................................ - 0 - 1.2 课程设计的要求 ........................................................................................ - 0 -

1.2.1 课程设计的能力要求 ..................................................................... - 0 - 1.2.2 系统实现要求 ................................................................................. - 0 - 1.2.3 选题要求 ......................................................................................... - 1 - 1.3 课程设计时间安排 .................................................................................... - 1 - 第二章 系统的需求分析与设计 ............................................................................. - 2 -

2.1系统需求分析 ............................................................................................. - 2 -

2.1.1系统分析(需求分析) .................................................................. - 2 - 2.1.2系统性能要求 ....................................................... 错误!未定义书签。 2.1.3系统的功能分析 ................................................... 错误!未定义书签。 2.2系统总体设计 ............................................................................................. - 3 -

2.2.1 编辑功能的子目录功能 ................................................................. - 3 - 2.2.2统计功能的子目录功能 .................................................................. - 4 - 2.3 功能需求分析 ............................................................................................ - 4 -

2.3.1学生信息录入模块 .......................................................................... - 4 - 2.3.2学生信息查找模块 .......................................................................... - 5 - 2.3.3学生信息显示模块 .......................................................................... - 5 -

第三章 系统模块功能介绍 ..................................................................................... - 6 -

3.1 功能模块 .................................................................................................... - 6 -

3.1.1登录界面 .......................................................................................... - 6 - 3.1.2增加学生成绩模块 .......................................................................... - 6 - 3.1.3显示学生成绩模块 .......................................................................... - 7 - 3.1.4排序统计成绩模块 .......................................................................... - 7 - 3.1.5查找学生成绩模块 .......................................................................... - 8 - 3.1.6删除学生成绩模块 .......................................................................... - 9 - 3.1.7修改学生信息模块 .......................................................................... - 9 -

第四章 课程设计总结 ........................................................................................... - 11 - 致 谢 ..................................................................................................................... - 13 - 参考文献 ................................................................................................................. - 15 - 附 录 ..................................................................................................................... - 16 -

2 / 28

学生成绩管理系统设计

3 / 28

学生成绩管理系统设计

第一章 课程设计概述

1.1 课程设计的目的

C++课程设计是计算机应用技术专业的重要实践性环节之一,是学生学习该课程后的一次全面综合训练。通过本课程设计的实践,更进一步总结C++课程学习中的的数据类型、程序结构、数组、函数、指针、结构体等基本概念,掌握其使用方法。掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。培养使用面向对象的程序设计方法编写计算机程序的能力。同时,也锻炼学生的团队分工、协作能力,让同学们在实践的过程中,提高发现问题、分析问题、解决问题的能力。学会团结互助,共同合作,培养良好的团队精神。

1.2 课程设计的要求

1.2.1 课程设计的能力要求

本课程设计通过实现一个《学生成绩管理系统》,进一步熟悉C++中类的概念、类的封装的实现方式。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。程序设计是一门实践性很强的课程,必须十分重视实践环节。许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。 1.2.2 系统实现要求

设计的《学生成绩管理系统》应至少包含一下内容:

1、学生信息的管理; 2、学生成绩的统计; 3、学生信息查询; 4、系统的退出;

- 0 - / 28

学生成绩管理系统设计

我们小组在此基础上,也增加其他功能模块如:学生信息修改、学生信息删除、学生信息排列等。 1.2.3 选题要求

课程设计题目的选择除给定的题目外,学生也可以自拟题目,但要在征的指导教师的同意后,方可开题。

1.3 课程设计时间安排

本课程设计时间为2011年12月5日至2011年12月9日止,为期一周,现将具体时间安排如表1-1所示。

表1-1 课程设计时间安排

日 期 任 务 星期一 星期二 开题、查找文献资料 整理、分析相关资料 星期三 星期四 编程实现 编程实现 星期五 验收、撰写实习报告

- 1 - / 28

学生成绩管理系统设计

第二章 系统的需求分析与设计

2.1系统需求分析

学生成绩管理系统(以下简称“系统”)可以用来管理规模较大的成绩信息,对学生的成绩信息进行维护和统计。系统的目标用户为老师或其他需要统计各种信息的人员。系统可以极大的减少用户的工作量,为用户节省更多的时间,让用户在几秒钟内获得各种统计信息,在第一时间对学生成绩有全面的了解。系统给用户提供了简单而实用的功能。如图2-1所示

学生学生成绩成绩管理管理系统系统编辑功能编辑功能统计功能统计功能增加增加学生学生成绩信息成绩信息修改修改学生学生成绩信息成绩信息删除删除学生学生成绩信息成绩信息显示显示学生学生成绩信息成绩信息排列排列学生学生成绩信息成绩信息查找查找学生学生成绩信息成绩信息 图2-1 学生成绩管理系统流程图

系统使用菜单式的用户界面,给用户以直观的使用体验。用户只要根据系统提示,通过键盘输入相应信息就可以使用系统,操作简单,不需要任何经验知识就可以轻松上手。 2.1.1系统分析(需求分析)

根据课程设计题目的要求,以与我们小组成员的讨论,最终确定此程序有

以下功能:

1) 能够实现学生学号、姓名、成绩的录入;

- 2 - / 28

学生成绩管理系统设计

2) 能够实现对学生信息的浏览、查找、删除; 3) 能够实现对学生信息按学号顺序显示,成绩排名; 4) 能够对各科成绩统计情况输出。

2.1.2系统性能要求

根据学生成绩管理系统的标准,以与考虑到用户的需求,所以我们在编写系统程序时注意其实用性如下:

1) 系统安全、可靠; 2) 功能齐全; 3) 操作方便; 4) 易于维护和扩充。

2.1.3系统的功能分析:

1、资料维护:系统维护包括对各个学生姓名、成绩、学号的录入操作,对数据表中的信息进行浏览。

2、成绩查询:可以对学生成绩进行详细查询。 3、排列显示:包括统计学生排名成绩等。

2.2系统总体设计

系统功能分为两大部分:编辑和统计。增加学生成绩、显示学生成绩、排序统计成绩、查找学生成绩、删除学生成绩、修改学生信息。 2.2.1 编辑功能的子目录功能

编辑功能可以对数据和信息进行维护,其子目录下有以下几个功能: (1) 增加学生成绩信息

- 3 - / 28

学生成绩管理系统设计

通过键盘输入增加学生成绩信息,。通过键盘建立最初的信息了,建立后就可以保存成文件形式,方便以后使用。 (2)修改学生成绩信息

修改学生成绩信息:通过用户提供的学生姓名或学号,检索到该学生,然后进行修改,可以修改姓名、年龄、各科成绩等。 (3)删除学生成绩信息

删除某学生的单科成绩。(例如,当某学生中期退课后,就可以用此功能将该课程成绩删除)

删除某一个学生。将该学生的全部信息删除,该学生的数据将不再出现在数据库中。 2.2.2统计功能的子目录功能

(1)显示学生成绩信息:可以指定任意科目,并按该科目成绩由高到低将学生信息输出到屏幕。

(2)排列学生成绩信息:按照学分绩优高到低的顺序,将学生信息输出到屏幕。

(3)查找学生成绩信息:按照学号由小到大的顺序将学生信息输出到屏幕。

2.3 功能需求分析

简易学生成绩管理系统主要有六大模块:学生信息(如学号、姓名、各科

成绩、年龄等)的录入文件中;查找学生成绩信息;显示学生成绩信息;修改学生成绩信息;删除学生成绩信息;排列学生成绩信息。 2.3.1学生信息录入模块

主要功能是录入学生的信息,具体操作是:先打开程序的主界面,输入密码,然后选择数字1,即可录入数据,程序依次输出:学生姓名、学生学号、学生的出生年份以与各科成绩等,确认后按任意键退出。

- 4 - / 28

学生成绩管理系统设计

2.3.2学生信息查找模块

主要功能是查找用户所需要的学生信息,直接选择数字4,便可根据学生的姓名、学号可以查询到相关成绩, 2.3.3学生信息显示模块

主要功能是显示学生的相关信息,直接选择数字2,便可显示相关学生的信息(包括学号、姓名、年龄以与各科成绩)

- 5 - / 28

学生成绩管理系统设计

第三章 系统模块功能介绍

3.1 功能模块

“学生成绩管理系统”包括六个模块:增加学生成绩、显示学生成绩、排序统计成绩、查找学生成绩、删除学生成绩、修改学生信息。这六个模块既相互联系又相互独立。 3.1.1登录界面

用户输入正确的密码成功登陆后,出现登录界面如图3-1所示。

图3-1 登录界面

3.1.2增加学生成绩模块

主要功能用来对学生的成绩进行收集和对年龄和学号的收集,以便于统计信息与增加学生成绩信息界面的可观度。老师可以通过填写表格的形式,输入成绩等相关信息,系统可以自动避免重复信息。 如图3-2所示。

- 6 - / 28

学生成绩管理系统设计

图3-2增加学生成绩

3.1.3显示学生成绩模块

主要功能便于大家对成绩 出生年份、学号进行查询处理。显示学生成绩信息界面 如图3-3所示。

图3-3显示学生成绩

3.1.4排序统计成绩模块

主要功能用来对学生的成绩进行排序,使教师了解学生的近期学习状况排列系统成绩信息界面,如图3-4所示。

- 7 - / 28

学生成绩管理系统设计

图3-4排序统计成绩

3.1.5查找学生成绩模块

主要功能用来对学生的成绩方便快捷的进行查询,可以通过学号和姓名进行查询。查找学生成绩信息界面如图3-5所示。

图3-5查找学生成绩

- 8 - / 28

学生成绩管理系统设计

3.1.6删除学生成绩模块

主要功能用来对学生的成绩进行删除,老师可以对数据进行删除,系统能够通过老师给出的条件查找出要删除信息,并提示是否确定删除,删除后该信息将从数据库消失。删除学生成绩信息界面如图3-6所示。

图3-6删除学生成绩

3.1.7修改学生信息模块

主要功能用来对学生的一些信息进行修改。老师可以对数据库中的一些信息进行修改,系统能够通过老师给出的条件查找出所要修改的信息。修改后自动保存,并自动查找是否是重复信息。修改学生信息模块界面如图3-7所示。

- 9 - / 28

学生成绩管理系统设计

图3-7修改学生信息

- 10 - / 28

学生成绩管理系统设计

第四章 课程设计总结

本次课程时间从2011年12月5日至2010年12月9日,为期一周,按照教学计划和学院的安排,在本班教室进行了10级计算机应用技术专业《C++语言程序设计》课程设计的实训周。C++语言程序设计的课程设计,使学生能将学到的C++语言程序设计思想用到具体的工作和学习中,加深对类与对象的理解,是将计算机课程与实际问题相联接的关键步骤。通过课程设计,能够提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。

整个课程设计分为分组、编程与调试、程序测试与检查、提交课程设计报告四个阶段来完成。

1、分组与准备阶段:此阶段将学生分成若干小组,每小组选择好设计模块,然后由学生自主进行问题分析和相关资料查询,通过问题分析、概要设计、详细设计、用户界面设计、编码、测试等一系列过程,培养学生动手实践、协作开发项目的能力,为后续专业技能的训练提供基础;

2、编程与程序调试阶段:此阶段学生集中上机进行,对于学生出现的问题,老师与时帮助学生解决,取得了很好的效果。同时为了保证每位同学的课程设计效果,每次课堂都会点名,并纳入学生的平时成绩,该成绩占总成绩的30%;

3、程序测试与检查阶段:此阶段由老师对每位学生的设计结果作测试和检查,并根据测试与检查结果评定学生成绩,此成绩占课程设计总成绩的40%。检查的方法以学生答辩的方式进行,针对学生的课设提问有针对性的问题,根据回答问题的情况和课程设计的复杂度给定成绩;

由于学生成绩管理系统的功能十分强大,程序的编写也十分的复杂,所以我们七个人一组,每人完成一部分程序.程序的编写是一项困难的任务,完成此程序必需运用书中的大部分知识,而且要有清晰的思路,有较强的语言组织能力.由于七人各完成一部分,所以最后七部分程序要能衔接得十分完整,所以七个人要在编写自己的程序的基础上考虑其他人的程序结构.编写程序就是一项十分困难的事,所以一定要细心,不能有一丝的马虎,否则会前功尽弃.三是程序的检查和系统的调用.程序写完后并不能保证它一定能运行,所以要对它进行调试,发现其中的弊端,并作出相应的修改,以完善程序,使其逻辑性,运算能力都符合题目要求,使学生成绩管理系统的运行能力达到课程的目的.这也体现了我们7

- 11 - / 28

学生成绩管理系统设计

个人的团队合作能力!

课程设计中体现出新时代大学生思维,理论方法结合实际应用能力的进步,也证明我系课程实践环节的点滴进步。主要有以下几点特色:

1.本课程设计采取分组合作模式,这样可以增加同学们的协同能力,为以后融入单位合作工作模式打下良好的基础。此外课程设计的选题模式采取抽签模式这样以来加强了随机性,增加量趣味性;

2.本课程设计的选课题库更加贴近于我们的生活,激发学生观察生活,体验生活的能力。让同学有所想,有所做,同时增加量软件的应用性能;

3.本课程设计在一定的持续时间内,有明确的任务书,实行任务到人制度。使同学有事可做,也充分体验了“赶工期”的生活;

4.本课程设计在撰写实践报告环节上,更是高标准、严要求。老师专门找出时间为同学讲解报告的书写细节,并且为同学制作模板以供参考。为日后撰写毕业设计报告等打下良好的基础。

我希望在下一次课程设计中我们会有更大的进步,我也会努力改进存在的问题,使我们的课程设计更具有特色。

通过本次的C++课程设计,让我们学会了把书本上的知识应用到了实际中来。虽然在这一周中有过挫折和坎坷,有的问题一直到了最后才被解决,但是我认为这未必就不是好事,这样能锻炼我们的意志,磨练我们的耐心,失败是成功之母,这话一点都没错,没有失败就没有成功。让我们没有失去信心的是关怀我们的老师,当我们有了问题和疑问,老师就很耐心的给予讲解,让我们有了一个良好的学习氛围。经过为期一周的紧张的上机编程学习,每位同学的设计题目都达到了理想的效果,使学生对数据结构课程所学的知识有了更深入的理解和掌握,巩固了理论教学所学到的知识,扩展了学生编程思想,取得了预期的效果。

由于水平有限与所学知识无限,在课程设计中难免有不少错误和不足之处,还请老师批评指正。

- 12 - / 28

学生成绩管理系统设计

致 谢

C++课程设计是对我们对这一个学期所学知识运用能力的一次全面的考核,也是对我们进行基本功的训练,培养我们综合运用所学知识独立地分析问题和解决问题的能力,为以后撰写毕业论文和工作打下良好的基础。

在本次设计中,我得到吴涛老师的悉心指导,另外也是和本设计小组其他设计人员的大力支持才得以完成。

紧张而又辛苦的一周课程设计结束啦。在我们快要完成老师给我们下达任务的时候,我们设计小组仿佛经历一次翻山越岭,登上了高山之巅,顿时心旷神怡,眼前豁然开朗。

课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会、从事职业工作前一个必不可少的过程。“千里之行始于足下”,通过这次毕业设计我们深深体会到这句千古名言的真正含义。我们今天认真的进行课程设计,学会脚踏实地的迈开这一步,就是为了明天能稳健地在社会大潮中奔跑打下坚实的基础。

说实话,课程设计真的是有点累。然而,当我们着手清理自己的设计资料,检查程序,得出的这个程序,仔细回味这一周的心路历程,一种少有的成功喜悦即刻使我们的倦意顿消。虽然这是我们刚学会走完的第一步,是我们人生中的小胜利,然而它令我感受到自己成熟了许多。我清楚的意识到做课程设计不是一件容易的事,但是我们更多的是一种收获。通过此次课程设计我们深刻的感悟到:做设计是苦活但要细心;实践动手做比空想强:合作精神的强大的;老师是很好的资源,要想他挖掘。

成败决定于细节。老子说:“天下难事,必做于易;天下大事,必做于细”;我们做课程设计也需要这种精神,千里之堤毁于蚁穴,蚂蚁的巢穴都将会导致千里的河堤崩溃,一点的不足也会使种鸽程序运行不出来。

实践是检验真理的唯一标准,只有经得起实践检验的想法,意识才是正确的。

俗语有所:众人拾柴火焰高。我们做课程设计也需要发挥团队的精神的作用。队员之间互相合作,发挥相互的特长这样会令程序设计工作顺利完成而省

- 13 - / 28

学生成绩管理系统设计

很多时间和精力,达到事半功倍的效果。今天的企业管理强调的时团队精神,不是个人主义,我们通过这次课程设计深刻了解到这一点,我们同学之间也得到很好的交流。

老师是一本活书、是最好的利用资源,我们要不断在他身上进行“开采”,获取自己的宝贵的知识。老师不会是都帮我们亲手的去做好,他主要做的工作的引导指引我们、启发我们。以他的话说就是:授之以鱼不如授之以渔,亲手帮你做好一次,那下次遇到同样的问题,你们还是不会解决,那不是等于不教。我们要学会独立思考,提高自己的学习能力。

本次课程设计能够顺利完成,首先我要感谢我们C++老师吴老师,他不但教会我们专业方面的知识,在本次课程设计中给与我们大力支持和帮助的,每有问题,老师总是耐心的解答,使我能够充满热情的投入到课程设计中去;还要感谢我们这个团队的同学们,是我们7个人的齐心协力才完成此次课程设计。最后还要感谢相关资料的编著者和给予我们支持的社会各界人士,感谢您们为我们提供一个良好的环境,使本次课程设计圆满完成。

- 14 - / 28

学生成绩管理系统设计

参考文献

【1】郑莉,董渊,张瑞丰等编著.c++语言程序设计(第3版).北京:清华大学出版社,2009.

【2】关治.陈景良.数值计算.北京:清华大学出版社,1993

【3】洪永清,黄德才,吕丽民.面向对象建模与设计.北京:人民邮电出版社,1998 【4】邵维忠,杨芙清.面向对象的系统分析.北京:清华大学出版社,1998 【5】谭浩强.C程序设计.北京:清华大学出版社,1991

【6】张国峰.C++语言与其程序设计教程.北京:电子工业出版社,1997 【7】侯捷.STL源码剖析.武汉:华中科技大学出版社,2002 【8】三味创作室

.Visual C++ 6.0 应用与提高.北京:科学出版社,1999

【9】和克智.C++程序设计(第2版).西安:西安交通大学出版社,1999 【10】徐士良.C常用算法程序集.北京:清华大学出版社,1995 【11】

- 15 - / 28

学生成绩管理系统设计

附 录

源程序代码

# include # include # include # include int code();//登录密码 using namespace std; // Student类 class Student {

public:

char name[20]; char Id[20];

int Date; //学生出生日期 int Age; //学生年龄

int Cnum; //C++课程得分 int Mnum; //数学课程得分 int Enum; //英语课程得分 int sum; //总分 Student * Next; void Input() { cout<<\"\\请输入学生的姓名:\"; cin>>name; cout<<\"\\请输入学生的学号:\"; cin>>Id;

cout<<\"\\请输入学生的出生时间:\"; cin>>Date; cout<<\"\\请输入C++课程的成绩:\"; cin>>Cnum; cout<<\"\\请输入数学课程的成绩:\"; cin>>Mnum; cout<<\"\\请输入英语课程的成绩:\"; cin>>Enum; sum=Cnum+Mnum+Enum;Age=2011-Date; }

void Read & in) { in>>name>>Id>>Date>>Age>>Cnum>>Mnum>>Enum>>sum; }

void Show() { cout<<\"姓名:\"<class Studentmessage:public Student {

public:

Studentmessage(); ~Studentmessage(); void ShowMenu(); void Find(); void Save();

void ModifyItem(); void RemoveItem(); void Sort(); int ListCount(); void Display()

- 16 - / 28

学生成绩管理系统设计

{ for(Student * p=Head->Next;p!=End;p=p->Next) p->Show(); cout<<\"输入任意字符!继续……\"; getch(); }

void AddItem() { End->Input();

End->Next=new Student; End=End->Next;

cout<<\"添加成功!\"<cout<<\"输入任意字符!继续……\"; getch(); } private:

Student * Head,* End; ifstream in; ofstream out;

int FindItem(char * name,Student *a[]) { int i=0; for(Student * p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->name,name)) { a[i]=p;i++; } if(i==0) return 0; else { a[i]=End; return i; } }

Student *FindID(char * Id) { for(Student * p=Head;p->Next!=End;p=p->Next) if(!strcmp(p->Next->Id,Id))return p; return NULL; } };

int code() {

int i=0,j=0; int c;

char name[15],cod[15]; cout<<\"\\n\\n\"; while(j<3) { cout<<\"\\管理员:\"; cin.getline(name,sizeof(name));/ cout<= 0) { if (c == '\\b')

- 17 - / 28

学生成绩管理系统设计

{ cout<<\"\\b \\b\"; i = i - 1; } else { cout<<\"*\"; cod[i] = c; } } c = getch(); if(c != '\\b') i = i + 1; } cod[i] = '\\0'; cout<return j; }

Studentmessage::Studentmessage() {

Head=new Student;

Head->Next=new Student; End=Head->Next; in.open(\"sort.txt\"); if(!in) cout<<\"\\这是一个新系统,无学生信息。请先输入。\"<Read); if(End->name[0]=='\\0')break; End->Next=new Student; End=End->Next; } in.close(); cout<<\"\\读取学生信息成功!\"<Studentmessage::~Studentmessage() {

Save();

for(Student * temp;Head->Next!=End;) { temp=Head->Next;

- 18 - / 28

学生成绩管理系统设计

Head->Next=Head->Next->Next; delete temp; }

delete Head,End; }

//菜单

void Studentmessage::ShowMenu() {

cout<<\"※※※※※※※※※※※ 六安职业技术学院学生成绩管理系统 ※※※※※※※※※※※\"<cout<<\"◇◇ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ◇◇\"<cout<<\"◇◇ 1.增加学生成绩 ◇◇\"<cout<<\"※※※※※※※※※※※ 0.安全退出系统 ※※※※※※※※※※※\"<void Studentmessage::Find() {

char name[20] ,Id[10]; int x,k;

Student * p=NULL,*a[6];

cout<<\"\\n\\*********************************\\n\";

cout<<\"\\※ 1.按学生的姓名查找 ※\\n\\※ 2.按学生学号查找 ※\";

cout<<\"\\n\\*********************************\\n请选择:\"; cin>>x; switch(x) {

case 1: { cout<<\"\\请输入要查找的学生的姓名:\";cin>>name; if(k=FindItem(name,a)) { for(int i=0;a[i]!=End;i++) { a[i]->Next->Show(); } cout<<\"输入任意字符!继续……\"; getch(); } else { cout<<\"\\没有找到该姓名的学生!\"<<'\\n'<>Id;

- 19 - / 28

学生成绩管理系统设计

if(p=FindID(Id)) { p->Next->Show(); cout<<\"输入任意字符!继续……\"; getch(); } else { cout<<\"\\没有找到该学号的学生!\"<<'\\n'<//修改信息

void Studentmessage::ModifyItem() {

char name[20];int k=0,te,t,x; Student * p=NULL,* a[6];

cout<<\"\\n\\*********************************\\n\";

cout<<\"\\※ 1.按学生的姓名查找 ※\\n\\※ 2.按学生学号查找 ※\";

cout<<\"\\n\\*********************************\\n请选择:\"; cin>>x; switch(x) {

case 1:{ cout<<\"\\请输入要修改的人的姓名:\";cin>>name;//找到单个学生直接删除 if(te=FindItem(name,a)) { if(te==1) { a[0]->Next->Input(); cout<<\"修改成功!\"<Next->Show(); } cout<<\"\\需要修改哪个学生的信息,请选择:\"; cin>>t; a[t-1]->Next->Input(); cout<<\"修改成功!\"<- 20 - / 28

学生成绩管理系统设计

{ cout<<\"\\没有找到!\"<>Id; if(p=FindID(Id)) { p->Next->Input(); cout<<\"修改成功!\"<//删除信息

void Studentmessage::RemoveItem() {

char name[20];int k=0,te,x,t;

Student * p=NULL,*temp=NULL,*a[6];

cout<<\"\\n\\*********************************\\n\";

cout<<\"\\※ 1.按学生的姓名删除 ※\\n\\※ 2.按学生学号删除 ※\";

cout<<\"\\n\\*********************************\\n请选择:\"; cin>>x; switch(x) {

case 1: { cout<<\"\\请输入要删除的学生的姓名:\";cin>>name; if(te=FindItem(name,a)) { if(te==1) //找到单个学生直接删除 { temp=a[0]->Next; a[0]->Next=a[0]->Next->Next; delete temp; cout<<\"\\删除成功!\"<- 21 - / 28

学生成绩管理系统设计

cout<<\"第\"<Next->Show(); } cout<<\"\\需要删除哪个学生的信息,请选择:\"; cin>>t; temp=a[t-1]->Next; a[t-1]->Next=a[t-1]->Next->Next; delete temp; cout<<\"\\删除成功!\"<>Id; if(p=FindID(Id)) { temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<\"\\删除成功!\"<//统计当前链表

int Studentmessage::ListCount() {

if(! Head) return 0; int n=0;

for(Student * p=Head->Next;p!=End;p=p->Next) { n++; }

return n; }

//对当前链表进行排序 void Studentmessage::Sort() {

- 22 - / 28

学生成绩管理系统设计

cout <<\"Sorting...\"<Student *p1=NULL,*p2=NULL,*temp=new Student; int n=Studentmessage::ListCount(); if(n<2) return;

for(p1=Head->Next;p1!=End;p1=p1->Next) for(p2=p1->Next;p2!=End;p2=p2->Next) { if(p1->sum>p2->sum) { strcpy(temp->name,p1->name); strcpy(temp->Id,p1->Id); temp->Date=p1->Date; temp->Age=p1->Age; temp->Cnum=p1->Cnum; temp->Mnum=p1->Mnum; temp->Enum=p1->Enum; temp->sum=p1->sum; strcpy(p1->name,p2->name); strcpy(p1->Id,p2->Id); p1->Date=p2->Date; p1->Age=p2->Age; p1->Cnum=p2->Cnum; p1->Mnum=p2->Mnum; p1->Enum=p2->Enum; p1->sum=p2->sum; strcpy(p2->name,temp->name); strcpy(p2->Id,temp->Id); p2->Date=temp->Date; p2->Age=temp->Age; p2->Cnum=temp->Cnum; p2->Mnum=temp->Mnum; p2->Enum=temp->Enum; p2->sum=temp->sum; } }

cout <<\"排序完成!\"<//保存函数

void Studentmessage::Save() {

out.open(\"sort.txt\");

for(Student *p=Head->Next;p!=End;p=p->Next)

out<name<<\"\\"<Id<<\"\\"<Date<<\"\\"<Age<<\"\\"<Cnum<<\"\\" <Mnum<<\"\\"<Enum<<\"\\"<sum<<'\\n'; out.close(); }

//主函数 int main() {

int x,i=0,quit=0;

- 23 - / 28

学生成绩管理系统设计

cout<<\"\\※※※※※※※※※※※※※※※※※※※※※※※※※※\"<cout<<\"\\☆☆☆☆☆【 欢迎进入学生成绩管理系统 】☆☆☆☆☆\"<cout<<\"\\※※※※※※※※※※※※※※※※※※※※※※※※※※\\n\"<if(code()!=4) { cout<<\"\\输入次数已到!\\n\";return 0; }

Studentmessage Grade;

cout<<\"\\按任意键开始……\\n\"; getch(); while(!quit) { system(\"cls\"); Grade.ShowMenu(); cin>>x; switch(x) { case 0:quit=1;break; case 1:Grade.AddItem();break; case 2:Grade.Display();break; case 3:Grade.Sort();break; case 4:Grade.Find();break; case 5:Grade.RemoveItem();break; case 6:Grade.ModifyItem();break; } }

return 0; }

- 24 - / 28

因篇幅问题不能全部显示,请点此查看更多更全内容