Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<ctime>
- #include<cstring>
- #include<vector>
- #include<fstream>
- #define nullptr NULL
- using namespace std;
- int tries=3;
- char *username="user";
- char *password="pass";
- class Gen
- {
- static int seq;
- public:
- static int getNext(){ return ++seq; }
- };
- int Gen::seq=0;
- class BankAccount
- {
- int id;
- char* name;
- double balance;
- public:
- BankAccount(char* _name=nullptr,double _balance=0.0)
- {
- this->id = time(NULL);
- if(_name != nullptr)
- {
- this->name = new char[strlen(_name)+1];
- strcpy(this->name,_name);
- }
- else
- {
- this->name = nullptr;
- }
- this->balance = _balance;
- }
- double getBalance()
- {
- return this->balance;
- }
- };
- class StaffMember
- {
- int id;
- char* name;
- size_t age;
- double salary;
- public:
- StaffMember(char* _name=nullptr,size_t _age=0,double _salary=0.0)
- {
- this->id = time(NULL);
- if(_name != nullptr)
- {
- this->name = new char[strlen(_name)+1];
- strcpy(this->name,_name);
- }
- else
- {
- this->name = nullptr;
- }
- age=_age;
- salary = _salary;
- }
- void changeSalary(double change)
- {
- this->salary += change;
- }
- void operator += (double change) /// return type !!!
- {
- changeSalary(change);
- }
- double getSalary()
- {
- return this->salary;
- }
- int getId()
- {
- return this->id;
- }
- };
- class BankSystem
- {
- vector<BankAccount> ba;
- vector<StaffMember> sm;
- public:
- void push_back(BankAccount aBankAccount)
- {
- ba.push_back(aBankAccount);
- }
- void push_back(StaffMember aStaffMember)
- {
- sm.push_back(aStaffMember);
- }
- void eraseBankAccount(size_t pos)
- {
- ba.erase(ba.begin()+pos);
- }
- void eraseBankAccount(size_t left,size_t right)
- {
- ba.erase(ba.begin()+left,ba.begin()+right);
- }
- void eraseStaffMember(size_t pos)
- {
- sm.erase(sm.begin()+pos);
- }
- void eraseStaffMember(size_t left,size_t right)
- {
- sm.erase(sm.begin()+left,sm.begin()+right);
- }
- double sumBalances()
- {
- long double res=0;
- for(int i=0;i<ba.size();i++)
- {
- res+=ba[i].getBalance();
- }
- return res;
- }
- double sumSalaries()
- {
- long double res=0;
- for(size_t i=0;i<sm.size();i++)
- {
- res+=sm[i].getSalary();
- }
- return res;
- }
- double sumSalariesYearly()
- {
- return sumSalaries()*12;
- }
- void changeSalary(int id,int change)
- {
- for(size_t i=0;i<sm.size();i++)
- {
- if(sm[i].getId() == id)
- {
- sm[i].changeSalary(change);
- }
- }
- }
- void changeSalaryMany(int* id,size_t sz,int change) /// Optimize !!!
- {
- for(size_t i=0;i<sz;i++)
- {
- changeSalary(id[i],change);
- }
- }
- };
- bool logon(const char* nameOfFile)
- {
- fstream file(nameOfFile);
- char inputName[64];
- char inputPass[64];
- if(file.is_open())
- {
- file>>inputName>>inputPass;
- while(tries--)
- {
- if(strcmp(inputName,username) || strcmp(inputPass,password) )
- {
- cout<<"Wrong username or password! Left tries - "<<tries<<endl;
- }
- else
- {
- cout<<"Welcome!"<<endl;
- break;
- }
- }
- }
- else
- {
- cout<<"File not found"<<endl;
- }
- file.close();
- }
- int main()
- {
- logon("credentials.txt");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement