2014-09-21 18 views
-2

我正在为只有6个推销员的汽车公司开发一个程序。该程序将要求用户输入每个销售人员的姓名和他的月薪,输入他在一个月内销售的汽车数量,以及每辆汽车的品牌和价格。该程序将显示每个销售员的月收入(工资+佣金),销售员的平均月收入,收入最高的销售员的姓名(和收入),销售员的姓名(和收入)最低收入,每个品牌销售的汽车数量以及最受欢迎的品牌 。在C++中传递函数之间的值

我一直在传递来自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; 
} 
+1

如果这不是真正的兼职,为什么不使用Java或C#? – 2014-09-21 06:42:15

+0

编译所有警告和调试信息('g ++ -Wall -g')。然后**使用调试器**('gdb')。并利用C++功能!你可以用'>>'或[getline](http://www.cplusplus.com/reference/string/string/getline/)读取C++'std :: string'。花点时间阅读[C++参考](http://www.cplusplus.com/reference/) – 2014-09-21 06:43:35

+0

@KickButtowski,我不知道Java或C#。我只知道C++。我是新手。 – 2014-09-21 06:44:04

回答

2

SalesmanN()功能,以结束吧:

return totalCommission; 

main(),做到:

int allCommissions = 0; 

,然后在你的循环,你做的事:

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

谢谢!这真的很有帮助。 – 2014-09-21 06:57:17

0

你可以CIN进入任何字符数组,但它不是名字的首选,因为CIN限制了它在空间上的输入。 SalesmanName不会有任何空格。

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

如果输入 “XYZ ABC” 作为名称,然后常用3 []将只存储 “XYZ”,而 “ABC” 将输入流中remian。

对于这个问题,您可以创建一个推销员类,它将封装每个推销员所需的所有功能和数据。由于该公司只有6名员工,因此您可以制作Salesman Class的6个对象。以便您可以将特定的销售员佣金称为SalesMan [i] .getCommission()。此外,班级将有助于后来扩大到更多的工人。