C++编写ATM自动取款机的模拟

C++编写ATM自动取款机的模拟,第1张

lass consumer

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)

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7736149.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存