-1

私の課題では、ユーザーから会社の 4 つの部門に関する情報を取得する必要があります。実行してコンパイルすると、8つの部門が表示されます(前述のように、4つだけが必要です)。また、収集された情報を画面に表示するときに、さまざまな部門の名前が表示されません。

#include<iostream>
#include<cstdlib>
#include<fstream>
#include<sstream>
#include <vector>

using namespace std;

const int SIZE = 12;

struct Division
{
      char divName[SIZE]; // Division name
      double sales[4]; // Quarterly sales stored as an array
};



int main()
{
       void Intro();
       std::vector<Division> CreateCorporateFile();
       void DisplayCorporateSales();

       Intro();
       CreateCorporateFile();
       DisplayCorporateSales();


       system("PAUSE");
       return 0;
}

void Intro()
{
     cout<<"This program will prompt you to enter in quarterly sales for "
           "four different\ndivisions of a company.\n\n";
}


std::vector<Division> CreateCorporateFile()
{
    std::vector<Division> divArray;
    Division div;
    int x = 0;
    for(int x = 0; x < 4; x++)
    {
    /*do {*/int quarter = 1;
          cout << "Enter the name of the division: ";
          cin >> div.divName;
          for(int i = 0; i < 4; i++)
          {
               cout << "Enter in the sales for quarter "<< quarter <<": ";
               cin >> div.sales[i];
               if(div.sales[i] > 0)
               {
                    quarter++;
               }
               else
               {
                    cout << "Sales are not allowed to be negative.\n";
               }
          }

        divArray.push_back(div);
        /*x++;
    } while(x < 4);*/
}
    return divArray;
}




void DisplayCorporateSales()
{
     Division div;

         std::vector<Division> divisions = CreateCorporateFile();
    for (size_t i=0; i<divisions.size(); i++)
    {
        cout << "Here are the quarterly sales for " << div.divName
        << ": \n";
        Division div = divisions[i];
        for(int j = 0, quarter = 1; j < 4; ++j, ++quarter)
        {
            cout << "Quarter "<< quarter << " sales: $"<< div.sales[j]
            <<"\n";
        }
    }         
}
4

1 に答える 1

3

double を要求する理由は、CreateCorporateFile2 回呼び出すためです。

でのみ呼び出すかmain、返されたベクトルを保存して に渡しDisplayCorporateSalesます。または、まったく呼び出さないでくださいmain

std::stringまた、配列の代わりに文字列 (名前)を使用することをお勧めしますchar

于 2012-12-17T12:40:55.983 に答える