
class ATM // ATM取款机
{
public:
ATM(consumer& cn):cnsm(cn){}
void welcome() // 登陆界面
bool check_passwd(char n[],char pwd[]) // 核对密码
void change_passwd() // 修改密码
void fetchmoney() // 取款
void information() // 查询信息
void exitATM() // 退出系统
void functionshow() // 功能界面
void lock() // 锁机
private:
int times // 记录密码输入次数
consumer& cnsm
}
class consumer // 用户
{
public:
friend class ATM
consumer(char Name[],char Num[],float Money,char Password[])
protected:
char* get_name() // 取得姓名
char* get_num() // 取得卡号
char* get_passwd() // 取得密码
float get_money() // 取得余额
void set_passwd(char pwd[]) // 设置密码
void set_money(float m) // 取钱
private:
char passwd[8] // 用户密码
char name[20] // 用户姓名
char num[20]
float money
}
// ************************************
// * *
// * consumer类的成员函数 *
// * *
// ************************************
#include"function.h"
#include
consumer::consumer(char Name[],char Num[],float Money,char Password[])
{
strcpy(name,Name)
strcpy(num,Num)
money=Money
strcpy(passwd,Password)
}
float consumer::get_money()
{
return money
}
char* consumer::get_name()
{
return name
}
char* consumer::get_num()
{
return num
}
char* consumer::get_passwd()
{
return passwd
}
void consumer::set_money(float m)
{
money-=m
}
void consumer::set_passwd(char pwd[])
{
strcpy(passwd,pwd)
}
// ************************************
// * *
// * ATM类的成员函数 *
// * *
// ************************************
#include "function.h"
#include
#include
void ATM::welcome()
{
times=0
cout<<"$ 欢迎使用若雪银行ATM自动取款机!~! "<< P>
char pwd[8],num[20],ch
int i=0
do
{
i=0
cout<<"请输入卡号:"
do
{
cin.get(ch)
num[i++]=ch
}while(ch!='\n')
num[i-1]='\0'
i=0
cout<<"请输入密码:"
do
{
cin.get(ch)
pwd[i++]=ch
}while(ch!='\n')
pwd[i-1]='\0'
if(!check_passwd(num,pwd))
{
cout<<"你输入的卡号或密码有误,请重新输入"<
times++
}
else
{
functionshow()
}
}while(times<3)
lock()
}
bool ATM::check_passwd(char num[],char pwd[])
{
if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0)
return true
else
return false
}
void ATM::functionshow()
{
int n
do
{
cout<<"请你输入相应的 *** 作序号进行 *** 作:"<<ENDL
cout<<"1) 修改密码 "< <<"2) 取款 "< <<"3) 查询余额 "< <<"4) 退出系统 "<
cout<<"$ >\\"
cin>>n
while(n<1||n>4)
{
cout<<"请输入正确的 *** 作序号!"<
cout<<"$ >\\"
cin>>n
}
switch(n)
{
case 1: change_passwd() break
case 2: fetchmoney() break
case 3: information() break
case 4: exitATM() break
}
}while(true)
}
void ATM::change_passwd()
{
char pwd[8],repwd[8]
times=0
do
{
cout<<"请输入旧密码:"
cin>>pwd
if(!check_passwd(cnsm.get_num(),pwd))
times++
else
break
}while(times<3)
if(times==3)
lock()
int t=0
do
{
cout<<"请输入新密码:"
cin>>pwd
cout<<"请再输入一次新密码:"
cin>>repwd
if((t=strcmp(pwd,repwd))!=0)
cout<<"你输入的两次密码不一样,请从新输入!"<
}while(t!=0)
cnsm.set_passwd(pwd)
cout<<"密码修改成功,请牢记!"<< P>
}
void ATM::fetchmoney()
{
float m
char ch
do
{
cout<<"你要取多少钱:"<<"\N$>\\"<
cin>>m
while(m<=0)
{
cout<<"请输入正确的数字!"<
cout<<"$ >\\ "
cin>>m
}
if(cnsm.get_money()-m<0)
{
cout<<"对不起,你的余额不足!"<
}
else
{
cout<<" *** 作成功,请收好钱!"<<ENDL
cnsm.set_money(m)
}
cout<<"是否要继续该项 *** 作:(Y/N) "<
cout<<"$ >\\ "
cin>>ch
while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')
{
cout<<"$ >\\"
cin>>ch
}
}while(ch=='y'||ch=='Y')
}
void ATM::information()
{
cout<<"**********************************"<
cout<<"*"<
cout<<"* 用户姓名:"<<<ENDL
cout<<"* 卡号: "<<<ENDL
cout<<"* 余额: "<<<ENDL
cout<<"**********************************"<< P>
}
void ATM::lock()
{
cout<<"对不起,由于你的 *** 作有误,你的卡已经被没收! ?<<endl
cout<<"请取卡……"<
exit(0)
}
// ************************************
// * *
// * ATM.cpp *
// * *
// ************************************
#include
#include"function.h"
void main()
{
consumer c1("jim","12345",5200.3f,"123") // 先构造一个用户
ATM atm(c1)
atm.welcome()
}
/*初始密码和账号都为:123456 */#include<stdio.h>
int chaxun(int a3)
{
int b
b=a3
printf("你的余额为:%d\n",b)
}
int qukuan(int a3)
{
int a,b
printf("请输入您要提取的现金:\n")
scanf("%d",&a)
b=a3-a
if(b<0)
printf("对不起 ,你的余额不足\n")
else
{
printf("请收好您的%d元现金\n",a)
a3=a3-a
}
return (a3)
}
int gaini(int a2)
{
int a,b,c=1,d,e=1
while(e)
{
printf("请输入你的旧密码:\n")
scanf("%d",&d)
if(d==a2)
e=0
else
{
e=1
printf("你输入的密码错误,请重新输入:\n")
}
}
while(c)
{
printf("请输入您的六位数新密码\n")
scanf("%d",&a2)
printf("请确认您的六位数新密码\n")
scanf("%d",&b)
if(a2==b)
{
if(b>100000&&b<999999&&b/(b/100000)!=111111)
{
c=0
printf("密码修改成功\n")
}
else
{
printf("您输入的密码不符合要求,请从新输入\n")
c=1
}
}
else
{
c=1
printf("您两次输入的密码不一致,请重新输入:\n")
}
}
return a2
}
int quka()
{
printf("\n 梦若保保提醒您\n")
printf("请收好您的卡片,谢谢,再见\n\n")
}
int cunkuan(int a3)
{
int i,j,k
printf("请输入你要存的金额\n")
scanf("%d",&k)
if(k<0)
{
printf("对不起,没有负存款\n")
}
else
{
printf("\n您好,您已经存进去了%d元\n",k)
a3=a3+k
}
return a3
}
main()
{
int i,j,b=1,c,k,l,m,n
int a1=123456,a2=123456,a3=1000
printf("欢迎使用自动柜员机:\n\n")
while(b==1)
{
printf("请输入您的账号:\n")
scanf("%d",&k)
printf("请输入您的密码:\n")
scanf("%d",&l)
if(k==a1&&l==a2)
{
b=0
printf("您的账户余额为:%d\n",a3)
}
else
{
b=1
printf("对不起,您输入的账号或者密码有误,请重新输入:\n")
}
}
do
{
printf("\n请选择您要的服务项目:\n")
printf("1.查询余额\n")
printf("2.取款\n")
printf("3.修改密码\n")
printf("4.取卡\n")
printf("5.存款\n")
scanf("%d",&c)
switch(c)
{
case 1:
chaxun(a3)
break
case 2:
a3=qukuan(a3)
break
case 3:
a2=gaini(a2)
break
case 4:
quka()
break
case 5:
a3=cunkuan(a3)
break
}
}while(c!=4)
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)