Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  Assgn 2
Language: C/C++
Code:
#include <iostream>
#include <string>
#include <cstring>
#include <iomanip>

using namespace std;


int index_Num = -1;
int user_count = -1;
string ID_Num;

class E_wallet;
class E_credit;

void checkID();
void RegisterID();
void main_Menu();
void show_Acc();
void Trans();
void deposit();
void withdraw();

class E_credit
{
     public: 
     double balance;
     string ID;
     bool user_Type;
     E_credit();
     
     void set_Balance(double bal);
     void set_Usertype(bool U_type) { user_Type = U_type; };
     int cred_Limit();
     
     double get_Balance() const { return balance; };
     string get_Usertype() const;
};

E_credit::E_credit()
{
     balance = 0.00;
     ID = "Null";
     user_Type = 0;
}

string E_credit::get_Usertype() const
{
     if(user_Type == 0)
     {
          return "Normal User";
     }
     else if(user_Type == 1 )
     {
          return "Super User";
     }
     else;
};

void E_credit::set_Balance(double bal)
{
    balance = bal;
};

int E_credit::cred_Limit()
{
     if(user_Type == 0)
     {
          return 500;
     }
     if(user_Type == 1)
     {
          return 500000;
     }
};

class E_wallet
{
     public:
          
     string first_Name,last_Name,ID , DoB, IC_Num;

     E_wallet();
     //E_wallet(string fn , string ln, string ID , string dob, string ic, int bal);
     void set_Firstname(string fn) { first_Name = fn; };
     void set_Lastname(string ln){ last_Name = ln; };
     void set_id(string id){ ID = id; };
     void set_DoB(string dob){ DoB = dob; };
     void set_ICNum(string ic){ IC_Num = ic; };

     string get_Firstname() const { return first_Name; };
     string get_Lastname() const { return last_Name; };
     string get_id() const { return ID; };
     string get_DoB() const { return DoB; };
     string get_ICNum() const { return IC_Num; };
     void show_Acc() const;
     
};

E_wallet::E_wallet()
{
     first_Name = "Null";
     last_Name = "Null";
     ID = "Null";
     DoB = "Null";
     IC_Num = "Null";

};

E_wallet User[50];
E_credit Acc[50];

void E_wallet::show_Acc() const
{
     cout<<"\n\n\nFirst name:    "<<User[index_Num].get_Firstname()<<endl;
     cout<<"Last name:     "<<User[index_Num].get_Lastname()<<endl;
     cout<<"Date of birth: "<<User[index_Num].get_DoB()<<endl;
     cout<<"IC number:     "<<User[index_Num].get_ICNum()<<endl;
     cout<<"Account type:  "<<Acc[index_Num].get_Usertype()<<endl;
     cout<<"Balance:       "<<Acc[index_Num].get_Balance()<<endl<<endl;
     
     if( User[index_Num].ID == "Null")
     {
          cout<<"\nInvalid user ID. Please register. \n \n";
          system("timeout /t 5 > NUL");
          system("cls");
     }
     Trans();

};

int main()
{
     system("color 0A");
     cout<<fixed<<setprecision(2);
    main_Menu();
    

}

void main_Menu()
{
     int sel;
     cout<<fixed;
     do
     {          
     //               0         1         2         3         4         5         6         7    
     //               1234567890123456789012345678901234567890123456789012345678901234567890123
     cout<<setw(93)<<"*************************************************************************"<<endl;
     cout<<setw(93)<<"**-WELCOME_TO************************************************************"<<endl;
     cout<<setw(93)<<"**                                                                     **"<<endl;
     cout<<setw(93)<<"**  EEEEEEE        WW      WW   AAA   LL      LL      EEEEEEE TTTTTTT  **"<<endl;
    cout<<setw(93)<<"**  EE             WW      WW  AAAAA  LL      LL      EE        TTT    **"<<endl;
    cout<<setw(93)<<"**  EEEEE   =====  WW   W  WW AA   AA LL      LL      EEEEE     TTT    **"<<endl;
    cout<<setw(93)<<"**  EE              WW WWW WW AAAAAAA LL      LL      EE        TTT    **"<<endl;
    cout<<setw(93)<<"**  EEEEEEE          WW   WW  AA   AA LLLLLLL LLLLLLL EEEEEEE   TTT    **"<<endl;
    cout<<setw(93)<<"**                                                                     **"<<endl;
        cout<<setw(93)<<"************************************************************-BY:SOMEONE**"<<endl;
        cout<<setw(93)<<"*************************************************************************"<<endl<<endl<<endl;
    
     cout<<"Select menu: \n\n";
     cout<<"                              [1] Enter ID                  [2] Register\n";
     cout<<"Your selection: ";
     cin>>sel;
     

    switch(sel)
    {
         case 1: checkID();
         break;
         case 2: RegisterID();
         break;
         default:cout<<"Invalid selection! \n";
          break;
     }
     sel = 0;
    }
    while(sel != 1 && sel != 2);     
}

void RegisterID()
{
     string first_Name,last_Name,ID , DoB, IC_Num;
     char idset_1[4];
     char idset_2[14];
     int idindex[2];
     //xxxxx-xx-xxxx
     int base_Num;
     int user_T;
     
     base_Num = user_count + 1;
     user_count = base_Num;
     //cout<<base_Num<<endl;
          if(base_Num > 49)
     {
          cout<<"User limt exceeded! \n";
          main_Menu();
     }
     
     cin.ignore();
     cout<<"\n\nFirst name: ";
     getline (cin,first_Name);
     
     cout<<"\nLast name: ";
     getline (cin,last_Name);
     
     do
     {
     cout<<"\nDate of Birth: (ddmmyyyy)";
     cin>>DoB;
    }
    while(DoB.size() < 8 || DoB.size() > 8);
    
     do
     {
     cout<<"\nIC Number: (xxxxxx-xx-xxxx)";
     cin>>IC_Num;
    strcpy(idset_2,IC_Num.c_str());
    }
     while(idset_2[6] != '-' && idset_2[9] != '-');
     
     strcpy(idset_1,DoB.c_str());
     idindex[0] = (base_Num /10)+48;
     idindex[1] = (base_Num %10)+48;
     ID = idset_1[0];
     ID += idset_1[1];
     ID += idset_1[2];
     ID += idset_1[3];
     ID += idindex[0];
     ID += idset_2[10];
     ID += idset_2[11];
     ID += idset_2[12];
     ID += idset_2[13];
     ID += idindex[1];
     
     do
     {
     cout<<"Please select User Type: \n";
     cout<<"                        [1] Normal User        [2] Super User \n\n";
     cout<<"Your selection:  ";
     cin>>user_T;
    }
    while (user_T !=1 && user_T != 2);
    
    switch(user_T)
    {
         case 1: Acc[base_Num].set_Usertype(0);
         break;
         case 2: Acc[base_Num].set_Usertype(1);
         break;
         default: Acc[base_Num].set_Usertype(0);
         break;
    }
    cout<<"\nREMINDER: Please memorize your ID in order to Login. \n\n";
     cout<<"Your ID: "<<ID<<endl;
     
     User[base_Num].set_Firstname(first_Name);
     User[base_Num].set_Lastname(last_Name);
     User[base_Num].set_id(ID);
     User[base_Num].set_DoB(DoB);
     User[base_Num].set_ICNum(IC_Num);
     
     cout<<"Account successfully registered. \n";
     cout<<"Press any key to continue. \n";
     system("pause > NUL");
     cout<<"Redirecting to main menu to login... \n";
     system("timeout /t 3 > NUL");
     system("cls");
     main_Menu();
}

void checkID()
{
     char id[10];
     string inID;
     int id_Num;
     
     cout<<"Please enter your ID: ";
     cin>>inID;
     if (inID.length() == 10)
     {
     strcpy(id,inID.c_str());
     id_Num = ((id[4]-48)*10)+ (id[9]-48);
     
     cout<<"id_Num: "<<id_Num<<endl;     
     index_Num = id_Num;
    
        if(inID == User[index_Num].ID)
        {
          User[index_Num].show_Acc();
          Acc[index_Num].ID = User[index_Num].ID;
        }
        else
        {
             cout<<"Invalid ID Registered.";
             system("timeout /t 3 > NUL");
             system("cls");
          }
    }
    else
    {
         cout<<"Invalid ID entered, please register. \n";
         system("timeout /t 1 > NUL");
         cout<<"Please wait... Redirecting to Main Menu. \n";
         system("timeout /t 3 > NUL");
         system("cls");
         main_Menu();
     }
}

void Trans()
{
     int sel;
   do
    {
     cout<<"Please select Menu: \n\n";
     cout<<"                   [1]Cash Deposit        [2]Cash Withdrawal        [3]Cancel \n\n";
     cout<<"Your selection:  ";
     cin>>sel;
     
     switch(sel)
       {
          
          case 1: system("cls");
                  deposit();
                 break;
          case 2: system("cls");
                  withdraw();
                  break;
          case 3: system("cls");
                  main_Menu();
                  break;
         }
    }
    while(1);
     
}

void deposit()
{
     double cur_Balance;
     double add;
     double Total;

     cur_Balance = Acc[index_Num].get_Balance();
     cout<<"Current balance: RM "<<cur_Balance<<endl<<endl;
     cout<<"Please enter deposit value: RM ";
     cin>>add;
     cout<<"\n\nValue deposited: RM "<<add<<endl<<endl;
     Total = cur_Balance + add;
     cout<<"Total Value: RM"<<Total<<endl<<endl<<endl;
     Acc[index_Num].set_Balance(Total);
}

void withdraw()
{
     double cur_Balance;
     double sub;
     double Total;
     double Limit;
     
     cur_Balance = Acc[index_Num].get_Balance();
     cout<<"Current balance: RM "<<cur_Balance<<endl<<endl;
     cout<<"Due to you're: "<<Acc[index_Num].get_Usertype()<<", so your withdrawal limit is: RM "<<Acc[index_Num].cred_Limit()<<endl<<endl;
     cout<<"Please enter deposit value: RM ";
     cin>>sub;
     Limit = Acc[index_Num].cred_Limit();
     
     if(sub >= 0 && sub <= Limit)
     {
          if(sub <= cur_Balance)
          {
         cout<<"\n\nValue deposited: RM "<<sub<<endl<<endl;
         Total = cur_Balance - sub;
         cout<<"Total Value: RM "<<Total<<endl<<endl<<endl;
         Acc[index_Num].set_Balance(Total);
         system("pause");
         }
         else
         {
              cout<<"You have not enough withdrawal credits! \n\n";
          }
    }
    else
    {
         cout<<"Your withdrawal amount is over the limit! \n\n";
         system("timeout /t 3 > NUL");
     }
}
Comments: