GO学习项目---家庭收支记账软件
主菜单功能实现:
func (f *FamilyAccount) MainMenu() {for {fmt.Println("-----------家庭收支记账软件-----------")fmt.Println(" 1.收支详细")fmt.Println(" 2.登记收入")fmt.Println(" 3.登记支出")fmt.Println(" 4.退 出")fmt.Print(" 请选择(1-4):")fmt.Scanln(&f.key)switch f.key {case "1":f.showDetails()case "2":f.income()case "3":f.outcome()case "4":f.exit()default:fmt.Println("请输入正确的数字")}if f.flag2 {break}}fmt.Println("你退出了家庭收支记账软件")
}
结构体定义:
type FamilyAccount struct {//定义一个变量,接收用户输入的选项key string//定义账户的余额balance float64//每次收支的金额money float64//每次收支的说明note string//收支情况使用字符串来记录details string//记录是否有收支情况flag boolflag2 bool
}
结构体工厂:
func NewFamilyAccount() *FamilyAccount {return &FamilyAccount{key: "",balance: 10000.0,money: 0.0,note: "",details: "收支\t账户金额\t收支金额\t说 明",flag: false,flag2: false,}
}
收支详细功能实现:
func (f *FamilyAccount) showDetails() {fmt.Println("-----------当前收支明细记录-----------")if f.flag {fmt.Println(f.details)} else {fmt.Println("没有收支明细。。。")}
}
登记收入功能实现:
func (f *FamilyAccount) income() {fmt.Print("本次收入金额:")fmt.Scanln(&f.money)f.balance += f.moneyfmt.Print("本次收入说明:")fmt.Scanln(&f.note)f.details += fmt.Sprintf("\n收支\t %v \t\t %v \t\t %v", f.balance,f.money, f.note)f.flag = true
}
登记支出功能实现:
func (f *FamilyAccount) outcome() {fmt.Println("登记支出...")fmt.Print("本次支出金额:")fmt.Scanln(&f.money)if f.money > f.balance {fmt.Println("余额不足")}f.balance -= f.moneyfmt.Print("本次支出说明:")fmt.Scanln(&f.note)f.details += fmt.Sprintf("\n支出\t %v \t\t %v \t\t %v", f.balance,f.money, f.note)f.flag = true
}
退出功能实现:
func (f *FamilyAccount) exit() {fmt.Print("你确定要退出吗(y/n)")var b stringfor {fmt.Scanln(&b)if b == "y" {f.flag2 = truebreak} else if b == "n" {break} else {fmt.Print("你的输入有误,请重新输入(y/n)")}}
}
GO学习项目---家庭收支记账软件相关推荐
- golang项目----家庭收支记账软件
家庭收支记账软件 实现基本功能(先使用面向过程,后面改成面向对象) 项目代码实现改进 面向过程源码 面向对象源码 utils包中 main包中 实现基本功能(先使用面向过程,后面改成面向对象) 编写文 ...
- [go学习笔记.第十一章.项目案例] 1.家庭收支记账软件项目
一.基本介绍 1.项目开发流程说明 2.项目需求说明 目标: 模拟实现一个基于文本界面的<<家庭记账软件>> 掌握初步的编程技巧和调试技巧 主要涉及以下知识点 : (1).局部 ...
- 3.项目一(家庭收支记账软件)
家庭收支记账软件 项目一:家庭收支记账软件 1. 项目演示 2. Utility工具类的说明 Utility工具类提供了一系列的方法,方便我们从控制台获取相关数据: 用户的选择(1-4):readMe ...
- Go 小项目1 - 家庭收支记账软件
Go 小项目1 - 家庭收支记账软件 一)需求 1)模拟实现基于文本界面的<家庭记账软件> 2)该软件能够记录家庭的收入.支出,并能够打印收支明细表 二)编码 1)功能 1.完成主菜单的编 ...
- Java项目:家庭收支记账软件
目录 前言 一.任务要求 二.实现代码 总结 前言 最近花了一个星期看了JAVA经典书籍<Java核心技术卷I>,囫囵吞枣般看完,领略了其中大概内容,花时间看视频巩固一下,就去b站看了尚硅 ...
- Java项目一(案例):家庭收支记账软件
Java项目一(案例):家庭收支记账软件 项目概述 软件功能 项目说明 涉及Java知识点 软件需求说明 程序代码示例 FamilyAccount.class文件 自定义Utility.class工具 ...
- go 家庭收支记账软件
项目开发流程 项目需求说明 模拟实现基于文本界面的<家庭记账软件> 该软件能够记录家庭的收入.支出,并能够打印收支明细表 项目的界面 -------------家庭收支记账软件------ ...
- Java实现家庭收支记账软件
题目来自于尚硅谷基础项目1,其中没有使用项目提供的现成的方法 测试类 package test;import face.MainInterFace; import code.*; public cla ...
- 案例一,家庭收支记账软件
1.项目要求: • 模拟实现一个基于文本界面的<家庭记账软件> • 掌握初步的编程技巧和调试技巧 • 主要涉及以下知识点: >变量的定义 > 基本数据类型的使用 > 循环 ...
最新文章
- java comparable Comparator 区别
- 恭喜!神策数据荣获“2020 InfoQ 最佳技术社区驱动力奖”
- 超详细的 Bert 文本分类源码解读 | 附源码
- javascript --- 类、class、事件委托的编程风格
- 【CodeForces - 155C】Hometask (字符串,思维,贪心,熟悉句式)(总结)
- 智能化连锁门店解决方案
- SSL 3.0曝出Poodle漏洞的解决方案-----开发者篇(转自:http://blog.csdn.net/lyq8479/article/details/40709175)...
- jsp 中实现点击按钮 实现页面跳转到HTML
- ajax 传json数组对象,ajax传递json数组
- 北京智和信通企业级网络流量监控方案
- javascript进阶面向对象ES6
- 当 JS 大猪蹄子遇到 HTML 小姐姐
- JSOI2008 小店购物
- GameOff2022参与有感
- [Synology]群辉 WordPress
- html模板下载之“门户网站html模板页面下载”——html模板下载合集(持续更新中)
- ubuntu20.0 如何配置vlan
- 盘点 Redis 常用的 10 个小技巧
- 一文看尽 | 2018年电子合同与电子签章大发展、大突破
- Best_Cow_Line
热门文章
- flashget网络嗅探器
- ubuntu 下查看网卡流量速度
- 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~4读写ini文件
- 【Home Assistant】获取米家设备 token
- 04 | 后台登录:基于账号密码的登录方式(上)
- 数码相机必备软件-Download篇
- tim工具包-task 定时任务调度中心 分布式可配置v1.3.0版本
- 第二课学会组装计算机 教案,《计算机组装与维护第2章教案.doc
- Photoshop 2018及其他 所有版本下载安装教程 破解完美版含下载包
- 国际嵌入式大会精彩内容抢先看!