TheRasVa

Симулятор банка v2

Oct 9th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.13 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <string>
  4. using namespace std;
  5.  
  6.  
  7. class Account
  8. {
  9. public:
  10.     long long id;
  11.     long double balance;
  12.     double percent;
  13.     int overdraft;
  14.  
  15.  
  16.     bool change(double amount)
  17.     {
  18.         if (amount == 0)
  19.         {
  20.             cout << "E: Не указано сколько вводить/выводить.\n";
  21.             return false;
  22.         }
  23.         else if (balance - amount < overdraft)
  24.         {
  25.             balance += amount;
  26.             cout << "I: Операция выполнена.\n";
  27.             return true;
  28.         }
  29.         else
  30.         {
  31.             cout << "E: Недостаточно средств.\n";
  32.             return false;
  33.         }
  34.     }
  35. };
  36.  
  37.  
  38. class Customer
  39. {
  40. public:
  41.     string name, surname; // "customer[0].name =" не работает с массивом char: https://www.google.com/search?q=error+C2440%3A+%27%3D%27+%3A+cannot+convert+from+%27const+char+[8]%27+to+%27char+[64]%27
  42.     Account account;
  43. };
  44.  
  45.  
  46. int choose_customer(short& selected, Customer customer[4], string result)
  47. {
  48.     /*  WIP: Нестабильно работает при подавании на вход не цифры.
  49.     switch (stoi(result)) // stoi -- конвертация из string в int
  50.     {
  51.     case 1: selected = 0; return 0;
  52.     case 2: selected = 1; return 1;
  53.     case 3: selected = 2; return 2;
  54.     case 4: selected = 3; return 3;
  55.     default: break;
  56.     }*/
  57.     for (int i = 0; i < 4; i++)
  58.     {
  59.         if (result == customer[i].name + " " + customer[i].surname)
  60.         {
  61.             selected = i;
  62.             return selected;
  63.         }
  64.     }
  65.     return -1;
  66. }
  67.  
  68.  
  69. int main()
  70. {
  71.     setlocale(0, "");
  72.     system("color 0A");
  73.     system("title Bank simulator 2015");
  74.  
  75.     Customer customer[4];
  76.     // Информация о клиенте/его счете
  77.     customer[0].name = "Vasiliy";
  78.     customer[0].surname = "Petrov";
  79.     customer[0].account.id = 7943875921568423;
  80.     customer[0].account.balance = 11,3;
  81.     customer[0].account.percent = 78,3;
  82.     customer[0].account.overdraft = 20000;
  83.  
  84.     customer[1].name = "Vasiliy";
  85.     customer[1].surname = "Pupkin";
  86.     customer[1].account.id = 3897031189409756;
  87.     customer[1].account.balance = 1337,228;
  88.     customer[1].account.percent = 0,7;
  89.     customer[1].account.overdraft = 100000;
  90.  
  91.     customer[2].name = "Vladimir";
  92.     customer[2].surname = "Putin";
  93.     customer[2].account.id = 1337133713371448;
  94.     customer[2].account.balance = 679140;
  95.     customer[2].account.percent = 0,00001;
  96.     customer[2].account.overdraft = 9000000000000;
  97.  
  98.     customer[3].name = "Dmitriy";
  99.     customer[3].surname = "Medvedev";
  100.     customer[3].account.id = 6379063409780127;
  101.     customer[3].account.balance = 376879;
  102.     customer[3].account.percent = 0,00008;
  103.     customer[3].account.overdraft = 7000000000;
  104.     //
  105.     double howMuch;
  106.  
  107.     while (true) // Основной цикл
  108.     {
  109.         cout << "Выберите клиента для работы с ним:\n";
  110.         for (int i = 0; i < 4; i++)
  111.         {
  112.             cout << i + 1 << ". " << customer[i].name << " " << customer[i].surname << " -- " << customer[i].account.balance << " YOBA-коинов\n";
  113.         }
  114.         cout << "EXIT - выход\n";
  115.  
  116.         string result = "";
  117.         short selected = -1;
  118.  
  119.         while (true) // Цикл выбора клиента
  120.         {
  121.             cout << ">> ";
  122.             getline(cin, result);
  123.             if (result == "EXIT") // switch не работает со string
  124.             {
  125.                 return 0;
  126.             }
  127.             else
  128.             {
  129.                 if (choose_customer(selected, customer, result) == -1)
  130.                 {
  131.                     cout << "E: Указаный клиент не найден.\n";
  132.                 }
  133.                 else
  134.                 {
  135.                     cout << "I: Клиент " << customer[selected].name + " " + customer[selected].surname << " под номером " << selected + 1 << " выбран.\n";
  136.                     system("pause");
  137.                     system("cls");
  138.                     break;
  139.                 }
  140.             }
  141.         }
  142.         while (true) // Цикл выбора операции
  143.         {
  144.             cout << "Какую операцию с клиентом " << customer[selected].name + " " + customer[selected].surname << " под номером " << selected + 1 << " вы желаете выполнить?\nДоступные операции:\nCHOOSE - сменить клиента\nBALANCE - вывести текущий баланс клиента\nADD - положить деньги на счет клиента\nTAKE - снять деньги со счета клиента\nEXIT - выйти\n>> ";
  145.             cin >> result;
  146.             system("cls");
  147.             if (result == "CHOOSE")
  148.             {
  149.                 system("cls");
  150.                 break;
  151.             }
  152.             else if (result == "BALANCE")
  153.             {
  154.                 cout << "Баланс клиента " << customer[selected].name + " " + customer[selected].surname << " равен " << customer[selected].account.balance << " YOBA-коинов\n";
  155.                 system("pause");
  156.                 system("cls");
  157.             }
  158.             else if (result == "ADD")
  159.             {
  160.                 cout << "Введите кол-во: ";
  161.                 cin >> howMuch;
  162.                 customer[selected].account.change(howMuch);
  163.                 system("pause");
  164.                 system("cls");
  165.             }
  166.             else if (result == "TAKE")
  167.             {
  168.                 cout << "Введите кол-во: ";
  169.                 cin >> howMuch;
  170.                 customer[selected].account.change(-howMuch);
  171.                 system("pause");
  172.                 system("cls");
  173.             }
  174.             else if (result == "EXIT")
  175.             {
  176.                 return 0;
  177.             }
  178.             else
  179.             {
  180.                 cout << "E: Команда не распознана.\n";
  181.                 system("pause");
  182.                 system("cls");
  183.             }
  184.         }
  185.     }
  186.    
  187.     system("pause");
  188.     return 0;
  189. }
Advertisement
Add Comment
Please, Sign In to add comment