The actual files lol
This commit is contained in:
50
account.cpp
Normal file
50
account.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
//account class file
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
class account
|
||||
{
|
||||
public:
|
||||
|
||||
account(short set_pin)
|
||||
{
|
||||
pin = set_pin;
|
||||
}
|
||||
|
||||
void deposit(double deposit)
|
||||
{
|
||||
balance += deposit;
|
||||
cout << "Succesfully deposited $" << deposit << endl;
|
||||
cout << "New balance is: $" << balance << endl << endl;
|
||||
}
|
||||
|
||||
|
||||
void withdraw(double withdrawl)
|
||||
{
|
||||
if (balance - withdrawl < 0) {
|
||||
cout << "Error: Not enough money in balance";
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
balance -= withdrawl;
|
||||
cout << "Succesfully withdrew $" << withdrawl << endl;
|
||||
cout << "New balance is: $" << balance << endl << endl;
|
||||
}
|
||||
}
|
||||
|
||||
void set_bal(double new_bal) { balance = new_bal; }
|
||||
bool test_pin(short int pin_attmpt) {
|
||||
if (pin_attmpt == pin)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
void set_pin(short int new_pin) { pin = new_pin; }
|
||||
void printBal() { cout << "$" << balance << endl << endl; }
|
||||
double txt_file_bal() { return balance; }
|
||||
private:
|
||||
double balance;
|
||||
short acnt_num;
|
||||
short int pin;
|
||||
};
|
||||
179
main.cpp
Normal file
179
main.cpp
Normal file
@@ -0,0 +1,179 @@
|
||||
//CURRENT BUILD BETA 3.85
|
||||
//Author Alex Kiraly
|
||||
|
||||
/************************
|
||||
TODO:
|
||||
-Have write to file in binary
|
||||
-admin mode for list, adding, removing accounts etc.
|
||||
|
||||
REDO
|
||||
entire things. Bank class, should be a class for each account to store things.
|
||||
|
||||
the whole damn thing has to be resturctured, only salvable part is logo and account class. Account class already had right idea, just need to add to it.
|
||||
|
||||
Main will run the main loop
|
||||
|
||||
class bank:
|
||||
stores all accts -- Map with an id for each? --
|
||||
admin services for creating/deleting/veiwing accounts on the cli
|
||||
will be responsible for reading and writing the BINARY file
|
||||
|
||||
class account:
|
||||
stores: check balanace, save balance, pin, holder name
|
||||
functions for transfers and what not.
|
||||
|
||||
***********************/
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <map>
|
||||
#include "account.cpp"
|
||||
using namespace std;
|
||||
|
||||
|
||||
void print_logo()
|
||||
{
|
||||
cout << " ### ## ##\n";
|
||||
cout << " ## ## ## ##\n";
|
||||
cout << " ## ## ## ##\n";
|
||||
cout << " ########## ####\n";
|
||||
cout << " ## ## ## ##\n";
|
||||
cout << "## ## ## ##\n";
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
//Variable initialization
|
||||
int usr_ac, pin_atmpt, t_acc;
|
||||
char usr_inp = NULL;
|
||||
//create acounts
|
||||
account james(1234);
|
||||
account paul(9876);
|
||||
//Initaite maps of account numbers to their class member
|
||||
map<int, account> acc_list;
|
||||
acc_list.insert(make_pair(1234, james));
|
||||
acc_list.insert(make_pair(2345, paul));
|
||||
|
||||
|
||||
//Read data.txt for values of each account
|
||||
ifstream infile("data.txt");
|
||||
int a;
|
||||
double b;
|
||||
while (infile >> a >> b)
|
||||
{
|
||||
acc_list[a].set_bal(b);
|
||||
|
||||
}
|
||||
infile.close();
|
||||
|
||||
//Print welcome logo and message
|
||||
print_logo();
|
||||
cout << "Welcome to AK banking. What is your account number?\n:";
|
||||
|
||||
//Get user acount name
|
||||
cin >> usr_ac;
|
||||
|
||||
//User gets 5 tries to enter their accounts passcode
|
||||
//If not broken(correct pin) then terminates program with failure
|
||||
for (int tries = 5; tries >= 0; tries--)
|
||||
{
|
||||
cout << "Enter pin: ";
|
||||
cin >> pin_atmpt;
|
||||
|
||||
if (acc_list[usr_ac].test_pin(pin_atmpt))
|
||||
break;
|
||||
|
||||
else {
|
||||
cout << "Incorrect pin " << tries << " attempts left\n";
|
||||
}
|
||||
//EXIT_FAILURE
|
||||
if (tries == 0)
|
||||
exit(1);
|
||||
|
||||
}
|
||||
|
||||
//TODO /////////////////////////////////////////////////////////////////////////////////// PRINT NAME TO IT
|
||||
cout << "Welcome\n";
|
||||
|
||||
//Main part. While the user has chosen not to quit
|
||||
while (toupper(usr_inp) != 'Q')
|
||||
{
|
||||
double amount;
|
||||
//Get what user wants to do
|
||||
cout << "Press D to deposit, W to withdraw, B for balance, T to transfer to another account, q to quit\n:";
|
||||
cin >> usr_inp;
|
||||
|
||||
switch (toupper(usr_inp))
|
||||
{
|
||||
//if user chooses to deposit
|
||||
case 'D':
|
||||
for (;;) {
|
||||
cout << "How much to deposit?\n:";
|
||||
//check if amount enterd is a propor float
|
||||
if (!(cin >> amount) || amount < 0.0) {
|
||||
cout << "Invalid input, please enter a positive value." << endl;
|
||||
cin.clear();
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
//If all checks pass, deposit amount
|
||||
acc_list[usr_ac].deposit(amount);
|
||||
break;
|
||||
|
||||
//if choose to withdraw
|
||||
case 'W':
|
||||
for (;;) {
|
||||
cout << "How much to withdraw?\n:";
|
||||
//Checks if propor float
|
||||
if (!(cin >> amount) || amount < 0.0) {
|
||||
cout << "Invalid input, please enter a positive value." << endl;
|
||||
cin.clear();
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
//if checks pass, withdraw that amount
|
||||
acc_list[usr_ac].withdraw(amount);
|
||||
break;
|
||||
|
||||
case 'B':
|
||||
acc_list[usr_ac].printBal();
|
||||
break;
|
||||
|
||||
case 'T':
|
||||
//If user wants to transfer funds to another account
|
||||
cout << "Which acount would you like to transfer funds to?\n:";
|
||||
cin >> t_acc;
|
||||
cout << "How much would you like to transfer?\n:";
|
||||
cin >> amount;
|
||||
|
||||
acc_list[usr_ac].withdraw(amount);
|
||||
acc_list[t_acc].deposit(amount);
|
||||
cout << "Succesfully transferd $" << amount;
|
||||
break;
|
||||
|
||||
default:
|
||||
cout << "Thats not an option, try again";
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
//print final balances to txt file
|
||||
ofstream outfile;
|
||||
outfile.open("data.txt");
|
||||
for (auto const& p : acc_list)
|
||||
{
|
||||
outfile << p.first << ' ' << acc_list[p.first].txt_file_bal() << '\n';
|
||||
}
|
||||
|
||||
//outfile << usr_ac << " " << acc_list[usr_ac].txt_file_bal();
|
||||
outfile.close();
|
||||
|
||||
cout << "Goodbye";
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user