//********************************************************************************************
//*程序作者:冰糖
//*完成日期:2019年3月8日
//*章 节:实验二
//*题 号:3
//*题 目:学生成绩统计:
//* 从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实现下列功能:
//* (1)统计不及格人数并打印不及格学生名单;
//* (2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;
//* (3)统计各分数段的学生人数及所占的百分比。
//* 注:将成绩分为六个分数段,60分以下为第0段,60~69为第1段,70~79为第2段,80~89为第3段,90~99为第4段,100分为第5段。
//* 编程要求:
//* (1).较好的用户输入输出提示信息
//* (2).使用子函数来实现上述各个功能
//* (3).最好不要使用全局变量
//********************************************************************************************
#include<iostream>
using namespace std;
#include<iomanip>
int main()
{void Percent(float allGrades[],int m); void step(float allGrades[],float aver,int m);int i,m;float allGrades[30],aver=0;cout<<"请输入一个班学生某门课的成绩(每输一次按一下回车,输入的成绩为负数时将结束输入):"<<endl;for(i=0;i<30;i++){cout<<i+1<<":";cin>>allGrades[i];if(allGrades[i]<=0)break;} //首先输入信息 m=i;for(i=0;i<m;i++){aver=aver+allGrades[i]; } aver=aver/m; //计算平均分 step(allGrades,aver,m); //调用函数 Percent(allGrades,m);
}
void step(float allGrades[],float aver,int m)//计算 不及格还有与平均分相关的值
{int i,j=0,k=0,failNum=0,upNum=0;int failNames[30],upNames[30];for(i=0;i<m;i++){if(allGrades[i]>=aver) //高于平均分 {upNames[j++]=i+1;upNum++;}if(allGrades[i]<60) //不及格 {failNames[k++]=i+1;failNum++;}}cout<<"******************************************************************************************"<<endl;cout<<"不及格人数:"<<failNum<<endl; //输出信息 cout<<"不及格名单:";for(i=0;i<k;i++)cout<<failNames[i]<<"号 ";cout<<endl; cout<<"高于平均分的人数:"<<upNum<<endl; cout<<"高于平均分的人的名单:";for(i=0;i<j;i++)cout<<upNames[i]<<"号 ";cout<<endl;
}
void Percent(float allGrades[],int m) //计算百分比
{int i;float percent[6];for(i=0;i<m;i++){if(allGrades[i]<60)(percent[0])++;if((60<=allGrades[i])&&(allGrades[i]<70))(percent[1])++; if((70<=allGrades[i])&&(allGrades[i]<80))(percent[2])++; if((80<=allGrades[i])&&(allGrades[i]<90))(percent[3])++; if((90<=allGrades[i])&&(allGrades[i]<100))(percent[4])++; if(allGrades[i]==100)(percent[5])++; }for(i=0;i<6;i++){percent[i]=(percent[i]/m)*100;} cout<<"各个分段的人数:"<<endl;for(i=0;i<6;i++) {cout<<"第"<<i<<"段:"<<fixed<<setprecision(2)<<percent[i]<<"%"<<endl; }
}
本文发布于:2024-01-29 18:09:50,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170652299217321.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |