# C語(yǔ)言函數(shù)實(shí)現(xiàn)ATM取款機(jī)代碼全過(guò)程
## 需求運(yùn)行結(jié)果如下:

## main函數(shù)里面只有代碼的邏輯結(jié)構(gòu),進(jìn)行框架的搭建,不做具體的事情,具體的事情到每一個(gè)函數(shù)里面去實(shí)現(xiàn)。大致的邏輯結(jié)構(gòu)為先是歡迎界面,然后進(jìn)行密碼登錄,提示操作“取款,存款,更改密碼,退出”的顯示界面,之后分別對(duì)各個(gè)版塊的功能實(shí)現(xiàn)。
## 歡迎界面 ?輸入密碼的函數(shù)如下:


實(shí)現(xiàn)密碼登錄函數(shù)時(shí),需要定義一個(gè)全局變量orgPassword用于保存初始密碼,用于判斷輸入的密碼與原始密碼是否一致。函數(shù)定義為bool類(lèi)型,根據(jù)返回值判斷是否正常登錄,若返回值為true,則進(jìn)入提示操作界面,若返回值為false,則退出程序。main函數(shù)中實(shí)現(xiàn)如下:

## 根據(jù)需求,有錯(cuò)誤情況和正常兩種狀態(tài)會(huì)退出程序,所以需要定義一個(gè)帶參數(shù)的退出的函數(shù),根據(jù)參數(shù)不同實(shí)現(xiàn)不同狀態(tài)的退出。

## 正常登錄后,進(jìn)入提示操作頁(yè)面,然后接受用戶的選擇分別實(shí)現(xiàn)不同功能,main函數(shù)中的結(jié)構(gòu)如下:

## 提示用戶操作的函數(shù)實(shí)現(xiàn):

## 接受用戶選擇的函數(shù)實(shí)現(xiàn):
用戶會(huì)從終端輸入字符,定義返回值類(lèi)型為char,由于用戶可能輸入多個(gè)字符,需要定義一個(gè)較大字符串?dāng)?shù)組temp[100]接受用戶輸入,在根據(jù)用戶輸入的字符個(gè)數(shù)判斷輸入是否合法,輸入合法則返回用戶的輸入結(jié)果。

## 取款函數(shù)實(shí)現(xiàn):
需要定義一個(gè)全局變量totalMoney保存初始金額。

## 判斷是否繼續(xù)的函數(shù)實(shí)現(xiàn):
用三目運(yùn)算符判斷是否繼續(xù)操作,函數(shù)為bool類(lèi)型,返回值為true則接著重復(fù)上次操作,返回值為false則返回提示操作頁(yè)面,用getchar()吸收掉終端輸入字符串時(shí)多余的Enter鍵的字符。

## 存款的函數(shù)實(shí)現(xiàn):

## 更改密碼的函數(shù)實(shí)現(xiàn):

## 總結(jié)
這算是第二次寫(xiě)了,基本能夠把所有功能寫(xiě)出來(lái),對(duì)具體的需求過(guò)程熟悉后就有一個(gè)大致的邏輯結(jié)構(gòu),寫(xiě)起來(lái)就比較順暢。中間有些部分的的細(xì)節(jié)需要注意,比如判斷是否繼續(xù)操作后用戶從終端輸入字符后,還有一個(gè)回車(chē)鍵的字符需要用getchar()吸收掉;特別的用法,定義整型變量count接受用戶選擇來(lái)判斷輸入字符個(gè)數(shù)是否合法;寫(xiě)退出部分函數(shù)時(shí)可根據(jù)外部傳來(lái)的參數(shù)判斷正常退出還是錯(cuò)誤退出。