关于golang:家庭收支记账软件-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()
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理