似乎无法计算正确的值

问题描述:

大家好,我正在学习函数,所以我采取了一个旧的练习程序,并修改它使用函数。然而,我的问题是,当显示我正在计算的佣金时,我会得到错误的值。任何帮助,将不胜感激。除了佣金价格之外,我有一切工作。似乎无法计算正确的值

代码

#include <iostream> 
#include <iomanip> 
using namespace std; 

int ID; 
double salary, pcs, printer, accessory, maint; 
double pcbase = 8000.00, printerbase = 1500.00, accbase = 1000.00, maintbase = 500.00; 
double pccomm = .15, printercomm = .10,acccomm = .05, maintcomm = .08; 

double calcComm(double sales, double base, double percent); 
void display(double, double, double, double); 


int main() 
{ 
    cout<<"Enter Salesman ID\n"; 
    cin>>ID; 
    while (ID != -999) 
    { 
     cout<<"Enter base salary\n"; 
     cin>>salary; 
     cout<<"Enter PC sales\n"; 
     cin>>pcs; 
     pccomm = calcComm(pcs, pcbase, pccomm); 

     cout<<"Enter Printer Sales\n"; 
     cin>>printer; 
     printercomm = calcComm(printer, printerbase, printercomm); 

     cout<<"Enter Accessory Sales\n"; 
     cin>>accessory; 
     acccomm = (accessory, accbase, acccomm); 

     cout<<"Enter Maintenance Sales\n"; 
     cin>>maint; 
     maintcomm = (maint, maintbase, maintcomm); 

     display(pccomm, printercomm, acccomm, maintcomm); 
     cout<<"\n\nEnter Salesman ID or -999 to quit\n"; 
     cin>>ID; 
    } 

    system ("PAUSE"); 
    return 0; 
} 

double calcComm(double sales, double base, double percent) 
{ 
    double commission; 
    if (sales < base) 
     commission = 0; 
    else 
     commission = sales * percent; 
    return commission; 
} 

void display(double pccomm, double printercomm, double acccomm, double maintcomm) 
{ 
    cout<<"Salesman ID:"<<ID; 
    cout<<"\nProduct"<<"   Sales Amount"<<"  Commission\n"; 
    cout<<"Personal Computers"<<"  "<<pcs<<"    "<<pccomm; 
    cout<<"\nPrinters"<<"    "<<printer<<"    "<<printercomm; 
    cout<<"\nAccessories"<<"   "<<accessory<<"    "<<acccomm; 
    cout<<"\nMaintenance"<<"   "<<maint<<"    "<<maintcomm; 

    double total = 0,totaldue = 0; 
    total = pccomm+printercomm+acccomm+maintcomm; 
    totaldue = total+salary; 
    cout<<"\n\n\nTotal Commission        "<<total; 
    cout<<"\n  Base Pay        "<<salary; 
    cout<<"\n  Total Due        "<<totaldue; 
} 

我所需的输出是

Salesman ID: 111 
Product     Sales    Commission 
Personal Computer   5000.00    0.00 
Printers     2000.00    50.00 
Accessories    600.00    0.00 
Mainteance    1000.00    40.00 

Total Commission        90.00 
Base Pay          1234.56 
Total Due          1324.56 
+2

-1什么是输入?什么是预期的输出?实际产出是多少?什么是理想的算法? –

+0

对不起,输入是每个产品的具体销售额;电脑销售,打印机销售,配件销售和维护销售。要获得任何项目的佣金,必须在特定范围内(PC销售> 8000.00等)。输出在显示功能中,输出在calcComm功能中计算的所有收集的信息和佣金。 – sircrisp

+1

不需要我们需要数字。输入和输出,预计和实际。和一个公式。不是在代码中编写的,因为我们知道编译器和计算机都很好。 –

您有:

acccomm = (accessory, accbase, acccomm); 

我认为这必须是acccomm = calcComm(accessory, accbase, acccomm);

相同的计算maintcomm。你编写代码的方式,它将使用comma operator,它只是评估最后一个操作数。

+0

这是我的问题,谢谢你抓我没有的东西:p – sircrisp

+1

@sircrisp不要忘记接受答案:[faq] –

由于胡乱猜测,因为你没有包含任何样品的输入或输出。在基地到达之前不支付佣金是不常见的,但如果达到基数,则按照整个销售数字计算支付佣金。

您是不是要找

commission = (sales-base) * percent; 

而不是

commission = sales * percent; 

佣金=销售额*基数*百分比?

您需要解释“基本”变量是什么?是单价吗?佣金前的金额?我假设销量是单位数量,百分比是显而易见的。