成绩处理---⒒

来源:互联网 发布:医疗器械软件测试标准 编辑:程序博客网 时间:2024/04/29 10:03

上机内容:数组学习与体验全局与局部变量

上机目的:体会,输出

/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作    者:刘杰 * 完成日期:2012 年12 月5  日 * 版 本 号:v1.0 * 输入描述:无* 问题描述:成绩输出* 程序输出:无* 问题分析:无* 算法设计:略 */ #include <iostream>#include<Cmath>#include<iomanip>using namespace std;void input_score(int scorce[],int num);int get_max_score(int score[],int num);int get_min_score(int score[],int num);int count(int max_score, int score[],int num );double get_stdev_score(int score[],int num);double get_avg_score(int score[],int num);void  output_index(int max_score,int score[],int num);int count(int min_score,int  score[],int num );int main(void){int score[50]; //将score 设为局部变量,通过数组名作函数参数,传递数组首地址,在函数中操作数组int num; //小组人数也设为局部变量,将作为函数的实际参数int max_score,min_score;cout<<"小组共有多少名同学?";cin>>num;cout<<endl<<"请输入学生成绩:"<<endl;input_score(score, num); //要求成绩在0-100 之间max_score=get_max_score(score, num);cout<<endl<<"最高成绩为:"<<max_score<<",共有"<<count(max_score, score, num )<<" 人。";min_score=get_min_score(score, num);cout<<endl<<"最低成绩为:"<<min_score<<",共有"<<count(min_score,score, num )<<" 人。";cout<<endl<<"平均成绩为:"<<get_avg_score(score, num);cout<<endl<<"标准偏差为:"<<get_stdev_score(score, num);cout<<endl<<"获最高成绩的学生(学号)有:";output_index(max_score,score, num);cout<<endl<<"获最低成绩的学生(学号)有:";output_index(min_score,score, num);cout<<endl;return 0;}//input_score 函数的功能是输入小组成员的成绩void input_score(int score[],int num){int i;for(i=1;i<=num;i++)do{cout<<"输入第"<<i<<" 位同学的成绩:";cin>>score[i];}while(score[i]<0||score[i]>100);return;}int get_max_score(int score[50],int num){// get_max_score()函数的功能是求出num 名同学的最高成绩int i,max=-9999;for(i=1;i<=num;i++)if(score[i]>=max){max=score[i];}return max;}int get_min_score(int score[50],int num){// get_min_score()函数的功能是求出num 名同学的最低成绩int i,min=9999;for(i=1;i<=num;i++)if(score[i]<=min){min=score[i];}return min;}double get_avg_score(int score[50],int num) {// get_avg_score()函数的功能是求出num 名同学的平均成绩int i,ave,he=0;    for(i=1;i<=num;i++){he+=score[i];}ave=he/num;return ave;}double get_stdev_score(int score[50],int num){// get_ stdev _score()函数的功能是求出num 名同学成绩的标准偏差int i,m,n,p,q;for(i=1;i<=num;i++)m=score[i]-get_avg_score( score, num);n=pow(m,2);p=n/(num-1);q=sqrt(p);return q;}// count(int s)函数的功能是返回值score 数组中为s 的元素的个数int count(int max_score,int  score[50],int  num ){int m=0,i;for(i=1;i<=num;i++)if(score[i]==max_score){++m;}return m;}// output_index 函数的功能是输出score 数组中值为s 的元素的下标(index)//注意:值为s 的元素可能有多个void output_index(int max_score,int score[50],int num){int i;for(i=1;i<=num;i++)if(score[i]==max_score){cout<<setw(5)<<i;}return;}


运行结果:

 

原创粉丝点击