banking system in c++

51
TERM PAPER OF BANKING SYSTEM SUBMITTED BY:- SUBMITTED TO:- ANKIT BHATT Miss Palvi Regd. No 10905610

Upload: ankit-bhatt

Post on 22-Nov-2014

710 views

Category:

Documents


4 download

DESCRIPTION

term paper with c++ source code

TRANSCRIPT

Page 1: Banking system in c++

TERM PAPER

OF

BANKING SYSTEM

SUBMITTED BY:- SUBMITTED TO:- ANKIT BHATT Miss Palvi Regd. No 10905610Roll no. B38

Page 2: Banking system in c++

ACKNOWLEDGEMENT

I take this opportunity to present my votes of thanks to all those guidepost who really acted as lightening pillars to enlighten our way throughout this project that has led to successful and satisfactory completion of this study.

I am highly thankful to Mrs. Sumita Arora for her support, valuable time and advice, whole-hearted guidance, sincere cooperation and pains-taking involvement during the study and in completing the assignment of preparing the said project within the time stipulated.

Lastly, I am thankful to all those, particularly the various friends , who have been instrumental in creating proper, healthy and conductive environment and including new and fresh innovative ideas, without their help, it would have been extremely difficult for me to prepare the term paper in a time bound framework.

ANKIT BHATT(M6901B38)

Page 3: Banking system in c++

TABLE OF CONTENTS

1. Introduction2. Proposed system

i. Descriptionii. System requirements

3. Requirement Analysis4. System Design5. Source code6. Testing

Page 4: Banking system in c++

INTRODUCTION

In the existing system, most of the records are maintained on paper. It becomes very inconvenient to modify the data. In the existing system, here is a possibility that the same data in different registers may have different values which means the entries of the same data do not match. This inconsistent state does not supply the concrete information which poses a problem in the case information related to particular search record.Our project is very useful. User is no longer required to check his register in search of records, as now it can be searched over the software by choosing some options. The user need not to type in most of the information. He/she is just required to enter the desired options. On the whole it liberates the user from keeping lengthy manual records. In a nutshell, it abates the work load of an organization.

In today’s world, no one likes to perform calculations on calculator or manually when computer is there. Every one wants his/her work to be done by computer automatically

and displaying the result for further manipulations.

This term paper project is just an application of the language C in developing softwares.This is the program for keeping records of the bank ,that is the entire details of the customer ,savings ,how much money he/she can deposit and withdraw from the bank, to open the new account ,create a new account ,display all account holders, balance enquiry etc.

Page 5: Banking system in c++

PROPOSED SYSTEM

The following documentation is a project the “ BANKING SYSTEM ”. It is a detailed summary of all the drawbacks of the old system and how the new proposed system overcomes these shortcomings. The new system takes into account the various factors while designing a new system. It keeps into the account the Economical bandwidth available for the new system. The foremost thing that is taken care of is the Need and Requirements of the User.

DESCRIPTIONBefore developing software we keep following things in mind that we can develop powerful and quality software

PROBLEM STATEMENTo Problem statement was to design a module:o Which is user friendlyo Which will restrict the user from accessing other user’s data.o Which will help user in viewing his data and privileges.o Which will help the administrator to handle all the changes.

FUNCTIONS TO BE PROVIDED:The system will be user friendly and completely menu driven so that the users shall have no problem in using all options.

o The system will be efficient and fast in response.o The system will be customized according to needs.o Create new accounto Search ,edit and display customer detailso Display account holderso Deposit moneyo Withdraw moneyo Balance enquiry

SYSTEM REQUIRMENTS

Operating system: MS Windows XPProcessor: Pentium IV Processor or aboveRAM: 512 MBHard disk: 5 GB

Page 6: Banking system in c++

REQUIREMENT ANALYSIS

This process is adopted when management of the system development, Personnel decide that the particular system needs improvement. The system development life cycle is the set of activities, carried out by the analyst, designers and users to develop and implement a system. The systems that are present in the nature follow common life cycle pattern. For example consider the raining system. Initially the rain falls into the river, river flows into sea, the sea water evaporates to form vapors, the vapors form clouds which again bring rain. Similarly consider a man made system initially a system is analyzed, designed and made operational by the efforts of system analysis. After successful operation or a number of users, the system becomes less and less effective by change in the environment. So these changes have to be incorporated in to the system by minor modifications. So the general activities from the life cycle of the system are given below:

Select ion and identification of the system to be studied Preliminary study Defining the system Design and development of the system Implementation of the system

Page 7: Banking system in c++

SYSTEM DESIGN

Then we began with the design phase of the system. System design is a solution, a “HOW TO” approach to the creation of a new system. It translates system requirements into ways by which they can be made operational. It is a translational from a user oriented document to a document oriented programmers. For that, it provides the understanding and procedural details necessary for the implementation. Here we use Flowchart to supplement the working of the new system. The system thus made should be reliable, durable and above all should have least possible maintenance costs. It should overcome all the drawbacks of the Old existing system and most important of all meet the user requirements.

Welcome to the project on banking

Enter your choice 11?

Create account Customer details Deposit withdraw

Do you want to continue?

START

STOP

Balance enquiry

Page 8: Banking system in c++

SOURCE CODE

#include <iostream.h>#include <fstream.h>#include <process.h>#include <string.h>#include <stdlib.h>#include <stdio.h>#include <ctype.h>#include <conio.h>#include <dos.h>

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS CLASS CONTAINS FUNCTIONS RELATED TO DRAW BOX ETC.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

class shape{

public :void line_hor(int, int, int, char) ;void line_ver(int, int, int, char) ;void box(int,int,int,int,char) ;

} ;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS CLASS CONTROL ALL THE FUNCTIONS IN THE MENU//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

class control{

public :void main_menu(void) ;void help(void) ;

private :void edit_menu(void) ;

} ;

Page 9: Banking system in c++

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS CLASS CONTAINS FUNCTIONS RELATED TO INITIAL DEPOSIT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

class initial{

public :void add_to_file(int, char t_name[30], char t_address[60], float) ;void display_list(void) ;void delete_account(int) ;void update_balance(int, float) ;void modify(void) ;int last_accno(void) ;int found_account(int) ;char ~return_name(int) ;char ~return_address(int) ;float give_balance(int) ;int recordno(int) ;void display(int) ;

private :void modify_account(int, char t_name[30], char t_address[60]) ;void box_for_list(void) ;

int accno ;char name[30], address[60] ;float balance ;

} ;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS CLASS CONTAINS FUNCTIONS RELATED TO TRANSACTIONS//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

class account{

public :void new_account(void) ;void close_account(void) ;void display_account(void) ;void transaction(void) ;void clear(int,int) ;

private :void add_to_file(int, int, int, int, char, char t_type[10], float, float,

float) ;void delete_account(int) ;int no_of_days(int, int, int, int, int, int) ;

Page 10: Banking system in c++

float calculate_interest(int, float) ;void display(int) ;void box_for_display(int) ;

int accno ;char type[10] ; // Cheque or Cash //int dd, mm, yy ; // Date //char tran ; // Deposit or Withdraw //float interest, amount, balance ;

} ;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// FUNCTION TO DRAW HORIZONTAL LINE//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void shape :: line_hor(int column1, int column2, int row, char c){

for ( column1; column1<=column2; column1++ ){

gotoxy(column1,row) ;cout <<c ;

}}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// FUNCTION TO DRAW VERTICAL LINE//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void shape :: line_ver(int row1, int row2, int column, char c){

for ( row1; row1<=row2; row1++ ){

gotoxy(column,row1) ; cout <<c ;}

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// FUNCTION TO DRAW BOX LINE//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void shape :: box(int column1, int row1, int column2, int row2, char c)

Page 11: Banking system in c++

{char ch=218 ;char c1, c2, c3, c4 ;char l1=196, l2=179 ;if (c == ch){

c1=218 ;c2=191 ;c3=192 ;c4=217 ;l1 = 196 ;l2 = 179 ;

}else{

c1=c ;c2=c ;c3=c ;c4=c ;l1 = c ;l2 = c ;

}gotoxy(column1,row1) ;cout<<c1 ;gotoxy(column2,row1) ;cout <<c2 ;gotoxy(column1,row2) ;cout <<c3 ;gotoxy(column2,row2) ;cout <<c4 ;column1++ ;column2-- ;line_hor(column1,column2,row1,l1) ;line_hor(column1,column2,row2,l1) ;column1-- ;column2++ ;row1++ ;row2-- ;line_ver(row1,row2,column1,l2) ;line_ver(row1,row2,column2,l2) ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// FUNCTION TO DISPLAY MAIN MENU AND CALL OTHER FUNCTIONS//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Page 12: Banking system in c++

void control :: main_menu(void){

char ch ;while (1){

clrscr() ;shape s ;

s.box(10,5,71,21,219) ;s.box(9,4,72,22,218) ;

textcolor(BLACK) ;textbackground(YELLOW) ; cout <<"1: SEE ACCOUNT" ;gotoxy(30,12) ;cout <<"2: LIST OF ACCOUNTS" ;gotoxy(30,13) ;cout <<"3: TRANSACTIONS" ;gotoxy(30,14) ;cout <<"4: OPEN NEW ACCOUNT" ;gotoxy(30,15) ;cout <<"5: EDIT ACCOUNTS" ;gotoxy(30,16) ;cout <<"6: HELP" ;gotoxy(30,17) ;cout <<"0: QUIT" ;gotoxy(30,19) ;cout <<"Enter your choice: " ;ch = getche() ;if (ch == 27)

break ;elseif (ch == '1'){

account a ;a.display_account() ;

}elseif (ch == '2'){

initial ini ;ini.display_list() ;

}else

Page 13: Banking system in c++

if (ch == '3'){

account a ;a.transaction() ;

}elseif (ch == '4'){

account a ;a.new_account() ;

}elseif (ch == '5')

edit_menu() ;elseif (ch == '6')

help() ;elseif (ch == '0')

break ;}for (int i=25; i>=1; i--){

delay(40) ;gotoxy(1,i) ; clreol() ;

}}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// FUNCTION TO DISPLAY EDIT MENU AND CALL OTHER FUNCTIONS//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void control :: edit_menu(void){

char ch ;while (1){

clrscr() ;shape s ;s.box(10,5,71,21,219) ;s.box(9,4,72,22,218) ;textcolor(RED) ;textbackground(BLUE) ;gotoxy(34,10) ;cprintf(" EDIT MENU ") ;

Page 14: Banking system in c++

textcolor(YELLOW) ;textbackground(BLACK) ;gotoxy(31,12) ;cout <<"1: MODIFY ACCOUNT" ;gotoxy(31,13) ;cout <<"2: CLOSE ACCOUNT" ;gotoxy(31,14) ;cout <<"0: QUIT" ;gotoxy(31,16) ;cout <<"Enter your choice: " ;ch = getche() ;if (ch == 27)

break ;elseif (ch == '1'){

initial ini ;ini.modify() ;break ;

}elseif (ch == '2'){

account a ;a.close_account() ;break ;

}elseif (ch == '0')

break ;}

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// FUNCTION TO DISPLAY HELP ABOUT PROJECT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void control :: help(void){

clrscr() ;gotoxy(10,6); cout <<"In this Project you can keep records of daily

banking" ;delay(10) ;gotoxy(10,7); cout <<"transactions. " ;delay(10) ;

Page 15: Banking system in c++

gotoxy(10,9); cout <<" This program is capable of holding any no. of accounts." ;

delay(10) ;gotoxy(10,11); cout <<"- In the first option you can see the account of a

particular" ;delay(10) ;gotoxy(10,12); cout <<" person by giving simply the account no. of that

person." ;delay(10) ;gotoxy(10,14); cout <<"- In second option you can see the list of all the

accounts." ;delay(10) ;gotoxy(10,16); cout <<"- Through third option you can operate banking

transactions" ;delay(10) ;gotoxy(10,17); cout <<" (Deposit/Withdraw)." ;delay(10) ;gotoxy(10,19); cout <<"- In Fourth option you can open new account." ;delay(10) ;gotoxy(10,20); cout <<" (NOTE: Opening amount should not be less than

Rs.500/-)" ;delay(10) ;gotoxy(10,22); cout <<"- In Fifth option you can modify or Delete any of the

accounts." ;delay(10) ;gotoxy(10,24); cout <<"- And the last option is to Quit the PROJECT (Exit to

Dos). " ;delay(10) ;textcolor(MAGENTA+BLINK) ; textbackground(LIGHTGREEN) ;gotoxy(26,30) ; cprintf(" Press any key to continue ") ;textcolor(YELLOW) ; textbackground(BLACK) ;gotoxy(25,2) ;getch() ;for (int i=25; i>=1; i--){

delay(50) ;gotoxy(1,i) ; clreol() ;

}}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION RETURN LAST ACCOUNT NO. IN THE FILE// INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Page 16: Banking system in c++

int initial :: last_accno(void){

fstream file ;file.open("INITIAL.DAT", ios::in) ;file.seekg(0,ios::beg) ;int count=0 ;while (file.read((char ~) this, sizeof(initial)))

count = accno ;file.close() ;return count ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION RETURN RECORD NO. OF THE GIVEN ACCOUNT NO.// IN THE FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

int initial :: recordno(int t_accno){

fstream file ;file.open("INITIAL.DAT", ios::in) ;file.seekg(0,ios::beg) ;int count=0 ;while (file.read((char ~) this, sizeof(initial))){

count++ ;if (t_accno == accno)

break ;}file.close() ;return count ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION DISPLAY THE ACCOUNT FOR GIVEN ACCOUNT NO.// FROM THE FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void initial :: display(int t_accno){

shape s ;s.box(8,7,73,11,219) ;fstream file ;

Page 17: Banking system in c++

file.open("INITIAL.DAT", ios::in) ;file.seekg(0,ios::beg) ;while (file.read((char ~) this, sizeof(initial))){

if (t_accno == accno){

gotoxy(8,5) ;cout <<"ACCOUNT NO. " <<accno ;gotoxy(10,8) ;cout <<"Name : "<<name ;gotoxy(10,9) ;cout <<"Address : " <<address ;gotoxy(10,10) ;cout <<"Balance : " <<balance ;break ;

}}file.close() ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION RETURN NAME FOR THE GIVEN ACCOUNT NO.// IN THE FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

char ~initial :: return_name(int t_accno){

fstream file ;file.open("INITIAL.DAT", ios::in) ;file.seekg(0,ios::beg) ;char t_name[30] ;while (file.read((char ~) this, sizeof(initial))){

if (accno == t_accno){

strcpy(t_name,name) ;break ;

}}file.close() ;return t_name ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Page 18: Banking system in c++

// THIS FUNCTION RETURN ADDRESS FOR THE GIVEN ACCOUNT NO.// IN THE FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

char ~initial :: return_address(int t_accno){

fstream file ;file.open("INITIAL.DAT", ios::in) ;file.seekg(0,ios::beg) ;char t_address[60] ;while (file.read((char ~) this, sizeof(initial))){

if (accno == t_accno){

strcpy(t_address,address) ;break ;

}}file.close() ;return t_address ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION RETURN BALANCE FOR THE GIVEN ACCOUNT NO.// IN THE FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

float initial :: give_balance(int t_accno){

fstream file ;file.open("INITIAL.DAT", ios::in) ;file.seekg(0,ios::beg) ;float t_balance ;while (file.read((char ~) this, sizeof(initial))){

if (accno == t_accno){

t_balance = balance ;break ;

}}file.close() ;return t_balance ;

}

Page 19: Banking system in c++

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION RETURN 1 IF THE GIVEN ACCOUNT NO. FOUND// IN THE FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

int initial :: found_account(int t_accno){

fstream file ;file.open("INITIAL.DAT", ios::in) ;file.seekg(0,ios::beg) ;int found=0 ;while (file.read((char ~) this, sizeof(initial))){

if (accno == t_accno){

found = 1 ;break ;

}}file.close() ;return found ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION DRAWS THE BOX FOR THE LIST OF ACCOUNTS//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void initial :: box_for_list(){

shape s ;s.box(2,1,79,25,218) ;s.line_hor(3,78,3,196) ;s.line_hor(3,78,5,196) ;s.line_hor(3,78,23,196) ;textbackground(WHITE) ;gotoxy(3,4) ;for (int i=1; i<=76; i++) cprintf(" ") ;textbackground(BLACK) ;textcolor(RED) ; textbackground(WHITE) ;gotoxy(4,4) ;cprintf("ACCOUNT NO. NAME OF PERSON BALANCE") ;textcolor(YELLOW) ; textbackground(BLACK) ;int d1, m1, y1 ;struct date d;

Page 20: Banking system in c++

getdate(&d);d1 = d.da_day ;m1 = d.da_mon ;y1 = d.da_year ;gotoxy(4,2) ;cout <<"Date: " <<d1 <<"/" <<m1 <<"/" <<y1 ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION DISPLAYS THE LIST OF ACCOUNTS IN FILE// INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void initial :: display_list(void){

clrscr() ;box_for_list() ;int row=6, flag ;fstream file ;file.open("INITIAL.DAT", ios::in) ;while (file.read((char ~) this, sizeof(initial))){

flag = 0 ;delay(10) ;gotoxy(7,row) ;cout <<accno ;gotoxy(25,row) ;cout <<name ;gotoxy(57,row) ;cout <<balance ;row++ ;if (row == 23){

flag = 1 ;row = 6 ;gotoxy(4,24) ;cout <<"Press any key to continue..." ;getch() ;clrscr() ;box_for_list() ;

}}file.close() ;if (!flag){

Page 21: Banking system in c++

gotoxy(4,24) ;cout <<"Press any key to continue..." ;getch() ;

}}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION ADDS THE GIVEN DATA INTO THE FILE// INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void initial :: add_to_file(int t_accno, char t_name[30], char t_address[60], float t_balance){

accno = t_accno ;strcpy(name,t_name) ;strcpy(address,t_address) ;balance = t_balance ;fstream file ;file.open("INITIAL.DAT", ios::out | ios::app) ;file.write((char ~) this, sizeof(initial)) ;file.close() ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION DELETES RECORD FOR THE GIVEN ACOUNT NO.// FROM THE FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void initial :: delete_account(int t_accno){

fstream file ;file.open("INITIAL.DAT", ios::in) ;fstream temp ;temp.open("temp.dat", ios::out) ;file.seekg(0,ios::beg) ;while ( !file.eof() ){

file.read((char ~) this, sizeof(initial)) ;if ( file.eof() )

break ;if ( accno != t_accno )

temp.write((char ~) this, sizeof(initial)) ;}

Page 22: Banking system in c++

file.close() ;temp.close() ;file.open("INITIAL.DAT", ios::out) ;temp.open("temp.dat", ios::in) ;temp.seekg(0,ios::beg) ;while ( !temp.eof() ){

temp.read((char ~) this, sizeof(initial)) ;if ( temp.eof() )

break ;file.write((char ~) this, sizeof(initial)) ;

}file.close() ;temp.close() ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION UPDATE BALANCE FOR THE GIVEN ACOUNT NO.// IN THE FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void initial :: update_balance(int t_accno, float t_balance){

int recno ;recno = recordno(t_accno) ;fstream file ;file.open("INITIAL.DAT", ios::out | ios::ate) ;balance = t_balance ;int location ;location = (recno-1) ~ sizeof(initial) ;file.seekp(location) ;file.write((char ~) this, sizeof(initial)) ;file.close() ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION MODIFIES THE RECORD FOR THE GIVEN DATA// IN THE FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void initial :: modify_account(int t_accno, char t_name[30], char t_address[60]){

int recno ;recno = recordno(t_accno) ;

Page 23: Banking system in c++

fstream file ;file.open("INITIAL.DAT", ios::out | ios::ate) ;strcpy(name,t_name) ;strcpy(address,t_address) ;int location ;location = (recno-1) ~ sizeof(initial) ;file.seekp(location) ;file.write((char ~) this, sizeof(initial)) ;file.close() ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION GIVE THE DATA TO MODIFY THE RECORD IN THE// FILE INITIAL.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void initial :: modify(void){

clrscr() ;char t_acc[10] ;int t, t_accno ;gotoxy(71,1) ;cout <<"<0>=Exit" ;gotoxy(5,5) ;cout <<"Enter the account no. " ;gets(t_acc) ;t = atoi(t_acc) ;t_accno = t ;if (t_accno == 0)

return ;clrscr() ;if (!found_account(t_accno)){

gotoxy(5,5) ;cout <<"\7Account not found" ;getch() ;return ;

}shape s ;s.box(2,2,79,24,218) ;s.line_hor(3,78,4,196) ;s.line_hor(3,78,22,196) ;gotoxy(71,1) ;cout <<"<0>=Exit" ;textbackground(BLUE) ;

Page 24: Banking system in c++

gotoxy(3,3) ;for (int i=1; i<=76; i++) cprintf(" ") ;textbackground(BLACK) ;textcolor(RED+BLINK) ; textbackground(BLUE) ;gotoxy(30,3) ;cprintf("MODIFY ACCOUNT SCREEN") ;textcolor(YELLOW) ; textbackground(BLACK) ;int d1, m1, y1 ;struct date d;getdate(&d);d1 = d.da_day ;m1 = d.da_mon ;y1 = d.da_year ;gotoxy(62,5) ;cout <<"Date: "<<d1 <<"/" <<m1 <<"/" <<y1 ;char ch ;display(t_accno) ;account a ;do{

a.clear(5,13) ;gotoxy(5,13) ;cout <<"Modify this account (y/n): " ;ch = getche() ;if (ch == '0')

return ;ch = toupper(ch) ;

} while (ch != 'N' && ch != 'Y') ;if (ch == 'N')

return ;int modified=0, valid ;char t_name[30], t_address[60] ;gotoxy(5,15) ;cout <<"Name : " ;gotoxy(5,16) ;cout <<"Address : " ;do{

a.clear(15,15) ;a.clear(5,23) ;gotoxy(5,23) ;cout <<"ENTER NAME " ;valid = 1 ;gotoxy(15,15) ;gets(t_name) ;strupr(t_name) ;

Page 25: Banking system in c++

if (t_name[0] == '0')return ;

if (strlen(t_name) > 25){

valid = 0 ;gotoxy(5,23) ;cprintf("\7NAME SHOULD NOT GREATER THAN 25") ;getch() ;

}} while (!valid) ;if (strlen(t_name) > 0)

modified = 1 ;do{

a.clear(15,16) ;a.clear(5,23) ;gotoxy(5,23) ;cout <<"ENTER ADDRESS " ;valid = 1 ;gotoxy(15,16) ;gets(t_address) ;strupr(t_address) ;if (t_address[0] == '0')

return ;if (strlen(t_address) > 55){

valid = 0 ;gotoxy(5,23) ;cprintf("\7SHOULD NOT BLANK OR GREATER THAN 55") ;getch() ;

}} while (!valid) ;if (strlen(t_address) > 0)

modified = 1 ;if (!modified)

return ;a.clear(5,23) ;do{

a.clear(5,18) ;gotoxy(5,18) ;cout <<"Do you want to save changes (y/n): " ;ch = getche() ;if (ch == '0')

return ;ch = toupper(ch) ;

Page 26: Banking system in c++

} while (ch != 'N' && ch != 'Y') ;if (ch == 'N')

return ;modify_account(t_accno,t_name,t_address) ;gotoxy(5,21) ;cout <<"\7Record Modified" ;gotoxy(5,23) ;cout <<"Press any key to continue..." ;getch() ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION CLEAR THE GIVEN ROW AND COLUMNS//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void account :: clear(int col, int row){

for (int i=col; i<=78; i++){

gotoxy(i,row) ;cout <<" " ;

}}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION ADDS THE GIVEN DATA INTO THE FILE// BANKING.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void account :: add_to_file(int t_accno, int d1, int m1, int y1, char t_tran, char t_type[10], float t_interest, float t_amount, float t_balance){

fstream file ;file.open("BANKING.DAT", ios::app) ;accno = t_accno ;dd = d1 ;mm = m1 ;yy = y1 ;tran = t_tran ;strcpy(type,t_type) ;interest = t_interest ;amount = t_amount ;balance = t_balance ;file.write((char ~) this, sizeof(account)) ;

Page 27: Banking system in c++

file.close() ;}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION DELETES THE RECORD FOR GIVIN ACCOUNT NO.// FROM FILE BANKING.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void account :: delete_account(int t_accno){

fstream file ;file.open("BANKING.DAT", ios::in) ;fstream temp ;temp.open("temp.dat", ios::out) ;file.seekg(0,ios::beg) ;while ( !file.eof() ){

file.read((char ~) this, sizeof(account)) ;if ( file.eof() )

break ;if ( accno != t_accno )

temp.write((char ~) this, sizeof(account)) ;}file.close() ;temp.close() ;file.open("BANKING.DAT", ios::out) ;temp.open("temp.dat", ios::in) ;temp.seekg(0,ios::beg) ;while ( !temp.eof() ){

temp.read((char ~) this, sizeof(account)) ;if ( temp.eof() )

break ;file.write((char ~) this, sizeof(account)) ;

}file.close() ;temp.close() ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION ACCEPTS THE DATA TO ADD RECORDS IN THE// FILE BANKING.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Page 28: Banking system in c++

void account :: new_account(void){

char ch ;int i, valid ;clrscr() ;initial ini ;shape s ;s.box(2,2,79,24,218) ;s.line_hor(3,78,4,196) ;s.line_hor(3,78,22,196) ;gotoxy(71,1) ;cout <<"<0>=Exit" ;textbackground(BLUE) ;gotoxy(3,3) ;for (i=1; i<=76; i++) cprintf(" ") ;textbackground(BLACK) ;textcolor(RED+BLINK) ; textbackground(BLUE) ;gotoxy(32,3) ;cprintf("OPEN NEW ACCOUNT") ;textcolor(YELLOW) ; textbackground(BLACK) ;

int d1, m1, y1 ;struct date d;getdate(&d);d1 = d.da_day ;m1 = d.da_mon ;y1 = d.da_year ;int t_accno ;t_accno = ini.last_accno() ;t_accno++ ;if (t_accno == 1){

ini.add_to_file(t_accno,"abc","xyz",1.1) ;ini.delete_account(t_accno) ;add_to_file(t_accno,1,1,1997,'D',"INITIAL",1.1,1.1,1.1) ;delete_account(t_accno) ;

}char t_name[30], t[10], t_address[60] ;float t_bal=0.0, t_balance=0.0 ;

gotoxy(5,6) ;cout <<"Date : "<<d1 <<"/" <<m1 <<"/" <<y1 ;gotoxy(5,8) ;cout <<"Account no. # " <<t_accno ;gotoxy(5,10) ;cout <<"Name : " ;

Page 29: Banking system in c++

gotoxy(5,11) ;cout <<"Address : " ;gotoxy(5,12) ;cout <<"Name of Verifying person : " ;gotoxy(5,14) ;cout <<"Initial Deposit : " ;do{

clear(15,10) ;clear(5,23) ;gotoxy(5,23) ;cout <<"ENTER NAME OF THE PERSON" ;valid = 1 ;gotoxy(15,10) ;gets(t_name) ;strupr(t_name) ;if (t_name[0] == '0')

return ;if (strlen(t_name) == 0 || strlen(t_name) > 25){

valid = 0 ;gotoxy(5,23) ;cprintf("\7NAME SHOULD NOT BLANK OR GREATER THAN

25") ;getch() ;

}} while (!valid) ;do{

clear(15,11) ;clear(5,23) ;gotoxy(5,23) ;cout <<"ENTER ADDRESS OF THE PERSON" ;valid = 1 ;gotoxy(15,11) ;gets(t_address) ;strupr(t_address) ;if (t_address[0] == '0')

return ;if (strlen(t_address) == 0 || strlen(t_address) > 55){

valid = 0 ;gotoxy(5,23) ;cprintf("\7SHOULD NOT BLANK OR GREATER THAN 55") ;getch() ;

}

Page 30: Banking system in c++

} while (!valid) ;do{

char vari[30] ;clear(31,12) ;clear(5,23) ;gotoxy(5,23) ;cout <<"ENTER NAME OF THE VERIFYING PERSON" ;valid = 1 ;gotoxy(31,12) ;gets(vari) ;strupr(vari) ;if (vari[0] == '0')

return ;if (strlen(vari) == 0 || strlen(vari) > 25){

valid = 0 ;gotoxy(5,23) ;cprintf("\7SHOULD NOT BLANK OR GREATER THAN 25") ;getch() ;

}} while (!valid) ;do{

clear(23,14) ;clear(5,23) ;gotoxy(5,23) ;cout <<"ENTER INITIAL AMOUNT TO BE DEPOSIT" ;valid = 1 ;gotoxy(23,14) ;gets(t) ;t_bal = atof(t) ;t_balance = t_bal ;if (t[0] == '0')

return ;if (t_balance < 500){

valid = 0 ;gotoxy(5,23) ;cprintf("\7SHOULD NOT LESS THAN 500 ") ;getch() ;

}} while (!valid) ;clear(5,23) ;do{

Page 31: Banking system in c++

clear(5,17) ;valid = 1 ;gotoxy(5,17) ;cout <<"Do you want to save the record (y/n) : " ;ch = getche() ;if (ch == '0')

return ;ch = toupper(ch) ;

} while (ch != 'N' && ch != 'Y') ;if (ch == 'N')

return ;float t_amount, t_interest ;t_amount = t_balance ;t_interest = 0.0 ;char t_tran, t_type[10] ;t_tran = 'D' ;strcpy(t_type,"INITIAL") ;ini.add_to_file(t_accno,t_name,t_address,t_balance) ;add_to_file(t_accno,d1,m1,y1,t_tran,t_type,t_interest,t_amount,t_balance) ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION DRAWS THE BOX FOR DISPLAYING RECORD FROM// FILE BANKING.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void account :: box_for_display(int t_accno){

shape s ;s.box(2,1,79,25,218) ;s.line_hor(3,78,4,196) ;s.line_hor(3,78,6,196) ;s.line_hor(3,78,23,196) ;textbackground(BLUE) ;gotoxy(3,5) ;for (int i=1; i<=76; i++) cprintf(" ") ;textbackground(BLUE) ;textcolor(RED) ; textbackground(BLUE) ;gotoxy(4,5) ;cprintf("DATE PARTICULAR DEPOSIT WITHDRAW INTEREST

BALANCE") ;textcolor(YELLOW) ; textbackground(BLACK) ;int d1, m1, y1 ;struct date d;getdate(&d);

Page 32: Banking system in c++

d1 = d.da_day ;m1 = d.da_mon ;y1 = d.da_year ;gotoxy(63,2) ;cout <<"Date: " <<d1 <<"/" <<m1 <<"/" <<y1 ;gotoxy(4,2) ;cout <<"Account no. " <<t_accno ;initial ini ;char t_name[30] ;strcpy(t_name,ini.return_name(t_accno)) ;char t_address[60] ;strcpy(t_address,ini.return_address(t_accno)) ;gotoxy(25,2) ;cout <<t_name ;gotoxy(25,3) ;cout <<t_address ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION DISPLAY RECORD FROM THE FILE BANKING.DAT//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void account :: display_account(void){

clrscr() ;char t_acc[10] ;int t, t_accno ;gotoxy(71,1) ;cout <<"<0>=Exit" ;gotoxy(5,5) ;cout <<"Enter the account no. " ;gets(t_acc) ;t = atoi(t_acc) ;t_accno = t ;if (t_accno == 0)

return ;clrscr() ;initial ini ;

/~ if (!ini.found_account(t_accno)){

gotoxy(5,5) ;cout <<"\7Account not found" ;getch() ;return ;

} ~/

Page 33: Banking system in c++

box_for_display(t_accno) ;int row=7, flag ;fstream file ;file.open("BANKING.DAT", ios::in) ;while (file.read((char ~) this, sizeof(account))){

if (accno == t_accno){

flag = 0 ;delay(10) ;gotoxy(4,row) ;cout <<dd <<"/" <<mm <<"/" <<yy ;gotoxy(16,row) ;cout <<type ;if (tran == 'D')

gotoxy(30,row) ;else

gotoxy(42,row) ;cout <<amount ;gotoxy(56,row) ;cout <<interest;gotoxy(66,row) ;cout <<balance ;row++ ;if (row == 23){

flag = 1 ;row = 7 ;gotoxy(4,24) ;cout <<"Press any key to continue..." ;getch() ;clrscr() ;box_for_display(t_accno) ;

}}

}file.close() ;if (!flag){

gotoxy(4,24) ;cout <<"Press any key to continue..." ;getch() ;

}

}

Page 34: Banking system in c++

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION RETURNS THE DIFFERENCE BETWEEN 2 DATES.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

int account :: no_of_days(int d1, int m1, int y1, int d2, int m2, int y2){

static int month[] = {31,28,31,30,31,30,31,31,30,31,30,31} ;int days = 0 ;while (d1 != d2 || m1 != m2 || y1 != y2){

days++ ;d1++ ;if (d1 > month[m1-1]){

d1 = 1 ;m1++ ;

}if (m1 > 12){

m1 = 1 ;y1++ ;

}}return days ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION CALCULATES INTEREST.//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

float account :: calculate_interest(int t_accno, float t_balance){

fstream file ;file.open("BANKING.DAT", ios::in) ;file.seekg(0,ios::beg) ;int d1, m1, y1, days ;while (file.read((char ~) this, sizeof(account))){

if (accno == t_accno){

d1 = dd ;m1 = mm ;y1 = yy ;break ;

Page 35: Banking system in c++

}}int d2, m2, y2 ;struct date d;getdate(&d);d2 = d.da_day ;m2 = d.da_mon ;y2 = d.da_year ;float t_interest=0.0 ;if ((y2<y1) || (y2==y1 && m2<m1) || (y2==y1 && m2==m1 && d2<d1))

return t_interest ;days = no_of_days(d1,m1,y1,d2,m2,y2) ;int months=0 ;if (days >= 30){

months = days/30 ;t_interest = ((t_balance~2)/100) ~ months ;

}file.close() ;return t_interest ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION MAKES TRANSACTIONS (DEPOSIT/WITHDRAW).//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void account :: transaction(void){

clrscr() ;char t_acc[10] ;int t, t_accno, valid ;gotoxy(71,1) ;cout <<"<0>=Exit" ;gotoxy(5,5) ;cout <<"Enter the account no. " ;gets(t_acc) ;t = atoi(t_acc) ;t_accno = t ;if (t_accno == 0)

return ;clrscr() ;initial ini ;if (!ini.found_account(t_accno)){

gotoxy(5,5) ;

Page 36: Banking system in c++

cout <<"\7Account not found" ;getch() ;return ;

}shape s ;s.box(2,2,79,24,218) ;s.line_hor(3,78,4,196) ;s.line_hor(3,78,22,196) ;gotoxy(71,1) ;cout <<"<0>=Exit" ;textbackground(BLUE) ;gotoxy(3,3) ;for (int i=1; i<=76; i++) cprintf(" ") ;textbackground(BLACK) ;textcolor(RED+BLINK) ; textbackground(BLUE) ;gotoxy(29,3) ;cprintf("TRANSACTION IN ACCOUNT") ;textcolor(YELLOW) ; textbackground(BLACK) ;int d1, m1, y1 ;struct date d;getdate(&d);d1 = d.da_day ;m1 = d.da_mon ;y1 = d.da_year ;gotoxy(5,6) ;cout <<"Date : "<<d1 <<"/" <<m1 <<"/" <<y1 ;gotoxy(5,8) ;cout <<"Account no. # " <<t_accno ;char t_name[30] ;char t_address[60] ;float t_balance ;strcpy(t_name,ini.return_name(t_accno)) ;strcpy(t_address,ini.return_address(t_accno)) ;t_balance = ini.give_balance(t_accno) ;s.box(25,10,75,13,218) ;gotoxy(27,11) ;cout <<"Name : " <<t_name ;gotoxy(27,12) ;cout <<"Address: " <<t_address ;gotoxy(5,15) ;cout <<"Last Balance : Rs." <<t_balance ;char t_tran, t_type[10], tm[10] ;float t_amount, t_amt ;do{

clear(5,18) ;

Page 37: Banking system in c++

valid = 1 ;gotoxy(5,18) ;cout <<"Deposit or Withdraw (D/W) : " ;t_tran = getche() ;if (t_tran == '0')

return ;t_tran = toupper(t_tran) ;

} while (t_tran != 'D' && t_tran != 'W') ;do{

clear(5,19) ;clear(5,23) ;gotoxy(5,23) ;cout <<"ENTER TRANSACTION BY CASH OR CHEQUE" ;valid = 1 ;gotoxy(5,19) ;cout <<"(Cash/Cheque) : " ;gets(t_type) ;strupr(t_type) ;if (t_type[0] == '0')

return ;if (strcmp(t_type,"CASH") && strcmp(t_type,"CHEQUE")){

valid = 0 ;gotoxy(5,23) ;cprintf("\7ENTER CORRECTLY ") ;getch() ;

}} while (!valid) ;do{

clear(5,21) ;clear(5,23) ;gotoxy(5,23) ;cout <<"ENTER AMOUNT FOR TRANSACTION" ;valid = 1 ;gotoxy(5,21) ;cout <<"Amount : Rs." ;gets(tm) ;t_amt = atof(tm) ;t_amount = t_amt ;if (tm[0] == '0')

return ;if ((t_tran == 'W' && t_amount > t_balance) || (t_amount < 1)){

valid = 0 ;

Page 38: Banking system in c++

gotoxy(5,23) ;cprintf("\7INVALID DATA ENTERED ") ;getch() ;

}} while (!valid) ;char ch ;clear(5,23) ;do{

clear(40,20) ;valid = 1 ;gotoxy(40,20) ;cout <<"Save transaction (y/n): " ;ch = getche() ;if (ch == '0')

return ;ch = toupper(ch) ;

} while (ch != 'N' && ch != 'Y') ;if (ch == 'N')

return ;float t_interest ;t_interest = calculate_interest(t_accno,t_balance) ;if (t_tran == 'D')

t_balance = t_balance + t_amount + t_interest ;else

t_balance = (t_balance - t_amount) + t_interest ;ini.update_balance(t_accno,t_balance) ;add_to_file(t_accno,d1,m1,y1,t_tran,t_type,t_interest,t_amount,t_balance) ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS FUNCTION CLOSE THE ACCOUNT (DELETE ACCOUNT).//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void account :: close_account(void){

clrscr() ;char t_acc[10] ;int t, t_accno ;gotoxy(71,1) ;cout <<"<0>=Exit" ;gotoxy(5,5) ;cout <<"Enter the account no. " ;gets(t_acc) ;t = atoi(t_acc) ;

Page 39: Banking system in c++

t_accno = t ;if (t_accno == 0)

return ;clrscr() ;initial ini ;if (!ini.found_account(t_accno)){

gotoxy(5,5) ;cout <<"\7Account not found" ;getch() ;return ;

}shape s ;s.box(2,2,79,24,218) ;s.line_hor(3,78,4,196) ;s.line_hor(3,78,22,196) ;gotoxy(71,1) ;cout <<"<0>=Exit" ;textbackground(BLUE) ;gotoxy(3,3) ;for (int i=1; i<=76; i++) cprintf(" ") ;textbackground(BLACK) ;textcolor(RED+BLINK) ; textbackground(BLUE) ;gotoxy(30,3) ;cprintf("CLOSE ACCOUNT SCREEN") ;textcolor(YELLOW) ; textbackground(BLACK) ;int d1, m1, y1 ;struct date d;getdate(&d);d1 = d.da_day ;m1 = d.da_mon ;y1 = d.da_year ;gotoxy(62,5) ;cout <<"Date: "<<d1 <<"/" <<m1 <<"/" <<y1 ;char ch ;ini.display(t_accno) ;do{

clear(5,15) ;gotoxy(5,15) ;cout <<"Close this account (y/n): " ;ch = getche() ;if (ch == '0')

return ;ch = toupper(ch) ;

} while (ch != 'N' && ch != 'Y') ;

Page 40: Banking system in c++

if (ch == 'N')return ;

ini.delete_account(t_accno) ;delete_account(t_accno) ;gotoxy(5,20) ;cout <<"\7Record Deleted" ;gotoxy(5,23) ;cout <<"Press any key to continue..." ;getch() ;

}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// THIS IS MAIN FUNCTION CALLING HELP AND MAIN MENU FUNCTIONS//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

void main(void){

control c ;c.help();c.main_menu() ;

}

Page 41: Banking system in c++

TESTING

Testing is the major control measure used during software development. Its basic function is to detect errors in the software. During requirement analysis and design, the output is a document that is usually textual and no executable. After the coding phase, computer programs are available that can be executed for testing purpose. This implies that testing not only, has to uncover errors introduced during coding, but also errors introduced during previous phase. Thus the goal of testing is to uncover the requirements, design and coding errors in the programs. So after testing the outputs of my project are as follows:

OUTPUT:-

B A N K I N G

1. Create a new account 2. Search customer details 3. Edit customer details 4. Delete a customer 5. Display all account holders 6. Deposit money 7. Withdrawal money 8. Balance Enquiry 9. Exit

Enter your choice(1-9): 1

Which type of account you want to create?1->Savings2->Currententer your choice : 1

Your Account No:50008900465000088804First name: ANKITLast name: BHATTTelephone No.: 4209211Deposit Sum:400INSUFFICIENT FUND-Need a minimum of Rs.500/- to open an account

Page 42: Banking system in c++

Deposit Sum:1000

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

HELLO ANKIT WELCOME TO OUR BANK You are a SAVINGS account holder of our bank Your Account No:50008900465000088804

First name: ANKIT Last name: BHATT Telephone No.: 4209211 Your Balance: 1000

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