Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Создание класса


Автор: Nikita92 2.11.2016, 20:08
Подскажите пожалуйста, как задать методы чтобы программа заработала. 

Задание:

Составьте объектно-ориентированную программу, имитирующую работу автоматического турникета при въезде на парковку. Программа должна моделировать ситуацию, когда часть машин оплачивает парковку, а часть машин проезжает бесплатно. В кассе ведется учет числа проехавших за день машин и суммарной выручки от оплаты парковки.

Для реализации программы создайте класс, например, с именем gate.

В состав полей данных класса включите три переменные:
целочисленную переменную, например, с именем payCars, типа unsigned int для учета числа машин, оплативших парковку;
целочисленную переменную, например, с именем nopayCars, типа unsigned int для учета числа машин, не оплативших парковку;
целочисленную переменную, например, с именем totalCash, типа unsigned int для хранения суммарной выручки от оплаты парковки.

В состав методов класса включите следующие функции:
конструктор класса, инициализирующий все поля нулевыми значениями;
функцию, например, с именем payingCars(), инкрементирующую количество оплативших парковку машин и увеличивающую суммарную выручку на величину тарифа за парковку;
функцию, например, с именем nopayingCars(), инкрементирующую количество не оплативших парковку машин и оставляющую суммарную выручку без изменения;
функцию, выводящую на экран результаты работы турникета за день.

В функции main() продемонстрируйте работу класса. Для этого в ней:
создайте объект класса gate;
предложите пользователю:
нажать одну клавишу для имитации заплатившего водителя;
нажать другую клавишу для имитации недобросовестного водителя;
нажать клавишу ESC (код клавиши – 27).
Нажатие клавиши ESC должно приводить к выводу всей информации о работе парковки и завершению работы программы.

Для считывания введенных пользователем данных используйте функцию _getche().
Для передачи тарифа за парковку в метод payingCars() используйте глобальную переменную.

Вот код:

Код


#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
int tarif = 50;
class gate
{
public: unsigned int payCars, nopayCars, totalCash;
public:gate(): payCars(0), nopayCars(0), totalCash(0)
{}
       void payingCars()
       {
           payCars++;
           
           
           totalCash += tarif;

           
       }
       void nopayingCars()
       {
           nopayCars+=nopayCars;

       }
       void vivod()
       {
           
           cout << "Количество проехавших машин:   " <<  payCars+ nopayCars << endl <<
                   "Из них: оплатили парковку:     "  << payCars << endl <<
                   "        не оплатили парковку:  " << nopayCars << endl << endl <<
                   "Общая сумма выручки:  " << totalCash << " рублей\n";
       }
};


int main()
{
    SetConsoleOutputCP(1251);
    gate gt;
    cout << "\nНажмите клавиши: 0 - для каждой машины без оплаты\n" <<
        "                        1 - для каждой оплачивающей машины\n" <<
        "                       Esc - для выхода" << endl << endl;

    char ch;
    
    while ((ch=_getche())!=27)
    {

        
        
            
            if (ch == 1)
                gt.payingCars();
                if (ch == 0)
                gt.nopayingCars();
            

        
        
    }
    cout << endl;
    gt.vivod();
}

[/code]
[/code]

Автор: Nikita92 2.11.2016, 23:18
Ошибка найдена : '0' '1'

Автор: xvr 3.11.2016, 12:11
Это не единственная ошибка  smile Ищите дальше  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)