账单实现了收入和支出账单的记录,结构体为一条记录数据,结构体数据存储所有数据,如下:
代码如下:
package main
import (
"fmt"
)
var isTrue bool = true
func main() {
for {
if isTrue == true {
index()
} else {
break
}
}
}
func index() {
println("------------家庭收入账单记录--------------")
println(" ")
println(" 1.收支明细 ")
println(" 2.登记收入 ")
println(" 3.登记支出 ")
println(" 4.退出 ")
print("请选择~:1-4:")
var flag int
fmt.Scan(&flag)
//fmt.Println(flag)
var money getMoney
switch flag {
case 1:
income(income_array)
case 2:
revice(money)
case 3:
send(money)
case 4:
logout()
default:
fmt.Println("输入错误重新输入")
}
}
// 收入结构体
type getMoney struct {
item1 string //收支
item2 float32 //账户金额
item3 float32 //收支金额
item4 string //说明
}
// 总金额
var all_money float32 = 0.0
// 结构体数组
var income_array [20]getMoney
var i int = 0
// 展示
func income(income_array [20]getMoney) {
fmt.Println("收支\t账户金额\t收支金额\t说明\n")
for i := 0; i < 20; i++ {
if income_array[i].item1 != "" {
fmt.Printf("%s\t%.2f\t%.2f\t%s\n", income_array[i].item1, all_money, income_array[i].item3, income_array[i].item4)
}
}
}
// 登记收入
func revice(money getMoney) {
money.item1 = "收入"
money.item2 = 0.0
fmt.Println("收入金额:")
fmt.Scan(&(money.item3))
all_money = money.item3 + all_money
fmt.Println("本次收入说明:")
fmt.Scan(&(money.item4))
income_array[i] = money
i++
fmt.Println("----------登记完成-------")
}
func send(money getMoney) {
money.item1 = "支出"
money.item2 = 0.0
fmt.Print("本次支出金额:")
fmt.Scan(&money.item3)
all_money = all_money - money.item3
fmt.Println("本次支出说明:")
fmt.Scan(&money.item4)
income_array[i] = money
i++
fmt.Println("----------登记完成-------")
}
func logout() {
fmt.Println("确定退出吗?1.是 2否")
var flag int
fmt.Scan(&flag)
if flag == 1 {
isTrue = false
} else {
isTrue = true
}
}
结构体显示记录的数据结构
type getMoney struct {
item1 string //收支
item2 float32 //账户金额
item3 float32 //收支金额
item4 string //说明
}
结构体数组用来记录所有的记录
var income_array [20]getMoney
全局变量记录总金额数
var all_money float32 = 0.0
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/156153.html