程序设计

来源:互联网 发布:抢网速软件 编辑:程序博客网 时间:2024/05/17 04:00
// atm柜员模拟机程序#include<iostream.h>#include<string.h>#include<stdlib.h>class People;                       //定义全局类classclass ATM//ATM类{private:    int times;    People& pl;public:    ATM(People& p):pl(p){}    void DLJM();//登陆界面    bool HDMM(char ID[],char mima[]);//核对密码    void QK();//取款    void CX();//查询    void GG();//更改密码    void GNJM();//功能界面    void LK();//锁卡    void TC();//退出};  //ATM柜员机模拟程序class People//用户类{private:    char ID[20];//卡号    char mima[10];//密码    float money;//卡上余额public:    friend class ATM;    People(char id[],float Money,char Mima[]);    char* get_ID();//获取卡号    char* get_mima();//获取密码    float get_money();//获取余额    void set_mima(char Mima[]);//设置密码    void set_money(float m);}; People:: People(char id[],float Money,char Mima[])//用户的构造函数{    strcpy(ID,id);//strcpy函数是复制两字符串的函数,头文件为<string.h>    money=Money;    strcpy(mima,Mima);}floatPeople::get_money()//获取余额 函数{    return money;} char*People::get_ID()//获取卡号{    return ID;} voidPeople::set_money(float m){    money-=m;} char*People::get_mima()//获取密码{    return mima;} voidPeople::set_mima(char Mima[])//设置密码  {     strcpy(mima,Mima);  } void ATM::DLJM()//登陆界面  {    times=0;    char ID[20],mima[10],ch;   int i=0;   do   {     i=0;     cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;     cout<<"$$$$$$                                  $$$$$$"<<endl;     cout<<"$$$$                                       $$$$"<<endl;     cout<<"$$$             欢迎使用信管银行!         $$$"<<endl;     cout<<"$$$$                                      $$$$"<<endl;     cout<<"$$$$$$                                  $$$$$$"<<endl;     cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;     cout<<"         测试卡号为:123456                   "<<endl;     cout<<"         测试密码为:123456                   "<<endl;     cout<<"         测试卡号余额为:10000元               "<<endl;     cout<<"请输入您的卡号                                "<<endl;     cout<<"卡号:";       do       {          cin.get(ch);          ID[i++]=ch;       }      while(ch!='\n');      ID[i-1]='\0';      i=0;     cout<<endl<<"             请输入您的密码               "<<endl;     cout<<"密码:";       do       {          cin.get(ch);         mima[i++]=ch;       }       while(ch!='\n');      mima[i-1]='\0';       if(!HDMM(ID,mima))       {          cout<<"对不起,您的卡号或密码有误,请重新输入"<<endl;          times++;       }      else       {      GNJM();       }   }   while(times<3);   LK();  } bool ATM::HDMM(charID[],char mima[]) {if(strcmp(ID,pl.get_ID())==0&&strcmp(mima,pl.get_mima())==0)   return true;else   return false; } void ATM::GNJM(){int n;  cout<<endl<<endl<<endl; cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;  cout<<"$$$$$$       请输入你想操作的序号:       $$$$$$"<<endl;  cout<<"$$$$          (1)取款                     $$$$"<<endl;  cout<<"$$            (2)查询余额                   $$"<<endl;  cout<<"$$$$          (3)更改密码                 $$$$"<<endl;  cout<<"$$$$$$        (4)退出系统               $$$$$$"<<endl;  cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;  cin>>n;  if(n<0||n>4) { cout<<"您输入的序号不正确,请重新输入:";    cin>>n; }  switch(n)  {  case 1:QK();break;  case 2:CX();break;  case 3:GG();break;  case 4:TC();break;  }while(true);}  void ATM::QK(){  float m;  char ch;  do  {     cout<<endl<<"输入您要取多少钱: "<<endl;     cin>>m;     while(m<=0)      {         cout<<"请输入正确的取款数: "<<endl;         cin>>m;      }     if(pl.get_money()-m<0)      {         cout<<"对不起,您的余额不足!"<<endl;      }      else     {     if((int)m%100!=0)      {         cout<<"对不起,您的取款金额必须为100的倍数!"<<endl;           }    else    {     if(m>5000)      {     cout<<"对不起,您每次只能取5000元!"<<endl;      }      else     {           cout<<"操作成功,请稍后!!!"<<endl;         pl.set_money(m);      }    } }  cout<<"请输入(y/n)确认是否取钱!"<<endl;  cin>>ch;  cout<<"您已取款成功!请收好钱!";  GNJM(); while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n')  {     cin>>ch;  }  }  while(ch=='y'||ch=='Y');} void ATM::CX(){    cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;    cout<<"                                            "<<endl;    cout<<"   卡号:"<<pl.get_ID()<<endl;    cout<<"   余额:"<<pl.get_money()<<"元"<<endl;    cout<<"                                           "<<endl;   cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;    GNJM();} void ATM::GG(){    char mima[10],Xmima[10];    times=0;    do    {        cout<<endl<<"请输入旧密码:";        cin>>mima;         if(!HDMM(pl.get_ID(),mima))            times++;        else            break;    }    while(times<3);    if(times==3)    LK();    int t=1;do{    cout<<"请输入新密码并牢记好新密码!"<<endl;    cin>>mima;    cout<<"请再次输入新密码并牢记好新密码!"<<endl;    cin>>Xmima;    t=strcmp(mima,Xmima);//对新密码进行比较,如果相等,则返回0   if(t!=0)   cout<<"您输入的密码不一致,请重新输入!"<<endl; }while(t!=0);pl.set_mima(mima);cout<<"密码修改成功,请您牢记!"<<endl;GNJM();} void ATM::LK(){    cout<<"对不起,你输入的密码错误已达三次,您的卡已被没收!"<<endl;    exit(1);} void ATM::TC(){    cout<<"请取走您的卡,感谢您的使用,欢迎您下次再来!"<<endl;    exit(0);} void main(){    Peoplep1("123456",10000,"123456");//创建用户y1    ATM a(p1);    a.DLJM();    a.GNJM();}

0 0