成绩处理

来源:互联网 发布:175魔天宫任务数据 编辑:程序博客网 时间:2024/06/10 07:50
/* * 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称: score.cpp                          * 作    者:  李蒙                            * 完成日期: 2012 年 11 月 29 日* 版 本 号:     1.0     * 对任务及求解方法的描述部分* 输入描述:学生人数和成绩* 问题描述:(函数及数组的简单应用) 在数组score中将要存储某小组C++程序设计的成绩,请设计完成下面功能函数,并将它们组合成一个完整的应用:(1)输入小组人数及成绩;(2)输出该小组的最高成绩、最低成绩、平均成绩和成绩的标准偏差;(3)输出考得最高成绩和最低成绩的同学的人数及对应的学号(设成绩对应的下标即学号,可能有相同的成绩)* 程序输出:小组的最高成绩、最低成绩、平均成绩和成绩的标准偏差;最高成绩和最低成绩的同学的人数及对应的学号*/#include <iostream>#include <Cmath>using namespace std;int score[50];int num;void input_score();int get_max_score();int get_min_score();double get_avg_score();double get_stdev_score();int count(int);void output_index(int);int main(void){    int max_score,min_score;    cout<<"小组共有多少名同学?";    cin>>num;    cout<<endl<<"请输入学生的成绩:"<<endl;    input_score();    max_score=get_max_score();    cout<<endl<<"最高成绩为:"<<max_score<<",共有"<<count(max_score)<<"人。";    min_score=get_min_score();    cout<<endl<<"最低成绩:"<<min_score<<",共有"<<count(min_score)<<"人。";    cout<<endl<<"平均成绩为"<<get_avg_score();    cout<<endl<<"标准偏差为:"<<get_stdev_score();    cout<<endl<<"获最高成绩的学生(学号)有:";    output_index(max_score);    cout<<endl<<"获最低成绩的学生(学号)有:";    output_index(min_score);    return 0;}//input—score函数的功能是输入小组成员的成绩void input_score(){int i;for(i=0;i<num;i++)        do        {            cout<<"输入第"<<i+1<<"位同学的成绩:";            cin>>score[i];        }while(score[i]<0||score[i]>100);        return ;}//求最大值int get_max_score(){int i,max=0;for(i=0;i<num;i++){if(max<=score[i])max=score[i];}return max;}       //求最小值int get_min_score(){int i,min=score[0];for(i=0;i<num;i++){if(min>=score[i])min=score[i];}return min;          }//求平均值double get_avg_score(){double avg;int sum=0,n;for(n=0;n<num;n++){sum=sum+score[n];avg=sum/num;}return avg;}//求标准偏差double get_stdev_score(){double sum=0,avg,stdev;int i;avg=get_avg_score();for(i=0;i<num;++i){sum=pow((score[i]-avg),2)+sum;}stdev=sqrt(sum/(num-1));return stdev;}// count(int s)函数的功能是返回值score数组中为s的元素的个数int count(int s){int i,j=0;for(i=0;i<num;i++){if(score[i]==s)j=j+1;}return j;}// output_index函数的功能是输出score数组中值为s的元素的下标(index)//注意:值为s的元素可能有多个void output_index(int s){int i;for(i=0;i<num;++i){if(score[i]==s)cout<<i+1<<'\t';}return;} 


心得体会:细节!。。。

原创粉丝点击