天天看点

第十三周项目2 成绩统计

/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:test.cpp
*作    者:anGelovEr 王坤
*完成日期:2014年11月23日
*版 本 号:v1.0
*
*问题描述:统计学生成绩。
*程序输出:最高分最低分平均分标准差。
*/
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int score[50]; //保存成绩的数组,不会超过50名
    int num,i=1,j,s,high=-1,low=101,sum=0,highc=0,lowc=0;
    double ave;//令i=1,是为了输出时显示第一个为第“一”位同学的成绩。
    cout<<"小组共有多少名同学?"<<endl;
    cin>>num;
    cout<<"请输入学生成绩:"<<endl;
    while(i<=num) //输入num名同学的成绩
    {
        cout<<"请输入第"<<i<<"位同学的成绩:";
        cin>>s;
        if(s>=0&&s<=100)  //成绩范围为0-100
        {
            score[i]=s;
            sum+=s;  //计算总和
            if(s>high)  //比较最高分最低分
                high=s;
            if(s<low)
                low=s;
            ++i;
        }
        else
            cout<<"请检查数据并重新输入学生成绩(0-100):"<<endl;  //输入错误后要重新输入
    }
    ave=sum/num;
    cout<<"最高成绩为:"<<high<<"分;"<<"最低成绩为:"<<low<<"分;"<<"平均成绩为:"<<ave<<"分。"<<endl;
    for(j=1; j<=num; j++) //求出并输出考得最高成绩和最低成绩人数
    {
        if(score[j]==high)
            highc++;
        if(score[j]==low)
            lowc++;
    }
    cout<<"取得最高成绩"<<high<<"的共有"<<highc<<"人,他们的学号为:";
    for(j=1; j<=num; j++)  //再次筛选出考得最高成绩和最低成绩的学号
    {
        if(high==score[j])
            cout<<j<<" ";
    }
    cout<<endl;
    cout<<"取得最低成绩"<<low<<"的共有"<<lowc<<"人,他们的学号为:";
    for(j=1; j<=num; j++)
    {
        if(low==score[j])
            cout<<j<<" ";
    }
    cout<<endl;
    double m=0;
    int x,y;
    for(j=1; j<=num; j++)
    {
        x=score[j]-ave;
        y=x*x;
        m+=y;
    }
    cout<<"标准偏差为:"<<sqrt(m/(num-1))<<endl;
    return 0;
}
           
第十三周项目2 成绩统计

知识点总结:数组这么用应该没问题。

学习心得:不知道说啥好啊……

继续阅读