> 文章列表 > Go语言实现一个账单本

Go语言实现一个账单本

Go语言实现一个账单本

账单实现了收入和支出账单的记录,结构体为一条记录数据,结构体数据存储所有数据,如下:

Go语言实现一个账单本

代码如下:

package mainimport ("fmt"
)var isTrue bool = truefunc 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 intfmt.Scan(&flag)//fmt.Println(flag)var money getMoneyswitch 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]getMoneyvar 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.0fmt.Println("收入金额:")fmt.Scan(&(money.item3))all_money = money.item3 + all_moneyfmt.Println("本次收入说明:")fmt.Scan(&(money.item4))income_array[i] = moneyi++fmt.Println("----------登记完成-------")
}func send(money getMoney) {money.item1 = "支出"money.item2 = 0.0fmt.Print("本次支出金额:")fmt.Scan(&money.item3)all_money = all_money - money.item3fmt.Println("本次支出说明:")fmt.Scan(&money.item4)income_array[i] = moneyi++fmt.Println("----------登记完成-------")
}func logout() {fmt.Println("确定退出吗?1.是 2否")var flag intfmt.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