家庭收支记账软件 (GO语言实现)

一个简单的命令行账本,用于练习 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()
}

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值