第十四周上机实践项目——成绩处理(函数版)

来源:互联网 发布:杀不死 知乎 编辑:程序博客网 时间:2024/05/19 02:00
/*             *程序的版权和版本声明部分:             *Copyright(c)2013,烟台大学计算机学院学生            *All rights reserved.            *文件名称:             *作者:刘中林             *完成日期:2013年 11月30日             *版本号:v1.0             *对任务及求解方法的描述部分:             *输入描述:输入看要求         *问题描述: 无   *程序输出: 成绩处理     *问题分析: 无            *算法设计:数组的应用             */#include <iostream>#include<cmath>#include<string>int score[50];//保存成绩的数组,不会超过50名并设为全局变量int num,i;//num为小组人数并设为全局变量void input_score();int get_max_score();int get_min_score();double get_avg_score();int count(int);//考的最高成绩和最低成绩的同学的人数void output_index(int);double get_stdev_score();using namespace std;int main(void){int max_score,min_score,avg_score;    cout<<"小组共有多少名同学?";    cin>>num;    cout<<"请输入学生成绩:"<<endl;input_score();//要求score在0-100之间    max_score=get_max_score();cout<<"最高成绩为:"<<max_score;min_score=get_min_score();    cout<<"最低成绩:"<<min_score;avg_score=get_avg_score();cout<<"平均成绩为:"<<avg_score<<'\n';    cout<<"取得最高成绩"<<max_score<<"的共"<<count(max_score)<<"人,"<<"他们的学号是:";output_index(max_score);cout<<endl;    cout<<"取得最低成绩"<<min_score<<"的共"<<count(min_score)<<"人,"<<"他们的学号是:";output_index(min_score);cout<<endl;//printf("取得最高成绩%d的共%d人,他们的学号是:%d\n",max_score,count(max_score),output_index(max_score));//cout<<"取得最高成绩"<<max_score<<"的共"<<count(max_score)<<"人,他们的学号是:"<<output_index(max_score)<<endl;    //printf("取得最高成绩");cout<<min_score<<"的共"<<count(min_score)<<"人,他们的学号是:"<<output_index(min_score)<<endl;cout<<"标准偏差为:"<<get_stdev_score()<<endl;    return 0;}void input_score(){for(i=0;i<num;i++){cout<<"输入第"<<i<<"位同学的成绩:";cin>>score[i];if(score[i]<0||score[i]>100){cout<<"输入第"<<i<<"位同学的成绩为:";cin>>score[i];}}}int get_max_score()//求出并输出最高成绩{int max=0;    for(i=0;i<num;i++){if(score[i]>max){max=score[i];}}return max;}int get_min_score()//最低成绩{int min=101;for(i=0;i<num;i++){if(score[i]<min){            min=score[i];}}return min;}double get_avg_score()//平均成绩{int sum=0,avg;for(i=0;i<num;i++){        sum+=score[i];avg=sum/num;}return avg;}int count(int s) //求出并输出考得最高成绩和最低成绩人数{    int i=0,z=0;    for(i=0;i<num;i++)    {        if(score[i]==s)            z++;    }    return z;}void output_index(int s)// 学号{    int i=0;    for(i=0;i<num;i++)    {        if(score[i]==s)            cout<<i+1<<" ";    }}double get_stdev_score() //求出并输出标准偏差(选做){    int i;    double s,avg,sum=0,sum1=0;    for(i=0;i<num;i++)    {        sum+=score[i];    }    avg=sum/num;    for(i=0;i<num;i++)    {        sum1+=pow((score[i]-avg),2);    }    s=sqrt(sum1/(num-1));    return s;}


*样例输出:

*心得体会:一次次的尝试才弄出来咯。。看改动就知道咯。。

原创粉丝点击