Go语言实现一个账单本

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路Go语言实现一个账单本,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

请添加图片描述

代码如下:

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

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!