CSC 1311-Computer Programming Spring 201t6 ATM Simulation Problem an ATM Using t
ID: 3677709 • Letter: C
Question
CSC 1311-Computer Programming Spring 201t6 ATM Simulation Problem an ATM Using the following algorithm, design an UMIL diagram and write a java program to simulate the operation machine at Caldwell Bank and Trust (CBT) should use concepts from Chapters 1-9 in your classes. to simulate the operation of You ). This program will be due Wednesday, March 17,2016 at 9 am Algorithm 1. Start Algerithn 2. Display Welcome Screes 3. Allow user to slide card a. Simulate card sliding by asking user to enter account number i. Check account number against valid account numbers If number is invalid allow three attempts then print error message- Please contact your financial institution - - If number is valid proceed to Step 4 4. Allow user to enter personal identification number (PIN a. Simulate by asking user to enter account number i. Check PIN against valid PINs. If number is invalid allow three attempts then print error message- Please contact your financial institution - -If number is valid proceed to Step 5 Display the main menu a. Balance Inquiry b. Fast Cash c. Withdrawal d. Deposit e. Quit 6. Allow user to choose from menu - Assume MyATM is an object a. If choice a proceed to the method to get the balance (le. MyATM getBalanceo b. If choice b proceed to the method to get the fast cash (ie MyATM getfastCashoExplanation / Answer
#include<fstream.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<iostream.h>
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
void punit (void);
void deposit(void);
void addrecord();
void delrecord();
void modrecord();
void disprecord();
void dispall();
void withdraw();
float w,z;
class account
{
int pin, accountno,cls;
char name[30],type;
float deposit,withdraw;
public:
account()
{
deposit=withdraw=0;
}
int giveaccountno()
{
return accountno;
}
void getdata(int mrno)
{
accountno=mrno+1;
cout<<” WELCOME ”;
cout<<"ACCOUNT NUMBER :: ";
cout<<accountno<<"
";
cout<<"ENTER YOUR NAME :: ";
gets(name);
cout<<"
";
cout<<”Please enter your PIN ::”;
Cin>> pin;
cout<<"ENTER TYPE OF ACCOUNT SAVING(s)/CURRENT(c) :: ";
cin>>type;
cout<<"
";
cout<<"ENTER INITIAL AMOUNT ::Rs ";cin>>deposit;
cout<<"
";
}
void withdrawal(int m)
{
cout<<"AMOUNT BEFORE WITHDRAWING::Rs "<<deposit<<"
";
deposit=deposit-m;
cout<<"AMOUNT AFTER WITHDRAWING::Rs "<<deposit;
}
void deposital(int m)
{
cout<<"AMOUNT BEFORE DEPOSIT::Rs "<<deposit<<"
";
deposit=deposit+m;
cout<<"AMOUNT AFTER DEPOSIT ::Rs "<<deposit;
}
void dispdata()
{
int scrnt=0;
if(scrnt==1)
{
clrscr();
cout<<"DISPLAY ALL MENU
";
scrnt=0;
}
cout<<"
ACCOUNT NUMBER ::";
cout<<accountno;
cout<<"
NAME OF DEPOSITER ::";
cout<<name;
cout<<"
TYPE OF ACCOUNT SAVING(s)/CURRENT(c) :: ";
cout<<type;
cout<<"
BALANCE ::Rs ";
cout<<deposit;
scrnt++;
}
};
void main()
{
int menuch;
punit();
do
{
clrscr();
textcolor(14);
textbackground(1);
cout<<"
MAIN MENU
";
cout<<"
1.NEW ACCOUNT ";
cout<<"
2.CLOSE AN ACCOUNT ";
cout<<"
3.MODIFY AN ACCOUNT ";
cout<<"
4.DISPLAY AN ACCOUNT ";
cout<<"
5.DISPLAY ALL RECORDS ";
cout<<"
6.WITHDRAW AMOUNT";
cout<<"
7.DEPOSIT AMOUNT";
cout<<"
8.EXIT ";
cout<<"
ENTER YOUR CHOICE ";
cin>>menuch;
switch(menuch)
{
case 1:addrecord();break;
case 2:delrecord();break;
case 3:modrecord();break;
case 4:disprecord();break;
case 5:dispall();break;
case 6:withdraw();break;
case 7:deposit();break;
}
}
while(menuch!=8);
}
void addrecord()
{
account obj_1,obj_2;
fstream fout;
fout.open("banking.txt",ios::in|ios::binary);
if(!fout)
{
cout<<"FILE OPEN ERROR ";getch();return;}
int recsize=sizeof(account);
fout.seekg(0,ios::end);
fout.seekg(-1*recsize,ios::cur);
fout.read((char*)&obj_1,recsize);
int mrno=obj_1.giveaccountno();
fout.close();
clrscr();
cout<<"ADD MENU
";
obj_2.getdata(mrno);
fout.open("banking.txt",ios::app|ios::binary);
if(!fout)
{
cout<<"FILE OPEN ERROR ";getch();return;}
fout.write((char*)&obj_2,recsize);
cout<<"
RECORD ADDED TO DATABASE"<<"
Press any key to
continue... ";
getch();
fout.close();
}
void dispall()
{
account obj_3;
fstream fout;
int recsize=sizeof(account);
int countrec=0;
clrscr();
cout<<"
DISPLAY ALL MENU
";
fout.open("banking.txt",ios::in);
if(!fout)
{
cout<<"FILE OPEN ERROR ";getch();return;}
while(fout.read((char*)&obj_3,recsize))
{
obj_3.dispdata();
countrec++;
cout<<"
PRESS ANY KEY FOR NEXT....";
getch();
}
clrscr();
cout<<"
END OF FILE.TOTALNUMBER OF RECORDS..."<<countrec;
cout<<"
Press any key......";
getch();
fout.close();}
void disprecord()
{
account obj_4;
fstream fout;
int mrno,flag=0;
int recsize=sizeof(account);
clrscr();
cout<<"
DISPLAY A RECORD MENU
";
fout.open("banking.txt",ios::in);
if(!fout)
{
cout<<"FILE OPEN ERROR ";getch();return;}
cout<<"
ENTER THE ACCOUNT NUMBER ";cin>>mrno;
while(fout.read((char*)&obj_4,recsize))
{
if (obj_4.giveaccountno()==mrno)
{
obj_4.dispdata();
cout<<"
Press any key.....";
flag=1;break;
}
}
if(flag==0)
{
cout<<"
NO SUCH ACCOUNT EXIST ";
cout<<"
Press any key......";
}
getch();
fout.close();
}
void delrecord()
{
account obj_5;
fstream fout,temp;
int mrno,flag;
int recsize=sizeof(account);
clrscr();
cout<<"
CLOSE ACCOUNT MENU
";
fout.open("banking.txt",ios::in);
if(!fout)
{
cout<<"FILE OPEN ERROR ";
getch();
return;
}
temp.open("temp.txt",ios::app|ios::binary);
if(!temp)
{
cout<<"FILE OPEN ERROR ";
getch();
return;
}
cout<<"
ENTER THE ACCOUNT NUMBER ";
cin>>mrno;
while(fout.read((char*)&obj_5,recsize))
{
if(obj_5.giveaccountno()==mrno)
{
obj_5.dispdata();
char confirm;
cout<<"
ARE YOU SURE TO DELETE IT(Y/N)..";cin>>confirm;
if(confirm=='Y'||confirm=='y')
{
fout.read((char*)&obj_5,recsize);
cout<<"
RECORD DELETED FORM DATABASE
";
cout<<"press any key....";
flag=1;
if(!fout)
break;
}
flag=1;
}
temp.write((char*)&obj_5,recsize);}
fout.close();
temp.close();
remove("banking.txt");
rename("temp.txt","banking.txt");
if(flag==0)
{
cout<<"
NO SUCH ACCOUNT EXIST";
cout<<"Press any key.....";
}
getch();
}
void modrecord()
{
account obj_6;
fstream fout;
int mrno,flag=0;
int recsize=sizeof(account);
clrscr();
cout<<"
MODIFY RECORD MENU
";
fout.open("banking.txt",ios::in|ios::out|ios::binary);
if(!fout)
{
cout<<"FILE OPEN ERROR ";
getch();
return;
}
fout.seekg(ios::beg);
cout<<"
ENTER RECORD NUMBER ";
cin>>mrno;
while(fout.read((char*)&obj_6,recsize))
{
if(obj_6.giveaccountno()==mrno)
{
clrscr();
cout<<"
MODIFY MENU
";
obj_6.dispdata();
int tmprno=obj_6.giveaccountno()-1;
account obj_7;
cout<<"
ENTER NEW DATA
";
obj_7.getdata(tmprno);
char confirm;
cout<<"
ARE YOU SURE(Y/N)
";
cin>>confirm;
if(confirm=='Y'||confirm=='y')
{
fout.seekg(-1*recsize,ios::cur);
fout.write((char*)&obj_7,recsize);
cout<<"
RECORD MODIFIED
";
cout<<"Press any key.....";
flag=1;
}
}
if(flag==0)
{
cout<<"NO SUCH RECORD EXIST
";
cout<<"Press any key.....";
}
}
fout.close();
getch();
}
void withdraw()
{
account obj_9;
fstream fout;
int mrno=0;
int recsize=sizeof(account);
clrscr();
cout<<"
WITHDRAWAL MENU
";
fout.open("banking.txt",ios::in|ios::out|ios::binary);
if(!fout)
{
cout<<"FILE OPEN ERROR ";getch();return;}
fout.seekg(ios::beg);
cout<<"
ENTER ACCOUNT NUMBER ";
cin>>mrno;
while(fout.read((char*)&obj_9,recsize))
{
if(obj_9.giveaccountno()==mrno)
{
clrscr();
cout<<"
ENTER THE AMOUNT TO BE WITHDRAWED::Rs ";
cin>>w;
obj_9.withdrawal(w);
fout.seekg(-1*recsize,ios::cur);
fout.write((char*)&obj_9,recsize);
}
}
fout.close();
getch();
}
void punit(void)
{
int gd=5, gm, errorcode;
int col,i=0,j;
initgraph(&gd, &gm, "c: cgi");
while(5*i<=700)
{
setbkcolor(1);
setcolor(3);
rectangle(0+5*i,0+5*i,getmaxx()-5*i,getmaxy()-5*i);
i++;
}
i=0;
setcolor(4);
settextstyle(1,0,6);
sleep(5);
cleardevice();
while(5*i<=700)
{
setbkcolor(1);
setcolor(3);
circle(getmaxx()/2,getmaxy()/2,i*5);
i++;
}
setcolor(4);
settextstyle(0,0,6);
outtextxy(190 ,getmaxy()/2-85,"PROJECT");
outtextxy(300,getmaxy()/2-25,"ON");
outtextxy(190,getmaxy()/2+25,"BANKING");
sleep(3);
i=0;
while(i<=130)
{
setbkcolor(1);
setcolor(3);
line(i*3,0,i*3,getmaxy());
line(getmaxx()-i*3,0,getmaxx()-i*3,getmaxy());
i++;
}
sleep(1);
i=getmaxy();
while(i>0)
{
line(getmaxx()/2,getmaxy(),getmaxx(),i-=10);
delay(10);
}
i=getmaxx();
while(i>0)
{
line(getmaxx()/2,getmaxy(),i-=10,0);
delay(10);
}
i=0;
while(i<getmaxy())
{
line(getmaxx()/2,getmaxy(),0,i+=10);
delay(10);
}
closegraph();
flushall();
}
void deposit(void)
{
account obj_10;
fstream fout;
int mrno=0;
int recsize=sizeof(account);
clrscr();
cout<<"
DEPOSITAL MENU
";
fout.open("banking.txt",ios::in|ios::out|ios::binary);
if(!fout)
{
cout<<"FILE OPEN ERROR ";getch();return;}
fout.seekg(ios::beg);
cout<<"
ENTER ACCOUNT NUMBER ";
cin>>mrno;
while(fout.read((char*)&obj_10,recsize))
{
if(obj_10.giveaccountno()==mrno)
{
clrscr();
cout<<"
ENTER THE AMOUNT TO BE DEPOSITED ::Rs ";
cin>>w;
obj_10.deposital(w);
fout.seekg(-1*recsize,ios::cur);
fout.write((char*)&obj_10,recsize);
}
}
fout.close();
getch();
}