Advertisement
Phoenix_x

Untitled

Dec 16th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <fstream> // библиотека за файлове
  3. #include <string>
  4. #include <iostream>
  5.  
  6. using namespace std;
  7.  
  8. struct account
  9. {
  10. string name;
  11. double sum;
  12. };
  13.  
  14. void convertFromFileToArray(account accountsData[100], int &accountsCount);
  15. void investing(account accountsData[100], int accountsCount);
  16. void withdrawing(account accountsData[100], int accountsCount);
  17. void checkBalance(account accountsData[100], int accountsCount);
  18. void transfer(account accountsData[100], int accountsCount);
  19. void updateFile(account accountsData[100], int accountsCount);
  20.  
  21. void main()
  22. {
  23. account accountsData[100];
  24. int accountsCount = 0;
  25.  
  26. convertFromFileToArray(accountsData, accountsCount);
  27.  
  28. while (true)
  29. {
  30. int choice;
  31. cout << "Choose 1 for investing." << endl; //внасяне
  32. cout << "Choose 2 for withdrawing." << endl; //теглене
  33. cout << "Choose 3 for balance check." << endl; //проверка на сметка
  34. cout << "Choose 4 for transfering" << endl; //прехвърляне
  35. cout << "Your choice: ";
  36. cin >> choice;
  37.  
  38. switch (choice)
  39. {
  40. case 1:
  41. investing(accountsData, accountsCount);
  42. break;
  43. case 2:
  44. withdrawing(accountsData, accountsCount);
  45. break;
  46. case 3:
  47. checkBalance(accountsData, accountsCount);
  48. break;
  49. case 4:
  50. transfer(accountsData, accountsCount);
  51. break;
  52. }
  53.  
  54. updateFile(accountsData, accountsCount); //след операция с пари update-ни файла
  55. }
  56. }
  57.  
  58. void convertFromFileToArray(account accountsData[100], int &accountsCount)
  59. {
  60. ifstream readFile;
  61. readFile.open("accounts.txt");
  62.  
  63. string name; //променлива, взимаща името от един ред
  64. string sum; // променлива за сумата от един ред. string, защото файла е текстов
  65.  
  66. //чети докато файла има редове и присвоявай прочетенето от линията на двете променливи
  67. while (readFile >> name >> sum)
  68. {
  69. name = name.substr(0, name.size() - 1); //махни ','
  70.  
  71. accountsData[accountsCount].name = name;
  72. accountsData[accountsCount].sum = stod(sum); //от стринг (защото файла е текстов) към double
  73. accountsCount++;
  74. }
  75. }
  76.  
  77. void investing(account accountsData[100], int accountsCount)
  78. {
  79. string name;
  80. cout << "Account number: ";
  81. cin >> name;
  82.  
  83. double money;
  84. cout << "Money: ";
  85. cin >> money;
  86.  
  87. for (int i = 0; i < accountsCount; i++)
  88. {
  89. if (accountsData[i].name == name)
  90. {
  91. accountsData[i].sum += money;
  92. break;
  93. }
  94. }
  95. }
  96.  
  97. void withdrawing(account accountsData[100], int accountsCount)
  98. {
  99. string name;
  100. cout << "Account number: ";
  101. cin >> name;
  102.  
  103. double money;
  104. cout << "Money: ";
  105. cin >> money;
  106.  
  107. for (int i = 0; i < accountsCount; i++)
  108. {
  109. if (accountsData[i].name == name)
  110. {
  111. accountsData[i].sum -= money;
  112. break;
  113. }
  114. }
  115. }
  116.  
  117. void checkBalance(account accountsData[100], int accountsCount)
  118. {
  119. string name;
  120. cout << "Account number: ";
  121. cin >> name;
  122.  
  123. for (int i = 0; i < accountsCount; i++)
  124. {
  125. if (accountsData[i].name == name)
  126. {
  127. cout << "Your current balance is: " << accountsData[i].sum << endl;
  128. break;
  129. }
  130. }
  131. }
  132.  
  133. void transfer(account accountsData[100], int accountsCount)
  134. {
  135. string from;
  136. cout << "From (account number): ";
  137. cin >> from;
  138.  
  139. string to;
  140. cout << "To (account number): ";
  141. cin >> to;
  142.  
  143. double money;
  144. cout << "Money: ";
  145. cin >> money;
  146.  
  147. for (int i = 0; i < accountsCount; i++)
  148. {
  149. if (accountsData[i].name == from)
  150. {
  151. accountsData[i].sum -= money;
  152. }
  153.  
  154. if (accountsData[i].name == to)
  155. {
  156. accountsData[i].sum += money;
  157. }
  158. }
  159. }
  160.  
  161. void updateFile(account accountsData[100], int accountsCount)
  162. {
  163. ofstream writeOnFile; //променлива за запис(писане) върху файла
  164.  
  165. writeOnFile.open("accounts.txt"); //изтрива досегашното съдържание и позволява да пишем
  166.  
  167. for (int i = 0; i < accountsCount; i++)
  168. {
  169. writeOnFile << accountsData[i].name << ", " << accountsData[i].sum << '\n';
  170. }
  171. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement