2013-11-07 1 views
1

Моя программа должна рассчитать стоимость для клиентов , чтобы заменить их ковровое покрытие на 5 долларов США на двор для установки, различные варианты прокладки, Стоимость ковра и общая сумма округлены до ближайшего двора. отступы стоимость основана на:Как разбить цикл for и преобразовать целые числа?

  1. Добра - $ 3 за ярд - 1-3year гарантийном
  2. Лучше - $ 4 за ярд гарантия 3-5 года
  3. Best- $ 5 за ярд - 5-10 лет гарантия
  4. Отлично - $ 7 за ярд 10-20 лет гарантии

Операция:

  1. Запрос на количество номеров Для каждого номера:
  2. Подсчитайте длину, чем ширина для каждого номера комнаты
  3. Вычислите квадратные футы a. конвертировать квадратные футы в квадратные дворы и округлять b. квадратные ярды = ярды, необходимые для помещения c. Рассчитайте стоимость установки на квадратный двор * $ 5
  4. Подскажите, как выбрать прокладку. а. Умножение расходов на квадратный двор комнаты
  5. Подскажите пользователю цену на ковровое покрытие за квадратный метр комнаты: a. Расчет стоимости путем умножения входа на squareyards требуется
  6. вывода полных ярдов необходимых
  7. Выход Установка стоимость
  8. Выход набивка стоимость
  9. Выходной ковер стоимость
  10. Выход общая стоимость = + Установка + отступы + Ковер
  11. Гранд общая = стоимость каждого номера

** * ** * ** * ** * ** * ***/

У меня есть 5 проблем, до сих пор:

  1. Как туда конвертировать целочисленный выбор прокладок в стоимость качества
  2. Петля пола не будет разрываться между комнатами
  3. Когда он отображает роу m число начинается с 0
  4. Как я могу получить доллары для отображения до двух знаков после запятой?
  5. Как я получу общую сумму каждого номера для хранения в виде двухместных номеров, чтобы получить общую сумму?

    #include <iostream> 
    #include <iomanip> 
    #include <string> 
    #include <conio.h> 
    #include <string> 
    
    using namespace std; 
    
    const float INSTALL_COST = 5; 
    const float GOOD_PAD = 3; 
    const float BETR_PAD = 4; 
    const float BEST_PAD = 5; 
    const float EXC_PAD = 7; 
    const double SQU_FT_YD = 9; 
    
    int main() 
    
    { 
    
    int padding, rooms, numreq, squareYards; 
    double length, width, squareFeet,priceSquareYard; 
    double paddingCost, installFee, totalCost, carpetCost; 
    
    //step 1: 
    
    cout << "Enter number of rooms: "; 
    cin >> numreq; 
    cout << endl; 
    
    //Step 2 
    cout << "Enter length of room: "; 
    cin >> length; 
    cout << endl; 
    cout << "Enter width of room: "; 
    cin >> width; 
    cout << endl; 
    
    //step 3 
    
    cout << "Select quality of padding:<1-4> "; 
    cout << "\n1. Good - $3 per yard - 1-3 year warranty \n2. Better - $4 per yard 3-5 year warranty \n3. Best- $5 per yard - 5-10 year warranty \n4. Excellent - $7 per yard 10-20 year warranty: "; 
    cin >> padding; 
    cout << "Enter price of carpeting per square yard of room: "; 
    cin >> priceSquareYard; 
    //step3 
    
    for(int x = 0; x < numreq; x++) 
    { 
    squareFeet = length * width; 
        squareYards = ((squareFeet/SQU_FT_YD) + 0.5); 
        if (squareYards > 0) 
         squareYards++; 
        installFee = squareYards * INSTALL_COST; 
        carpetCost = priceSquareYard * squareYards; 
        paddingCost = squareYards * padding; 
        totalCost = carpetCost + installFee + paddingCost; 
        cout << "\n Room " << x << " Yards Required = " << squareYards; 
        cout << "\n Room " << x << " Installation = $" <<installFee; 
        cout << "\n Room " << x << " Padding Cost = $" << paddingCost; 
        cout << "\n Room " << x << " Carpet Cost = $" << carpetCost; 
        cout << "\n Room " << x << " Total Cost = $" << totalCost; 
    } 
    
    
    _getch(); 
    return 0; 
    

    }

+0

Казалось бы, шаг 2 & 3 должны также быть внутри для цикла. Если вы сгруппировали все данные для каждой комнаты в классе или структуре и добавили их в вектор, было бы намного проще рассчитать и отобразить данные позже. –

ответ

0

Чтобы получить итоговые суммы в пределах петли, просто хранить переменную вне цикла, запустить его на 0, и увеличивать его внутри цикла всякий раз, когда это необходимо.

И вы можете использовать break;, чтобы полностью вырваться из петли. Кроме того, если вам это нужно, continue; позволит вам остановить текущую итерацию и перейти прямо к следующей итерации вашего цикла.

И номер 4, проверить это: NumberFormat/DecimalFormat treats certain floating-point values as longs instead of doubles

Смежные вопросы