小工具      在线工具  汉语词典  dos游戏  css  js  c++  java

Go语言实现一个账单本

Go,golang,开发语言,后端 额外说明

收录于:23天前

该法案实行收入和支出账单的记录。结构体是一条记录数据,结构体数据存储了所有数据,如下:

请添加图片描述

代码如下所示:

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
. . .

相关推荐

额外说明

Fiddler软件基础配置教程

在上一章节,我们介绍了Fiddler的详细安装教程,本章教程,主要介绍一下,Fiddler的基本使用。 目录 一、安装HTTPS证书 (1)先将证书导出到桌面,然后双击安装

额外说明

YUV420数据格式详解

此为引用牛人文章添加链接描述 牛人2 添加链接描述 值得看的接收,非常好;添加链接描述 YUV简介 YUV定义:分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chr

额外说明

vmware15安装centos7配置网络,固定IP的同时保持网络通畅(超详细)

背景:使用虚拟机安装Linux系统,虚拟机的操作界面很不友好,一遍我们都通过工具进行链接,我这边使用的是SecureCRT,但是使用工具链接的时候ip地址需要固定,同时要保证虚拟机的网络同本机的网络以及互联网都是互通的因为涉及到各种软件的安装,具体操作看

额外说明

nginx负载均衡简单示例

一、实验环境   主机名与IP     3台VM虚拟机,1台做负载均衡,2台做RS。 HOSTNAME IP 说明 lb01 192.168.5.210 主负载均衡器 web01 192.168.5.212 web01服务器 web02 192.168.

额外说明

eclipse使用手册

– Jdk,eclipse都是64 缺少jre 复制jre 到eclipse目录

额外说明

ES6中Class的基本用法

1.类的由来 说明: js中生成实例对象的方法是通过构造函数方法实现。 function Add(x, y) { this.x = x this.y = y } Add.

额外说明

【Python零基础到入门】Python预备知识必备篇——安装可视化工具 PyCharm

目录 - 前言 -安装可视化工具 PyCharm -下载PyCharm安装包 -安装PyCharm工具 -运行PyCharm -安装汉化插件 -总结 - 前言 本文章是【Python零基础到入门专栏】学习的系列文章 Python专栏 传送门 在此:htt

额外说明

餐中餐(7)Lucene 中的文件锁

文章目录 LockFactory的具体实现类 NoLockFactory SingleInstanceLockFactory 获得索引文件锁 释放索引文件锁 FSLockFactory SimpleFSLockFactory 获得索引文件锁 释放索引文件

额外说明

微信小程序的页面内转发分享和右上角点击转发分享

微信小程序的页面内转发和右上角点击转发 效果图如下 这是官方文档:微信开发文档 一、用户点击右上角转发 getShareImageUrl: function (applyId) { //获取分享图片 shareImageUrl var that =

额外说明

03基于 Vue2.x 的 Vuex3.x .

前言 本文是基于 Vue2.x 的 Vuex3.x 版。如果是 Vue3.x 则对应 Vuex4.x。 注意安装命令如下: npm i vuex@3 简单示例 main.js 注入 import store from './store' new Vue

ads via 小工具