主菜单功能实现:

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学习项目---家庭收支记账软件相关推荐

  1. golang项目----家庭收支记账软件

    家庭收支记账软件 实现基本功能(先使用面向过程,后面改成面向对象) 项目代码实现改进 面向过程源码 面向对象源码 utils包中 main包中 实现基本功能(先使用面向过程,后面改成面向对象) 编写文 ...

  2. [go学习笔记.第十一章.项目案例] 1.家庭收支记账软件项目

    一.基本介绍 1.项目开发流程说明 2.项目需求说明 目标: 模拟实现一个基于文本界面的<<家庭记账软件>> 掌握初步的编程技巧和调试技巧 主要涉及以下知识点 : (1).局部 ...

  3. 3.项目一(家庭收支记账软件)

    家庭收支记账软件 项目一:家庭收支记账软件 1. 项目演示 2. Utility工具类的说明 Utility工具类提供了一系列的方法,方便我们从控制台获取相关数据: 用户的选择(1-4):readMe ...

  4. Go 小项目1 - 家庭收支记账软件

    Go 小项目1 - 家庭收支记账软件 一)需求 1)模拟实现基于文本界面的<家庭记账软件> 2)该软件能够记录家庭的收入.支出,并能够打印收支明细表 二)编码 1)功能 1.完成主菜单的编 ...

  5. Java项目:家庭收支记账软件

    目录 前言 一.任务要求 二.实现代码 总结 前言 最近花了一个星期看了JAVA经典书籍<Java核心技术卷I>,囫囵吞枣般看完,领略了其中大概内容,花时间看视频巩固一下,就去b站看了尚硅 ...

  6. Java项目一(案例):家庭收支记账软件

    Java项目一(案例):家庭收支记账软件 项目概述 软件功能 项目说明 涉及Java知识点 软件需求说明 程序代码示例 FamilyAccount.class文件 自定义Utility.class工具 ...

  7. go 家庭收支记账软件

    项目开发流程 项目需求说明 模拟实现基于文本界面的<家庭记账软件> 该软件能够记录家庭的收入.支出,并能够打印收支明细表 项目的界面 -------------家庭收支记账软件------ ...

  8. Java实现家庭收支记账软件

    题目来自于尚硅谷基础项目1,其中没有使用项目提供的现成的方法 测试类 package test;import face.MainInterFace; import code.*; public cla ...

  9. 案例一,家庭收支记账软件

    1.项目要求: • 模拟实现一个基于文本界面的<家庭记账软件> • 掌握初步的编程技巧和调试技巧 • 主要涉及以下知识点: >变量的定义 > 基本数据类型的使用 > 循环 ...

最新文章

  1. java comparable Comparator 区别
  2. 恭喜!神策数据荣获“2020 InfoQ 最佳技术社区驱动力奖”
  3. 超详细的 Bert 文本分类源码解读 | 附源码
  4. javascript --- 类、class、事件委托的编程风格
  5. 【CodeForces - 155C】Hometask (字符串,思维,贪心,熟悉句式)(总结)
  6. 智能化连锁门店解决方案
  7. SSL 3.0曝出Poodle漏洞的解决方案-----开发者篇(转自:http://blog.csdn.net/lyq8479/article/details/40709175)...
  8. jsp 中实现点击按钮 实现页面跳转到HTML
  9. ajax 传json数组对象,ajax传递json数组
  10. 北京智和信通企业级网络流量监控方案
  11. javascript进阶面向对象ES6
  12. 当 JS 大猪蹄子遇到 HTML 小姐姐
  13. JSOI2008 小店购物
  14. GameOff2022参与有感
  15. [Synology]群辉 WordPress
  16. html模板下载之“门户网站html模板页面下载”——html模板下载合集(持续更新中)
  17. ubuntu20.0 如何配置vlan
  18. 盘点 Redis 常用的 10 个小技巧
  19. 一文看尽 | 2018年电子合同与电子签章大发展、大突破
  20. Best_Cow_Line

热门文章

  1. flashget网络嗅探器
  2. ubuntu 下查看网卡流量速度
  3. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~4读写ini文件
  4. 【Home Assistant】获取米家设备 token
  5. 04 | 后台登录:基于账号密码的登录方式(上)
  6. 数码相机必备软件-Download篇
  7. tim工具包-task 定时任务调度中心 分布式可配置v1.3.0版本
  8. 第二课学会组装计算机 教案,《计算机组装与维护第2章教案.doc
  9. Photoshop 2018及其他 所有版本下载安装教程 破解完美版含下载包
  10. 国际嵌入式大会精彩内容抢先看!