Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GPA计算器/在循环外添加_C++ - Fatal编程技术网

C++ GPA计算器/在循环外添加

C++ GPA计算器/在循环外添加,c++,C++,您好 我只是想找点帮助。提示如下: 出于研究目的,当地大学的招生官员想知道男女学生在某些课程中的表现如何。用户输入要考虑的课程数。每门课程的学生数据以GPA的形式提供,后跟一个表示学生性别的字母代码,格式如下:每行输入由一个表示学生GPA的实数组成,后跟字母代码f(对于女生);m(男生)。 每门课程的条目(学生)数量未知,数字0.0后跟字母O表示特定课程的数据结束 这是一个关于C++的介绍,并且是这样的;基本上不允许数组、字符串和int、float、double和char之外的任何内容。在代码中

您好

我只是想找点帮助。提示如下:

出于研究目的,当地大学的招生官员想知道男女学生在某些课程中的表现如何。用户输入要考虑的课程数。每门课程的学生数据以GPA的形式提供,后跟一个表示学生性别的字母代码,格式如下:每行输入由一个表示学生GPA的实数组成,后跟字母代码f(对于女生);m(男生)。 每门课程的条目(学生)数量未知,数字0.0后跟字母O表示特定课程的数据结束

这是一个关于C++的介绍,并且是这样的;基本上不允许数组、字符串和int、float、double和char之外的任何内容。在代码中,需要能够以任何顺序键入各种条目(男性条目后接女性条目,反之亦然)

我遇到的问题是,在课程结束时,它需要给出“一般学校平均数”的输出,按女性和男性排序。我知道如何得到这个问题的总和,但我似乎无法得到总和。每当我尝试求和时,第一道课程(第一次通过循环)的值都不会保持不变,所以我一辈子都不知道该怎么做。任何提示或帮助都将不胜感激。我知道代码很长,有点“野蛮”,所以请容忍我的这一点。这是密码

//GPA calculator for Ghemri
//dealing with gpa range 0.0-4.0, set cap?
//try a do while loop

#include <iostream>



using namespace std;


int main(void)
{


 int size, counter;
 //int studentTotal= 0;
 char gender;
 double studentInfo,total,sum, avg;
 double minRange = 0.0, maxRange = 4.0;
 double maxGpa=0,gpaAvg,gpaSum;
 double femaleSum, femaleAvg, femaleTotal;
 double maleSum, maleAvg, maleTotal;
 int femaleNumber,maleNumber, gpaNumber;
 double sumFemaleAvg;// femaleGeneralAvg;//sumMaleAvg, maleGeneralAvg;


 cout << "\nPlease enter the number of courses you want considered: ";

 cin >> size;

 while(size <=0)
 {
  cout << "\nInvalid entry, number of course must be greater than zero\n";

  cin >> size;

 }

 //sumFemaleAvg+=femaleAvg;

 for(int course =1; course <= size; course++)
 {
  maleTotal = 0;
  femaleTotal=0;
  total = 0;
  femaleNumber = 0;
  maleNumber = 0;
  gpaNumber = 0;
  maxGpa= 0;
  gpaSum = 0;


  //double  doubleArray[course] = {femaleAvg};
   cout << "\nEnter student information(0.0 O to end):\t";

   cin >> studentInfo >> gender;

  while(studentInfo < minRange || studentInfo > maxRange)
  {
   cout << "\nInvalid entry, try again...\n";

   cout << "Enter student's information(0.0 O to end): \t";

   cin >> studentInfo >> gender;
  }
  if(studentInfo > maxGpa)
  {
   maxGpa=studentInfo;
  }
  if(studentInfo > 3.00)
  {
   gpaSum=studentInfo;
   gpaNumber=1;
  }

  if(gender == 'f' && studentInfo > minRange && studentInfo < maxRange)
  {
   femaleNumber=1;
   femaleSum = studentInfo;
   maleSum=0;

  }
  if(gender == 'm' && studentInfo > minRange && studentInfo < maxRange)
  {
   maleNumber=1;
   maleSum = studentInfo;
   femaleSum=0;
  }

  sum =studentInfo;
  counter = 0;
  counter++;


  while(studentInfo != 0.0 && gender != 'O')
  {

   cout << "Enter student information(0.0 O to end):\t";

   cin >> studentInfo >> gender;

   if(studentInfo > maxGpa)
   {
    maxGpa=studentInfo;
   }

   if(studentInfo < minRange || studentInfo > maxRange)
    {
     cout << "\nInvalid entry, try again...\n";

     cout << "Enter student's information(0.0 O to end): \t";

     cin >> studentInfo >> gender;
    }

   if(gender != 'm' && gender !='f'&& gender != 'O')
    {
     cout << "Invalid entry, enter m for male or f for female\n";

     cout << "Enter student's information(0.0 O to end): \t";

     cin >> studentInfo >> gender;
    }

    sum +=studentInfo;
    total+=counter;
    avg = sum/total;

    if(studentInfo > 3.00)
    {
     gpaSum+=studentInfo;
     gpaNumber++;
     gpaAvg= gpaSum/gpaNumber;
    }

    if(gender == 'f' || gender =='F')
    {
     femaleSum+=studentInfo;
     femaleNumber++;
     //femaleTotal+=femaleNumber;
     femaleAvg = femaleSum/femaleNumber;
     //sumFemaleAvg = femaleAvg;
    }

    if(gender == 'm' || gender == 'M')
    {
     maleSum+=studentInfo;
     maleNumber++;
     //maleTotal+=maleNumber;
     maleAvg = maleSum/maleNumber;
    }

   if(studentInfo == 0 && gender == 'O')
   {
    cout << "\nResults for course "<< course<<":\n";
    cout << "Female Student Average\t Male Student Average\n";
    cout << "\t";
    if(femaleNumber==0)
    {
     cout<< "N/A" << "\t\t\t";
    }
    else
    {
     cout<< femaleAvg <<"\t\t\t";//femaleAvg

    }
    if(maleNumber==0)
    {
     cout << "N/A\n";
    }
    else
    {
     cout<<maleAvg << endl;
     //sumMaleAvg = maleAvg;
    }

    cout << "\nHighest GPA: " << maxGpa<<endl;
    cout <<  "Highest average GPA for course "<< course << ": "<< gpaAvg<< endl;
   }
  }
  sumFemaleAvg = femaleAvg;

 }

 /*double genAvg[]={femaleAvg};

 result+=genAvg[course];*/

 sumFemaleAvg+=femaleAvg;

 cout<< "this is a test for the value sum " << sumFemaleAvg<<endl;
 //cout<< "this is another test " << result <<endl;

    //maleGeneralAvg = sumMaleAvg/course;
  /*cout << "the sum is " << sumFemaleAvg<<endl;
  cout << "the other sum is "<< sumFemaleAvg2<<endl;
  cout << "the other other sum is " << femaleAvg;*/

 return 0;
}
//GPA计算器用于
//处理gpa范围0.0-4.0,设定上限?
//试试做一个while循环
#包括
使用名称空间std;
内部主(空)
{
整数大小,计数器;
//int studentTotal=0;
性别;
双学生信息,总计,总和,平均值;
双最小范围=0.0,最大范围=4.0;
双maxGpa=0,gpaAvg,gpaSum;
双女性,女性平均,女性总;
双倍马利苏姆、马利亚克、马利托尔;
int女性编号、男性编号、GPA编号;
双sumFemaleAvg;//femaleGeneralAvg;//SumAleavg,maleGeneralAvg;
大小;
而(尺寸;
}
//sumFemaleAvg+=femaleAvg;
对于(int课程=1;课程学生信息>>性别;
while(studentInfomaxRange)
{
cout studentInfo>>性别;
}
如果(studentInfo>maxGpa)
{
maxGpa=学生信息;
}
如果(学生信息>3.00)
{
gpaSum=学生信息;
gpaNumber=1;
}
如果(性别='f'&&studentInfo>minRange&&studentInfominRange&&studentInfo学生信息>>性别;
如果(studentInfo>maxGpa)
{
maxGpa=学生信息;
}
如果(studentInfomaxRange)
{
cout studentInfo>>性别;
}
如果(性别!=“m”&&gender!=“f”&&gender!=“O”)
{
cout studentInfo>>性别;
}
总和+=学生信息;
总数+=计数器;
平均值=总和/总数;
如果(学生信息>3.00)
{
gpaSum+=学生信息;
gpaNumber++;
gpaAvg=gpaSum/gpaNumber;
}
如果(性别='f'|性别='f')
{
femaleSum+=学生信息;
femaleNumber++;
//femaleTotal+=femaleNumber;
femaleAvg=femaleSum/femaleNumber;
//sumFemaleAvg=femaleAvg;
}
如果(性别='m'| |性别='m')
{
maleSum+=学生信息;
maleNumber++;
//maleTotal+=maleNumber;
maleAvg=maleSum/maleNumber;
}
如果(studentInfo==0&&gender==O)
{

尽量避免极端的重复,并将常见的操作考虑到函数中。现在我会“容忍你”,但我真的没有理由这么做。这是作为程序员你需要学习的第一件事

看起来变量
sumFemaleAvg
应该在循环迭代中求和。但是行
sumFemaleAvg=femaleAvg;
每次都覆盖变量。是否执行

  sumFemaleAvg += femaleAvg;
同样,对于您希望在多次迭代中累积的其他变量