Sie sind auf Seite 1von 42

TERM PAPER

OF

BANKING SYSTEM

SUBMITTED BY:- SUBMITTED TO:-

ANKIT BHATT Miss Palvi


Regd. No 10905610
Roll no. B38
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)
TABLE OF CONTENTS

1. Introduction
2. Proposed system
i. Description
ii. System requirements
3. Requirement Analysis
4. System Design
5. Source code
6. Testing
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.
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.

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

PROBLEM STATEMENT
o Problem statement was to design a module:
o Which is user friendly
o 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 account
o Search ,edit and display customer details
o Display account holders
o Deposit money
o Withdraw money
o Balance enquiry

SYSTEM REQUIRMENTS

Operating system: MS Windows XP


Processor: Pentium IV Processor or above
RAM: 512 MB
Hard disk: 5 GB
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
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.

START

Welcome to the project on banking

Enter
your
choice
11?

Create account Customer details Deposit withdraw Balance enquiry

Do you want to
continue?

STOP
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) ;
};

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 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) ;
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)
{
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
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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 ;
else
if (ch == '1')
{
account a ;
a.display_account() ;
}
else
if (ch == '2')
{
initial ini ;
ini.display_list() ;
}
else
if (ch == '3')
{
account a ;
a.transaction() ;
}
else
if (ch == '4')
{
account a ;
a.new_account() ;
}
else
if (ch == '5')
edit_menu() ;
else
if (ch == '6')
help() ;
else
if (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 ") ;
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 ;
else
if (ch == '1')
{
initial ini ;
ini.modify() ;
break ;
}
else
if (ch == '2')
{
account a ;
a.close_account() ;
break ;
}
else
if (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) ;
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
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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 ;
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 ;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 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 ;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 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;
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)
{
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)) ;
}
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) ;
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) ;
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) ;
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) ;
} 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)) ;
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
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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 : " ;
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() ;
}
} 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
{
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);
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 ;
} ~/
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() ;
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// 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 ;
}
}
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) ;
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) ;
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 ;
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) ;
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') ;
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() ;
}
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:-

BANKING

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->Savings
2->Current
enter your choice : 1

Your Account No:50008900465000088804


First name: ANKIT
Last name: BHATT
Telephone No.: 4209211
Deposit Sum:400
INSUFFICIENT FUND-Need a minimum of Rs.500/- to open an account
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
------------------------------

Das könnte Ihnen auch gefallen