共计 1277 个字符,预计需要花费 4 分钟才能阅读完成。
一个简略的命令行账本,用于练习 GO 语法应用,话不多说,源码贴上👇
package main
import "fmt"
// 定义存储生产信息的总汇合
var sumMessage []count
// 定义总金额
var sumMoney float32
func main() {fmt.Println("============= 家庭收支记账软件 ==============")
fmt.Print("1 收支明细 \t")
fmt.Print("2 注销支出 \t")
fmt.Print("3 注销收入 \t")
fmt.Println("4 退出")
var choose int // 输出选项
fmt.Scanln(&choose)
if choose == 1 {detail()
} else if choose == 2 {add()
} else if choose == 3 {sub()
} else if choose == 4 {return}
}
// 定义每笔账单,存储生产金额和生产信息
type count struct {
txt string // 账单信息
money float32 // 账单金额
}
// 账单详情
func detail() {
var choose int
if len(sumMessage) < 1 {fmt.Println("没有账单信息")
} else {fmt.Println("=========== 生产明细 ===============")
for _, sm := range sumMessage {fmt.Print(sm.txt)
fmt.Print("\t\t\t")
fmt.Println(sm.money)
}
fmt.Println("————————————————结算——————————————")
if sumMoney < 0 {fmt.Println("负债为:", sumMoney)
} else {fmt.Println("余额为:", sumMoney)
}
}
fmt.Println("==================================")
fmt.Println("输出 1 进入菜单 \t 输出 2 退出零碎")
fmt.Scanln(&choose)
if choose == 1 {main()
} else {return}
}
// 支出
func add() {
var cadd count
fmt.Print("输出支出金额:")
fmt.Scanln(&cadd.money)
sumMoney += cadd.money // 将支出金额加到总金额
fmt.Print("输出支出起源:")
fmt.Scanln(&cadd.txt)
sumMessage = append(sumMessage, cadd)
main()}
// 生产
func sub() {
var csub count
fmt.Print("输出生产金额:")
fmt.Scanln(&csub.money)
sumMoney -= csub.money // 将生产金额从总金额中减去
fmt.Print("输出生产去向:")
fmt.Scanln(&csub.txt)
sumMessage = append(sumMessage, csub)
main()}
正文完