|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.03.2017, 00:46 | #1 |
Новичок
Джуниор
Регистрация: 09.03.2017
Сообщений: 2
|
Данный код сломал не один мозг. Отказывается вписывать в файл и брать оттуда.
#include "main.h"
using namespace std; #define arrow; cout<< ">"; /* * */ class bankText { public: bankText() { } ~bankText() { } void bankTextMenuAccountEdit() { cout << "--------------------------\n"; cout << "\n"; cout << "Choose from the menu:\n"; cout << "1. Change password\n"; cout << "2. Change name\n"; cout << "3. Delete account\n"; cout << "4. Turn back\n"; cout << "\n"; cout << "--------------------------\n" << flush; arrow; } void bankTextMenuTransfer() { cout << "--------------------------\n"; cout << "\n"; cout << "Choose from the menu:\n"; cout << "1. Trasfer to your account\n"; cout << "2. Trasfer to another account\n"; cout << "3. Input for another account\n"; cout << "4. Turn back\n"; cout << "\n"; cout << "--------------------------\n" << flush; arrow; } void bankTextMenu() { cout << "--------------------------\n"; cout << "\n"; cout << "Choose from the menu:\n"; cout << "1. Create a account\n"; cout << "2. Enter in your account\n"; cout << "\n"; cout << "--------------------------\n" << flush; arrow; } bankTextMenuStart() { cout << "--------------------------\n"; cout << "\n"; cout << "Choose from the menu:\n"; cout << "1. Take money\n"; cout << "2. Money transfer\n"; cout << "3. Edit my profile\n"; cout << "4. Turn back\n"; cout << "\n"; cout << "--------------------------\n" << flush; arrow; } }; class bank : bankText { private: static const unsigned accounts = 25; unsigned short acc[accounts]; double counts[accounts]; string name[accounts]; string password[accounts]; unsigned short free[accounts]; double cash; unsigned short temp; unsigned short id; unsigned short id_temp; unsigned short x; string temp_name; string temp_password; public: bank(); ~bank() { } void prepareCicle(); void moneyTransferDirect(); void moneyInputPeriferic(); void moneyTransferPeriferic(); void moneyTransfer(); void accountEdit(); void moneyTake(); void startManagement(); void accountCreate(); void accountEnter(); void bankMenu(); void bankStart() { while (1) { bank(); bankMenu(); } } }; bank :: bank() { ifstream fin; fin.open("account.txt"); for (unsigned short i = 0; i < accounts; ++i) { fin >> acc[i]; fin >> counts[i]; fin >> password[i]; fin >> name[i]; fin >> free[i]; } fin.close(); id = 0; temp = 0; cash = 0; id_temp = 0; x = 0; } void bank:repareCicle() { ofstream fout; fout.open("accounts.txt", ios:ut | ios::in); if (fout.is_open()) { for (x = 0; x < accounts; ++x) fout << acc[x] << counts[x] << password[x] << name[x] << 1 << endl; } else { fout.open("accounts.txt", ios:ut | ios::in); fout << acc[x] << counts[x] << password[x] << name[x] << 1 << endl; } fout.close(); cash = 0; id = 0; id_temp = 0; x = 0; temp = 0; } void bank::moneyTransferDirect() { cash = 0; cout << "Enter the transfered amount:\n"; arrow; cin>>cash; counts[id] = +cash; cout << "Operation complete\n" << flush; startManagement(); } void bank::moneyInputPeriferic() { cash = 0; cout << "Enter the partner ID:\n"; arrow; cin>>id_temp; if (id_temp > accounts) { cout << "Incorrect ID. Retry.\n"; moneyInputPeriferic(); } else { if (free[id_temp] = 0) { cout << "There is no such account. Retry.\n"; moneyInputPeriferic(); } else { cout << "Enter the transfered amount of money:\n" arrow; cin>>cash; counts[id_temp] = +cash; startManagement(); } } } void bank::moneyTransferPeriferic() { cash = 0; cout << "Enter the partner ID:\n"; arrow; cin>>id_temp; if (id_temp > accounts) { cout << "Incorrect ID. Retry.\n"; moneyTransferPeriferic(); } else { if (free[id_temp] = 0) { cout << "There is no such account. Retry.\n"; moneyTransferPeriferic(); } else { cout << "Enter the transfered amount of money:\n" arrow; cin>>cash; if (cash > counts[id]) { cout << "Error. Insufficient funds. Retry.\n"; moneyTransferPeriferic(); } else { counts[id] = -cash; counts[id_temp] = +cash; startManagement(); } } } } void bank::moneyTransfer() { temp = 0; bankTextMenuTransfer(); cin>>temp; switch (temp) { case 1: moneyTransferDirect(); break; case 2: moneyTransferPeriferic(); break; case 3: moneyInputPeriferic(); break; case 4: prepareCicle(); startManagement(); break; default: moneyTransfer(); break; } } void bank::accountEdit() { temp = 0; bankTextMenuAccountEdit(); cin>>temp; switch (temp) { case 1: cout << "Enter the wanted password:\n"; arrow; cin>>temp_password; password[id] = temp_password; temp_password = ""; break; case 2: cout << "Enter the wanted name:\n"; arrow; cin >> name[id]; break; case 3: cout << "Are you sure? Yes / No\n"; arrow; cin>>temp_password; if (temp_password == "Yes") { counts[id] = 0; name[id] = ""; password[id] = ""; free[id] = 0; } else { prepareCicle(); startManagement(); } break; case 4: prepareCicle(); startManagement(); break; default: accountEdit(); break; } } void bank::moneyTake() { cout << "Enter the needed amount:\n"; arrow; cin >> cash; if (cash > counts[id]) { cout << "Not enough money on the account. Retry.\n"; moneyTake(); } else { cout << "Operation complete.\n"; counts[id] = -cash; } prepareCicle(); startManagement(); } void bank::startManagement() { temp = 0; bankTextMenuStart(); cin >> temp; switch (temp) { case 1: moneyTake(); break; case 2: moneyTransfer(); break; case 3: accountEdit(); break; case 4: bankStart(); break; default: cout << "Error. Retry.\n"; startManagement(); break; } } void bank::accountCreate() { while (free[x] = 1) { x++; } cout << "Enter your name:\n"; cin >> name[x]; cout << "Enter your new password:\n"; cin >> password[x]; acc[x] = x; counts[x] = 0; ofstream fout("account.txt", ios_base::app); if (fout.is_open()) { fout << acc[x] << counts[x] << password[x] << name[x] << 1 << endl; } else { fout.open("account.txt"); fout << acc[x] << counts[x] << password[x] << name[x] << 1 << endl; } fout.close(); id = x; startManagement(); } void bank::accountEnter() { cout << "Enter your account ID:\n"; arrow; cin>>x; cout << "Enter your password:\n"; arrow; cin >> temp_password; if (temp_password == password[x]) { id = x; startManagement(); } else accountEnter(); } void bank::bankMenu() { bankTextMenu(); cin>>temp; switch (temp) { case 1: accountCreate(); break; case 2: accountEnter(); break; default: bankMenu(); break; } } int main() { bank terminal_1; terminal_1.bankStart(); return 0; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
set-еры, get-еры. Простая задача, а сломал мозг. | nevender | Общие вопросы по Java, Java SE, Kotlin | 9 | 11.01.2016 05:50 |
написать функцию, которая считывает данный файл и перезаписывает данный файл | vova_makr | Помощь студентам | 10 | 05.10.2015 15:37 |
Почему данный код закрашивает сразу 2 рядом стоящих пикселя а не один как вроде бы должно быть | androk | Общие вопросы C/C++ | 1 | 10.11.2011 22:20 |
Сломал мозг, скрытие метки деления оси. | O_H | Microsoft Office Excel | 2 | 06.08.2010 19:57 |
Посмотрите что не так, я весь мозг сломал... | Devil55 | Помощь студентам | 3 | 18.02.2009 18:31 |