0% found this document useful (0 votes)
53 views34 pages

Computer Science Project On: Banking

This document contains the code for a student project on banking. It includes classes to control the main menu, handle initial deposits, and account transactions. Functions allow users to check account details, view transactions, open new accounts, and edit account information. The code implements functions for adding, finding, modifying, and deleting customer accounts and transactions from data files.

Uploaded by

Tarun Jain
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views34 pages

Computer Science Project On: Banking

This document contains the code for a student project on banking. It includes classes to control the main menu, handle initial deposits, and account transactions. Functions allow users to check account details, view transactions, open new accounts, and edit account information. The code implements functions for adding, finding, modifying, and deleting customer accounts and transactions from data files.

Uploaded by

Tarun Jain
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 34

Computer science

Project
On
banking

NAME : TARUN JAIN


CLASS : XII-B
ROLL NO :
SCHOOL :RAMJAS SCHOOL
R.K.PURAM
NEW DELHI-110022

BANKING Page 7
BANKING Page 7
BANKING Page 7
BANKING Page 7
This project aims at the following
aspects related to BANKING:

CHECK ACCOUNT DETAILS

CHECK OUT THE TRANSACTIONS

OPEN A NEW ACCOUNT

EDIT ACCOUNT DETAILS

BANKING Page 7
PROGRAM
CODING

BANKING Page 7
//**********************************************************
// PROJECT BANKING
//**********************************************************
#include <fstream.h>
#include <process.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <conio.h>

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

class control
{
public :
void main_menu() ;
void help() ;
private :
void edit_menu() ;
} ;

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

class initial
{
public :
void add_to_file(int, char t_name[30], char
t_address[60], double) ;
void display_list() ;
void delete_account(int) ;
void update_balance(int, double) ;
void modify() ;
int last_accno() ;
int found_account(int) ;
char *return_name(int) ; //pointer to character name
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] ;
double balance ;
} ;

BANKING Page 7
//**********************************************************
// THIS CLASS CONTAINS FUNCTIONS RELATED TO TRANSACTIONS
//**********************************************************

class account
{
public :
void new_account() ;
void close_account() ;
void display_account() ;
void transaction() ;

private :
void add_to_file(int, int, int, int, char, char
t_type[10], float, float, double) ;
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 //
double interest, amount, balance ;
} ;

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

void control :: main_menu()


{
char ch ;
while (1)
{
clrscr();
gotoxy(32,7) ;
cout <<"B A N K I N G";
gotoxy(35,9) ;
cout <<"OPTIONS";
gotoxy(30,11) ;
cout <<"1: SEE ACCOUNT" ;
gotoxy(30,12) ;
cout <<"2: LIST OF ACCOUNTS" ;
gotoxy(30,13) ;
cout <<"3: TRANSACTIONS" ;
gotoxy(30,14) ;
cout <<"4: OPEN AN NEW ACCOUT" ;
gotoxy(30,15) ;
cout <<"5: EDIT ACCOUNT " ;
gotoxy(30,16) ;
cout <<"0: QUIT" ;

BANKING Page 7
gotoxy(30,18) ;
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 == '0')
break ;
}
clrscr();
}

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

void control :: edit_menu(void)


{
char ch ;
while (1)
{
clrscr() ;
gotoxy(34,10) ;
cout <<" EDIT MENU " ;
gotoxy(31,12) ;
cout <<"1: MODIFY ACCOUNT" ;
gotoxy(31,13) ;
cout <<"2: CLOSE ACCOUNT" ;
gotoxy(31,14) ;
cout <<"0: QUIT" ;

BANKING Page 7
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 COMPANY'S NAME
//**********************************************************

void control :: help(void)


{
clrscr() ;
gotoxy(34,4); cout<< "WELCOME TO" ;
gotoxy(14,6);
gotoxy(14,12); cout<< " H H SSS B B B C
C C "; cout<<endl;
gotoxy(14,13); cout<< " H H S S B B C
"; cout<<endl;
gotoxy(14,14); cout<< " H H S B B C
"; cout<<endl;
gotoxy(14,15); cout<< " H HHHH H SSSS B B B C
"; cout<<endl;
gotoxy(14,16); cout<< " H H S B B C
"; cout<<endl;
gotoxy(14,17); cout<< " H H S S B B C
"; cout<<endl;
gotoxy(14,18); cout<< " H H SSS B B B C
C C "; cout<<endl;

gotoxy(26,25) ; cout<<" Press Any Key To Continue " ;


gotoxy(25,2) ;
getch() ;
clrscr();
}

BANKING Page 7
//**********************************************************
// 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)


{

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

BANKING Page 7
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() ;

BANKING Page 7
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) ;
double 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 ;
}

BANKING Page 7
//**********************************************************
// THIS FUNCTION DRAWS THE BOX FOR THE LIST OF ACCOUNTS
//**********************************************************

void initial :: box_for_list()


{
gotoxy(3,4) ;
for (int i=1; i<=76; i++) cout<<" " ;
gotoxy(4,4) ;
cout<<"ACCOUNT NO. NAME OF PERSON
BALANCE" ;

//**********************************************************
// 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 ;
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() ;
}
}

BANKING Page 7
//**********************************************************
// 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], double 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() ;
}

BANKING Page 7
//**********************************************************
// THIS FUNCTION UPDATE BALANCE FOR THE GIVEN ACOUNT NO.
// IN THE FILE INITIAL.DAT
//**********************************************************

void initial :: update_balance(int t_accno, double 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) ;

BANKING Page 7
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 ;
}
gotoxy(71,1) ;
cout <<"<0>=Exit" ;
gotoxy(3,3) ;
for (int i=1; i<=76; i++) cout<<" " ;
gotoxy(30,3) ;
cout<<"MODIFY ACCOUNT SCREEN" ;
char ch ;
display(t_accno) ;
account a ;
do
{

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
{
gotoxy(5,23) ;
cout <<"ENTER NAME or PRESS <ENTER> FOR NO CHANGE" ;
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) ;
cout<<" NAME SHOULD NOT GREATER THAN 25" ;
getch() ;
}

BANKING Page 7
} while (!valid) ;
if (strlen(t_name) > 0)
modified = 1 ;
do
{
gotoxy(5,23) ;
cout <<"ENTER ADDRESS or PRESS <ENTER> FOR NO CHANGE" ;
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) ;
cout<<"SHOULD NOT BLANK OR GREATER THAN 55" ;
getch() ;
}
} while (!valid) ;
if (strlen(t_address) > 0)
modified = 1 ;
if (!modified)
return ;

do
{

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 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, double
t_balance)
{
fstream file ;
file.open("BANKING.DAT", ios::app) ;
accno = t_accno ;

BANKING Page 7
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 ;

BANKING Page 7
int i, valid ;
clrscr() ;
initial ini ;
gotoxy(71,1) ;
cout <<"<0>=Exit" ;
gotoxy(3,3) ;
for (i=1; i<=76; i++) cout<<" " ;
gotoxy(32,3) ;
cout<<"OPEN NEW ACCOUNT" ;
int d1, m1, y1 ;
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,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
{
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) ;
cout<<"\7NAME SHOULD NOT BLANK OR GREATER THAN 25" ;
getch() ;
}
} while (!valid) ;
do
{
gotoxy(5,23) ;
cout <<"ENTER ADDRESS OF THE PERSON" ;
valid = 1 ;
gotoxy(15,11) ;
gets(t_address) ;

BANKING Page 7
strupr(t_address) ;
if (t_address[0] == '0')
return ;
if (strlen(t_address) == 0 || strlen(t_address) > 55)
{
valid = 0 ;
gotoxy(5,23) ;
cout<<"\7SHOULD NOT BLANK OR GREATER THAN 55" ;
getch() ;
}
} while (!valid) ;
do
{
char vari[30] ;
gotoxy(5,23) ;
cout <<"ENTER NAME OF THE VARIFING 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) ;
cout<<"\7SHOULD NOT BLANK OR GREATER THAN 25" ;
getch() ;
}
} while (!valid) ;
do
{
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) ;
cout<<"\7SHOULD NOT LESS THAN 500 " ;
getch() ;
}
} while (!valid) ;

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

BANKING Page 7
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)


{
gotoxy(3,5) ;
for (int i=1; i<=76; i++) cout<<" " ;
gotoxy(4,5) ;
cout<<" PARTICULAR DEPOSIT WITHDRAW INTEREST
BALANCE" ;
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) ;

BANKING Page 7
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 ;
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 CALCULATES INTEREST.
//**********************************************************

BANKING Page 7
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 ;
float t_interest=0.0 ;
if ((y2<y1) || (y2==y1 && m2<m1) || (y2==y1 && m2==m1 && d2<d1))
return t_interest ;

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 ;

BANKING Page 7
}
gotoxy(71,1) ;
cout <<"<0>=Exit" ;
gotoxy(3,3) ;
for (int i=1; i<=76; i++) cout<<" " ;
gotoxy(29,3) ;
cout<<"TRANSACTION IN ACCOUNT" ;
int 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) ;
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
{
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
{
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) ;
cout<<"\7ENTER CORRECTLY " ;
getch() ;
}
} while (!valid) ;
do
{
gotoxy(5,23) ;
cout <<"ENTER AMOUNT FOR TRANSACTION" ;
valid = 1 ;

BANKING Page 7
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) ;
cout<<"\7INVALID DATA ENTERED " ;
getch() ;
}
} while (!valid) ;
char ch ;
do
{
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 ;

BANKING Page 7
if (t_accno == 0)
return ;
clrscr() ;
initial ini ;
if (!ini.found_account(t_accno))
{
gotoxy(5,5) ;
cout <<"\7Account not found" ;
getch() ;
return ;
}
gotoxy(71,1) ;
cout <<"<0>=Exit" ;
gotoxy(3,3) ;
for (int i=1; i<=76; i++) cout<<" " ;
gotoxy(30,3) ;
cout<<"CLOSE ACCOUNT SCREEN" ;
char ch ;
ini.display(t_accno) ;
do
{
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 MAIN MENU FUNCTIONS
//************************************************************

void main()
{
clrscr();
control c;
c.help() ;
c.main_menu() ;

BANKING Page 7
OUTPUT

BANKING Page 7
//************************************************************
// OUTPUT OF PROGRAM BEGINING
//************************************************************

//************************************************************
// OUTPUT AFTER PRESSING ANY KEY
//************************************************************

BANKING Page 7
//************************************************************
// OUTPUT AFTER PRESSING 1:
//************************************************************

//************************************************************
// OUTPUT AFTER PRESSING 2:
//************************************************************

BANKING Page 7
//************************************************************
// OUTPUT AFTER PRESSING 3:
//************************************************************

//************************************************************
// OUTPUT AFTER PRESSING 4:
//************************************************************

BANKING Page 7
//************************************************************
// OUTPUT AFTER PRESSING 5:
//************************************************************

//************************************************************
// OUTPUT AFTER PRESSING 5-1:
//************************************************************

BANKING Page 7
//************************************************************
// OUTPUT AFTER PRESSING 5-2:
//************************************************************

//************************************************************
// OUTPUT of all accounts:
//************************************************************

BANKING Page 7
THE FOLLOWING ARE THE
SOURCES OF
INFORMATION

 COMPUTER SCIENCE –SUMITA ARORA


CLASS XII

 COMPUTER SCIENCE--SUMITA ARORA


CLASS XI

BANKING Page 7

You might also like