您的位置:首页 > 其它

第十三周项目二成绩处理(选作 )

2014-11-22 15:43 148 查看
问题及代码:

/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作    者:郝俊宇
* 完成日期:2014年 11 月 22 日
* 版 本 号:v1.0
*
* 问题描述:在数组score中将要存储某小组C++程序设计的成绩,请设计实现下面的各功能函数,并在main函数中调用,组合成一个完整的应用:
(1)输入小组人数及成绩,要保证成绩在0-100之间;
(2)输出该小组的最高成绩、最低成绩、平均成绩;
(3)输出考得最高成绩和最低成绩的同学的人数;
(4)输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
(5)(选做)求出所有同学成绩的标准偏差,标准偏差公式为,其中为xi样本(即某同学成绩),x(上带一横)为均值(前面已经求出),N为样本数目;
* 输入描述:输入小组人数及成绩,要保证成绩在0-100之间;
* 程序输出:输出该小组的最高成绩、最低成绩、平均成绩;输出考得最高成绩和最低成绩的同学的人数;输出考得最高成绩和最低成绩的同学的学号(设数组下标即学号,可能有相同的成绩)。
*/
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;

int main(void )
{
int score[50];
int number,i,sum=0,max=-1,min=101,average;
cout<<"小组有多少人?"<<endl;
cin>>number;
cout<<"请输入每个人的成绩:"<<endl;
for(i=0;i<number;i++)
{
do
{
cout<<"第"<<i+1<<"个人的成绩为:";
cin>>score[i];
}
while(score[i]<0||score[i]>100);
if(min>score[i])
min=score[i];
if(max<score[i])
max=score[i];
sum=sum+score[i];
}
average=sum/number;
cout<<"最高成绩为:"<<max<<endl;
cout<<"最低成绩为:"<<min<<endl;
cout<<"平均成绩为:"<<average<<endl;
int j=0,k=0;
for(i=0;i<number;++i)
{
if(score[i]==max)
j++;
if(score[i]==min)
k++;
}
cout<<"考的最高成绩的人数为:"<<j<<",考的最低成绩的人数为:"<<k<<endl;
cout<<"考的最高成绩的同学的学号分别是:";
for(i=0;i<number;++i)
{
if(score[i]==max)
cout<<i+1<<" ";
}
cout<<endl;
cout<<"考的最低成绩的同学的学号是:";
for(i=0;i<number;++i)
{
if(score[i]==min)
cout<<i+1<<" ";
}
cout<<endl;
cout<<"标准偏差为:";
int p,q,h=0;
double s;
for(i=0;i<number;++i)
{
p=score[i]-average;
q=p*p;
h=h+q;
}
s=sqrt(h/(number-1));
cout<<s;
return 0;
}


运行结果:



知识点总结:

数组的应用

学习心得:

写了前四个,觉得选做的也挺简单的。就是忘记把标准偏差写成double型了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: