This document summarizes a student project on a banking management system developed in C++. The project allows users to open and close accounts, deposit and withdraw funds, check balances, and list account details. The main functions include writing account data to a binary file, reading specific records, modifying or deleting records, and depositing or withdrawing amounts. The output screens showcase account creation, transactions, inquiries and reports. Future enhancements proposed are adding new bank policies, enabling online transactions, and improving the user interface.
2. Index
Abstract 01
Program specification 02
Description 03
Program Coding 05
Output 19
Future enhancement 24
Bibliography 25
3. 1
Abstract
The main objectives of this banking system which
is developed in C++ is to provide a flexible solution
for banking industry. With this system, both of
users such customer and working personnel of the
particular bank will find easy to use and able to
perform all their operations using the system. This
system enable its users to open and close the bank
account. Customers will able to withdraw and
deposit amount to their particular account.
Working personnel of particular bank will make all
the operations which are required within the
banking premises. The operation which can be
performed by bank personnel are: Adding new
customers account, modifying existing account, list
all customer details including their account
number. And also in the perspective of customers it
helps in easy of accessing and reduces time. Its user
friendly graphical mode will make its users to work
with this new system in more interactive way.
4. 2
Program Specification
System requirements are expressed in the software requirement
document. The SRS is the official statement of what is required of the
system developers.
Non-functional requirement:
Reliability
Security
Extensibility
Portability
Reusability
Compatibility
Hardware requirement:
Processor- Intel Pentium or Amd Athlon
Ram- 512MB or greater
Hard Disk space-
Compatible- Pc
Software Requirement:
Operating system-Windows XP or later ,Linux, OS x
Borland C or Turbo C++
5. 3
Description
This project makes use of some of the concepts of the OOPS and data
file handling mechanism. These are as follow:-
1. Header files-The header files in C++ library helps to
access data type function prototype, definitions for library
functions. The header files included in this program are:
include<iostream.h>
include<conio.h>
include<cctype.h>
include<iomaniph.n>
include<stdlib.h>
2. Classes- It is a collection object, where objects having its
own attributes and functions. The class Created is:-
class account
3. Functions – These are individual piece of code or modules
which can be used anywhere in the program by calling
them when needed. The functions can be predefined or
user defined. Some of the user defined function created in
the program are:-
void create_account()
void show_account()
void modify()
void dep()
void draw()
void report()
int retacno()
int retdeposit()
6. 4
char retype()
void write_account()
void display_sp()
void modify_account()
void delete_account()
void display_all()
void deposit_withdraw()
void intro()
4. Switch Case: It is the multiple branch selection
statement. The selection statement successively tests the
value of an expression against a list of integer or
character constant.
5. IF and ELSE statement: ‘IF’ statement test a particular
statement if the condition evaluates to true i.e., a set of
statements are executed if the condition is true. If the
condition is not true i.e., is false then the set of statement
in ‘else’ condition is executed. Both the ‘if’ and ‘else’
statement are never executed simultaneously.
6. Fstream: The fstream library predefines a set of operation
for handling file related to input and output.
infile
outfile
system(‘cls’)
ostream
7. 5
Coding
#include<fstream.h>
#include<ctype.h>
#include<iomanip.h>
#include<conio.h>
#include<stdio.h>
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
// Class used in the program
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
class account
{
int acno;
char name[50];
int deposit;
char type;
public:
void create_account(); //function to get data from user
void show_account(); //function to show data on screen
void modify(); //function to get new data from user
void dep(int); //function to accept amount and add to balance amount
void draw(int); //function to accept amount and subtract from balance
void report(); //function to show data in tabular format
int retacno(); //function to return account number
int retdeposit(); //function to return balance amount
char rettype(); //function to return type of account
8. 6
}; //class ends here
void account::create_account()
{
cout<<"tttWelcome... Create your New Account n";
cout<<"nEnter The account No.";
cin>>acno;
cout<<"nnEnter The Name of The account Holder : ";
gets(name);
cout<<"nEnter Type of The account (C/S) : ";
cin>>type;
type=toupper(type);
cout<<"nEnter The Initial amount(>=500 for Saving and
>=1000 for current ) : ";
cin>>deposit;
cout<<"nnnAccount Created..";
}
void account::show_account()
{
cout<<"nAccount No. : "<<acno;
cout<<"nAccount Holder Name : ";
cout<<name;
cout<<"nType of Account : "<<type;
cout<<"nBalance amount : "<<deposit;
}
void account::modify()
9. 7
{
cout<<"nThe account No."<<acno;
cout<<"nnEnter The Name of The account Holder : ";
gets(name);
cout<<"nEnter Type of The account (C/S) : ";
cin>>type;
type=toupper(type);
cout<<"nEnter The amount : ";
cin>>deposit;
}
void account::dep(int x)
{
deposit+=x;
}
void account::draw(int x)
{
deposit-=x;
}
void account::report()
{
cout<<acno<<setw(10)<<" "<<name<<setw(10)<<"
"<<type<<setw(6)<<deposit<<endl;
}
int account::retacno()
10. 8
{
return acno;
}
int account::retdeposit()
{
return deposit;
}
char account::rettype()
{
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 deposit/withdraw amount
void intro(); //introductory screen function
11. 9
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
// The main function of program
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
int main()
{
char ch;
int num;
clrscr();
intro();
do
{
clrscr();
cout<<"nnntMAIN MENU";
cout<<"nnt01. NEW ACCOUNT";
cout<<"nnt02. DEPOSIT AMOUNT";
cout<<"nnt03. WITHDRAW AMOUNT";
cout<<"nnt04. BALANCE ENQUIRY";
cout<<"nnt05. ALL ACCOUNT HOLDER LIST";
cout<<"nnt06. CLOSE AN ACCOUNT";
cout<<"nnt07. MODIFY AN ACCOUNT";
cout<<"nnt08. EXIT";
cout<<"nntSelect Your Option (1-8) ";
cin>>ch;
clrscr();
switch(ch)
{
case '1':
write_account();
12. 10
break;
case '2':
cout<<"nntEnter The account No. : "; cin>>num;
deposit_withdraw(num, 1);
break;
case '3':
cout<<"nntEnter The account No. : "; cin>>num;
deposit_withdraw(num, 2);
break;
case '4':
cout<<"nntEnter The account No. : "; cin>>num;
display_sp(num);
break;
case '5':
display_all();
break;
case '6':
cout<<"nntEnter The account No. : "; cin>>num;
delete_account(num);
break;
case '7':
cout<<"nntEnter The account No. : "; cin>>num;
modify_account(num);
break;
case '8':
cout<<"nntThanks for using bank managemnt system n n";
cout<<"nttttsee";
cout<<"nntttttyou ";
14. 12
account ac;
int flag=0;
ifstream inFile;
inFile.open("account.dat",ios::binary);
if(!inFile)
{
cout<<"File could not be open !! Press any Key...";
return;
}
cout<<"nBALANCE DETAILSn";
while(inFile.read((char *) &ac, sizeof(account)))
{
if(ac.retacno()==n)
{
ac.show_account();
flag=1;
}
}
inFile.close();
if(flag==0)
cout<<"nnAccount number does not exist";
}
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
// Function to modify record of file
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
15. 13
void modify_account(int n)
{
int found=0;
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.read((char *) &ac, sizeof(account)) && found==0)
{
if(ac.retacno()==n)
{
ac.show_account();
cout<<"nnEnter The New Details of account"<<endl;
ac.modify();
int pos=(-1)*sizeof(account);
File.seekp(pos,ios::cur);
File.write((char *) &ac, sizeof(account));
cout<<"nnt Record Updated";
found=1;
}
}
File.close();
if(found==0)
16. 14
cout<<"nn 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((char *) &ac, sizeof(account)))
{
if(ac.retacno()!=n)
{
outFile.write((char *) &ac, sizeof(account));
}
17. 15
}
inFile.close();
outFile.close();
remove("account.dat");
rename("Temp.dat","account.dat");
cout<<"nntRecord Deleted ..";
cout<<”n n n Your account was successfully 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<<"nnttACCOUNT HOLDER LISTnn";
cout<<"===============================================n";
cout<<"A/c no. NAME Type Balancen";
cout<<"===============================================n";
while(inFile.read((char *) &ac, sizeof(account)))
18. 16
{
ac.report();
}
inFile.close();
}
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
// function to deposit and withdraw amounts
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
void deposit_withdraw(int n, int option)
{
int amt;
int found=0;
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.read((char *) &ac, sizeof(account)) && found==0)
{
if(ac.retacno()==n)
{
ac.show_account();
19. 17
if(option==1)
{
cout<<"nntTO DEPOSITE AMOUNT ";
cout<<"nnEnter The amount to be deposited";
cin>>amt;
ac.dep(amt);
}
if(option==2)
{
cout<<"nntTO WITHDRAW AMOUNT ";
cout<<"nnEnter 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)* sizeof(ac);
File.seekp(pos,ios::cur);
File.write((char *) &ac, sizeof(account));
cout<<"nnt Record Updated";
found=1;
}
}
File.close();
if(found==0)
20. 18
cout<<"nn Record Not Found ";
}
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
// Introduction function
//<><><><><><><><><><><><><><><><><><><><><><><><><><><>
void intro()
{
cout<<"n";
cout<<"nntttt BANK ";
cout<<"nntttt MANAGEMENT ";
cout<<"nn tttt SYSTEM";
cout<<"nnnnnn Press any key to continue:";
cout<<"nnnnnnnnn";
cout<<"Done by Pranoy.S.B Xii-D Alwin Memorial Public School ";
getch();
}
31. 24
Future Enhancement
In any project, though present satisfaction is important
but also it is equally important to see and visualize the
future scope. The project which is developed now may
be need to undergo some changes in future in order to
match up the technology prevailing that time, thus
change due to development in technology are advisable.
Some of the future scope are:-
1. One can extend this project with any of the new
policies launched by the banks.
2. The transactions are in off-line mode, hence can
make this project to support on-line transactions
depending upon the efficiency and effectiveness.
3. This project can be made more user friendly than
now.