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,则返回;