问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

毕业论文请指教

发布网友 发布时间:2022-04-27 06:19

我来回答

2个回答

热心网友 时间:2022-04-12 16:52

摘要

本系统为学生成绩管理系统。采用的开发工具是 C++运行环境。 使用的技术有:数据库的访问;系统的查询。学生成绩管理系统是一个教育单位不可缺少的部分,使用计算机对学生成绩进行管理,具有手工管理所无法比拟的优点。例如检索迅速、查找方便、运行速度快、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、系统化、网络化、正规化管理的重要途径。
信息管理系统(MIS)是进行信息的采集、存储、加工、使用、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理,这种管理方式存在着许多缺点,如:效率低、保密性差,可操作性低,另外时间一长,将产生大量的文件和数据,这对于查找、更新、储存和维护都带来了不少的困难。
现在有一个趋势,编译器厂商试图把其特有的“对象模型”和图形界面(GUI)细节推销给用户。比如微软的COM和Inprise的类属性“properties”。对于用户来说,这既不必要,也不情愿。我所希望看到的程序库,应该是用标准C++打造,界面灵活,值得信赖的程序库。通常,这些界面应该是平台无关的。C++的表达能力极强,即使不使用大量的宏,也应该足以达成这一要求。就算有些地方无法百分之百的遵守这一原则,也应该将对于平台和厂家的依赖性*起来。这个目标的完成情况,可以反映软件工具产业对于应用程序开发行业的关注程度。我感觉目前对于那些独立的、跨平台厂商来说,并不存在相应的市场。如果能够建立这样的市场,也许能够促进厂商们为客户做出“真正有用的”产品。

关键词:学生、成绩、查询、管理。

前言

随着计算机技术的飞速发展,计算机在日常管理中应用迅速得到了普及,不久的将来将成为人们生活中不可或缺的一部分,利用计算机进行学生成绩信息的管理势在必行。本系统结合当前学校的实际,经过实际的需求分析,采用功能强大的C++作为开发工具而开发出来的单机版学籍管理系统。该系统适用性强,可操作性强,简单易行。
整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,该系统定义添加、插入、查找、统计、删除、排序、修改成员函数,定义学生类数组和定义一个整型全局变量来记录学生,形成顺序表。插入,删除用顺序表的运算来实现,把姓名和学号都定义为String类变量有利于同时查找,排序使用冒泡法排序,打印姓名不为空的学生来做统计,输入姓名查询出学生后再重新给此学生成绩赋值来实现修改。经过实际使用证明,本文所设计的学生成绩管理系统可以满足学校学生成绩管理方面的需要。
学生成绩管理系统的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,操作麻烦,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,比手工管理有着无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套成绩管理软件成为很有必要的事情,在下面的各章中我们将以开发一套学生成绩管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。下面就让我们开始正文的介绍。

第一章 系统的概述
系统概述:
本系统为学生成绩管理系统,是一个具有综合性学校学生成绩管理系统,它集成了学生成绩的添加,学生成绩的查询,学生成绩的统计,学生的成绩的排序,修改与删除等多种功能,其开发主要包括数据库的建立和维护及查询,修改,排序,统计等功能的实现,因而具有较强的实用性,先进性和可操作性。
1,1系统及其需求分析
1,1,1系统需求
对于一个综合性较强的学校,我校是专科本科于一体的多层次,多功能,综合型学校,未来的几年我学院将更进一步的发展,全院的所有成员都在为学院的更上新台阶而努力奋斗着,2007年通过教育部专家组的检查评估,我院(郑州经济管理干部学院)和纺专已经联合升本——河南工程学院,成为河南省普通本科学校.到目前到止,学校对学生成绩的管理工作仍然是以电子表格Excel2000为主,由于近几年学校的快速发展,招生规模原来越大,在校学生已达到几万多人,这样学生成绩管理,特别是查找学生,学生统计,学生的修改,删除,排序等带来一定的操作性困难,也给我校老师带来了很多的麻烦,教务处管理员急切希望开发出符合我校实际的学生成绩管理系统.
通过调查分析,要求该系统具有以下功能:
由于操作人员的计算机操作水平相对较差,要求有良好的人机界面.
由于该系统的使用要有数据安全性,要求有较好的用户权限管理.
原始数据的处理,简单方便.
方便的数据查询,支持多条件查询.
方便数据输出报表的打印.
数据主要计算自动完成,尽量减少人工干预.
1,1,2可行性分析
目的:
可行性研究的目的是以最小的代价在尽可能的时间内确定问题是否能解决.能及时的有效的操作,为操作者带来更大的便利,节省更多的时间,尽可能的使操作人性化,简单化,高效化。通过课程设计培养了我的动手能力以及综合运用所学的C++语言基础理论,基础知识,基本技能,进行程序分析和程序开发,提高在实际开发中解决问题的能力,达到了能够利用C++语言进行应用程序的规划,分析,设计和实施,更能进一步使我对这门语言有深刻的理解和更好的得到巩固,更能对我所学的知识得到检验。
经济上的可行性:
由于现在我校为各办公室配备了微机,而且用于学生成绩管理的微机都是P4级的机器,在存储量,速度方面都能满足数据库运行的要求.利用这个系统也可以节省不必要的开支。
技术上的可行性:
由于本系统管理的对象实体是:学生成绩的删除,修改,查询,替换,统计等,他们之间通过学生可以联系起来,涉及的计算过程不是很复杂,在技术难度方面,由于有指导老师的指导和图书馆有丰富的相关参考文献,特别是网上资料丰富,参考一些功能模块程序的设计的系统语言几代码,以及这些年来我从事C/C++中学习的知识以及自己的实际操作经验总结,本系统目标的实现是完全可以的.
本系统的设计是在C++中文版环境下,使用C/C++开发成功.它可运行于C++相关平台的数据库开发系统.C++它不仅可以简化数据库管理,而且应用程序的开发流程更为合理;它使组织数据,定义数据库规则和建立应用程序等工作变行简单易行,用户可以快速地创建表单,查询,修改和统计学生的信息.

1,2系统设计背景
21世纪以来,人类经济高速发展,人们的生活发生了日新月异的变化,特别是计算机的应用及普及;已经深入到*,经济,生活的各个领域,便人们从过去繁复的手工劳动中得以解脱.科学技术的发展决定了我们必须利用网络,利用科技来解决显示生活中许多问题,学校信息管理系统软件为学校学生成绩管理部门带来了极大方便;因此,开发一套完善的学生学籍管理系统显得尤为必要.

1,3系统功能简介
本系统适用于大中专院校,其功能主要分为五大类:
系统维护:维护系统的正常运行和安全性设置,包括数据备份,数据恢复,信息的查询,修改,删除和统计等.
数据处理:用于对插入学生,查找学生,删除学生及删除信息等数据录入,是数据查询,报表的主要数据来源.

第二章 怎样开发一个学生成绩管理系统

2.1 编程环境的选择
C/C++应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。C/C++语言提供了简单的语言运行环境,利用这些代码可用于设计界面和实现各种功能,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统C/C++是一个相对较好的选择。

2.2 关系型数据库的实现
Access2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。

2.3 二者的结合(DBA)
微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及c++在面向Internet的编程中却无任何优势可言.跨平台的电子商务软件最害怕顾及各种平台之间的天差地别的系统调用,最害怕时不时的由于内存泄漏而crash.c/c++的优势在这里却成为了劣势.即使在windows平台上开发基于windows dna的solution。
DATA 控件在数据库中的信息与将信息显示给用户看的C++程序之间架起了一座桥梁。我们可以设置DATA控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,DATA控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。DATA控件还提供了用来浏览不同记录的各种跳转按钮。将DATA控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。

第三章 C++语言的及其编程环境

3.1 C++语言概述
C++,这个词在中国*的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。
另外,就目前学习C++而言,可以认为他是一门独立的语言;他并不依赖C语言,我们可以完全不学C语言,而直接学习C++。根据《C++编程思想》(Thinking in C++)一书所评述的,C++与C的效率往往相差在正负5%之间。所以有人认为在大多数场合C++ 完全可以取代C语言(然而我们在单片机等需要谨慎利用空间、直接操作硬件的地方还是要使用C语言)。

3.2 C++语言发展
C++语言发展大概可以分为三个阶段:第一阶段从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击;第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员

3.3 C++的设计原则
• C++设计成静态类型、和C同样高效且可移植的多用途程序设计语言。
• C++设计成直接的和广泛的支援多种程序设计风格(程序化程序设计、资料抽象化、面向对象程序设计、泛型程序设计)。
• C++设计成给程序设计者更多的选择,即使可能导致程序设计者选择错误。
• C++设计成尽可能与C兼容,籍此提供一个从C到C++的平滑过渡。
• C++避免平台限定或没有普遍用途的特性。
• C++不使用会带来额外开销的特性。
• C++设计成无需复杂的程序设计环境。

3. 4 C++的Hello World程序
在使用兼容C89标准(也称为ANSI C)的编译器时,下面这个程序显示“Hello, world!”然后结束运行:
(事实上这并不是符合98标准[ISO C++]的C++程序,而且在多数编译器上这个程序也不能运行,若要在比较旧的编译器上编译该程序,应将iostream改为iostream.h)

#include <iostream>
int main()
{ std::cout << "Hello, world!\n";
return 0;}
在使用兼容C++99标准(ISO/IEC 14882-1998)的编译器时,下面的程序也是可以的:
#include <iostream>
using namespace std;
int main()
{ cout << "Hello, world!" << endl;
return 0;
}
根据ISO C++的规定,main函数的形式只能是
int main()
{ ...}
以及
int main(int argc,char * argv[])
{ ... }
尽管如此,但在大部份(其实是在Windows平台下的大部分)编译器上,
void main()
{ ... }
也被支持。

第四章 使用Access2000 实现关系型数据库

4.1 数据库的概念
数据库是一种存储数据并对数据进行操作的工具。数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。计算机的数据库可以分为两类:非关系数据库(flat-file)和关系数据库(relational)。关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。

4.2 新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。创建一个数据库结构的过程被认为是数据模型设计。
1. 标识需要的数据;
2. 收集被标识的字段到表中;
3. 标识主关键字字段;
4. 绘制一个简单的数据图表;
5. 规范数据;
6. 标识指定字段的信息;
7. 创建物理表。

4.3 实现数据库之间的联系
数据库之间的关系指明两个库之间共享一个共同的关键字值。一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。一个更高级的连接形式称为自连接。这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。数据库中有三种不同类型的关键字:主关键字、组合关键字和外关键字。在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。

第五章 系统总体规划

5.1 系统功能
功能分析:定义添加、插入、查找、统计、删除、排序、修改成员函数。定义学生类数组和定义一个整型全局变量来记录学生,形成顺序表。插入,删除用顺序表的运算来实现,把姓名和学号都定义为String类变量有利于同时查找,排序使用冒泡法排序,打印姓名不为空的学生来做统计,输入姓名查询出学生成绩后再重新给此学生成绩赋值来实现修改。
5.2 设计结构
设计结构:定义一个学生类包含(姓名 学号 成绩 学生序号 总成绩 平均成绩)成员变量和添加、插入、查找、统计、删除、排序、修改成员函数。定义学生类数组和一个整型全局变量来记录学生,形成顺序表。

5.3程序设计技巧
程序应用要点:
1.添加学生 或 插入学生时 请输入4个汉字或8个英文字母的姓名 学号输入10个以内数字
2.插入学生 时候按4看统计记住你要插入的序号 输入你要插入序号
3.其他操作看提示可完成
注释:系统的具体程序见附录

热心网友 时间:2022-04-12 18:10

程序主要涉及的内容:学生成绩管理系统 姓名、学号、成绩。功能:添加、删除、查找(姓名、学号)
统计、排序 平均分 总分、修改。

功能分析:定义添加、插入、查找、统计、删除、排序、修改成员函数。定义学生类数组和定义一个整型全局变量来记录学生,形成顺序表。插入,删除用顺序表的运算来实现,把姓名和学号都定义为String类变量有利于同时查找,排序使用冒泡法排序,打印姓名不为空的学生来做统计,输入姓名查询出学生后再重新给此学生成绩赋值来实现修改。

设计结构:定义一个学生类包含(姓名 学号 成绩 学生序号 总成绩 平均成绩)成员变量和添加、插入、查找、统计、删除、排序、修改成员函数。定义学生类数组和一个整型全局变量来记录学生,形成顺序表。

下面是程序编码:
/*
程序应用要点:
1.添加学生或插入学生时 请出入输入4个汉字或8个英文字母的姓名 学号输入10个以内数字
2.插入学生时候按4看统计记住你要插入的序号 输入你要插入序号
3.其他看提示完成
*/
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
const u=100;
class student{
private:
string name; //学生姓名
string xuehao; //学号定义为string类型有有利于 姓名学号同时查找
int l; //学生序号
int c; //c++成绩
int java; //java成绩
int english; //英语成绩
int zong; //总成绩
int pj; //平均成绩
public:
void add();//添加学生函数
void cr(); //插入学生函数
void cz(); //查找学生函数
void tj(); //统计学生函数
void sc(); //删除学生函数
void px(); //学生排序函数
void xg(); //成绩修改函数

}stu[u],*p;// 定义对象数组来装学生信息 指针调用函数
int ll=0; //全局变量统计共多少学生

int main()
{
cout<<" 学生成绩信息管理系统 "<<endl;
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;
int i;
while(i!=0) //i 不等于0时程序不中止
{
cout<<"请选择功能:"<<endl;
cin>>i;
switch(i)
{
case 1:p->add();break;
case 2:p->cr();break;
case 3:p->cz();break;
case 4:p->tj();break;
case 5:p->sc();break;
case 6:p->px();break;
case 7:p->xg();break;
}
}

return 0;
}

void student::add()//添加学生函数
{
for(int i=0;i<u;i++)
if(stu[i].name=="")//添加学生不覆盖原有的学生
{
cout<<"输入姓名:"<<endl;
cin>>stu[i].name;
cout<<"输入学号:"<<endl;
cin>>stu[i].xuehao;
cout<<"输入c++成绩:"<<endl;
cin>>stu[i].c;
cout<<"输入java成绩:"<<endl;
cin>>stu[i].java;
cout<<"输入英语成绩:"<<endl;
cin>>stu[i].english;
stu[i].zong=stu[i].c+stu[i].java+stu[i].english;
stu[i].pj=stu[i].zong/3;
stu[i].l=i+1;
ll++;
char j;
cout<<"y继续输入 n输入完成"<<endl;
cin>>j;
if(j=='n') //输入n跳出 任意键继续输入学生信息
break;
}
cout<<"添加完成"<<endl;
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;
}

void student::cr()//插入学生函数
{
int i,j;
cout<<"输入要插入的 序号:"<<endl;
cin>>i;
--i;
if(stu[i].name=="")//溢出不能插入
cout<<"不能插入请选择添加"<<endl;
else
if(i<=0||i>u)//插入范围出错
cout<<"插入范围出错"<<endl;
else
{
for(j=ll-1;j>=i;j--)
{
stu[j+1].name=stu[j].name;
stu[j+1].xuehao=stu[j].xuehao;
stu[j+1].c=stu[j].c;
stu[j+1].java=stu[j].java;
stu[j+1].english=stu[j].english;
stu[j+1].pj=stu[j].pj;
stu[j+1].zong=stu[j].zong;
stu[j+1].l=++stu[j].l;
}
cout<<"输入姓名:"<<endl;
cin>>stu[i].name;
cout<<"输入学号:"<<endl;
cin>>stu[i].xuehao;
cout<<"输入c++成绩:"<<endl;
cin>>stu[i].c;
cout<<"输入java成绩:"<<endl;
cin>>stu[i].java;
cout<<"输入英语成绩:"<<endl;
cin>>stu[i].english;
stu[i].zong=stu[i].c+stu[i].java+stu[i].english;
stu[i].pj=stu[i].zong/3;
stu[i].l=i+1;
ll++;
}
cout<<"插入完成"<<endl;
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;
}

void student::cz()//查找函数
{
string name;
cout<<"输入学号或姓名"<<endl;
cin>>name;
cout<<"序号"<<" 姓名"<<" 学号"<<" c++成绩"<<" java成绩"<<" 英语成绩"<<" 平均分"<<" 总分"<<endl;
for(int i=0;i<u;i++)
if(stu[i].name!="")//查找姓名不为空的
{
if(name==stu[i].xuehao||name==stu[i].name)
{
cout<<setw(4)<<stu[i].l<<setw(7)<<stu[i].name<<setw(12)<<stu[i].xuehao<<setw(9)<<stu[i].c;
cout<<setw(10)<<stu[i].java<<setw(10)<<stu[i].english<<setw(8)<<stu[i].zong<<setw(6)<<stu[i].pj<<endl;
break;
}
}
else
{
if(stu[i].name=="")
cout<<"没有这"<<name<<"个学生"<<endl;
break;
}
cout<<"查找完成"<<endl;
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;
}

void student::tj()//统计学生函数
{
int i;
cout<<"序号"<<" 姓名"<<" 学号"<<" c++成绩"<<" java成绩"<<" 英语成绩"<<" 平均分"<<" 总分"<<endl;
for(i=0;i<u;i++)
if(stu[i].name!="")//姓名为空的不统计
{
cout<<setw(4)<<stu[i].l<<setw(7)<<stu[i].name<<setw(12)<<stu[i].xuehao<<setw(9)<<stu[i].c;
cout<<setw(10)<<stu[i].java<<setw(10)<<stu[i].english<<setw(8)<<stu[i].zong<<setw(6)<<stu[i].pj<<endl;
}
cout<<"共用:"<<ll<<"个学生"<<endl;
cout<<"统计完成"<<endl;
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;
}

void student::sc()//删除学生函数
{
string name;
int i,j;
cout<<"请输入要删除的学生姓名或学号:"<<endl;
cin>>name;
for(i=0;i<u;i++)
{
if(name==stu[i].xuehao||name==stu[i].name)//查找姓名或学号求出i的值
{
for(j=i;j<=ll-1;j++)//删除的后一个覆盖前一个
{
stu[j].name=stu[j+1].name;
stu[j].xuehao=stu[j+1].xuehao;
stu[j].c=stu[j+1].c;
stu[j].java=stu[j+1].java;
stu[j].english=stu[j+1].english;
stu[j].pj=stu[j+1].pj;
stu[j].zong=stu[j+1].zong;
}
ll--;//删除学生 学生总个数减一
}
}
cout<<"删除"<<name<<"完成"<<endl;
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;
}

void student::px()//学生排序
{
cout<<"输入 1.总分升序排序 2.c++成绩升序排序 3.java成绩升序排序 4.英语升序排序"<<endl;
int i;
cin>>i;
switch(i)
{
case 1:
{
for(int i=0;i<u;i++)//冒泡法排序
{ for(int k=0;k<u;k++)
if(stu[k].zong<stu[k+1].zong)
{
string s;
int j;
s=stu[k].name;
stu[k].name=stu[k+1].name;
stu[k+1].name=s;

s=stu[k].xuehao;
stu[k].xuehao=stu[k+1].xuehao;
stu[k+1].xuehao=s;

j=stu[k].c;
stu[k].c=stu[k+1].c;
stu[k+1].c=j;

j=stu[k].java;
stu[k].java=stu[k+1].java;
stu[k+1].java=j;

j=stu[k].english;
stu[k].english=stu[k+1].english;
stu[k+1].english=j;

j=stu[k].pj;
stu[k].pj=stu[k+1].pj;
stu[k+1].pj=j;

j=stu[k].zong;
stu[k].zong=stu[k+1].zong;
stu[k+1].zong=j;
}
}
cout<<"序号"<<" 姓名"<<" 学号"<<" c++成绩"<<" java成绩"<<" 英语成绩"<<" 平均分"<<" 总分"<<endl;
for(i=0;i<u;i++)
if(stu[i].name!="")//姓名为空的不统计
{
cout<<setw(4)<<stu[i].l<<setw(7)<<stu[i].name<<setw(12)<<stu[i].xuehao<<setw(9)<<stu[i].c;
cout<<setw(10)<<stu[i].java<<setw(10)<<stu[i].english<<setw(8)<<stu[i].zong<<setw(6)<<stu[i].pj<<endl;
}
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;

}break;
case 2:
{
for(int i=0;i<u;i++)//冒泡法排序
{ for(int k=0;k<u;k++)
if(stu[k].c<stu[k+1].c)
{
string s;
int j;
s=stu[k].name;
stu[k].name=stu[k+1].name;
stu[k+1].name=s;

s=stu[k].xuehao;
stu[k].xuehao=stu[k+1].xuehao;
stu[k+1].xuehao=s;

j=stu[k].c;
stu[k].c=stu[k+1].c;
stu[k+1].c=j;

j=stu[k].java;
stu[k].java=stu[k+1].java;
stu[k+1].java=j;

j=stu[k].english;
stu[k].english=stu[k+1].english;
stu[k+1].english=j;

j=stu[k].pj;
stu[k].pj=stu[k+1].pj;
stu[k+1].pj=j;

j=stu[k].zong;
stu[k].zong=stu[k+1].zong;
stu[k+1].zong=j;
}
}
cout<<"序号"<<" 姓名"<<" 学号"<<" c++成绩"<<" java成绩"<<" 英语成绩"<<" 平均分"<<" 总分"<<endl;
for(i=0;i<u;i++)
if(stu[i].name!="")//姓名为空的不统计
{
cout<<setw(4)<<stu[i].l<<setw(7)<<stu[i].name<<setw(12)<<stu[i].xuehao<<setw(9)<<stu[i].c;
cout<<setw(10)<<stu[i].java<<setw(10)<<stu[i].english<<setw(8)<<stu[i].zong<<setw(6)<<stu[i].pj<<endl;
}
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;

}break;
case 3:
{
for(int i=0;i<u;i++)//冒泡法排序
{ for(int k=0;k<u;k++)
if(stu[k].java<stu[k+1].java)
{
string s;
int j;
s=stu[k].name;
stu[k].name=stu[k+1].name;
stu[k+1].name=s;

s=stu[k].xuehao;
stu[k].xuehao=stu[k+1].xuehao;
stu[k].xuehao=s;

j=stu[k].c;
stu[k].c=stu[k+1].c;
stu[k+1].c=j;

j=stu[k].java;
stu[k].java=stu[k+1].java;
stu[k+1].java=j;

j=stu[k].english;
stu[k].english=stu[k+1].english;
stu[k+1].english=j;

j=stu[k].pj;
stu[k].pj=stu[k+1].pj;
stu[k+1].pj=j;

j=stu[k].zong;
stu[k].zong=stu[k+1].zong;
stu[k+1].zong=j;
}
}
cout<<"序号"<<" 姓名"<<" 学号"<<" c++成绩"<<" java成绩"<<" 英语成绩"<<" 平均分"<<" 总分"<<endl;
for(i=0;i<u;i++)
if(stu[i].name!="")//姓名为空的不统计
{
cout<<setw(4)<<stu[i].l<<setw(7)<<stu[i].name<<setw(12)<<stu[i].xuehao<<setw(9)<<stu[i].c;
cout<<setw(10)<<stu[i].java<<setw(10)<<stu[i].english<<setw(8)<<stu[i].zong<<setw(6)<<stu[i].pj<<endl;
}
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;

}break;
case 4:
{
for(int i=0;i<u;i++)//冒泡法排序
{ for(int k=0;k<u;k++)
if(stu[k].english<stu[k+1].english)
{
string s;
int j;
s=stu[k].name;
stu[k].name=stu[k+1].name;
stu[k+1].name=s;

s=stu[k].xuehao;
stu[k].xuehao=stu[k+1].xuehao;
stu[k+1].xuehao=s;

j=stu[k].c;
stu[k].c=stu[k+1].c;
stu[k+1].c=j;

j=stu[k].java;
stu[k].java=stu[k+1].java;
stu[k+1].java=j;

j=stu[k].english;
stu[k].english=stu[k+1].english;
stu[k+1].english=j;

j=stu[k].pj;
stu[k].pj=stu[k+1].pj;
stu[k+1].pj=j;

j=stu[k].zong;
stu[k].zong=stu[k+1].zong;
stu[k+1].zong=j;
}
}
cout<<"序号"<<" 姓名"<<" 学号"<<" c++成绩"<<" java成绩"<<" 英语成绩"<<" 平均分"<<" 总分"<<endl;
for(i=0;i<u;i++)
if(stu[i].name!="")//姓名为空的不统计
{
cout<<setw(4)<<stu[i].l<<setw(7)<<stu[i].name<<setw(12)<<stu[i].xuehao<<setw(9)<<stu[i].c;
cout<<setw(10)<<stu[i].java<<setw(10)<<stu[i].english<<setw(8)<<stu[i].zong<<setw(6)<<stu[i].pj<<endl;
}
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;

}break;
}

}

void student::xg()//成绩修改函数
{
string name;
cout<<"输入学号或姓名"<<endl;
cin>>name;
for(int i=0;i<u;i++)
if(stu[i].name!="")//查找姓名不为空的
{
if(name==stu[i].xuehao||name==stu[i].name)
{
cout<<"输入c++成绩:"<<endl;
cin>>stu[i].c;
cout<<"输入java成绩:"<<endl;
cin>>stu[i].java;
cout<<"输入英语成绩:"<<endl;
cin>>stu[i].english;
stu[i].zong=stu[i].c+stu[i].java+stu[i].english;
stu[i].pj=stu[i].zong/3;
cout<<"序号"<<" 姓名"<<" 学号"<<" c++成绩"<<" java成绩"<<" 英语成绩"<<" 平均分"<<" 总分"<<endl;
cout<<setw(4)<<stu[i].l<<setw(7)<<stu[i].name<<setw(12)<<stu[i].xuehao<<setw(9)<<stu[i].c;
cout<<setw(10)<<stu[i].java<<setw(10)<<stu[i].english<<setw(8)<<stu[i].zong<<setw(6)<<stu[i].pj<<endl;
break;
}
}
else
{
if(stu[i].name=="")
cout<<"没有这"<<name<<"个学生"<<endl;
break;
}
cout<<"修改完成"<<endl;
cout<<"**********************************功能列表***********************************"<<endl;
cout<<"1.添加学生 2.插入学生 3.查找学生 4.学生统计 5.删除学生 6.排序 7.修改 0.退出"<<endl;
cout<<"*****************************************************************************"<<endl;
}
程序运行结果:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有类似xxxholic和恐怖宠物店的漫画吗 沂水滑雪场怎么走 沂水天然地下画廊景区交通指南 m果实能力 脑血管造影适应症 重仓大盘蓝筹股的基金,或加指数基金? 文言文 理穷言他 有托其妻子于其友而之楚游者的有是什么意思 有托其妻子于其友而之楚... 猫吃了毒老鼠,吐白沫,惊叫,走不稳 内存对手机性能有多重要 窗帘杆加支架要注意很多问题,都要注意什么问题呢? 谁有老式塑料35mm窗帘支架 急求:管理信息系统分析与设计 题目自定,要求:每人写一篇局域网组网相关技术的文章,字数不少于3000字... 作业管理系统(急!!!) 特急!学生学籍管理系统设计 中南林业科技大学教务管理系统毕业论文怎么选题 教务处选课系统怎么做 iPhone 不想更新系统怎么办? 一个类似于教务系统的小程序需要多少钱? ios10.2更新提示怎么取消 怎么用c#设计跟教务系统登录页面一样的功能 如何去掉ios10.2升级提示 用VS2010(ASP.NET4.0)做一个教务管理系统。要求包含登陆界面,学生板块和教师版块发邮 ios10.2误删cydia,电脑显示未越狱怎么办 如何使用ACCESS数据库软件设计教务排课系统对排课进行管理 苹果5s如何限制自动更新软件? 教务管理系统前台设计,用SQL sever 2005,C# 设计的一个系统,毕业答辩的时候老师大概会问什么问题? ios10.2系统重新更新一下怎么办 正方教务管理系统,那么垃圾,那么垃圾,那么垃圾。。。 如何选购窗帘杆 支架挑选很重要 窗帘架是什么东西? 窗帘杆加支架要注意什么 窗帘安装支架的挑选重要吗? 安装窗帘杆的支架用多长的钉 宿舍上铺的窗帘支架不锈钢和增厚烤漆支架哪个更好? 窗帘的配件有哪些? 会说话的安吉拉?是那个游戏,从哪里下载,我为什么没有找到退订 窗帘杆支架只上一颗螺丝可以吗? 三星手机能在哪个软件里下载我的会说话的安吉拉2 这种窗帘杆承受力多大超过2:5米中间要放支架吗。 哪里能下载 我的会说话的安吉拉 ,我下载过,是在百度搜索到下载的,结果每次都显示 下载失败,资源 窗帘杆支架订墙上好还是订房顶好 会说话的安吉拉歌曲怎样下载 如何变成一个手机黑客 窗帘杆支架用射钉枪固定结实吗 谁知道在哪下载我的会说话的安吉拉无限钻石版 我的会说话的安吉拉怎么下载 安窗帘支架打孔打到钢筋怎么办? 黑客是怎样入侵手机的