1.開發流程編程
2.目標oop
3.實現(具體細節看代碼吧)spa
package main import ( "fmt" ) func main() { //申明一個變量,保存輸入的選擇 key := "" //申明一個變量判斷是否退出循環 loop := false //定義帳戶的餘額 balance := 10000.0 //每次收支的金額 money := 0.0 //每次收支的說明 note := "" //收支的詳情,使用字符串來記錄 details := " 收支\t帳戶金額\t收支金額\t說 明" //定義一個變量記錄是否有收支行爲 flag := false //顯示菜單 for { fmt.Println("----------------------家庭收支軟件-----------------------") fmt.Println(" 1.收支明細") fmt.Println(" 2.登記收入") fmt.Println(" 3.登記支出") fmt.Println(" 4.退出軟件") print("請選擇(1-4):") fmt.Scanln(&key) switch key { case "1": if flag { fmt.Println("----------------------當前收支明細-----------------------") fmt.Println(details) } else { fmt.Println("當前沒有收支明細,來一筆吧") } case "2": fmt.Println("本次收入金額:") fmt.Scanln(&money) balance += money fmt.Println("本次收入說明:") fmt.Scanln(¬e) details += fmt.Sprintf("\n 收入 \t%v\t\t %v\t\t%v", balance, money, note) flag = true case "3": fmt.Println("本次支出金額:") fmt.Scanln(&money) if money > balance { fmt.Println("餘額不足!!!") break } balance -= money fmt.Println("本次收入說明:") fmt.Scanln(¬e) details += fmt.Sprintf("\n 支出 \t%v\t\t %v\t\t%v", balance, money, note) flag = true case "4": fmt.Println("你肯定要退出嗎?y/n") choice := "" for { fmt.Scanln(&choice) if choice == "y" || choice == "n" { break } fmt.Println("您的輸入有誤!!請從新輸入!") } if choice == "y" { loop = true } default: fmt.Println("請輸入正確的選項") } if loop { break } } }
初始金額爲10000。0,固然也能夠本身定義爲0.0。調試
啓動後的界面:
code
若是收支明細中沒有記錄,選擇1的話,會顯示「當前沒有收支明細,來一筆吧」對象
選擇2:blog
選擇3:(若是金額不夠,會顯示「當前餘額不足!」)開發
選擇1:字符串
記錄了咱們的收入與支出,同時金額也在相應進行變化。it
選擇4:輸入y或n,若是沒輸對,就提示輸入錯誤;輸入y,則退出;輸入n,則返回;