Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2017, 00:46   #1
Shantykoff
Новичок
Джуниор
 
Регистрация: 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;
}
Shantykoff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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