Advertisement
Guest User

Week7

a guest
Apr 18th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.82 KB | None | 0 0
  1. #include<iostream>
  2. #include<ctime>
  3. #include<cstring>
  4. #include<vector>
  5. #include<fstream>
  6.  
  7. #define nullptr NULL
  8.  
  9. using namespace std;
  10.  
  11. int tries=3;
  12.  
  13. char *username="user";
  14. char *password="pass";
  15.  
  16. class Gen
  17. {
  18.     static int seq;
  19. public:
  20.     static int getNext(){ return ++seq; }
  21. };
  22. int Gen::seq=0;
  23.  
  24. class BankAccount
  25. {
  26.     int id;
  27.     char* name;
  28.     double balance;
  29. public:
  30.     BankAccount(char* _name=nullptr,double _balance=0.0)
  31.     {
  32.         this->id = time(NULL);
  33.         if(_name != nullptr)
  34.         {
  35.             this->name = new char[strlen(_name)+1];
  36.             strcpy(this->name,_name);
  37.         }
  38.         else
  39.         {
  40.             this->name = nullptr;
  41.         }
  42.         this->balance = _balance;
  43.     }
  44.     double getBalance()
  45.     {
  46.         return this->balance;
  47.     }
  48. };
  49.  
  50. class StaffMember
  51. {
  52.     int id;
  53.     char* name;
  54.     size_t age;
  55.     double salary;
  56. public:
  57.     StaffMember(char* _name=nullptr,size_t _age=0,double _salary=0.0)
  58.     {
  59.         this->id = time(NULL);
  60.         if(_name != nullptr)
  61.         {
  62.             this->name = new char[strlen(_name)+1];
  63.             strcpy(this->name,_name);
  64.         }
  65.         else
  66.         {
  67.             this->name = nullptr;
  68.         }
  69.  
  70.         age=_age;
  71.         salary = _salary;
  72.     }
  73.     void changeSalary(double change)
  74.     {
  75.         this->salary += change;
  76.     }
  77.     void operator += (double change) /// return type !!!
  78.     {
  79.         changeSalary(change);
  80.     }
  81.  
  82.     double getSalary()
  83.     {
  84.         return this->salary;
  85.     }
  86.     int getId()
  87.     {
  88.         return this->id;
  89.     }
  90. };
  91.  
  92. class BankSystem
  93. {
  94.     vector<BankAccount> ba;
  95.     vector<StaffMember> sm;
  96. public:
  97.     void push_back(BankAccount aBankAccount)
  98.     {
  99.         ba.push_back(aBankAccount);
  100.     }
  101.     void push_back(StaffMember aStaffMember)
  102.     {
  103.         sm.push_back(aStaffMember);
  104.     }
  105.     void eraseBankAccount(size_t pos)
  106.     {
  107.         ba.erase(ba.begin()+pos);
  108.     }
  109.     void eraseBankAccount(size_t left,size_t right)
  110.     {
  111.         ba.erase(ba.begin()+left,ba.begin()+right);
  112.     }
  113.     void eraseStaffMember(size_t pos)
  114.     {
  115.         sm.erase(sm.begin()+pos);
  116.     }
  117.     void eraseStaffMember(size_t left,size_t right)
  118.     {
  119.         sm.erase(sm.begin()+left,sm.begin()+right);
  120.     }
  121.     double sumBalances()
  122.     {
  123.         long double res=0;
  124.         for(int i=0;i<ba.size();i++)
  125.         {
  126.             res+=ba[i].getBalance();
  127.         }
  128.  
  129.         return res;
  130.     }
  131.     double sumSalaries()
  132.     {
  133.         long double res=0;
  134.         for(size_t i=0;i<sm.size();i++)
  135.         {
  136.             res+=sm[i].getSalary();
  137.         }
  138.  
  139.         return res;
  140.     }
  141.     double sumSalariesYearly()
  142.     {
  143.         return sumSalaries()*12;
  144.     }
  145.     void changeSalary(int id,int change)
  146.     {
  147.         for(size_t i=0;i<sm.size();i++)
  148.         {
  149.             if(sm[i].getId() == id)
  150.             {
  151.                 sm[i].changeSalary(change);
  152.             }
  153.         }
  154.     }
  155.     void changeSalaryMany(int* id,size_t sz,int change) /// Optimize !!!
  156.     {
  157.         for(size_t i=0;i<sz;i++)
  158.         {
  159.             changeSalary(id[i],change);
  160.         }
  161.     }
  162. };
  163.  
  164. bool logon(const char* nameOfFile)
  165. {
  166.     fstream file(nameOfFile);
  167.     char inputName[64];
  168.     char inputPass[64];
  169.     if(file.is_open())
  170.     {
  171.         file>>inputName>>inputPass;
  172.  
  173.         while(tries--)
  174.         {
  175.             if(strcmp(inputName,username) || strcmp(inputPass,password) )
  176.             {
  177.                 cout<<"Wrong username or password! Left tries - "<<tries<<endl;
  178.             }
  179.             else
  180.             {
  181.                 cout<<"Welcome!"<<endl;
  182.                 break;
  183.             }
  184.         }
  185.        
  186.     }
  187.     else
  188.     {
  189.         cout<<"File not found"<<endl;
  190.     }
  191.     file.close();
  192. }
  193.  
  194. int main()
  195. {
  196.     logon("credentials.txt");
  197.     return 0;
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement