在C++中的函数之间传递值

Passing value between functions in C++

本文关键字:之间 函数 C++      更新时间:2023-10-16

我正在为一家只有6名推销员的汽车公司制定一个计划。该程序将要求用户输入每个销售人员的姓名和月薪,输入他一个月内售出的汽车数量,以及每辆汽车的品牌和价格。该程序将显示每个销售员的月收入(工资+佣金)、销售员的平均月收入、收入最高的销售员的姓名(和收入)、收入最低的销售员姓名(和收益)、每个品牌和最受欢迎的汽车销量品牌

我一直在传递Salesman1()和Salesman2()的totalCommission值。另一个问题是,我不知道是否可以将字符串CIN到名为SalesmanName的数组中。以下是我迄今为止所做的工作。

int main()
{       
int cycle=1;
int SalesMan1(),SalesMan2();

do
{
    switch(cycle)
    {
        case 1: SalesMan1(); cycle++; break;
        case 2: SalesMan2(); cycle++; break;
        /*case 3: SalesMan3(); cycle++; break;
        case 4: SalesMan4(); cycle++; break;
        case 5: SalesMan5(); cycle++; break;
        case 6: SalesMan6(); cycle++; break;*/
        default: cout<<"Printing out reports"<<endl;
                 system("npause");
    }
}while(cycle<=6);  
return 0;                                                                                              
}
int SalesMan1()
{
  char NameOne[40];
  int numCar=1,carSold,carType,audiSold=0,bmwSold=0,mbenzSold=0;
  double salary,carPrize,commission,totalCommission,allMonthlyIncome;
  cout<<"Name of 1st Salesman:"<<endl;
  cin.getline(NameOne,39);
  cout<<"nMonthly Salary: RM";
  cin>>salary;
  cout<<"nNumber of car sold in a month: ";
  cin>>carSold;
  system("CLS");
  do{
      cout<<"nEnter type of car sold as below: "<<endl;
      cout<<"n1-Audi"<<endl;
      cout<<"2-BMW"<<endl;
      cout<<"3-Mercedes Benz"<<endl;
      cout<<"nCar Type:";
      cin>>carType;
      switch(carType)
      {
        case 1:
            cout<<"nEnter the price sold: RM";
            cin>>carPrize;
            commission=0.02*carPrize;
            totalCommission+=commission;
            audiSold++;
            system("CLS");
            break;
        case 2:
            cout<<"nEnter the price sold: RM";
            cin>>carPrize;
            commission=0.02*carPrize;
            totalCommission+=commission;
            bmwSold++;
            system("CLS");
            break;
        case 3:
            cout<<"nEnter the price sold: RM";
            cin>>carPrize;
            commission=0.035*carPrize;
            totalCommission+=commission;
            mbenzSold++;
            system("CLS");
            break;
        default :
            cout<<"nNot available!"<<endl;
            system("pause");
            return 1;
      }
      numCar++;
  }while(numCar<=carSold);
  allMonthlyIncome=allMonthlyIncome+totalCommission+salary;
}
int SalesMan2()
{
  char NameTwo[40];
  int numCar=1,carSold,carType,audiSold=0,bmwSold=0,mbenzSold=0;
  double salary,carPrize,commission,totalCommission,allMonthlyIncome;
  cout<<"Name of 2nd Salesman"<<endl;
  cin.getline(NameTwo,39);
  cout<<"nMonthly salary: RM";
  cin>>salary;
  cout<<"nNumber of car sold in a month: ";
  cin>>carSold;
  system("CLS");
  do{
      cout<<"nEnter type of car sold as below: "<<endl;
      cout<<"n1-Audi"<<endl;
      cout<<"2-BMW"<<endl;
      cout<<"3-Mercedes Benz"<<endl;
      cout<<"nCar Type:";
      cin>>carType;
      switch(carType)
      {
        case 1:
            cout<<"nEnter the price sold: RM";
            cin>>carPrize;
            commission=0.02*carPrize;
            totalCommission+=commission;
            audiSold++;
            system("CLS");
            break;
        case 2:
            cout<<"nEnter the price sold: RM";
            cin>>carPrize;
            commission=0.02*carPrize;
            totalCommission+=commission;
            bmwSold++;
            system("CLS");
            break;
        case 3:
            cout<<"nEnter the price sold: RM";
            cin>>carPrize;
            commission=0.035*carPrize;
            totalCommission+=commission;
            mbenzSold++;
            system("CLS");
            break;
        default :
            cout<<"nNot available!"<<endl;
            system("pause");
            return 1;
     }
     numCar++;
  }while(numCar<=carSold);
   allMonthlyIncome=allMonthlyIncome+totalCommission+salary;
}

SalesmanN()函数中,以结束

return totalCommission;

main()中,执行:

int allCommissions = 0;

然后在你的循环中你做:

case 1: allCommissions += SalesMan1(); cycle++; break;

您可以CIN到任何字符数组中,但对于名称来说,这不是首选项,因为CIN将其输入限制在空格上。SalesmanName将没有任何空格。

char arr[1000]; 
cin`>>arr;

如果输入"XYZ ABC"作为名称,则arr[]将只存储"XYZ",而"ABC"将保留在输入流中

对于这个问题,您可以创建一个Salesman类,它将封装每个Salesman所需的所有功能和数据。由于公司只有6名员工,您可以制作Salesman类的6个对象的数组。这样你就可以把特定的销售人员的佣金称为salesman[i].getCommission()。此外,这个类将有助于以后扩展到更多的员工。

相关文章: