Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Need help with syntax for Banking System program using C++ programmin languange.

ID: 3727746 • Letter: N

Question

Need help with syntax for Banking System program using C++ programmin languange. You will write a program that will help in the management of a private bank. General Requirements

Write a program that reads (each time the program is executed) from the secondary storage froma file named accounts.txt the account numbers and balances into a multi-dimensional array

Your program will ask the user to choose one of the following options:

1.Deposit Money

2.Withdraw Money

3.Transfer Money

4.Show Transactions

5.Open an Account

6.Close an Account

7.Sort Accounts from largest balance to smallest

8.Sort Accounts in alphabetical order using the account owners name

9.Quit Program

The program will have at least ten user-defined functions (one function for each of the eightoptions 1-8, one to print the options menu, and one to find the index of the account in the array).

The program will save the transactions information in a separate file that has the same name asthe account number (e.g. for account number: 15689 the file name will be 15689.txt)

If the user tries to withdraw more than the available balance an error message will be displayedand the transaction will not be processed.

Closing an account will only flag the account rather than permanently delete the account.

If the user tries to close a non-zero balance account an error message will be displayed and thetransaction will not be processed.

When the user decides to quit the new balances are saved back to the secondary storage to thesame file (i.e. accounts.txt)

The first function’s name is printOptionsMenu, which will print (show on the screen)

-----------------------------------------------------------------------------------------------------

Please choose one of the following options:

1.Deposit Money

2.Withdraw Money

3.Transfer Money

4.Show Transactions

5.Open an Account

6.Close an Account

7.Sort Accounts from largest balance to smallest

8.Sort Accounts in alphabetical order using the account owners name

9.Quit Program

-----------------------------------------------------------------------------------------------------

The second function’s name is getArrayIndexOfAccount, which receives two parameters (the account number and the array of accounts) and returns the index of the account in the array if found; otherwise; the function returns -1.

The third function’s name is depositMoney, which receives three parameters (the index of the account in the array, the amount to be deposited, and the array of accounts). The function will update the balance and will save the transactions information (including the date and time) in the file that has the same name as the account number.

The fourth function’s name is withdrawMoney, which receives three parameters (the index of the account in the array, the amount to be withdrawn, and the array of accounts). The function will update the balance and will save the transactions information (including the date and time) in the file that has the same name as the account number.

The fifth function’s name is openAccount, which asks for the account owner’s information (e.g. name and opening balance). The function will add a new record to the array of accounts and accounts.txt as well as create a new file (with the same name as the account number) and update the transactions information (including the date and time) with the opening balance.

The sixth function’s name is closeAccount, which checks the balance before flagging the account as deleted. If the balance is not zero, an error message will be displayed and the transaction will not be processed.

The sixth function’s name is closeAccount, which checks the balance before flagging the account as deleted. If the balance is not zero, an error message will be displayed and the transaction will not be processed.

The seventh function’s name is sortBalances, which receives one parameter (the array of accounts). The function will sort and display the accounts (without changing the original array) from largest balance to smallest.

The eight function’s name is sortNames, which receives one parameter (the array of accounts). The function will sort and display the accounts (without changing the original array) in alphabetical order using the account owner’s name.

Make sure to follow the instructions carefully including using the exact function names with the exact letter cases (upper and lower case letters). Your programs are going to be tested using a unified main function that is developed for that purpose. If the unified main function does not compile this indicates inconsistencies in meeting the above requirements and will result in a zero grade.

All functions (except the main function) will be defined as follows:

1. The function prototype appears before the main

2. Comment describing what the function does appears directly under function prototype

3. Formal variable names are not used in any prototype

4. The functions definition appears after the main

Additional Requirements:

Be sure to comment your code adequately.

Be sure to indent properly. Check the textbook to see how it should be done.

Use self-documenting variable names

Sample contents of the accounts.txt file:

Serial Account FirstName LastName Balance Flag

1 56897 Richard Dustin 1001.59 0

2 43534 Michael Smith 123.55 0

3 65743 George Gonzales 10.66 0

4 43346 Donald Malik 0 1

5 97867 Owen Evelyn 5527.10 0

6 38531 Lucas Wyatt 7891.22 0

Explanation / Answer

#include<iostream>

#include<fstream>

#include<cctype>

#include<iomanip>

using namespace std;

//***************************************************************

// CLASS USED IN PROJECT

//****************************************************************

class account

{

int acno;

char name[50];

int deposit;

char type;

public:

void create_account(); //function to get data from user

void show_account() const; //function to show data on screen

void modify(); //function to add new data

void dep(int); //function to accept amount and add to balance amount

void draw(int); //function to accept amount and subtract from balance amount

void report() const; //function to show data in tabular format

int retacno() const; //function to return account number

int retdeposit() const; //function to return balance amount

char rettype() const; //function to return type of account

}; //class ends here

void account::create_account()

{

cout<<" Enter The account No. :";

cin>>acno;

cout<<" Enter The Name of The account Holder : ";

cin.ignore();

cin.getline(name,50);

cout<<" Enter Type of The account (C/S) : ";

cin>>type;

type=toupper(type);

cout<<" Enter The Initial amount(>=500 for Saving and >=1000 for current ) : ";

cin>>deposit;

cout<<" Account Created..";

}

void account::show_account() const

{

cout<<" Account No. : "<<acno;

cout<<" Account Holder Name : ";

cout<<name;

cout<<" Type of Account : "<<type;

cout<<" Balance amount : "<<deposit;

}

void account::modify()

{

cout<<" Account No. : "<<acno;

cout<<" Modify Account Holder Name : ";

cin.ignore();

cin.getline(name,50);

cout<<" Modify Type of Account : ";

cin>>type;

type=toupper(type);

cout<<" Modify Balance amount : ";

cin>>deposit;

}

void account::dep(int x)

{

deposit+=x;

}

void account::draw(int x)

{

deposit-=x;

}

void account::report() const

{

cout<<acno<<setw(10)<<" "<<name<<setw(10)<<" "<<type<<setw(6)<<deposit<<endl;

}

int account::retacno() const

{

return acno;

}

int account::retdeposit() const

{

return deposit;

}

char account::rettype() const

{

return type;

}

//***************************************************************

// function declaration

//****************************************************************

void write_account(); //function to write record in binary file

void display_sp(int); //function to display account details given by user

void modify_account(int); //function to modify record of file

void delete_account(int); //function to delete record of file

void display_all(); //function to display all account details

void deposit_withdraw(int, int); // function to desposit/withdraw amount for given account

void intro(); //introductory screen function

//***************************************************************

// THE MAIN FUNCTION OF PROGRAM

//****************************************************************

int main()

{

char ch;

int num;

intro();

do

{

system("cls");

cout<<" MAIN MENU";

cout<<" 01. NEW ACCOUNT";

cout<<" 02. DEPOSIT AMOUNT";

cout<<" 03. WITHDRAW AMOUNT";

cout<<" 04. BALANCE ENQUIRY";

cout<<" 05. ALL ACCOUNT HOLDER LIST";

cout<<" 06. CLOSE AN ACCOUNT";

cout<<" 07. MODIFY AN ACCOUNT";

cout<<" 08. EXIT";

cout<<" Select Your Option (1-8) ";

cin>>ch;

system("cls");

switch(ch)

{

case '1':

write_account();

break;

case '2':

cout<<" Enter The account No. : "; cin>>num;

deposit_withdraw(num, 1);

break;

case '3':

cout<<" Enter The account No. : "; cin>>num;

deposit_withdraw(num, 2);

break;

case '4':

cout<<" Enter The account No. : "; cin>>num;

display_sp(num);

break;

case '5':

display_all();

break;

case '6':

cout<<" Enter The account No. : "; cin>>num;

delete_account(num);

break;

case '7':

cout<<" Enter The account No. : "; cin>>num;

modify_account(num);

break;

case '8':

cout<<" Thanks for using bank managemnt system";

break;

default :cout<<"";

}

cin.ignore();

cin.get();

}while(ch!='8');

return 0;

}

//***************************************************************

// function to write in file

//****************************************************************

void write_account()

{

account ac;

ofstream outFile;

outFile.open("account.dat",ios::binary|ios::app);

ac.create_account();

outFile.write(reinterpret_cast<char *> (&ac), sizeof(account));

outFile.close();

}

//***************************************************************

// function to read specific record from file

//****************************************************************

void display_sp(int n)

{

account ac;

bool flag=false;

ifstream inFile;

inFile.open("account.dat",ios::binary);

if(!inFile)

{

cout<<"File could not be open !! Press any Key...";

return;

}

cout<<" BALANCE DETAILS ";

while(inFile.read(reinterpret_cast<char *> (&ac), sizeof(account)))

{

if(ac.retacno()==n)

{

ac.show_account();

flag=true;

}

}

inFile.close();

if(flag==false)

cout<<" Account number does not exist";

}

//***************************************************************

// function to modify record of file

//****************************************************************

void modify_account(int n)

{

bool found=false;

account ac;

fstream File;

File.open("account.dat",ios::binary|ios::in|ios::out);

if(!File)

{

cout<<"File could not be open !! Press any Key...";

return;

}

while(!File.eof() && found==false)

{

File.read(reinterpret_cast<char *> (&ac), sizeof(account));

if(ac.retacno()==n)

{

ac.show_account();

cout<<" Enter The New Details of account"<<endl;

ac.modify();

int pos=(-1)*static_cast<int>(sizeof(account));

File.seekp(pos,ios::cur);

File.write(reinterpret_cast<char *> (&ac), sizeof(account));

cout<<" Record Updated";

found=true;

}

}

File.close();

if(found==false)

cout<<" Record Not Found ";

}

//***************************************************************

// function to delete record of file

//****************************************************************

void delete_account(int n)

{

account ac;

ifstream inFile;

ofstream outFile;

inFile.open("account.dat",ios::binary);

if(!inFile)

{

cout<<"File could not be open !! Press any Key...";

return;

}

outFile.open("Temp.dat",ios::binary);

inFile.seekg(0,ios::beg);

while(inFile.read(reinterpret_cast<char *> (&ac), sizeof(account)))

{

if(ac.retacno()!=n)

{

outFile.write(reinterpret_cast<char *> (&ac), sizeof(account));

}

}

inFile.close();

outFile.close();

remove("account.dat");

rename("Temp.dat","account.dat");

cout<<" Record Deleted ..";

}

//***************************************************************

// function to display all accounts deposit list

//****************************************************************

void display_all()

{

account ac;

ifstream inFile;

inFile.open("account.dat",ios::binary);

if(!inFile)

{

cout<<"File could not be open !! Press any Key...";

return;

}

cout<<" ACCOUNT HOLDER LIST ";

cout<<"==================================================== ";

cout<<"A/c no. NAME Type Balance ";

cout<<"==================================================== ";

while(inFile.read(reinterpret_cast<char *> (&ac), sizeof(account)))

{

ac.report();

}

inFile.close();

}

//***************************************************************

// function to deposit and withdraw amounts

//****************************************************************

void deposit_withdraw(int n, int option)

{

int amt;

bool found=false;

account ac;

fstream File;

File.open("account.dat", ios::binary|ios::in|ios::out);

if(!File)

{

cout<<"File could not be open !! Press any Key...";

return;

}

while(!File.eof() && found==false)

{

File.read(reinterpret_cast<char *> (&ac), sizeof(account));

if(ac.retacno()==n)

{

ac.show_account();

if(option==1)

{

cout<<" TO DEPOSITE AMOUNT ";

cout<<" Enter The amount to be deposited";

cin>>amt;

ac.dep(amt);

}

if(option==2)

{

cout<<" TO WITHDRAW AMOUNT ";

cout<<" Enter The amount to be withdraw";

cin>>amt;

int bal=ac.retdeposit()-amt;

if((bal<500 && ac.rettype()=='S') || (bal<1000 && ac.rettype()=='C'))

cout<<"Insufficience balance";

else

ac.draw(amt);

}

int pos=(-1)*static_cast<int>(sizeof(ac));

File.seekp(pos,ios::cur);

File.write(reinterpret_cast<char *> (&ac), sizeof(account));

cout<<" Record Updated";

found=true;

}

}

File.close();

if(found==false)

cout<<" Record Not Found ";

}

//***************************************************************

// INTRODUCTION FUNCTION

//****************************************************************

void intro()

{

cout<<" BANK";

cout<<" MANAGEMENT";

cout<<" SYSTEM";

cout<<" MADE BY : your name";

cout<<" SCHOOL : your school name";

cin.get();

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote