Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/40: Рейтинг темы: голосов - 40, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 33

Система банкомат

06.12.2015, 21:24. Показов 8580. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать принцип работы банкомата в консольном виде на C++ Visual Studio 2013
Принцип работы:
1.ввод пароля - введите 1
2. выход - введите 2

Если пароль не верен то - пароль неверен
если верен, то возможность :
1. просмотр баланса
2. снятие наличных
3. внести наличные
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2015, 21:24
Ответы с готовыми решениями:

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

Программа банкомат
Данный код полностью рабочий, но он как-то не красиво смотрится можно ли его переделать? #include <iostream> using namespace...

Программа-банкомат!
Довольно интересная задача, описал ее как смог, если что неясно по условию, спрашивайте. Используя оператор Switch, задать принцип...

8
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
06.12.2015, 21:35
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
#include "iostream"
#include "string"
 
using namespace std;
 
void main()
{
    setlocale(0, "");
    string pass = "123qwe";
    int k;
    do
    {
        cout << "\n 1 - Ввод пароля\n";
        cout << " 2 - Выход\n";
        cout << " Выбор: ";
        cin >> k;
        switch (k)
        {
        case 1:
        {
            cout << "\nВведите пароль: ";
            string buf;
            cin.get();
            getline(cin, buf);
            if (buf != pass) cout << "Пароль неверный!\n";
            else
            {
                int l;
                do
                {
                    cout << " 1 - Просмотр баланса\n";
                    cout << " 2 - Снятие наличных\n";
                    cout << " 3 - Снятие наличных\n";
                    cout << " 0 - Выход\n";
                    cout << " Выбор: ";
                    cin >> l;
                    //switch(l){...}
                } while (l != 0);
                break;
            }
        }
        case 2:
        {
            break;
        }
        }
    } while (k != 2);
}
1
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 33
06.12.2015, 21:56  [ТС]
SuperKir, спасибо, но нужно реализовать массив для хранения данных о болансе, который можно пополнять, просматривать и снимать деньги
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
06.12.2015, 22:02
Юлия Сорокина, ну а это уже на Ваших плечах
Пишем 3 функции, для "пополнения", "просмотра", "снятия". Ну и в закоменченный switch вставляем
1
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 33
06.12.2015, 22:03  [ТС]
SuperKir, эхх
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
06.12.2015, 22:12
Лучший ответ Сообщение было отмечено Юлия Сорокина как решение

Решение

Юлия Сорокина, Что-то вроде такого:

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
86
87
88
89
90
91
92
93
94
95
96
#include "iostream"
#include "string"
 
using namespace std;
 
int Balance = 0;
 
void Print();
void Get();
void Set();
 
void main()
{
    setlocale(0, "");
    string pass = "123qwe";
    int k;
    do
    {
        cout << "\n 1 - Ввод пароля\n";
        cout << " 2 - Выход\n";
        cout << " Выбор: ";
        cin >> k;
        switch (k)
        {
        case 1:
        {
            cout << "\nВведите пароль: ";
            string buf;
            cin.get();
            getline(cin, buf);
            if (buf != pass) cout << "Пароль неверный!\n";
            else
            {
                int l;
                do
                {
                    cout << " 1 - Просмотр баланса\n";
                    cout << " 2 - Снятие наличных\n";
                    cout << " 3 - Внести наличные\n";
                    cout << " 0 - Выход\n";
                    cout << " Выбор: ";
                    cin >> l;
                    switch(l)
                    {
                    case 1:
                    {
                        Print();
                        break;
                    }
                    case 2:
                    {
                        Get();
                        break;
                    }
                    case 3:
                    {
                        Set();
                        break;
                    }
                    case 0:
                        break;
                    }
                } while (l != 0);
                break;
            }
        }
        case 2:
        {
            break;
        }
        }
    } while (k != 2);
}
 
void Print()
{
    cout << "\nВаш текущий баланс: " << Balance << "p." << endl;
}
void Get()
{
    int money;
    do
    {
        cout << "Какую сумму желаете снять: ";
        cin >> money;
        if (money > Balance) cout << "\nНедостаточно средств на счету.\n";
    } while (money > Balance);
    Balance -= money;
}
void Set()
{
    int money;
    cout << "Какую сумму желаете внести: ";
    cin >> money;
    Balance += money;
}
1
4 / 4 / 2
Регистрация: 01.12.2015
Сообщений: 36
06.12.2015, 23:20
Лучший ответ Сообщение было отмечено Юлия Сорокина как решение

Решение

Могу предложить свой вариант с поддержкой истории работы со счётом:

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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <iostream>
#include <deque>
#include <string>
 
 
void reversestr(std::string &s)
{
    for(int i=0; i<s.length()/2; ++i)
        std::swap(s[i], s[s.length()-i-1]);
}
 
std::string itos(int num)
{
    std::string ot;
 
    while(num != 0)
    {
        ot.push_back((num%10)+'0');
        num /= 10;
    }
 
    reversestr(ot);
    return ot;
}
 
class balance
{
public:
    void add(int sum)
    {
        cash += sum;
        history.push_front("replenishment of the account on "+itos(sum)+" rub");
 
        return;
    }
 
    void setpass(std::string password)
    {
        pass = password;
        return;
    }
 
    void view()
    {
        std::cout << "Current account: " << cash << " rub\n=====HISTORY=====\n";
        for(int i=0; i<history.size(); ++i)
            std::cout << history.size()-i << ": " << history[i] << "\n";
 
        return;
    }
 
    void get(int sum)
    {
        if(cash - sum < 0)
        {
            std::cout << "Impossible\n";
            history.push_front("withdrawn from the account "+itos(sum)+"rub failed");
        }
        else
        {
            cash -= sum;
            std::cout << "Done\n";
            history.push_front("withdrawn from the account "+itos(sum)+"rub success");
        }
 
        return;
    }
 
    void setcash(int sum)
    {
        cash = sum;
        return;
    }
 
    bool get_access()
    {
        std::string password;
        std::cout << "Pass: ";
        std::cin >> password;
        if(password == pass)
            return true;
 
        return false;
    }
 
 
private:
    std::string pass="123";
    int cash=50;
    std::deque<std::string> history;
};
 
 
int main()
{
    balance a;
    int tmp, tmp2;
 
    std::cout << "press \n\t1 to pass\n\tother to exit\n";
    std::cin >> tmp;
 
    if(tmp == 1){
        while(!a.get_access())
        {
            std::cout << "Try again!\n";
        }
        std::cout << "access granted\n\n";
        do
        {
            std::cout << "\n-----\npress\n\t1 to add \n\t2 to withdraw\n\t3 to view history\n\t4 to exit\n";
            std::cin >> tmp;
 
            if(tmp == 1)
            {
                std::cout << "Amount: ";
                std::cin >> tmp2;
                a.add(tmp2);
                continue;
            }
            else if(tmp == 2)
            {
                std::cout << "Amount: ";
                std::cin >> tmp2;
                a.get(tmp2);
                continue;
            }
            else if(tmp == 3)
            {
                a.view();
                continue;
            }
            else
                continue;
        }
        while(tmp != 4);
    }
}
0
07.12.2015, 01:00

Не по теме:

SupremeEP, тьфу, думал, гадал, как это ты умудрился сохранить счет, чтобы потом его восстановить...
А потом глянул код и понял, что не так понял, что за история :D

0
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 33
07.12.2015, 07:26  [ТС]
SuperKir, Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка MSB4175 Невозможно загрузить задачу "CodeTaskFactory" из сборки "C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Build.T asks.Core.dll". Процесс не может получить доступ к файлу "C:\Users\Юлия\AppData\Local\Temp\dvsstz iz.dll", так как этот файл используется другим процессом. ConsoleApplication11 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14 .0\CodeAnalysis\Microsoft.CodeAnalysis.t argets 219

Добавлено через 3 минуты
SuperKir, почему вообще не одну программу не могу загрузить, вот такая ошибка вылазиет

Добавлено через 23 минуты
SuperKir, SupremeEP, спасибо большое за помощь)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2015, 07:26
Помогаю со студенческими работами здесь

Банкомат. В чем ошибка?
Лимит времени 2000/4000/4000/4000 мс. Лимит памяти 65000/65000/65000/65000 Кб. Автор: Фёдор Меньшиков, ВГПУ. Реальный текст...

написать прогу банкомат
Вот надо написать прогу банкомат и столкнулся с проблемой вот код bool ATM::login() { ...

Задача про банкомат
В банкомате есть купюры номиналом, 5000, 2000, 1000, 500 и тд. Но, купюры каждого номинала всего 5 штук. Необходимо посчитать сколько купюр...

Класс имитирующий Банкомат
Создать систему имитирующую класс Банкомат. При снятии наличных со счета банкомат предлагает указать сумму (100, 200, 500, 1000 гривен –...

Программа вылетает (банкомат)
Здравствуйте, есть задача В некотором государстве в обращении находятся банкноты определенных номиналов. Национальный банк хочет, чтобы...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru