/*
*程序的版权和版本声明部分:
*Copyright(c)2013,烟台大学计算机学院学生
*All rights reserved.
*文件名称:
*作者:田成琳
*完成日期:2013年 12月4 日
*版本号:v1.0
*对任务及求解方法的描述部分:
*输入描述: 无
*问题描述:给定10个同学的姓名和成绩,进行成绩排序
*程序输出:排序后的姓名及成绩
*问题分析:
*算法设计:
*/
#include <iostream>
#include<cstring>
#include<fstream>
void ScoreInput(int[][3],int);
void JiSuanSumAndCout(int[][3],int);
using namespace std;
int main()
{
int score[100][3],num;
cout<<"请输入学生人数:"<<endl;
cin>>num;
ScoreInput(score,num);
JiSuanSumAndCout(score,num);
return 0;
}
void ScoreInput(int score[][3],int num)
{
int i,j;
ifstream infile("D:\\t.txt",ios::in);
for(i=0;i<num;i++)
{
cout<<"请输入第"<<i+1<<"名学生成绩:"<<endl;
cout<<"math: "<<"english: "<<"c++: "<<endl;
for(j=0;j<3;j++)
{
infile>>score[i][j];
}
cout<<endl;
}
}
void JiSuanSumAndCout(int score[][3],int num)
{
int i,j,sum[100]={0},msum=0,esum=0,csum=0,mmax=-1,emax=-1,cmax=-1,mmin=999,emin=999,cmin=999;
int mmaxx,mminx,emaxx,eminx,cmaxx,cminx;
double mave,eave,cave;
for(i=0;i<num;i++)
{
for(j=0;j<3;j++)
{
sum[i]+=score[i][j];
}
}
for(i=0;i<num;i++)
{
if(score[i][0]>mmax)
{
mmax=score[i][0];
mmaxx=i;
}
if(score[i][0]<mmin)
{
mmin=score[i][0];
mminx=i;
}
if(score[i][1]>emax)
{
emax=score[i][1];
emaxx=i;
}
if(score[i][1]<emin)
{
emin=score[i][1];
eminx=i;
}
if(score[i][2]>cmax)
{
cmax=score[i][2];
cmaxx=i;
}
if(score[i][3]<cmin)
{
cmin=score[i][3];
cminx=i;
}
msum+=score[i][0];
esum+=score[i][1];
csum+=score[i][2];
mave=msum/num;
eave=esum/num;
cave=csum/num;
}
for(i=0;i<num;i++)
{
cout<<"第"<<i+1<<"名同学的总分为: "<<sum[i]<<endl;
}
cout<<"math最高分为: "<<mmax<<" 学号为: "<<mmaxx+1<<",最低分为: "<<mmin<<" 学号为: "<<mminx+1<<",平均成绩为:"<<mave<<endl;
cout<<"english最高分为:"<<emax<<" 学号为: "<<emaxx+1<<",最低分为: "<<emin<<" 学号为: "<<eminx+1<<",平均成绩为:"<<eave<<endl;
cout<<"c++最高分为: "<<cmax<<" 学号为: "<<cmaxx+1<<",最低分为: "<<cmin<<" 学号为: "<<cminx+1<<",平均成绩为:"<<cave<<endl;
}
运行结果:
心得体会: