Go语言实现一个账单本

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

Go语言实现一个账单本_第1张图片

代码如下:

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

你可能感兴趣的:(Go,golang,开发语言,后端)