本程序由博主自己编成,姓名可以按照自己的姓名来编辑。
#include <bits/stdc++.h>
using namespace std;
const int MAX_R=100; //最大学生数
const int MAX_C=10; //最大课程数
float scores[MAX_R][MAX_C];
float sum[MAX_R],aver[MAX_R]; //总分、平均分
long id[MAX_R]; //存放学号
char name[MAX_R][15]; //存放姓名
int m; //存放课程数
int input()
{
int i,n=0;
float t;
do{
cout <<"输入课程数(<=" <<MAX_C <<"):";
cin >>m;
}while(m<1 || m>10);
cout <<"输入第 " <<n+1 <<" 个学生的学号(0 表示输入结束):";
cin >>id[n];
while(id[n] && n<MAX_R){
cout <<"输入第 " <<n+1 <<" 个学生的姓名:";
cin >>name[n];
t=0;
for(i=0; i<m; i++){
cout <<"输入第 " <<n+1 <<" 个学生的第 " <<i+1 <<" 门课的成绩:";
cin >>scores[n][i];
t+=scores[n][i];
}
sum[n]=t;
aver[n]=t/m;
n++;
cout <<"输入第 " <<n+1 <<" 个学生的学号(0 表示输入结束):";
cin >>id[n];
}
return n;
}
void compute(int n) //计算个人总分和平均分
{
int i,j;
float t;
cout <<setw(10) <<"学号" <<setw(10) <<"姓名" <<setw(8) <<"总分" <<setw(8) <<"平均分\n";
for(i=0; i<n; i++){
t=0;
for(j=0;j<m;j++){
t+=scores[i][j];
}
sum[i]=t;
aver[i]=t/m;
cout <<setw(10) <<id[i] <<setw(10) <<name[i] <<setw(8) <<sum[i] <<setw(8) <<aver[i] <<endl;
}
}
void displayFirst(int n)
{
int i,k;
float t=-1;
for(i=0; i<n; i++)
if(sum[i]>t)
t=sum[i], k=i;
cout <<"总分第一名:\n";
cout <<id[k] <<" " <<name[k] <<" " <<sum[k] <<" " <<aver[k] <<endl;
}
void displayLast(int n)
{
int i,k;
float t=100000;
for(i=0; i<n; i++)
if(sum[i]<t)
t=sum[i], k=i;
cout <<"总分最后一名:\n";
cout <<id[k] <<" " <<name[k] <<" " <<sum[k] <<" " <<aver[k] <<endl;
}
void search(int n)
{
long xh=0;
char nm[15]={0};
int i;
cout<<"输入要查找学生的学号或姓名:";
cin >>nm;
xh=atol(nm);
for(i=0; i<n; i++){
if(id[i]==xh || strcmp(name[i],nm)==0){
break;
}
}
if(i<n){
cout <<"学号:"<<id[i] <<" 姓名:" <<name[i]<<" 总分:" <<sum[i] <<" 平均分:" <<aver[i] <<endl;
}
else{
cout <<"没有你要找的学生信息\n";
}
}
int main(){
int menu_id=5;
int n=0;
char ch;
while(1){
cout<<"*********我的成绩管理系统*********"<<endl;
cout<<"本程序由XXX设计,版权所有,不得抄袭!"<<endl;
cout<<"1. 输入成绩"<<endl;
cout<<"2. 汇总成绩"<<endl;
cout<<"3. 最高分和最低分"<<endl;
cout<<"4. 查询个人成绩信息"<<endl;
cout<<"5. 退出系统"<<endl;
cout<<"请选择(输入以上数字编号)";
cin>>menu_id;
switch(menu_id){
case 1:{
n=input();
cout <<n <<endl;
break;
}
case 2:{
compute(n);
cout<<"已经完成汇总!\n";
break;
}
case 3:{
displayFirst(n);
displayLast(n);
break;
}
case 4:{
search(n);
break;
}
default:{
break;
}
}
if(menu_id==5){
break;
}
cout <<"打一键继续……\n";
cin.ignore();
cin.get(ch);
}
}