0 / 0 / 0
Регистрация: 05.05.2019
Сообщений: 80
1

Создать класс, отображающий механический счётчик

28.09.2019, 13:38. Показов 2667. Ответов 4
Метки нет (Все метки)

Создать класс, отображающий механический счётчик. Счётчик может принимать значения от 0 до 999. У счетчика есть две кнопки – «+» и «с». При нажатии кнопки «+» счётчик переходит в следующее состояние:

- если его значение от 0 до 998, то значение увеличится на единицу;

- если его значение 999, то его значение станет равным 0.

При нажатии кнопки «с» значение счетчика становится равным 0.

В классе должны быть функции-члены:

1. конструктор, имеющий аргумент – начальное значение;

2. функция, моделирующая нажатие кнопки «+»;

3. функция, моделирующая нажатие кнопки «с»;

4. функция, возвращающая значение счётчика.

Функции при получении некорректных аргументов должны выдавать ошибку.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2019, 13:38
Ответы с готовыми решениями:

Создать класс, отображающий часы
Создать класс, отображающий часы. Класс должен содержать текущее значение времени - часы, минуты,...

Создать класс Счетчик
Цифровой счетчик, это переменная с ограниченным диапазоном. Значение которой сбрасывается, когда ее...

Создать класс счетчик
Создать класс счетчик.Определить его методы вне класса.Показать роботу с объектами этого класса:...

Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой
Создать класс «счетчик», реализующий циклический счетчик, со следующей структурой: -поле состояния...

4
Почетный модератор
7388 / 2634 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.09.2019, 13:53 2
А где вопрос?
0
1288 / 905 / 479
Регистрация: 05.12.2013
Сообщений: 3,039
28.09.2019, 14:12 3
Лучший ответ Сообщение было отмечено hecudel как решение

Решение

Например так

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
#include <iostream>
#include <stdexcept>
 
using namespace std;
 
class Schetchik
{
public:
    Schetchik(int val)
    {
        if(val < 0 || val > 999)
            throw std::invalid_argument( "Неправильное число" );
 
        counter = val;
    }
 
    void process_plus()
    {
        counter++;
        if(counter > 999)
            counter = 0;
    }
 
    void process_c()
    {
        counter = 0;
    }
 
    int get_pokazanie()
    {
        return counter;
    }
 
private:
    int counter;
};
 
int main()
{
    setlocale(LC_CTYPE,"Russian");
    int n;
    cout << "Введите на начальные показания счетчика: ";
    cin >> n;
    auto schet = Schetchik(n);
    while(1)
    {
        char opt;
        cout << "Введите +, с, l или e для выхода: ";
        cin >> opt;
        if(opt != 'e')
        {
            if(opt == '+')
            {
                schet.process_plus();
            }else if(opt == 'c')
            {
                schet.process_c();
            }else if(opt == 'l')
            {
                 cout << "Показание счетчика " << schet.get_pokazanie() << endl;
            }else
            {
                cout << "Неправильный символ!" << endl;
            }
        }else
        {
            cout << "Выход из программы";
            break;
        }
    }
    return 0;
}
2
Just Do It!
3425 / 1896 / 623
Регистрация: 23.09.2014
Сообщений: 5,982
Записей в блоге: 1
28.09.2019, 14:46 4
ТабуретY,
почему вы боитесь использовать switch?
ваш код с ним будет выглядеть чуть приятнее:
автор:ТабуретY(c)
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
#include <iostream>
 
using namespace std;
 
class cCounter
{   public:
        cCounter(int _v) : counter(_v)
        {   if((_v < 0) || (_v > 999))
                std::cout << "Неправильное число\n";
        }
 
        void add()
        {   if(counter++ > 999) counter = 0;
        }
 
        void reset()
        {   counter = 0;
        }
 
        int get()
        {   return counter;
        }
 
    private:
        int counter;
};
 
int main()
{   setlocale(0, "");
    int n;
    cout << "Введите на начальные показания счетчика: ";
    cin >> n;
    
    cCounter counter(n);
    
    while(true)
    {   char opt;
        cout << "Введите +, с, l или e для выхода: ";
        cin >> opt;
          
        switch(opt)
        {   case '+':
            counter.add();
            break;
                
            case 'c':
            counter.reset();
            break;
                
            case 'l':
            cout << "Показание счетчика " << counter.get() << "\n";
            break;
                
            case 'e':
            return 0;
                
            default:
            cout << "Неправильный символ!\n";
        }
    }
            
    return 0;
}
1
1288 / 905 / 479
Регистрация: 05.12.2013
Сообщений: 3,039
28.09.2019, 15:28 5
Цитата Сообщение от XLAT Посмотреть сообщение
почему вы боитесь использовать switch?

Не по теме:


Мой основной язык python, поэтому я был не уверен, что правильно помню синтаксис switch, а в интернет лезть из-за пары строчек было лень

1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2019, 15:28
Помогаю со студенческими работами здесь

Создать класс, реализующий десятичный счётчик Count
Создать класс, реализующий десятичный счётчик Count,значение которое может изменятся которого может...

Создать компонент отображающий данные в табличной форме
Помогите пожалуйста решить. Создать компонент отображающий данные в табличной форме. Заголовки...

Создать компонент отображающий данные в виде бегущей строки
Создать компонент отображающий данные в виде бегущей строки Разрабатываемый компонент должен...

Создать запрос отображающий записи из главной таблицы, отсутствующие в подчиненной
Добрый день В БД создана форма с подчиненной формой, содержащей элемент управления &quot;поле со...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru