求一个C++程序~急!~!!!!~要求如下~好的再加分!

学生成绩管理程序
设计目的:实现简单的学生成绩管理系统,在Visual C++ 6.0中进行程序编码、测试、及运行通过。
问题描述:编制一个统计学生考试分数的管理程序,设学生成绩以一个学生一个记录的形式存储,每位学生记录包含的信息有:姓名,学号和数学、英语、计算机三门功课的成绩。
基本要求:
(1) 从键盘输入20个学生的各项信息;
(2) 求出各门课程的总分,平均分;
(3) 按姓名寻找其记录并显示,如输入“张三”,即可输出该同学的学号和三门功课的成绩;
(4) 按学号寻找其记录并显示,如输入“09001”,即可输出该同学的姓名和三门功课的成绩;
(5) 浏览全部学生的各项信息;
(6) 按总分由高到低显示学生信息等。
功能实现:
(1) 上述各功能请分别用函数实现;
(2) 输入输出要有必要的提示说明;
(3) 学生记录用结构体数组实现。如:
struct record
{
char name[20]; /* 姓名 */
char code[20]; /* 学号 */
int mathmark; /* 数学课程成绩 */
int englishmark; /* 英语课程成绩 */
int compmark; /* 计算机课程成绩 */
}stu[20];

帮你写好了,也注释得很清楚,代码:
/*学生成绩管理程序
设计目的:实现简单的学生成绩管理系统,在Visual C++ 6.0中进行程序编码、测试、及运行通过。
问题描述:编制一个统计学生考试分数的管理程序,设学生成绩以一个学生一个记录的形式存储,每位学生记录包含的信息有:姓名,学号和数学、英语、计算机三门功课的成绩。
基本要求:
(1) 从键盘输入20个学生的各项信息;
(2) 求出各门课程的总分,平均分;
(3) 按姓名寻找其记录并显示,如输入“张三”,即可输出该同学的学号和三门功课的成绩;
(4) 按学号寻找其记录并显示,如输入“09001”,即可输出该同学的姓名和三门功课的成绩;
(5) 浏览全部学生的各项信息;
(6) 按总分由高到低显示学生信息等。
功能实现:
(1) 上述各功能请分别用函数实现;
(2) 输入输出要有必要的提示说明;
(3) 学生记录用结构体数组实现。如:
*/

#include<iostream>
#include<string>
using namespace std;
struct record
{
char name[20]; /* 姓名 */
char code[20]; /* 学号 */
int mathmark; /* 数学课程成绩 */
int englishmark; /* 英语课程成绩 */
int compmark; /* 计算机课程成绩 */
}stu[20];
int total[20][3],avg[20][3];
int student_total[20],flag[20];

void input()//从键盘输入20个学生的各项信息
{
int i;
for(i=0;i<20;i++)
{
cout<<"输入第"<<i+1<<"个学生信息"<<endl;
cout<<"输入学生姓名:";
cin>>stu[i].name;
cout<<"输入学生学号:";
cin>>stu[i].code;
cout<<"输入数学成绩: ";
cin>>stu[i].mathmark;
cout<<"输入英语成绩: ";
cin>>stu[i].englishmark;
cout<<"输入计算机成绩: ";
cin>>stu[i].compmark;
cout<<endl;
}
}
void total_avg()//求出各门课程的总分,平均分
{
int i,j;
for(i=0;i<20;i++)
{
total[i][0]+=stu[i].mathmark;
total[i][1]+=stu[i].englishmark;
total[i][2]+=stu[i].compmark;
student_total[i]=stu[i].mathmark+stu[i].englishmark+stu[i].compmark;
}
for(i=0;i<20;i++)
for(j=0;j<3;j++)
avg[i][j]=total[i][j]/20;
}

void find_by_name(char *p)//按姓名寻找其记录并显示,如输入“张三”,即可输出该同学的学号和三门功课的成绩
{
int i;
for(i=0;i<20;i++)
if(strcmp(stu[i].name,p)==0)
{
cout<<"学号\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
cout<<stu[i].code<<"\t"<<stu[i].mathmark<<"\t"<<stu[i].englishmark<<"\t"<<stu[i].compmark<<endl;
break;
}
}

void find_by_code(char *p)//按学号寻找其记录并显示,如输入“09001”,即可输出该同学的姓名和三门功课的成绩
{
int i;
for(i=0;i<20;i++)
if(strcmp(stu[i].code,p)==0)
{
cout<<"姓名\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
cout<<stu[i].name<<"\t"<<stu[i].mathmark<<"\t"<<stu[i].englishmark<<"\t"<<stu[i].compmark<<endl;
break;
}
}
void disp()//浏览全部学生的各项信息
{
int i;
cout<<"姓名\t"<<"学号\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
for(i=0;i<20;i++)
{
cout<<stu[i].name<<"\t"<<stu[i].code<<"\t"<<stu[i].mathmark<<"\t"<<stu[i].englishmark<<"\t"<<stu[i].compmark<<endl;
}
}

void dis_by_total()//按总分由高到低显示学生信息等
{
int i,j,n;
int temp1,temp2;
for(i=0;i<20;i++)flag[i]=i;
n=19;
while(n>0)
{
j=0;
for(i=0;i<n;i++)
if(student_total[i]<student_total[i+1])
{
temp1=student_total[i];
student_total[i]=student_total[i+1];
student_total[i+1]=temp1;
temp2=flag[i];
flag[i]=flag[i+1];
flag[i+1]=temp2;
j=i;
}
n=j;
}
cout<<"姓名\t"<<"学号\t"<<"数学\t"<<"英语\t"<<"计算机"<<endl;
for(i=0;i<20;i++)
{
cout<<stu[flag[i]].name<<"\t"<<stu[flag[i]].code<<"\t"<<stu[flag[i]].mathmark<<"\t"<<stu[flag[i]].englishmark<<"\t"<<stu[flag[i]].compmark<<endl;
}
}
int main()
{
char name[20];
char code[20];
cout<<"请输入学生信息!!"<<endl;
input();

cout<<"计算各门课程的总分,平均分!!"<<endl;
total_avg();
cout<<"\n请输入您要查找的名字:";
cin>>name;
find_by_name(name);

cout<<"\n请输入您要查找的学号:";
cin>>code;
find_by_code(code);

cout<<"\n显示所有学生信息:"<<endl;
disp();

cout<<"\n按总分由高到低显示学生信息!!"<<endl;
dis_by_total();
return 0;
}

执行结果:
请输入学生信息!!
输入第1个学生信息
输入学生姓名:tian
输入学生学号:0201
输入数学成绩: 90
输入英语成绩: 89
输入计算机成绩: 68

输入第2个学生信息
输入学生姓名:sing
输入学生学号:0202
输入数学成绩: 89
输入英语成绩: 78
输入计算机成绩: 96

输入第3个学生信息
输入学生姓名:rong
输入学生学号:0203
输入数学成绩: 65
输入英语成绩: 68
输入计算机成绩: 76

输入第4个学生信息
输入学生姓名:cai
输入学生学号:0204
输入数学成绩: 56
输入英语成绩: 45
输入计算机成绩: 75

输入第5个学生信息
输入学生姓名:su
输入学生学号:0205
输入数学成绩: 87
输入英语成绩: 90
输入计算机成绩: 78

输入第6个学生信息
输入学生姓名:zhou
输入学生学号:0206
输入数学成绩: 98
输入英语成绩: 97
输入计算机成绩: 90

输入第7个学生信息
输入学生姓名:xu
输入学生学号:0207
输入数学成绩: 89
输入英语成绩: 82
输入计算机成绩: 90

输入第8个学生信息
输入学生姓名:sun
输入学生学号:0208
输入数学成绩: 89
输入英语成绩: 90
输入计算机成绩: 96

输入第9个学生信息
输入学生姓名:gao
输入学生学号:0209
输入数学成绩: 78
输入英语成绩: 76
输入计算机成绩: 57

输入第10个学生信息
输入学生姓名:tu
输入学生学号:0210
输入数学成绩: 78
输入英语成绩: 67
输入计算机成绩: 75

输入第11个学生信息
输入学生姓名:ji
输入学生学号:0211
输入数学成绩: 95
输入英语成绩: 83
输入计算机成绩: 70

输入第12个学生信息
输入学生姓名:huang
输入学生学号:0212
输入数学成绩: 98
输入英语成绩: 99
输入计算机成绩: 100

输入第13个学生信息
输入学生姓名:zhang
输入学生学号:0213
输入数学成绩: 78
输入英语成绩: 86
输入计算机成绩: 75

输入第14个学生信息
输入学生姓名:liang
输入学生学号:0214
输入数学成绩: 99
输入英语成绩: 98
输入计算机成绩: 99

输入第15个学生信息
输入学生姓名:pan
输入学生学号:0215
输入数学成绩: 89
输入英语成绩: 95
输入计算机成绩: 90

输入第16个学生信息
输入学生姓名:xing
输入学生学号:0216
输入数学成绩: 67
输入英语成绩: 87
输入计算机成绩: 85

输入第17个学生信息
输入学生姓名:zun
输入学生学号:0217
输入数学成绩: 67
输入英语成绩: 86
输入计算机成绩: 90

输入第18个学生信息
输入学生姓名:zhu
输入学生学号:0218
输入数学成绩: 63
输入英语成绩: 86
输入计算机成绩: 75

输入第19个学生信息
输入学生姓名:zeng
输入学生学号:0219
输入数学成绩: 85
输入英语成绩: 75
输入计算机成绩: 76

输入第20个学生信息
输入学生姓名:han
输入学生学号:0220
输入数学成绩: 90
输入英语成绩: 89
输入计算机成绩: 97

计算各门课程的总分,平均分!!

请输入您要查找的名字:han
学号 数学 英语 计算机
0220 90 89 97

请输入您要查找的学号:0212
姓名 数学 英语 计算机
huang 98 99 100

显示所有学生信息:
姓名 学号 数学 英语 计算机
tian 0201 90 89 68
sing 0202 89 78 96
rong 0203 65 68 76
cai 0204 56 45 75
su 0205 87 90 78
zhou 0206 98 97 90
xu 0207 89 82 90
sun 0208 89 90 96
gao 0209 78 76 57
tu 0210 78 67 75
ji 0211 95 83 70
huang 0212 98 99 100
zhang 0213 78 86 75
liang 0214 99 98 99
pan 0215 89 95 90
xing 0216 67 87 85
zun 0217 67 86 90
zhu 0218 63 86 75
zeng 0219 85 75 76
han 0220 90 89 97

按总分由高到低显示学生信息!!
姓名 学号 数学 英语 计算机
huang 0212 98 99 100
liang 0214 99 98 99
zhou 0206 98 97 90
han 0220 90 89 97
sun 0208 89 90 96
pan 0215 89 95 90
sing 0202 89 78 96
xu 0207 89 82 90
su 0205 87 90 78
ji 0211 95 83 70
tian 0201 90 89 68
zun 0217 67 86 90
zhang 0213 78 86 75
xing 0216 67 87 85
zeng 0219 85 75 76
zhu 0218 63 86 75
tu 0210 78 67 75
gao 0209 78 76 57
rong 0203 65 68 76
cai 0204 56 45 75
Press any key to continue
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答