Beruflich Dokumente
Kultur Dokumente
ON
REPORT BY:
SADAQAT ALI
RESMI THERESA EPHREM
RESMI R. NAIR
We take this opportunity to express our profound gratitude to our respected project
guide Mr. S. R. BALASUNDARAM for his ever inspiring guidance, constant
encouragement and support he had provided us throughout the course of our project
work. His ever motivating and encouraging attitude has made our work possible.
We would also like to thank the staff of “ The Octagon ” our beloved computer
center for the constant facility and support they have given throughout this project.
SADAQAT ALI
RESMI THERESA EPHREM
RESMI R. NAIR
INTRODUCTION
The
class
Card_input has the methods for reading the code of the client's card and for ejecting the card from the
ATM. The class Card_input will interact through the Controller with the class Terminal, where the
methods Req_PIN and Req_amount are defined, in order to get the PIN of the user and to verify if the
given PIN is correct or not. The class Card will have the information of the cardholder, that is, the
Card_number, PIN, and Account_number. The Controller will interact with Bank using the information of
the cardholder in order to get the authorization to pay (or not) the requested amount. The bank_interface
will send the request to the Accounting class, which belongs to the Bank package, in order to call the Debit
method of the accounting class3. The Accounting class has the methods Rollback, Authorization and Debit
which directly interact with the Accounts class. Rollback is for roll back a transaction (for the case
anything is wrong) and should leave the account and the teller machine in the original state; Authorization
will authorize or not an operation and Debit will extract the requested amount of money from the account
in the case the operation is authorized.
ATMs are generally reliable, but if they do go wrong customers will be left without cash until the
following morning or whenever they can get to the bank during opening hours. Of course not all errors are
to the detriment of customers; there have been cases of machines giving out money without debiting the
account or giving out a higher denomination of note by mistake.
There are also many "phantom withdrawals" from ATMs, which banks often claim are the result of
fraud by customers. Phantom withdrawals are considered to be a problem generated by dishonest insiders
by most other observers.
HISTORY OF ATM
As is often the case with inventions, many inventors contribute to the history of an invention.
In the case of the ATM, Don Wetzel invented the first successful and modern ATM in the USA,
however he was not first inventor to create an ATM. In 1939, Luther George Simjian started
patenting an earlier and not-so-successful version of an ATM.
An automatic teller machine or ATM allows a bank customer to conduct their banking
transactions from almost every other ATM machine in the world. Don Wetzel was the co-patentee
and chief conceptualist of the automated teller machine, an idea he said he thought of while waiting
in line at a Dallas bank.
At the time (1968) Wetzel was the Vice President of Product Planning at Docutel, the
company that developed automated baggage-handling equipment. The other two inventors listed on
the patent were Tom Barnes, the chief mechanical engineer and George Chastain, the electrical
engineer. It took five million dollars to develop the ATM. The concept of the modern ATM first
began in 1968, a working prototype came about in 1969 and Docutel was issued a patent in 1973.
The world's first ATM was installed in Enfield Town in the London Borough of Enfield, London on
June 27 1967.
The first working ATM was installed in a New York based Chemical Bank.
The first ATMs were off-line machines, meaning money was not automatically withdrawn
from an account. The bank accounts were not (at that time) connected by a computer network to the
ATM. Therefore, banks were at first very exclusive about who they gave ATM privileges to.
Giving them only to credit card holders (credit cards were used before ATM cards) with good
banking records. Wetzel, Barnes and Chastain developed the first real ATM cards, cards with a
magnetic strip and a personal ID number to get cash. ATM cards had to be different from credit
cards (then without magnetic strips) so account information could be included.
WHY GO FOR ATM?
An automatic teller machine increases existing business. The typical ATM customer will
spend 20-25% more than a non-ATM customer, according to research conducted by AT&T
Global Information Solutions.
An automatic teller machine generates new business. Customers are more likely to seek out
a location with an automatic teller machine; in addition to convenience, there are a number
of safety benefits associated with an in-store automatic teller machine, according to survey
results published in Petroleum Marketer magazine.
An automatic teller machine provides additional revenue streams. Each ATM withdrawal
transaction generates surcharge ("convenience fee") income for the owner of the automatic
teller machine. Additionally, an automatic teller machine can provide revenue from on-
screen advertising, couponing, and alternative media (e.g., prepaid phone-cards, postage
stamps) dispensing opportunities.
An automatic teller machine reduces risk and lowers costs. Having an automatic teller
machine on the premises can reduce the number of bad checks and cut credit card expenses
because customers have the option of withdrawing cash instead.
An automatic teller machine pays for itself. With break-even points below 100 transactions
per month, even a low traffic location can more than pay for an automatic teller machine
from surcharge revenues alone.
ALGORITHM
1. Deposit
2. Withdrawn
3. Detail
4. Exit
If Deposit or Withdrawn ask for amount then display the remaining balance.
If Detail then display last ten transaction.
If exit then display “EXIT” screen saying “THANKS”.
After Deposit or Withdrawn or Mini-statement ask user for further transaction.
If ‘yes’ then come back to “TRANSACTION” screen.
If ‘no’ then THANKS user for using ATM.
Close account ledger file.
Close graphics mode.
TABLE DEFINING FILES
NAME OF DESCRIPTION
FILE
ALL THE HEADER FILES AND OTHER PROGRAM FILES ARE
MAIN INCLUDED IN THIS FILE AND THE CONTROL IS
TRANSFERRED TO WELCOME
WELCOME SCREEN IS DISPLAYED AND CONTROL IS
WELCOME TRANSFERRED TO INPUT.
Filling of bills.
Daily news headline.
Check matches score or sensex ups and downs.
BIBLIOGRAPHY
1. ROBERT LAFORE: TURBO C++, Galgotia Publications Pvt Ltd, New Delhi
/* main function */
#include<fstream.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<graphics.h>
#include<dos.h>
#include "comparis.cpp"
#include "input.cpp"
#include "welcome.h"
#include "exitscr.cpp"
#include "pss_wron.cpp"
#include "trans.cpp"
#include "swtchcmp.cpp"
#include "with_dep.cpp"
#include "convert.cpp"
#include "mod.cpp"
#include "anymore.cpp"
#include "minist.cpp"
main()
{
welcome();
return 0;
}
/* welcome.h */
void welcome()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"");
char wel[]="WELCOME";
int xmax, ymax;
xmax=getmaxx();
ymax=getmaxy();
setfillstyle(7,9);
bar(20,20,xmax-20,ymax-20);
rectangle(20,20,xmax-20,ymax-20);
floodfill(21,21,WHITE);
setcolor(15);
settextstyle(6,0,4);
outtextxy(275,225,wel);
getch();
input();
closegraph();
restorecrtmode();
}
/* input.cpp*/
input()
{
cleardevice();
char name[6];
char psswd[6];
int nm,pd;
char ch[2];
int i,a=0;
int xmax, ymax;
xmax=getmaxx();
ymax=getmaxy();
setfillstyle(7,9);
bar(20,20,xmax-20,ymax-20);
rectangle(20,20,xmax-20,ymax-20);
floodfill(21,21,WHITE);
name[0]=getch();
for(i=1;name[i-1]!='\r';i++)
{
ch[0]=name[i-1];
ch[1]='\0';
outtextxy(300+a,120,ch);
name[i]=getch();
a=a+8;
}
name[i-1]='\0';
a=0;
psswd[0]=getch();
for(i=1;psswd[i-1]!='\r';i++)
{
ch[0]='*';
ch[1]='\0';
outtextxy(300+a,180,ch);
psswd[i]=getch();
a=a+8;
}
psswd[i-1]='\0';
nm=swtchcmp(name);
pd=swtchcmp(psswd);
comparis(nm,pd);
return 0;
}
/* swtchcmp.cpp*/
for(i=len;i>=0;i--)
{
switch(ch[i])
{
case '0': art=0; break;
case '1': art=1; break;
case '2': art=2; break;
case '3': art=3; break;
case '4': art=4; break;
case '5': art=5; break;
case '6': art=6; break;
case '7': art=7; break;
case '8': art=8; break;
case '9': art=9; break;
}
num=num+art*x;
x=10*x;
}
return num;
}
/* comparis.cpp*/
void pss_wron(int);
void trans(int);
}while(fin);
}
if(flag==1)
{ fin.close(); trans(unm);}
else if(w!=1)
{ w=0; fin.close(); pss_wron(w); }
/* pss_wron.cpp*/
outtextxy(120,240,"1.Try Again");
outtextxy(120,300,"2.Exit");
c=getch();
if(c=='1')
input();
else
exitscr();
}
/* trans.cpp*/
void with_dep(int,int);
void minist(int);
void exitscr();
void trans(int unm)
{
char ch;
int xmax,ymax;
cleardevice();
xmax=getmaxx();
ymax=getmaxy();
setcolor(WHITE);
setfillstyle(7,9);
rectangle(20,20,xmax-20,ymax-20);
floodfill(21,21,WHITE);
//setcolor(MAGENTA);
rectangle(100,100,190,130);
outtextxy(105,115,"1.WITHDRAW");
rectangle(400,100,490,130);
outtextxy(405,115,"2.DEPOSIT");
rectangle(100,400,190,430);
outtextxy(105,415,"3.DETAILS");
rectangle(400,400,490,430);
outtextxy(405,415,"4.EXIT");
ch=getch();
switch(ch)
{
case '1': with_dep(unm,1); break;
case '2': with_dep(unm,2); break;
case '3': minist(unm); break;
case '4': exitscr(); break;
}
}
/* with_dep.cpp*/
cash[0]=getch();
int i;
for(i=1;cash[i-1]!='\r';i++)
{
ch[0]=cash[i-1];
ch[1]='\0';
outtextxy(400+a,200,ch);
cash[i]=getch();
a=a+8;
}
cash[i-1]='\0';
money=swtchcmp(cash);
if(N==1)
money*=-1;
bal=mod(money,unm);
convert(bal,balance);
outtextxy(120,250,"Your Balance is:");
outtextxy(250,250,balance);
getch();
ans=anymore();
if(ans==1)
trans(unm);
else
exitscr();
}
/* minist.cpp*/
void names(int);
ifstream fin;
fin.open("n1.txt",ios::in);
long st[42];
char str[10];
int n,m,p;
long a;
long b,bal=0;
int i=0,j,l=0;
do
{
fin>>n;
if(unm==n)
{
st[l++]=(long)n;
fin>>a;
fin>>b;
st[l++]=b;
bal +=b;
for(j=0;j<10;j++)
for(i=0;i<4;i++)
{
fin>>a;
st[l++]=a;
if(i==3)
bal += a;
}
}
else
{
for(i=0;i<42;i++)
fin>>a;
}
}while(fin);
fin.close();
int y=0;
convert(st[0],str);
outtextxy(40,40,"Account No:");
outtextxy(150,40,str);
outtextxy(400,40,"Name:");
names(unm);
outtextxy(40,80,"DATE");
outtextxy(200,80,"CREDIT/DEBIT");
outtextxy(400,80,"AMOUNT in Rs");
l=2;
for(i=2, j=1;l<42;i++, j++)
{
for(int k=0, m=0, p=15;k<3;k++,m=m+30,p=p+30)
{
convert(st[l++],str);
outtextxy(40+m,120+y,str);
if(k!=2)
outtextxy(40+p,120+y,"/");
}
if(st[l]<0)
{
outtextxy(200,120+y,"DEBIT");
st[l] *= -1;
}
else
outtextxy(200,120+y,"CREDIT");
convert(st[l++],str);
outtextxy(400,120+y,str);
y+=20;
}
outtextxy(40,120+y+50,"Your Balance is:Rs");
convert(bal,str);
outtextxy(200,120+y+50,str);
getch();
ans=anymore();
if(ans==1)
trans(unm);
else
exitscr();
/* mod.cpp*/
fin.open("n1.txt",ios::in);
fout.open("n2.txt",ios::out);
int count=0;
do
{
fin>>n;
fout<<n<<"\t";
if(unm==n)
{
fin>>a;
fout<<a<<"\t";
fin>>b;
for(i=0;i<4;i++)
{
fin>>a;
if(i==3)
{
b = b+a;
bal=b;
fout<<b<<"\t";
}
}
for(int j=0;j<9;j++)
for(i=0;i<4;i++)
{
fin>>a;
fout<<a<<"\t";
if(i==3)
bal += a;
}
fout<<(int)d.da_day<<"\t";
fout<<(int)d.da_mon<<"\t";
fout<<d.da_year<<"\t";
fout<<money<<"\n";
bal += money;
}
else
{
for(i=0;i<42;i++)
{ fin>>a;
fout<<a<<"\t";
}
fout<<"\n";
}
count++;
if(count==10)
break;
}while(fin);
cout<<endl;
fin.close();
fout.close();
fin.open("n2.txt",ios::in);
fout.open("n1.txt",ios::out);
int k=0;
do
{
k++;
fin>>a;
fout<<a<<"\t";
if(k%43==0)
fout<<"\n";
}while(fin);
getch();
fin.close();
fout.close();
return bal;
}
/* anymore.cpp*/
int anymore()
{
cleardevice();
int xmax,ymax;
char reply;
char ch[2];
xmax=getmaxx();
ymax=getmaxy();
setcolor(15);
setfillstyle(7,9);
bar(20,20,xmax-20,ymax-20);
rectangle(20,20,xmax-20,ymax-20);
floodfill(21,21,WHITE);
/* exitscr.cpp*/
void exitscr()
{
cleardevice();
int ymax,xmax;
xmax=getmaxx();
ymax=getmaxy();
setcolor(15);
setfillstyle(7,9);
bar(20,20,xmax-20,ymax-20);
rectangle(20,20,xmax-20,ymax-20);
floodfill(21,21,WHITE);
outtextxy(200,200,"Thank You!");
outtextxy(200,250,"Visit Again!!!");
getch();
}
OUTPUT SCREENS
Screen 1: WELCOME
Screen 2: ACCOUNT NO. AND PASSWORD
Screen 3: USERNAME FAIL
Screen 4: PASSWORD FAIL
Screen 5: ENTER USERNAME AND PASSWORD
Screen 6: TRANSACTION SCREEN
Screen 7: WITHDRAW
Screen 8: ANY FURTHER TRANSACTION
Screen 9 : DEPOSIT
Screen 10 : MINI-STATEMENT
Screen 11 : EXIT SCREEN