ATMシミュレーション機能強化版(口座開設、残高照会、預金引き出し、パスワード変更、ログイン状態照会、各種操作記録状況)

13318 ワード

ATMシミュレーション機能強化版
ATMをシミュレートする具体的な機能:このコードは口座開設(複数の口座がvectorに格納されている)を実現することができ、残高、預金、引き出し、パスワードの変更、ログイン状態の照会、各種操作記録の照会を行うことができるが、このコードの主関数は大きなシミュレーションを使用しており、表示が不便になる可能性がある(良いコードではない)もちろん、このコードを最適化し続けることができる.メイン関数の各操作を外に書いていくつかの関数に分けることができ、直感的に見えます.また、ATMには表示時間の関数が入っておらず、時間を表示できません.また、最適化して加えることができます.このコードは多くの場所でデバッグした後、削除されていないもの(非実行部分と表記されているだけ)も削除できますが、理解して後で見るのに役立つ場所もあるかもしれませんが、削除していません.
#include
#include
#include
#include
#include
using namespace std;
/*class Account
{
    class Zhanghu;
    class record;
}acc1;*/                          //  Account       Zhanghu record     ,        。。。
class Zhanghu
{
    string num; 		 //           
    string name; 	    //           
    string safe;           //      
    double balance; 	  //      
public:
    struct Jiaoyi
{
    double money;
    double amount;
    string leixing;            //    :  /  /  /  /   
}J;
vectorjiaoyi;
    string getnum() {return num;}
    string getname() {return name;}
    string getsafe() {return safe;}
    double getamount() {return balance;}
    Zhanghu(){};
    //Zhanghu(string num1,string name1,string safe1,double balance1):num(num1),name(name1),safe(safe1),balance(balance1){};
    void scanf(string num1,string name1,string safe1)
    {
        num=num1;
        name=name1;
        safe=safe1;
    }
    void password(string safe1) {safe=safe1;}
    void deposit(double amount) { balance += amount;}
}X;
/*class Record                             //              (         ),       。。。
{
    struct Data;
    struct Jiaoyi;
public:
    void cun(){printf("  ");}
    void qu() {printf("  ");}
    //            

};*/
vectorzhanghu;
struct Data
{
    int year;
    int month;
    int day;
    int hour;
    int minute;
    int second;
}D;
/*struct Jiaoyi
{
    double money;
    double amount;
    string leixing;            //    :  /  /  /  /   
}J;
vectorjiaoyi;*/
vectordata;
int main()
{
    string caozuo;
    string num;
    string name;
    string safe;
    printf("          :       1\t          2
"); int z=0; // z , ,z++ while(cin>>caozuo){ int y=0; // y ( ) ( ), if(caozuo=="1") { printf(" : \t \t
"); cin>>num; cin>>name; cin>>safe; X.scanf(num,name,safe); zhanghu.push_back(X); z++; // zhanghu[z].num.push_back(num); // ( class ) } if(caozuo=="2"){ int error=0; // error=3 ( 3 , ) double amount; printf(" :"); while(cin>>num) { if(num=="*") break; int x=0; for(int i=0;i>safe) // { if(safe==zhanghu[y].getsafe()) { printf(" , !
"); printf(" :"); cout<>caozuo; if(caozuo=="1") { X.J.leixing=" "; X.J.amount=zhanghu[y].getamount(); zhanghu[y].jiaoyi.push_back(X.J); printf(" :"); cout<>amount; zhanghu[y].deposit(amount); // , ( ATM ) X.J.leixing=" "; X.J.money=amount; X.J.amount=zhanghu[y].getamount(); zhanghu[y].jiaoyi.push_back(X.J); printf(" 1\t * \t esc
"); while(cin>>caozuo) { if(caozuo=="1") { printf(" :
"); cin>>amount; zhanghu[y].deposit(amount); X.J.leixing=" "; X.J.money=amount; X.J.amount=zhanghu[y].getamount(); zhanghu[y].jiaoyi.push_back(X.J); } if(caozuo=="*") break; if(caozuo=="esc") { printf(" !
"); return 0; } printf(" 1\t * \t esc
"); } } if(caozuo=="3") { printf(" :
"); cin>>amount; if(zhanghu[y].getamount()>=amount) { double amount_=-amount; zhanghu[y].deposit(amount_); X.J.leixing=" "; X.J.money=amount; X.J.amount=zhanghu[y].getamount(); zhanghu[y].jiaoyi.push_back(X.J); } else { printf(" , , !
"); /*X.J.leixing=" , :"; // X.J.money=amount; X.J.amount=zhanghu[y].getamount(); zhanghu[y].jiaoyi.push_back(X.J);*/ } printf(" 1\t * \t esc
"); while(cin>>caozuo) { if(caozuo=="1") { printf(" :
"); cin>>amount; if(zhanghu[y].getamount()>=amount) { double amount_=-amount; zhanghu[y].deposit(amount_); X.J.leixing=" "; X.J.money=amount; X.J.amount=zhanghu[y].getamount(); zhanghu[y].jiaoyi.push_back(X.J); } else { printf(" , , !
"); /*X.J.leixing=" , :"; X.J.money=amount; X.J.amount=zhanghu[y].getamount(); zhanghu[y].jiaoyi.push_back(X.J);*/ } } if(caozuo=="*") break; if(caozuo=="esc") { printf(" !
"); return 0; } printf(" 1\t * \t esc
"); } } if(caozuo=="4") { printf(" :
"); cin>>safe; while(1){ if(safe==zhanghu[y].getsafe()){ printf(" :
"); string newsafe1; string newsafe2; cin>>newsafe1; printf(" :
"); cin>>newsafe2; if(newsafe1==newsafe2) { zhanghu[y].password(newsafe1); printf(" !
"); X.J.leixing=" "; zhanghu[y].jiaoyi.push_back(X.J); break; } else printf(" , , :
"); } else { printf(" , , :
"); cin>>safe; } } } if(caozuo=="5") { vector<:jiaoyi>::iterator it; for(it=zhanghu[y].jiaoyi.begin();it!=zhanghu[y].jiaoyi.end();it++) //begin ,y 1 ( ) { if(it->leixing==" ") { printf(" !
"); } if(it->leixing==" ") { printf(" \t :"); //if((it-1)->leixing==" ") cout<amount<amount , , // else // cout<amount<leixing==" ") { printf(" :"); cout<money<amount<leixing==" ") { printf(" :"); cout<money<amount<leixing==" ") { printf("
"); } } } if(caozuo=="***") { break; } if(caozuo=="esc") { printf(" !
"); return 0; } } } printf(" : 1\t 2
"); } /* D.year=1; J.leixing=" "; data.push_back(D); jiaoyi.push_back(J); D.year=2; J.leixing=" "; data.push_back(D); jiaoyi.push_back(J); for(int i=0;i<=1;i++) { cout<

テストデータ:
/*
          :       1             2
2
     :2019
    ,      ,            *
2018
    ,      ,            *
*
          :       1             2
1
              :               
2018
。。。
2018
          :       1             2
1
              :               
2019
。
2019
          :       1             2
2
     :2018
     :2018
    ,    !
    :2018     :。。。
             :          1         2         3         4           5
       ***            esc 
1
    :2018     :。。。      :0.000000
             :          1         2         3         4           5
       ***            esc 
2
          :
200
      1          *              esc 
1
             :
300
      1          *              esc 
*
             :          1         2         3         4           5
       ***            esc 
3
         :
600
   ,         ,            !
      1          *              esc 
1
         :
400
      1          *              esc 
*
             :          1         2         3         4           5
       ***            esc 
4
      :
2019
   ,        ,      :
2018
      :
2019
        :
2020
   ,           ,         :
      :
2019
        :
2019
    !
             :          1         2         3         4           5
       ***            esc 
5
    !
                :0
    :200       :200
    :300       :500
    :400       :100
    
             :          1         2         3         4           5
       ***            esc 
***
          :       1             2
2
     :2019
     :2019
    ,    !
    :2019     :。
             :          1         2         3         4           5
       ***            esc 
1
    :2019     :。          :0.000000
             :          1         2         3         4           5
       ***            esc 
5
    !
                :0
             :          1         2         3         4           5
       ***            esc 
2
          :
1000
      1          *              esc 
*
             :          1         2         3         4           5
       ***            esc 
***
          :       1             2
2
     :2018
     :2018
    ,     :2019
    ,    !
    :2018     :。。。
             :          1         2         3         4           5
       ***            esc 
1
    :2018     :。。。      :100.000000
             :          1         2         3         4           5
       ***            esc 
5
    !
                :0
    :200       :200
    :300       :500
    :400       :100
    
    !
                :100
             :          1         2         3         4           5
       ***            esc 
***
          :       1             2
2
     :2019
     :2019
    ,    !
    :2019     :。
             :          1         2         3         4           5
       ***            esc 
5
    !
                :0
    :1000      :1000
    !
             :          1         2         3         4           5
       ***            esc 
esc
      !
*/