Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. #include "Bank.h"
  2. #include <fstream>
  3. #include <string>
  4. #include <cstring>
  5. #include <limits>
  6.  
  7.  
  8. using namespace std;
  9.  
  10. void displayAccountInfo(bank);
  11. struct node
  12. {
  13. bank data;
  14. node * next;
  15. node()
  16. {
  17. next = nullptr;
  18. }
  19. };
  20. struct linkedList
  21. {
  22. node * head;
  23. bool appendNode(node * newnode)
  24. {
  25. if(head == nullptr)
  26. {
  27. head = newnode;
  28. }
  29. else
  30. {
  31. node * iter = head;
  32. while(iter->next != nullptr)
  33. {
  34. iter= iter->next;
  35. }
  36. iter->next = newnode;
  37. }
  38. return true;
  39. }
  40. void findJohnAccount()
  41. {
  42. node * iter = head;
  43. while(iter->next != nullptr)
  44. {
  45. if(strcmp(iter->data.getOwner(), "Jhon Hancock") == 0)
  46. {
  47. iter->data.withdraw(600);
  48. iter->data.withdraw(300);
  49. iter->data.deposit(400);
  50. }
  51. iter = iter->next;
  52. }
  53. }
  54. void sortAccounts()
  55. {
  56. node * iter = head;
  57. node * prev = head;
  58. node * temp;
  59. bool swap;
  60. do
  61. {
  62. swap = false;
  63. while(iter->next != nullptr)
  64. {
  65.  
  66. if(iter->data.getBalance() > iter->next->data.getBalance())
  67. {
  68. temp = iter;
  69. iter = iter->next;
  70. if(prev != head)
  71. {
  72. prev = iter->next;
  73. }
  74. iter->next = temp;
  75. swap = true;
  76. }
  77. if(swap == false)
  78. {
  79. iter = iter->next;
  80. }
  81. }
  82. }while(swap);
  83. }
  84. linkedList()
  85. {
  86. head = nullptr;
  87. }
  88. };
  89.  
  90.  
  91.  
  92. int main()
  93. {
  94. ifstream inputfile;
  95. string filename;
  96. linkedList * info = new linkedList();
  97. bank person;
  98. int num;
  99. double balance;
  100. string name;
  101. cout << "Enter the filename: ";
  102. cin >> filename;
  103. inputfile.open(filename);
  104.  
  105. if(!inputfile.is_open())
  106. {
  107. cout << "failure";
  108. }
  109. else
  110. {
  111. while(!inputfile.eof())
  112. {
  113. node * newnode = new node();
  114. inputfile >> num;
  115. newnode->data.setAccountNumber(num);
  116. inputfile >> balance;
  117. newnode->data.setBalance(balance);
  118. inputfile.ignore(INT_MAX, '\n');
  119. inputfile.clear();
  120. getline(inputfile, name);
  121. char * ownerName = new char[name.length() + 1];
  122. strcpy(ownerName, name.c_str());
  123. newnode->data.setOwner(ownerName);
  124. info->appendNode(newnode);
  125. displayAccountInfo(newnode->data);
  126. delete[] ownerName;
  127.  
  128. }
  129.  
  130. }
  131. info->findJohnAccount();
  132. info->sortAccounts();
  133.  
  134.  
  135. inputfile.close();
  136. delete info;
  137.  
  138. return 0;
  139. }
  140. void displayAccountInfo(bank obj)
  141. {
  142. cout << "Account number: " << obj.getAccountNumber() << endl;
  143. cout << "Balance: " << obj.getBalance() << endl;
  144. cout << "Name: " << obj.getOwner() << endl;
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement