Importance of Computer Education Today
Importance of Computer Education Today
MANPREET KAUR
1
ROLE OF COMPUTER EDUCATION IN
TODAY’S LIFE
2
INTRODUCTION TO C++: -
4
OBJECT ORIENTED APPROACH
5
APPLICATIONS OF C++
6
7. C++ software are highly portable and can be
implemented and linked with any real life applications.
7
BANK NATIONALISATION
8
c) The political interference led to indiscriminate
lending activities.
d) Increase in non- performing assets of the banks.
e) Uniformity in the operations led to lack of
competition and efficiency.
9
PRIVATISATION
1. Vyasya Bank
2. Federal Bank.
3. J& K Bank Ltd.
4. Luxmi Vilas Bank.
5. Lord Krishna Bank.
6. Dhan Luxmi Bank.
10
ROLE OF IT IN BANKING SYSTEM:-
12
Modes of Banking
13
SYSTEM REQUIREMENT ANALYSIS
REQUIREMENT ANALYSIS:
FEASIBILITY STUDY:
INFORMATION GATHERING:
SYSTEM ANALYSIS:
SYSTEM DESIGN:
15
IMPLEMENTATION:
TESTING:
16
Hardware & software requirements
Hardware Requirements:
Processor : Pentium 4
Memory : 128 MB
Hard Disk : 20 GB or higher
Monitor : Color Monitor
Mouse : Optical Mouse
Keyboard : Standard Keyboard 104 Keys
Software Requirements:
Operating system: MS-Windows 95,98, XP 2000
Server, Me.
Language : Turbo C++
17
DFD SYMBOL
SYMBOL DESCRIPTION
DFD describe what data flow rather than how they are
processed, so it does not depend on the hardware, software,
data structure or file organization. The key question that we
trying to answer are: what major transformations must occur for
input to be correctly transformed into output?
18
Flow Chart For Transaction
19
CONTEXT DIAGRAM
20
21
CODING
//**********************************************************
// PROJECT BANKING
//**********************************************************
//**********************************************************
//
//**********************************************************
#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>
22
//**********************************************************
// 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) ;
23
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) ;
24
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 :
25
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 ;
};
26
//**********************************************************
// FUNCTION TO DRAW HORIZONTAL LINE
//**********************************************************
//**********************************************************
// FUNCTION TO DRAW VERTICAL LINE
//**********************************************************
27
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 ;
28
}
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-- ;
29
column2++ ;
row1++ ;
row2-- ;
line_ver(row1,row2,column1,l2) ;
line_ver(row1,row2,column2,l2) ;
}
//**********************************************************
// FUNCTION TO DISPLAY MAIN MENU AND CALL OTHER
FUNCTIONS
//**********************************************************
[Link](10,5,71,21,219);
[Link](9,4,72,22,218);
30
textcolor(BLACK);
textbackground(YELLOW);
gotoxy(32,21);cprintf(" ");
gotoxy(32,25);cprintf(" ");
textcolor(CYAN);
textbackground(BLUE);
gotoxy(32,7);
cprintf(" B A N K I N G ");
gotoxy(35,9);
cprintf(" OPTIONS ");
textcolor(YELLOW) ;
textbackground(BLACK);
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 NEW ACCOUNT";
gotoxy(30,15);
cout <<"5: EDIT ACCOUNTS";
31
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')
32
{
account a ;
[Link]() ;
}
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) ;
33
gotoxy(1,i) ; clreol() ;
}
}
//**********************************************************
// FUNCTION TO DISPLAY EDIT MENU AND CALL OTHER
FUNCTIONS
//**********************************************************
34
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 ;
[Link]() ;
break ;
}
else
if (ch == '2')
{
35
account a ;
a.close_account() ;
break ;
}
else
if (ch == '0')
break ;
}
}
//**********************************************************
// FUNCTION TO DISPLAY HELP ABOUT PROJECT
//**********************************************************
36
cprintf(" ");
delay(10) ;
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" ;
37
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() ;
38
for (int i=25; i>=1; i--)
{
delay(50) ;
gotoxy(1,i) ; clreol() ;
}
}
//**********************************************************
// THIS FUNCTION RETURN LAST ACCOUNT NO. IN THE
FILE
// [Link]
//**********************************************************
39
[Link]() ;
return count ;
}
//**********************************************************
// THIS FUNCTION RETURN RECORD NO. OF THE GIVEN
ACCOUNT NO.
// IN THE FILE [Link]
//**********************************************************
40
[Link]() ;
return count ;
}
//**********************************************************
// THIS FUNCTION DISPLAY THE ACCOUNT FOR GIVEN
ACCOUNT NO.
// FROM THE FILE [Link]
//**********************************************************
41
cout <<"ACCOUNT NO. " <<accno ;
gotoxy(10,8) ;
cout <<"Name : "<<name ;
gotoxy(10,9) ;
cout <<"Address : " <<address ;
gotoxy(10,10) ;
cout <<"Balance : " <<balance ;
break ;
}
}
[Link]() ;
}
//**********************************************************
// THIS FUNCTION RETURN NAME FOR THE GIVEN
ACCOUNT NO.
// IN THE FILE [Link]
//**********************************************************
42
[Link]("[Link]", ios::in) ;
[Link](0,ios::beg) ;
char t_name[30] ;
while ([Link]((char *) this, sizeof(initial)))
{
if (accno == t_accno)
{
strcpy(t_name,name) ;
break ;
}
}
[Link]() ;
return t_name ;
}
//**********************************************************
// THIS FUNCTION RETURN ADDRESS FOR THE GIVEN
ACCOUNT NO.
// IN THE FILE [Link]
//**********************************************************
43
{
fstream file ;
[Link]("[Link]", ios::in) ;
[Link](0,ios::beg) ;
char t_address[60] ;
while ([Link]((char *) this, sizeof(initial)))
{
if (accno == t_accno)
{
strcpy(t_address,address) ;
break ;
}
}
[Link]() ;
return t_address ;
}
//**********************************************************
// THIS FUNCTION RETURN BALANCE FOR THE GIVEN
ACCOUNT NO.
// IN THE FILE [Link]
//**********************************************************
44
float initial :: give_balance(int t_accno)
{
fstream file ;
[Link]("[Link]", ios::in) ;
[Link](0,ios::beg) ;
float t_balance ;
while ([Link]((char *) this, sizeof(initial)))
{
if (accno == t_accno)
{
t_balance = balance ;
break ;
}
}
[Link]() ;
return t_balance ;
}
//**********************************************************
// THIS FUNCTION RETURN 1 IF THE GIVEN ACCOUNT NO.
FOUND
45
// IN THE FILE [Link]
//**********************************************************
//**********************************************************
46
// THIS FUNCTION DRAWS THE BOX FOR THE LIST OF
ACCOUNTS
//**********************************************************
47
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
// [Link]
//**********************************************************
48
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() ;
}
}
[Link]() ;
if (!flag)
{
49
gotoxy(4,24) ;
cout <<"Press any key to continue..." ;
getch() ;
}
}
//**********************************************************
// THIS FUNCTION ADDS THE GIVEN DATA INTO THE FILE
// [Link]
//**********************************************************
50
}
//**********************************************************
// THIS FUNCTION DELETES RECORD FOR THE GIVEN
ACOUNT NO.
// FROM THE FILE [Link]
//**********************************************************
51
}
[Link]() ;
[Link]() ;
[Link]("[Link]", ios::out) ;
[Link]("[Link]", ios::in) ;
[Link](0,ios::beg) ;
while ( ![Link]() )
{
[Link]((char *) this, sizeof(initial)) ;
if ( [Link]() )
break ;
[Link]((char *) this, sizeof(initial)) ;
}
[Link]() ;
[Link]() ;
}
//**********************************************************
// THIS FUNCTION UPDATE BALANCE FOR THE GIVEN
ACOUNT NO.
// IN THE FILE [Link]
//**********************************************************
52
void initial :: update_balance(int t_accno, float t_balance)
{
int recno ;
recno = recordno(t_accno) ;
fstream file ;
[Link]("[Link]", ios::out | ios::ate) ;
balance = t_balance ;
int location ;
location = (recno-1) * sizeof(initial) ;
[Link](location) ;
[Link]((char *) this, sizeof(initial)) ;
[Link]() ;
}
//**********************************************************
// THIS FUNCTION MODIFIES THE RECORD FOR THE
GIVEN DATA
// IN THE FILE [Link]
//**********************************************************
53
void initial :: modify_account(int t_accno, char t_name[30], char
t_address[60])
{
int recno ;
recno = recordno(t_accno) ;
fstream file ;
[Link]("[Link]", ios::out | ios::ate) ;
strcpy(name,t_name) ;
strcpy(address,t_address) ;
int location ;
location = (recno-1) * sizeof(initial) ;
[Link](location) ;
[Link]((char *) this, sizeof(initial)) ;
[Link]() ;
}
//**********************************************************
// THIS FUNCTION GIVE THE DATA TO MODIFY THE
RECORD IN THE
// FILE [Link]
//**********************************************************
54
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 ;
55
[Link](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) ;
56
account a ;
do
{
[Link](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
{
[Link](15,15) ;
[Link](5,23) ;
57
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
{
[Link](15,16) ;
[Link](5,23) ;
58
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 ;
[Link](5,23) ;
do
59
{
[Link](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
60
//**********************************************************
//**********************************************************
// THIS FUNCTION ADDS THE GIVEN DATA INTO THE FILE
// [Link]
//**********************************************************
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 ;
[Link]("[Link]", ios::app) ;
61
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 ;
[Link]((char *) this, sizeof(account)) ;
[Link]() ;
}
//**********************************************************
// THIS FUNCTION DELETES THE RECORD FOR GIVIN
ACCOUNT NO.
// FROM FILE [Link]
//**********************************************************
62
[Link]("[Link]", ios::in) ;
fstream temp ;
[Link]("[Link]", ios::out) ;
[Link](0,ios::beg) ;
while ( ![Link]() )
{
[Link]((char *) this, sizeof(account)) ;
if ( [Link]() )
break ;
if ( accno != t_accno )
[Link]((char *) this, sizeof(account)) ;
}
[Link]() ;
[Link]() ;
[Link]("[Link]", ios::out) ;
[Link]("[Link]", ios::in) ;
[Link](0,ios::beg) ;
while ( ![Link]() )
{
[Link]((char *) this, sizeof(account)) ;
if ( [Link]() )
break ;
[Link]((char *) this, sizeof(account)) ;
63
}
[Link]() ;
[Link]() ;
}
//**********************************************************
// THIS FUNCTION ACCEPTS THE DATA TO ADD RECORDS
IN THE
// FILE [Link]
//**********************************************************
64
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) ;
65
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) ;
66
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" ;
67
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" ;
68
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 ;
69
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() ;
70
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 [Link]
71
//**********************************************************
72
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
[Link]
//**********************************************************
73
{
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) ;
74
int row=7, flag ;
fstream file ;
[Link]("[Link]", ios::in) ;
while ([Link]((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++ ;
75
if (row == 23)
{
flag = 1 ;
row = 7 ;
gotoxy(4,24) ;
cout <<"Press any key to continue..." ;
getch() ;
clrscr() ;
box_for_display(t_accno) ;
}
}
}
[Link]() ;
if (!flag)
{
gotoxy(4,24) ;
cout <<"Press any key to continue..." ;
getch() ;
}
76
//**********************************************************
// 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 ;
77
y1++ ;
}
}
return days ;
}
//**********************************************************
// THIS FUNCTION CALCULATES INTEREST.
//**********************************************************
78
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 ;
}
[Link]() ;
return t_interest ;
79
}
//**********************************************************
// THIS FUNCTION MAKES TRANSACTIONS
(DEPOSIT/WITHDRAW).
//**********************************************************
80
initial ini ;
if (!ini.found_account(t_accno))
{
gotoxy(5,5) ;
cout <<"\7Account not found" ;
getch() ;
return ;
}
shape s ;
[Link](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 ;
81
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) ;
[Link](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] ;
82
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) ;
83
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) ;
84
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() ;
85
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).
//**********************************************************
86
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 ;
87
}
shape s ;
[Link](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 ;
88
char ch ;
[Link](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() ;
}
89
//************************************************************
// THIS IS MAIN FUNCTION CALLING HELP AND MAIN
MENU FUNCTIONS
//************************************************************
void main(void)
{
control c ;
[Link]();
c.main_menu() ;
}
90
OUTPUT
91
92
93
94
95
Bibliography
Websites
[Link]
[Link]
[Link]
[Link]
Books
C++ By [Link]
96
C++ By Sukhdev Singh
97