欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      模擬ATM機(jī)流程

      時(shí)間:2019-05-13 20:19:57下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《模擬ATM機(jī)流程》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《模擬ATM機(jī)流程》。

      第一篇:模擬ATM機(jī)流程

      模擬ATM機(jī)流程

      package com.igeekhome.demo2;

      import java.util.Scanner;

      //銀行帳戶類(lèi)

      public class Account { // 屬性

      private int id;private String name;private String pass;private double balance;private static int currentID = 1;// 記錄當(dāng)前的卡

      // get/set public int getId(){

      return this.id;}

      public String getName(){

      return this.name;}

      public String getPass(){

      return this.pass;}

      public double getBalance(){

      return this.balance;}

      //構(gòu)造函數(shù)

      public Account(String name,String pass,double money){

      this.name = name;

      this.pass = pass;

      this.balance = money;

      this.id = currentID++;}

      /*******業(yè)務(wù)方法*********/

      //存款

      public void saveMoney(){ Scanner in = new Scanner(System.in);//接收存款的金額

      System.out.print(“請(qǐng)輸入存款的金額:”);int money = in.nextInt();

      //修改余額

      this.balance+=money;

      //給出提示

      System.out.println(“存款成功,當(dāng)前的余額是:”+this.balance);}

      //取款

      public void drawMoney(){ Scanner in = new Scanner(System.in);//接收取款的金額

      System.out.print(“請(qǐng)輸入取款的金額:”);int money = in.nextInt();//判斷余額是否大于取款金額,如果滿足上面的條件,則修改余額,并給出提示

      if(this.balance>money){

      this.balance-=money;

      System.out.println(“取款成功,當(dāng)前的余額是:”+this.balance);}else{//如果不滿足,則給出取款 失敗的動(dòng)提示

      System.out.println(“余額不足,取款失敗”);}

      }

      //修改密碼

      public void modifyPass(){ Scanner in = new Scanner(System.in);//接收原密碼

      System.out.print(“請(qǐng)輸入原密碼:”);String oldPass = in.nextLine();//判斷密碼是否正確,如果不正確,則給出提示,結(jié)束方法

      if(this.pass.equals(oldPass)==false){

      System.out.println(“原密碼不正確,修改密碼失敗”);

      return;//返回,不再往下執(zhí)行

      }

      //如果正確,則接收新密碼

      System.out.print(“請(qǐng)輸入新密碼:”);String newPass1 = in.nextLine();

      //再次接收新密碼

      System.out.print(“請(qǐng)?jiān)俅屋斎胄旅艽a:”);

      String newPass2 = in.nextLine();

      //判斷兩次新密碼是否一致,如果一致,修改密碼,給出提示

      if(newPass1.equals(newPass2)){

      this.pass = newPass1;

      System.out.println(“修改密碼成功”);

      }else{ //如果不一致,給出修改密碼失敗提示

      System.out.println(“兩次新密碼不一致,修改密碼失敗”);

      }

      }

      }

      package com.igeekhome.demo2;

      import java.util.Scanner;

      public class Test {

      public static void main(String[] args){

      //創(chuàng)建一個(gè)帳戶對(duì)象,進(jìn)行模擬操作

      Account a = new Account(“張三”,“888888”,1000);

      //System.out.println(a.getId()+“,”+a.getPass());

      //調(diào)用登錄方法,并得到返回結(jié)果

      boolean flag = Test.login(a.getId(), a.getPass());

      if(flag){//如果返回值為true,才進(jìn)行到主菜單進(jìn)行相關(guān)的操作

      Test.showMenu(a);

      }

      }

      //進(jìn)行登錄操作,如果成功,則返回true,否則返回false /*

      * 用戶在ATM機(jī)進(jìn)行操作時(shí),可以有三次輸入密碼的機(jī)會(huì),如果三次中任何一次輸入正確,可以進(jìn)入到主界面進(jìn)行相關(guān)操作,如果三次都不正確,則輸出“請(qǐng)與管理員聯(lián)系”

      */ public static boolean login(int id,String pass){//id,pass現(xiàn)有卡的卡號(hào)和密碼

      Scanner in = new Scanner(System.in);

      for(int i=1;i<=3;i++){

      System.out.print(“請(qǐng)輸入卡號(hào):”);

      String s = in.nextLine();

      int curID = Integer.parseInt(s);

      System.out.print(“請(qǐng)輸入密碼:”);

      String curPass = in.nextLine();

      //如果卡號(hào)和密碼都正確,則返回 true

      if(id==curID && pass.equals(curPass))

      return true;

      if(i<3)

      System.out.println(“卡號(hào)或密碼不正確,請(qǐng)重新輸入!”);

      else

      System.out.println(“三次輸入錯(cuò)誤,請(qǐng)與管理員進(jìn)行聯(lián)系”);}

      return false;}

      //顯示菜單,進(jìn)行相關(guān)操作

      public static void showMenu(Account a){ Scanner in = new Scanner(System.in);

      System.out.println(“歡迎使用ATM取款機(jī)”);while(true){

      System.out.println(“請(qǐng)選擇:1.查詢(xún)余額;2.取款;3.存款;4.修改密碼;5.退出:”);

      int choose = in.nextInt();//接收用戶的選擇

      if(choose==5)

      break;

      switch(choose){

      case 1:System.out.println(“您的余額是:”+a.getBalance());break;

      case 2:a.drawMoney();break;

      case 3:a.saveMoney();break;

      case 4:a.modifyPass();break;

      default:System.out.println(“您的輸入有誤,請(qǐng)重新輸入”);break;

      } }

      System.out.println(“感謝您再次使用!”);} }

      第二篇:C語(yǔ)言模擬ATM機(jī)

      一、實(shí)驗(yàn)?zāi)康?/p>

      通過(guò)設(shè)計(jì)一個(gè)ATM機(jī)模擬操作的程序,全面運(yùn)用課程的主要知識(shí)點(diǎn),鞏固對(duì)模塊化程序設(shè)計(jì)、文件操作的理解,提高軟件編程能力。

      二、實(shí)驗(yàn)要求

      要求每人獨(dú)立完成設(shè)計(jì),編寫(xiě)一個(gè)ATM機(jī)模擬操作程序。提交實(shí)驗(yàn)報(bào)告、源程序、程序運(yùn)行截圖。

      1.程序具有以下功能:

      1)登錄系統(tǒng):

      輸入卡號(hào)(16位)、密碼(6位),只有卡號(hào)、密碼同時(shí)正確(帳戶信息存放在文件中)才能進(jìn)入系統(tǒng); 2)操作功能:

      ? 查詢(xún):查詢(xún)帳戶的存款余額。按任意鍵返回主菜單;

      ? 修改密碼:連續(xù)輸入兩次新密碼(兩次輸入結(jié)果完全相同)后,新密碼取代舊密碼,并存放到帳戶信息文件中。之后可返回主菜單;

      ? 取款:輸入50或100的倍數(shù)模擬為取款金額,請(qǐng)注意:取款金額不得超過(guò)帳戶余額,操作后帳戶余額應(yīng)相應(yīng)減少。之后可返回主菜單;

      ? 存款:輸入50或100的倍數(shù)模擬為存款金額,現(xiàn)假設(shè)存款金額不得超過(guò)20000元,操作后帳戶余額應(yīng)相應(yīng)增加。之后可返回主菜單;

      ? 轉(zhuǎn)帳:先輸入一個(gè)帳戶號(hào)(已保存在帳戶信息文件中),然后顯示一部分用戶名(如:張*山),儲(chǔ)戶確認(rèn)無(wú)誤后,再輸入50或100的倍數(shù)模擬為轉(zhuǎn)帳金額,請(qǐng)注意:轉(zhuǎn)帳金額不得超過(guò)帳戶余額,操作后帳戶余額應(yīng)相應(yīng)減少。之后可返回主菜單; ? 退出:退出系統(tǒng)。

      2.定義如下結(jié)構(gòu)體類(lèi)型:

      ? “日期”結(jié)構(gòu)體Date:成員有:year(年)、month(月)、day(日);

      ? “帳戶”結(jié)構(gòu)體Account:成員有:no(帳戶號(hào))、name(姓名)、balance(余額)? “存取款記錄”結(jié)構(gòu)體Record,:成員有:no(帳戶號(hào))、date(日期)、number(數(shù)量,可正可負(fù),正表示存款,負(fù)表示取款)3.帳戶信息存放在accounts.txt文件,儲(chǔ)戶存取款記錄保存在records.txt中; 4.采用模塊化程序設(shè)計(jì)方法來(lái)實(shí)現(xiàn),即main()顯示主菜單、調(diào)用相關(guān)函數(shù)實(shí)現(xiàn)相應(yīng)功能,起主控作用。5.附加功能:

      ? 儲(chǔ)戶一天內(nèi)輸錯(cuò)密碼的次數(shù)不能超過(guò)3次,否則無(wú)法進(jìn)入系統(tǒng); ? 應(yīng)避免輸入存款金額、取款金額為負(fù)數(shù)等異常情況的出現(xiàn)。

      三、程序已經(jīng)實(shí)現(xiàn)的功能點(diǎn)

      實(shí)驗(yàn)要求均已實(shí)現(xiàn)。此外還有:

      1.卡號(hào)、密碼位數(shù)輸錯(cuò)時(shí),提示并返回重新輸入,2.簡(jiǎn)化取款時(shí)的輸入

      3.轉(zhuǎn)賬時(shí),轉(zhuǎn)賬賬戶為原賬戶時(shí),提示并返回重新輸入 4.在多個(gè)模塊中添加了退出功能,無(wú)需回到主菜單即可退出系統(tǒng) 5.在查詢(xún)模塊中加入了存取記錄明細(xì)查詢(xún)

      四、程序運(yùn)行截圖及說(shuō)明

      1.登陸模塊

      1)卡號(hào)不為16位時(shí),輸出提示并返回重新輸入

      2)卡號(hào)不存在時(shí),輸出提示并返回重新輸入

      3)密碼位數(shù)輸錯(cuò)時(shí),輸出提示并返回重新輸入密碼,不作為密碼錯(cuò)誤處理,也無(wú)需重新輸入卡號(hào)

      4)密碼連續(xù)輸錯(cuò)三次時(shí),鎖定卡號(hào),今日無(wú)法登錄

      2.登錄后的系統(tǒng)主菜單

      3.查詢(xún)模塊

      1)查詢(xún)模塊主菜單

      2)查詢(xún)明細(xì)

      4.取款模塊

      1)當(dāng)余額不足50時(shí),無(wú)法進(jìn)入取款模塊

      2)取款模塊主菜單

      3)便捷取款

      4)手動(dòng)輸入取款金額

      輸錯(cuò)時(shí),返回重新輸入

      5)取款后的菜單

      6)取款完成后選擇顯示余額

      5.存款模塊

      1)解決輸入錯(cuò)誤問(wèn)題

      2)存款成功

      6.密碼修改模塊

      1)原密碼輸錯(cuò)時(shí),返回重新輸入,不提供退出功能

      2)密碼位數(shù)輸錯(cuò)、兩次輸入新密碼不一致時(shí),返回重新輸入

      3)輸入無(wú)誤時(shí)

      7.轉(zhuǎn)賬模塊

      1)轉(zhuǎn)入卡號(hào)位數(shù)輸錯(cuò)時(shí),提示并返回重新輸入

      2)未查找到該卡號(hào)時(shí),輸出提示,提供退出功能,鍵入除*外任意鍵重新輸入

      3)轉(zhuǎn)入卡號(hào)與當(dāng)前卡號(hào)相同時(shí),輸出提示

      4)輸出轉(zhuǎn)入卡賬戶的部分用戶名

      5)解決轉(zhuǎn)賬金額輸錯(cuò)的問(wèn)題

      6)轉(zhuǎn)賬成功

      五、采用的主要技術(shù)

      1.宏定義:由于本程序的printf語(yǔ)句較多,為了便于編寫(xiě),故用PR代替 2.鏈表:賬戶信息采用鏈表結(jié)構(gòu),內(nèi)存動(dòng)態(tài)分配,使用內(nèi)存無(wú)限制,可以擴(kuò)展到所有可以使用的內(nèi)存 3.switch多分支選擇結(jié)構(gòu) 4.文本文件的讀寫(xiě)

      5.利用time.h頭文件,簡(jiǎn)便地獲取系統(tǒng)日期 6.system()函數(shù)和fflush()函數(shù)的簡(jiǎn)單使用

      六、設(shè)計(jì)心得

      1.各函數(shù)的功能要相對(duì)獨(dú)立,逐步求精。

      2.如果函數(shù)的參數(shù)為指針,且僅作為輸入?yún)?shù),則應(yīng)在類(lèi)型前加const,以防止該指針在函數(shù)體內(nèi)被意外修改

      附:程序代碼

      /*** * 運(yùn)行本程序前,請(qǐng)?jiān)诒境绦蚋夸浵陆⑽募癮ccounts.txt”,格式如下: * 卡號(hào)1(16位)

      姓名1 賬戶余額1 密碼1 * 卡號(hào)2(16位)

      姓名2 賬戶余額2 密碼2 * …… ****/

      #include #include #include #include #define PR printf

      typedef struct {

      short int year;short int month;short int day;}Date;//日期

      typedef struct Account { char no[17];char name[20];double balance;char password[7];struct Account* next;}Account;

      typedef struct { char no[17];Date date;double number;}Record;//記錄

      Account *head = NULL;//賬戶信息鏈表表頭 Account *now_acc = NULL;//當(dāng)前賬戶

      /************函數(shù)申明************/ void InitializeAccount();//導(dǎo)入賬戶信息 //-------char LockAccountTopic(const char *no);//檢測(cè)賬戶是否被鎖定 void LockAccount(const char *no);//鎖定賬戶 //-------void Login();//登錄

      Account* FindbyNo(const char *no);//查找卡號(hào)對(duì)應(yīng)賬戶信息在鏈表中的地址 //-------void Demand();//查詢(xún)主菜單 void PrintBalance();//輸出余額 void Printetail();//輸出明細(xì) //-------void Modifiy();//修改密碼 //-------void Withdrawal();//取款主界面

      void WithdrawalOt(long money);//取款 //-------void Depositing();//存款 //-------void Transfer();//轉(zhuǎn)賬

      char *CoverUpName(const char *name);//掩蓋部分用戶名 //-------void Log(double money, const char *no);//將存款記錄寫(xiě)入文件中 void Save();//保存賬號(hào)信息 void FreeData();//釋放鏈表空間 //-------

      int main(){ char choose;

      InitializeAccount();//導(dǎo)入賬戶信息 Login();//登錄 do { system(“cls”);PR(“tt

      n”);PR(“tt

      請(qǐng)選擇服務(wù)

      n”);PR(“tt+-+---------+

      +---------+-+n”);PR(“tt|5|33轉(zhuǎn)賬|

      |查詢(xún)32|1|n”);PR(“tt+-+---------+

      +---------+-+nn”);PR(“tt

      +---------+-+n”);

      PR(“tt

      |取款32|2|n”);PR(“tt

      +---------+-+nn”);PR(“tt

      +---------+-+n”);PR(“tt

      |存款32|3|n”);PR(“tt

      +---------+-+nn”);PR(“tt+-+---------+

      +---------+-+n”);PR(“tt|0|33退出系統(tǒng)|

      |修改密碼32|4|n”);PR(“tt+-+---------+

      +---------+-+nn”);PR(“請(qǐng)選擇服務(wù):”);fflush(stdin);choose = getchar();switch(choose){ case '1': Demand();break;//查詢(xún) case '2': Withdrawal();break;//取款 case '3': Depositing();break;//存款 case '4': Modifiy();break;//修改密碼 case '5': Transfer();break;//轉(zhuǎn)賬 case '0': FreeData();return 0;//退出 default:

      printf(“輸入錯(cuò)誤,請(qǐng)重新選擇n”);//解決用戶可能的輸入錯(cuò)誤

      system(“pause”);

      } } while(1);return 0;}

      /**********導(dǎo)入賬戶信息**********/ void InitializeAccount(){ FILE *fp;Account temp;PR(“系統(tǒng)初始化中,請(qǐng)稍侯...n”);if(!(fp = fopen(“accounts.txt”, “r”))){

      PR(“