当前位置:编程学习 > C/C++ >>

求高手用C++编写下面程序

输入一批学生某门课程考试的各题的分数,计算每个人的总分,统计各分数段0~49, 50~59, 60~69,70~79, 80~89, 90~100的人数及占总人数的百分比。
要求输入:课程名称,考试日期,学生班号,学生姓名,学号,课程考试得分。
输出要求:课程名称,考试日期,学生班号;各分数段的人数及百分比。
答案:/*输入一批学生某门课程考试的各题的分数,计算每个人的总分,统计各分数段0~49,
 50~59, 60~69,70~79, 80~89, 90~100的人数及占总人数的百分比。
要求输入:课程名称,考试日期,学生班号,学生姓名,学号,课程考试得分。
输出要求:课程名称,考试日期,学生班号;各分数段的人数及百分比。 */
#include <iostream>
#include <string>
using namespace std;

class Stu
{
public:
 Stu(){}
 ~Stu(){}
 string ClassName;
 string TestDate;
 string ClassNo;
 string name;
 string no;
 double T[10];//10题,题数自己随便定

 void input()//输入成绩
 {
  cout<<"输入课程名称:";
  cin>>ClassName;
  cout<<"输入考试日期:";
  cin>>TestDate;
  cout<<"输入学生班号:";
  cin>>ClassNo;
  cout<<"输入学生姓名:";
  cin>>name;
  cout<<"输入学生学号:";
  cin>>no;
  for(int i=0;i<10;i++)
  {
   cout<<"输入学生该课程第"<<i+1<<"题成绩:";
   cin>>T[i];
  }
  cout<<endl;
 }
 double getZF()//总分
 {
  double sum=0;
  for(int i=0;i<10;i++)
  {
   sum+=T[i];
  }
  return sum;
 }
};

class Info
{
public:
 Info()
 {
  for(int i=0;i<6;i++)
  {
   n[i]=0;
  }
  N=0;
 }
 string classname;
 string testdate;
 string classno;
 int n[6];
 int N;
};

void main()
{
 const int studentNum=3;//学生总人数,随便定
 Stu stu[studentNum];
 int i,j=1;
 Info info[studentNum];
 
 for(i=0;i<studentNum;i++)//输入
 {
  stu[i].input ();
 }
 info[0].classname =stu[0].ClassName ;
 info[0].testdate  =stu[0].TestDate;
 info[0].classno  =stu[0].ClassNo;

 for(i=0;i<studentNum;i++)//输出
 {
  cout<<endl;
  for(int k=0;k<j;k++)
  {
   if( stu[i].ClassName ==info[k].classname &&
    stu[i].TestDate ==info[k].testdate &&
    stu[i].ClassNo ==info[k].classno )
   {
    double ZF=stu[i].getZF();
    if(ZF<=49&&ZF>=0)
     info[k].n[0]++;
    else if(ZF<=59&&ZF>=50)
     info[k].n[1]++;
    else if(ZF<=69&&ZF>=60)
     info[k].n[2]++;
    else if(ZF<=79&&ZF>=70)
     info[k].n[3]++;
    else if(ZF<=89&&ZF>=80)
     info[k].n[4]++;
    else if(ZF<=100&&ZF>=90)
     info[k].n[5]++;
    info[k].N++;
   }
   else
   {
    j++;
    info[j-1].classname =stu[i].ClassName ;
    info[j-1].testdate =stu[i].TestDate ;
    info[j-1].classno =stu[i].ClassNo ;
   }
  }
 }
 for(i=0;i<j;i++)
 {
  cout<<endl;
  cout<<"课程名称:"<<info[i].classname<<endl;
  cout<<"考试日期:"<<info[i].testdate <<endl;
  cout<<"学生班号:"<<info[i].classno <<endl;
  cout<<"0~49分人数:"<<info[i].n[0]<<endl;
  cout<<"50~59分人数:"<<info[i].n[1]<<endl;
  cout<<"60~69分人数:"<<info[i].n[2]<<endl;
  cout<<"70~79分人数:"<<info[i].n[3]<<endl;
  cout<<"80~89分人数:"<<info[i].n[4]<<endl;
  cout<<"90~100分人数:"<<info[i].n[5]<<endl;
  cout<<endl;
  
  cout<<"0~49分人数占总人数百分比:"<<info[i].n[0]*100/info[i].N<<"%"<<endl;
  cout<<"50~59分人数占总人数百分比:"<<info[i].n[1]*100/info[i].N<<"%"<<endl;
  cout<<"60~69分人数占总人数百分比:"<<info[i].n[2]*100/info[i].N<<"%"<<endl;
  cout<<"70~79分人数占总人数百分比:"<<info[i].n[3]*100/info[i].N<<"%"<<endl;
  cout<<"80~89分人数占总人数百分比:"<<info[i].n[4]*100/info[i].N<<"%"<<endl;
  cout<<"90~100分人数占总人数百分比:"<<info[i].n[5]*100/info[i].N<<"%"<<endl;

 }
 system("pause");
 }

上一个:C++构造函数怎么改啊?
下一个:c++中字符串能简单相加吗?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,