Форум программистов, компьютерный форум CyberForum.ru

Пожалуйста исправте ошибки в коде с++ - C++

Восстановить пароль Регистрация
 
iPiton
Сообщений: n/a
25.05.2012, 07:11     Пожалуйста исправте ошибки в коде с++ #1
Программа должна просить пользователя ввести поочередно 4 поля:
Item Id - ID предмета (используется только для прекращения подстчета при неправильном вводе или 0)
Item Price - цена предмета
Discount Type - тип скидки (B - 10%, D - 20% T - 30% N-0% то есть никакой)
Quantity - количество предметов.

Если ввод правильный (ID больше 0, Item Price больше 0, скидка либо B D T или N, количество больше 0), то программа должна сохранить цену всей это продажи и затем заново запрашивать ввод данных на новую партию. В противном случае программа должна давать отчет за все партии где ввод был правильным и показывать сколько партий было и в каком именно ошибка, затем просить ввести любую клавишу и закрываться. Если же в ID, Item Price, Quantity введено что-то вроде 1323n, это считается неправильным вводом.

Вот мой код. Программа компилируется, но не правильно работает. Счетчик вводов RecordNum почему-то работает неправильно, программа не выдает отчет об ошибке и не перестает запрашивать новый ввод если цена или количество 0 или меньше, а подсчет вообще производит только для последнего ввода, хоть я и написал totalCost += calculateItemCost(itemPrice,discountType,quantity); что якобы должно складывать новую партию закупки к старой.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include<iostream>
using namespace std;
double calculateItemCost(double itemPrice, char discountType, unsigned quantity);
void displayTotalCost(double totalCost, unsigned recordNum, bool aborted);
int readSaleRecord(unsigned & itemId, double & itemPrice,char & discountType, unsigned & quantity);
 
int main()
{
    double itemPrice, totalCost=0;
    char discountType;
    unsigned quantity,recordNum=-2,itemId;
    bool aborted= 0;
    int ind;
        
        
        while(aborted == 0)
          {
            aborted = readSaleRecord(itemId,itemPrice,discountType,quantity);
            totalCost += calculateItemCost(itemPrice,discountType,quantity);
            recordNum++;                           
          }
           if (aborted > 0)
               aborted = 0;
            
    
    readSaleRecord(itemId,itemPrice,discountType,quantity);
   totalCost=calculateItemCost(itemPrice,discountType,quantity);
    displayTotalCost(totalCost,recordNum,aborted);
    
 
    system("pause");
    return 0;
 
}
    
double calculateItemCost(double itemPrice, char discountType, unsigned quantity)
{
       switch (discountType)
       {
       case 'N':return itemPrice*quantity;
       case 'B':return itemPrice*0.9*quantity;
       case 'D':return itemPrice*0.8*quantity;
       case 'T':return itemPrice*0.7*quantity;
       
              }           
}
      
      
void displayTotalCost(double totalCost, unsigned recordNum, bool aborted)
{
     if(aborted)
     {
     cout<< endl<<"Total sale cost= $"<<totalCost<<endl;
     cout << "Records=" << recordNum << endl;
     }
     else {
     cout<< endl<<"Total sale cost= $"<<totalCost<<endl;
     cout << "Records=" << recordNum << endl;
     cout<<"Input terminated by invalid data at record "<< recordNum+1<<endl;
     }
}
 int readSaleRecord(unsigned & itemId, double & itemPrice,char & discountType, unsigned & quantity)
 {
     if(cin.good())
     {
    cout << "Enter\n";
    cout << " -> item ID: ";
    cin >> itemId;
    if (itemId == 0||cin.eof())
    return 1;
    
    cout << " -> full item price: ";
    cin>> itemPrice; 
    cout << " -> discount type: ";
    cin>> discountType; 
    cout << " -> quantity: ";
    cin>> quantity; 
    
    return 0;
    }
    
    if (cin.fail())     
       return -1;
         
}
заранее спасибо !
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 07:11     Пожалуйста исправте ошибки в коде с++
Посмотрите здесь:

C++ Помогите, пожалуйста, найти ошибки в программном коде!!!
C++ Исправте ошибки в коде программы(их два варианта).
C++ Помогите, пожалуйста, исправить ошибки в коде
Проверьте ошибки пожалуйста в коде C++
Исправте ошибки, Пожалуйста!) C++
Исправте ошибки C++
исправте ошибки пожалуйста C++
C++ Исправте ошибки в программе

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 07:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru