Computer Practicle File 2001-02: BY: - DS: - Akshay Chadha, Mrs. P. Pant. Class XII-B
Computer Practicle File 2001-02: BY: - DS: - Akshay Chadha, Mrs. P. Pant. Class XII-B
PRACTICLE FILE
2001-02
Mrs. P. Pant.
BANK
MANAGEMENT
SYSTEM
CONTENTS
1.
ACKNOWLEDGEMENT.
2.
DECLARATION.
3.
CERTIFICATE.
4.
PROJECT OVERVIEW.
5.
INSTALLATION.
6.
DATA DICTIONARY.
7.
ERROR MESSAGES.
8.
SOURCE CODE.
9.
OUTPUT.
10.
BIBLIOGRAPHY.
ACKNOWLEDGEMENT
Chadha)
DECLARATION
I hereby declare that with the help, guidance and suggestions received by
me from our Computer teacher and Head of the Computer Department, Army
Public School, Noida, Mrs. P. Pant, this project has been completed. This is my
own individual work. It was carried out in the Computer laboratory of Army
Public School, Noida in the year 2001-02.
Date :-
2002
Akshay Chadha,
XII-A,
Army Public School,
Noida.
CERTIFICATE
This is to certify that Master Akshay Chadha of class XII-B has worked with full
determination while doing this project. The work put in by the student is original and an
outcome of his own effort. The project work was done under my supervision. This project
should be considered for the fulfillment of All India Secondary Board Education
examination of class XII for the year 2001-02.
Date:-
2002
Mrs. P. Pant,
H.O.D COMPUTER
Army Public School,
Noida.
PROJECT OVERVIEW
INSTALLATION
The program as well as the software will be stored using normal access methods
however the users details can only be accessed when a valid password is entered.
DATA DICTIONARY
The bank management system employs a wide range of header files, functions, and
classes. The purpose of each one of them has been specified below: (i) HEADER FILES : (a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(k)
(l)
(m)
(n)
(o)
(p)
(q)
(r)
(s)
(t)
ERROR MESSAGES
(a)
When the wrong password is entered, the computer denies the access.
(b)
When there are no transactions or there is no account holder, the computer
displays a message, no transaction exists or no account exists.
SOURCE CODE
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
#include<dos.h>
#include<process.h>
#include<fstream.h>
#include <iomanip.h>
//FUNCTION FOR DISPLAYING THE HISTORIC BACKGROUND OF THE
BANK
void about_us()
{
cout<<"\n\n\n\t\t\t\tABOUT US:- \n\n\n ";
cout<<"\t\tThe bank was established in the year
1996.\n";
cout<<"\t\tFrom then on the bank has grown & has
branches \n";
cout<<"\t\tin many big cities of the country.The bank
has \n";
cout<<"\t\tmore than 1000 account holders & has served
many \n";
cout<<"\t\tmore before them.We assure you that choosing
this \n";
cout<<"\t\tbank will definitely benifit you in every
respect.\n";
cout<<"\n\n\t\t\t\t\t\tTHANK YOU.";
}
//INTEGER VARIABLE TO CHECK CONDITION FOR ANY USER'S LOGGING
IN
int log = 0;
//INTEGER VARIABLE TO GET THE VALUE OF THE GET & PUT POINTER
long n;
//STRUCTURE FOR://DATE OF BIRTH OF USER AND
//DATE OF VARIOUS TRANSACTIONS
struct ddate
{
int day;
int month;
int year;
};//END OF STRUCTURE DECLARATION
//OBJECT OF TYPE FSTREAM FOR BOTH WRITING & READING FROM
FILE
fstream ifile1;
//STRUCTURE FOR THE ADDRESS OF USER
struct address
{
int hno;
int secno;
char city [20];
};//END OF STRUCTURE DECLARATION
//CLASS TO HOLD THE VARIOUS DETAILS OF USER
//OPENING AN ACCOUNT IN THE BANK
class bank_acc
{
public :
//CHARACTER TYPE TO HOLD NAME OF USER
char username [20];
//DDATE TYPE TO HOLD THE DATE OF BIRTH OF USER
ddate userdob;
//ADDRESS TYPE TO HOLD THE ADDRESS OF USER
address a;
//CHARACTER TYPE TO HOLD PASSWORD OF USER'S
ACCOUNT
char pass [10];
//INTEGER TYPE TO HOLD THE USER'S ACCOUNT NUMBER
long int acc_no;
//INTEGER TYPE TO HOLD THE USER'S BALANCE
long int balance;
//INTEGER TYPE TO HOLD THE AMOUNT TO BE WITHDRAWN
long int wm;
//INTEGER TYPE TO HOLD THE AMOUNT TO BE DEPOSITED
long int dm;
//CHARACTER TYPE TO HOLD THE USER'S ACCOUNT TYPE
char acc_type;
//PROTOTYPE OF THE CONSTRUCTOR FUNCTION
bank_acc();
//PROTOTYPE OF FUNCTION TO GET USER'S DETAILS
void ba_getdata();
{
//CLEARING SCREEN FOR NEW OUTPUT
clrscr();
//OBJECT OF CLASS TRANS
trans t;
//OPENING FILE:-TRANS.TXT
//DECLARING OBJECT OF CLASS IFSTREAM TO READ FROM FILE
ifstream ifile( "TRANS.TXT" , ios::binary );
//CHECKING WHETHER FILE EXISTS OR NOT
if(!ifile)
{
gotoxy(30,10);
cout<<"NO TRANSACTIONS EXIST";
}
else
{
//OUTPUT
cout<<"DATE OF TRANSACTION";
cout<<"\t
ACCOUNT NO";
cout<<"\tTYPE OF TRANSACTION";
cout<<"\tAMOUNT";
//READING OBJECTS FROM FILE
ifile.read(( char * ) & t , sizeof (t));
while( !ifile.eof() )//CONDITION FOR END OF FILE
{
t.show_trans();//FUNCTION CALL
//READING OBJECT OF CLASS TRANS FROM FILE
ifile.read(( char * ) & t,sizeof (t));
}
}//END ELSE
ifile.close();//CLOSING FILE
}//END OF FUNCTION DEFINITION
//FUNCTION OF CLASS TRANS TO DISPLAY TRANSACTIONS OF VARIOUS
ACCOUNT HOLDERS
void trans::show_trans()
{
cout<<"\n";
//DISPLAYING THE DATE OF TRANSACTION
cout<<setw(2)<<dot.day;
cout<<"/"<<setw(2)<<dot.month;
cout<<"/"<<setw(2)<<dot.year;
//DISPLAYING THE ACCOUNT NO OF USER
cout<<setw(20)<<acno;
//DISPLAYING THE TYPE OF TRANSACTION
cout<<setw(20)<<type_trans;
//DISPLAYING THE TRANSACTION AMOUNT
cout<<setw(20)<<amount;
}//END OF FUNCTION DEFINITION
void login();//FUNCTION PROTOTYPE
void menu1();//FUNCTION PROTOTYPE
int match_pass(char pw[10]);//FUNCTION PROTOTYPE
//FUNCTION OF CLASS BANK ACCOUNT TO GET USER'S DETAILS
void bank_acc::ba_getdata()
{
//INITIALISING THE BALANCE TO ZERO
balance = 0;
//ASKING FOR USER'S NAME
cout<<"\n\t\tENTER USER NAME\n\t\t";
//TAKING IN USER'S NAME
cin.getline(username,20);
//FOR TAKING IN THE PASSWORD
char pw[10];//ARRAY OF CHARACTERS TO HOLD THE USER'S
PASSWORD
int ch;
//LOOP FOR TAKING IN PASSWORD
do
{
int i = 0;//INITIALISING i=0
cout<<"\n\t\tENTER THE PASSWORD\n\t\t";
while(ch!= 13)
{
//TAKING IN THE CHARACTER ENTERED INTO
VARIABLE CH
ch = getch();
//PUTTING THE '*' CHARACTER ON THE SCREEN
putch('*');
//ASSIGNING CH'S VALUE TO PASS
pass[i] = ch;
//INCREMENTING VALUE OF i
i++;
}//END WHILE LOOP
i = i-1;//DECREEMENTING i BY 1
pass[i] = '\0';//TERMINATING THE STRING BY PUTTING
'/0'
}while(match_pass(pass)!= 1);//CONDITION FOR LOOP TO
CONTINUE
//ASKING FOR USER'S DATE OF BIRTH
cout<<"\n\t\tENTER DATE OF BIRTH:- DD MM
YY\n\t\t(PLEASE GIVE SPACE AFTER EACH ENTRY)\n\t\t";
ba.ba_showdata();
getch();
//READING NEW RECORD FROM FILE
ifile.read((char*)&ba,sizeof(ba));
}
}//END ELSE
ifile.close();//CLOSING THE FILE
}
//FUNCTION FOR MATCHING THE PASSWORD OF NEW USER
//WITH AN ALREADY EXISTING PASSWORD
int match_pass(char pw[10])
{
//OBJECT OF CLASS BANK ACCOUNT
bank_acc b_a;
//OBJECT OF CLASS IFSTREAM TO READ FROM FILE
ifstream ifile("PROJECT.TXT",ios::binary);
while(!ifile.eof())//CONDITION FOR END OF FILE
{
//READING OBJECT FROM FILE
ifile.read((char*)&b_a,sizeof(b_a));
//COMPARING NEW & OLD PASSWORDS
if(strcmp(b_a.pass,pw)==0)
{
return 0;
}
}
ifile.close();//CLOSING FILE
return 1;
}
//FUNCTION TO COMPARE THE ACCOUNT NO & PASSWORD ENTERED BY
USER
int match(long int acno,char pw[10])
{
//CLEARING THE SCREEN
clrscr();
//OBJECT OF CLASS BANK ACCOUNT
bank_acc b_a;
//OPENING FILE BY GLOBAL OBJECT OF CLASS FSTREAM
ifile1.open("PROJECT.TXT", ios::nocreate|ios::in|
ios::out|ios::binary);
//INITIALISING j=0
int j = 0;
//READING OBJECT FROM FILE
ifile1.read((char*)&b_a,sizeof(b_a));
while(!ifile1.eof())//CONDITION FOR END OF FILE
{
//COMPARING ACCOUNT NO & PASSWORD ENTERED BY USER
//WITH EXSTING ACCOUNT NUMBERS & PASSWORDS
if((b_a.acc_no==acno)&&(strcmp(b_a.pass,pw)==0))
{
//ASSIGNING THE USER WHEN FOUND
//TO GLOBAL OBJECT curuser
curuser = b_a;
//CLEARING THE SCREEN
clrscr();
gotoxy(30,12);
cout<<"PLEASE PROCEED";
//ASSIGNING LOG THE VALUE 1
log = 1;
//GETTING THE RECORD POINTER'S VALUE IN n
n = ifile1.tellg() - sizeof(b_a);
//ifile1.close();
getch();
j = 1;
return 1;
}
//READING NEW RECORD FROM FILE
ifile1.read((char*)&b_a,sizeof(b_a));
}
ifile1.close();//CLOSING THE FILE
if(j==0)
{
clrscr();
gotoxy(30,15);
cout<<"ACCESS DENIED";
//ASSIGNING LOG THE VALUE 0
log = 0;
sound(2000);
delay(1500);
nosound();
return -1;
}
}//END OF FUNCTION DEFINITION
//FUNCTION FOR THE MAIN SCREEN
void main_screen()
{
clrscr();
textcolor(2);//ASSIGNING TEXT A COLOUR
textbackground(1);//ASSIGNING TEXTBACKGROUND A COLOUR
clrscr();
gotoxy(30,5);
cprintf("WELCOME TO OUR BANK");
delay(2000);
menu1();//CALLING FUNCTION FOR VARIOUS CHOICES
//getch();
}
//FUNCTION FOR DISPLAYING HOW TO ENTER HIS/HER CHOICE
void set_screen()
{
//textbackground(1);//ASSIGNING TEXTBACKGROUND A COLOUR
cout<<"\n\n\t\tPRESS 1.LOGIN";
cout<<" 2.NEW ACCOUNT";
cout<<" 3.ABOUT US\n\t";
cout<<" 4.VIEWING ALL ACCOUNTS";
cout<<" 5.VIEWING ALL TRANSACTIONS";
cout<<" 6.EXIT";
}
//FUNCTION FOR THE MAIN MENU SCREEN FOR VARIOUS OPTIONS FOR
THE USER
void menu1()
{
clrscr();
//OBJECT OF CLASS BANK ACCOUNT
bank_acc bk;
//OBJECT OF CLASS TRANSACTION
trans t;
char ch;//CHARACTER TO TAKE IN CHOICE ENTERED BY USER
//LOOP FOR DISPLAYING HE VARIOUS OPTIONS TILL EXIT IS
PRESSED
while(1)
{
clrscr();
gotoxy(30,5);
cout<<"1) LOGIN ";
gotoxy(30,7);
cout<<"2) NEW USER ";
gotoxy(30,9);
cout<<"3) ABOUT US ";
gotoxy(30,11);
cout<<"4) VIEW ALL ACCOUNTS ";
gotoxy(30,13);
cout<<"5) VIEW ALL TRANSACTIONS ";
gotoxy(30,15);
cout<<"6) EXIT ";
gotoxy(30,17);
//getch();
break;
case'2':
//FUNCTION CALL TO WITHDRAW MONEY
bk.ba_withdraw();
//OPENING FILE-PROJECT
//IN INPUT & BINARY MODE
ifstream file("PROJECT.TXT", ios::in|
ios::binary);
//MOVING FILE POINTER TO AN ABSOLUTE
POSITION
//AS RETURNED BY TELLG
ifile1.seekp(n);
//WRITING NEWLY ENTERED INFO TO OBJECT
ifile1.write((char *) &bk, sizeof(bk));
ifile1.flush();
//getch();
break;
case'3':
//FUNCTION CALL TO CLOSE USER'S ACCOUNT
close_acc();
//ASSIGNING LOG THE VALUE ZERO
log = 0;
//getch();
return;
case'4':
//FUNCTION CALL TO DISPLAY USER'S
DETAILS
bk.ba_showdata();
getch();
break;
case'5':
//ASSIGNING LOG THE VALUE ZERO
log = 0;
ifile1.close();
return;
}//END OF SWITCH STATEMENT
}//END WHILE LOOP
getch();
}//END OF FUNCTION DECLRATION
//FUNCTION TO TAKE IN USER'S ACCOUNT NO & PASSWORD
//& LOGGING IN TO WITHDRAW,DEPOSIT,CLOSE & OTHER OPTIONS FOR
USER
void login()
{
int ch;
OUTPUT
SCREEN 1:- _
WELCOME TO OUR BANK
SCREEN 2: 1) LOGIN
2) NEW USER
3) ABOUT US
4) VIEW ALL ACCOUNTS
5) VIEW ALL TRANSACTIONS
6) EXIT
ENTER YOUR CHOICE
PRESS 1.LOGIN 2.NEW ACCOUNT 3.ABOUT US
4.VIEWING ALL ACCOUNTS 5.VIEWING ALL TRANSACTIONS 6.EXIT
SCREEN 3: ENTER USER NAME
Tanvi Hooda
ENTER THE PASSWORD
******
ENTER DATE OF BIRTH:- DD MM YY
(PLEASE GIVE SPACE AFTER EACH ENTRY)
19 9 85
ENTER YOUR ADDRESS:-HNO SEC CITY
(PLEASE GIVE SPACE AFTER EACH ENTRY)
137 29 noida
ENTER ACCOUNT NUMBER
1
ENTER TYPE OF ACCOUNT:-(S-SAVINGS/C-CURRENT)
s
SCREEN 4: ENTER ACCOUNT NUMBER1
ENTER PASSWORD*****
SCREEN 5: PLEASE PROCEED
SCREEN 6: WHAT WOULD YOU LIKE TO DO?
1) DEPOSIT MONEY
2) WITHDRAW MONEY
3) CLOSE ACCOUNT
4) DISPLAY USER DATA
5) RETURN TO MAIN MENU
ENTER YOUR CHOICE
SCREEN 7: ENTER DATE OF DEPOSITING dd mm yy
(PLEASE GIVE SPACE AFTER EACH ENTRY)
21 1 02
YOU HAVE AN EMPTY ACCOUNT
MINIMUM AMOUNT SHOULD BE MORE THAN Rs1000
ENTER THE AMOUNT
10000
USER'S BALANCE:9000
USER'S ACCOUNT TYPE:SAVINGS
NAME:Taruna Hooda
DATE OF BIRTH:16/11/89
ADDRESS OF USER:1,37,noida
USER'S ACCOUNT NUMBER IS:2
USER'S BALANCE:0
USER'S ACCOUNT TYPE:CURRENT
SCREEN 11: DATE OF TRANSACTION ACCOUNT NO TYPE OF TRANSACTION AMOUNT
21/ 1/ 2
1
DEPOSIT
10000
23/ 1/ 2
1
WITHDRAWL
1000
21/ 1/ 2
2
DEPOSIT
20000
24/ 1/ 2
2
WITHDRAWL
2000
SCREEN 12:ENTER ACCOUNT NUMBER3
ENTER PASSWORD*
BIBLIOGRAPHY
Computer Science C++ by Mrs. Sumita Arora and Gautam Sarkar.
Teachers Remarks