成绩处理2

来源:互联网 发布:linux移动文件权限不够 编辑:程序博客网 时间:2024/05/21 08:41
01./*                    02.* Copyright (c) 2012, 烟台大学计算机学院                    03.* All rights reserved.                    04.* 文件名称:test.cpp                    05.* 作者:晓晨                   06.* 完成日期:2012 年12月09日                    07.* 版本号:v1.0                    08.*                    09.* 输入描述:无                    10.* 问题描述:定义数组,给定成绩                  11.* 程序输出:三门课的成绩和总分         12.* 问题分析:无                   13.* 算法设计:略                    14.*/           #include<iostream>#include<cmath>#include<string>using namespace std;void input(double s[][4],int n); double max(double s[][4],int n,int i); double min(double s[][4],int n,int i);double avg(double s[][4],int n,int i);double stdev(double s[][4],int n,int i);output_result(double s[][4],int n);int main(){int i,num;string temp;double score[100][4];string course[4]={"高等数学","英语","C++","总分"};cout<<"输入学生人数:";cin>>num;cout<<"输入学生成绩(按高数、英语、C++的顺序依次输入:)"<<endl;for(i=0;i<num;++i){cin>>score[i][0]>>score[i][1]>>score[i][2];score[i][3]=score[i][0]+score[i][1]+score[i][2];}cout<<"输入的学生成绩为:"<<endl;cout<<"学号\t高数\t英语\tC++\t总分"<<endl;for(i=0;i<num;++i){cout<<i<<'\t'<<score[i][0]<<'\t';cout<<score[i][1]<<'\t';cout<<score[i][2]<<'\t';cout<<score[i][3]<<endl;}for(i=0;i<4;++i){cout<<course[i]<<"的最高成绩是"<<max(score,num,i)<<", ";cout<<"最低成绩是"<<min(score,num,i)<<", ";cout<<"平均成绩是"<<avg(score,num,i)<<", ";cout<<"成绩的标准偏差是"<<stdev(score,num,i)<<endl;}output_result(score,num);return 0;}double max(double s[][4],int n,int j){double m=s[0][j];for(int i=1;i<n;++i)if (m<s[i][j]) m=s[i][j];return m;}double min(double s[][4],int n,int j){double m=s[0][j];for(int i=1;i<n;++i)if (m>s[i][j]) m=s[i][j];return m;}double avg(double s[][4],int n,int j){double sum=s[0][j];for(int i=1;i<n;++i)sum+=s[i][j];return sum/n;}double stdev(double s[][4],int n,int j){double a,x,sum=0;a=avg(s,n,j);for(int i=0;i<n;i++)      {          x=s[i][j]-a;          sum+=x*x;      }      return sqrt(sum/(n-1));  }output_result(double s[][4],int n){double m=max(s,n,3);int i,c=0;bool first=true;cout<<"总分最高分为"<<m;for(i=0;i<n;++i){if(s[i][3]==m)++c;}cout<<",有"<<c<<"人达到最高分,他们的学号是:";for(i=0;i<n;++i){if(s[i][3]==m)if(first){cout<<i;first=false;}else{cout<<"、"<<i;}}cout<<endl;m=min(s,n,3);c=0;first=true;cout<<"总分最低分为"<<m;for(i=0;i<n;++i){if(s[i][3]==m) ++c;}cout<<",有"<<c<<"人达到最低分,他们的学号是:";for(i=0;i<n;++i){if(s[i][3]==m)if(first){cout<<i;first=false;}else{cout<<"、"<<i;}}cout<<endl;}


运行结果:

心得体会:跟着老师好好学。。。

原创粉丝点击