0

我一直在处理的程序应该输出以下内容: * 所需的油漆数量 * 所需的劳动时间 * 油漆的成本 * 人工费用 * 油漆工作的总成本 但是,它显示0 在每个领域.. 我现在做错了什么?您的帮助将不胜感激。

这是我的代码:

//Headers
#include <iostream>
#include <fstream>
#include <cmath>
#include <cstdlib>
#include <iomanip>

using namespace std;

void PaintJobEstimator(double gallonprice, double calc)
{
    float numBucket=0;
    float hours=0;
    float bucketCost=0;
    float laborCharges=0;
    float totalCost=0;
    //calculates number of buckets of paint (gallons) needed
    numBucket=numBucket+calc*(1/115);
    //calculates paint cost
    bucketCost=bucketCost+gallonprice*numBucket;
    //calculates labor hour
    hours=hours+calc*(8/115);
    //calculates labor charges
    laborCharges=hours*18;
    //calculates total cost
    totalCost=totalCost+bucketCost+laborCharges;
    //Console output
    cout << "The number of Gallons of paint required:\t" << setprecision(2) << numBucket << endl;
    cout << "The hours of labor required:\t" << setprecision(2) << hours << " hrs" << endl;
    cout << "The labor charges:\t$" << setprecision(2) << laborCharges << endl;
    cout << "The cost of the paint:\t$" << setprecision(2) << bucketCost << endl;
    cout << "The total cost of the paint job:\t$" << setprecision(2) << totalCost << endl;
}

void main ()
{
    int rooms;
    double calc=0;
    double wallspace;
    double gallonprice;
    cout << "=========================================================\n";
    cout << "___________________Paint Job Estimator___________________\n";
    cout << "_________________________________________________________\n";
    cout << endl;
    cout << "Enter the number of rooms: ";
    cin >> rooms;
    while (rooms<1) //validates rooms
    {
        cout << "Invalid entry, enter one or more rooms:\t";
        cin >> rooms;
    }
    for (int roomNum=1;
        roomNum<=rooms;
        roomNum++)
    {
        cout << "Enter the wall space in square meters for room " << roomNum << ":\t" << endl;
        cin >> wallspace;
        while (wallspace < 0.01)//validates wallspace
        {
            cout << "Invalid entry, please re-enter the wall area for room " << roomNum << ":\t";
            cin >> wallspace;
        }
        calc=calc+wallspace;
    }//end loop
    cout << "\nEnter price of the paint per gallon: ";
    cin >> gallonprice;
    if (gallonprice <10) //validates price per gallon
    {
        cout << "Invalid entry, Reenter price at a $10.00 minimum: ";
        cin >> gallonprice;
    }
    PaintJobEstimator(gallonprice,wallspace);
    system ("pause");
}

这是控制台的屏幕截图:在此处输入图像描述

4

1 回答 1

7

您在某些计算中乘以零。例如,在以下代码行中:

numBucket=numBucket+calc*(1/115);

您将 1/115 放在括号中,由于整数除法,它的计算结果为零。要达到预期的效果,请尝试:

numBucket = calc / 115.0f;
于 2012-11-14T22:51:30.923 回答