GO版本家庭记账系统

面向过程

package TestMyAccountimport ("fmt"
)
//1.先完成可以显示主菜单,并可以退出
// 2.完成显示明细功能
// 3.完成登记收入功能
// 4.完成登记支出功能// 显示主菜单
//思路分析 :打印显示   输入4 退出系统
func Show()string{//用户操作key:=""// 账户余额 blance:=10000.0//每次收支的金额money:=0.0// 每次收支说明note :=""// 收支详情details :="状态\t收支金额\t总金额\t说明"//确定退出var is_out stringfor;;{fmt.Println("\n——————家庭记账收支系统———————")fmt.Println("\t1.收支明细")fmt.Println("\t2.登记收入")fmt.Println("\t3.登记支出")fmt.Println("\t4.退    出\n")fmt.Println("\t请选择(1-4):")fmt.Scanln(&key)switch key{case "1":fmt.Println("显示收支明细")//思路// 1.需要显示明细 定义details string 记录// 2.定义 余额(balance) 每次收支的 金额(money) 每次收支的说明(note)// 提示添加信息优化if details == "状态\t收支金额\t总金额\t说明"{fmt.Println("你还没有收支信息,请添加")}else{fmt.Println(details)}case "2":fmt.Println("登记收入")fmt.Println("收入金额:")fmt.Scanln(&money)//账户余额添加处理 blance += moneyfmt.Println("收入说明:")fmt.Scanln(&note)//将信息拼接到detailsdetails +=fmt.Sprintf("\n收入\t%v\t\t%v\t%v",money,blance,note)case "3":fmt.Println("登记支出")//思路分析 // 登记收入基础上进行变化//余额不足的处理fmt.Println("支出金额:")fmt.Scanln(&money)if money >blance{fmt.Println("余额不足,当前余额:",money)break //退出switch}//账户余额添加处理 blance -= moneyfmt.Println("支出说明:")fmt.Scanln(&note)//将信息拼接到detailsdetails +=fmt.Sprintf("\n支出\t%v\t\t%v\t%v",money,blance,note)// case "1","2","3"://     showInOut(key)case "4"://优化体验 确定退出操作fmt.Println("确定退出?y/n")fmt.Scanln(&is_out)if is_out =="y"{fmt.Println("退出了该系统")return ""}else if is_out == "n"{break}default:fmt.Println("请输入正确的选项")}}}
package main
import ("TestMyAccount""fmt"
)func main(){_=TestMyAccount.Show()

-------------------------------------------------------------------------------------------

面向对象

package OopToShow
import ("fmt"
)
//面向对象 写的 家庭收支系统//思路:把功能封装到结构体方法中  调用结构体方法 来记账 显示明细
type FamilyAccount struct{// 账户余额 blance float64//每次收支的金额money float64// 每次收支说明note string// 收支详情// details :="状态\t收支金额\t总金额\t说明"
}func NewFamilAccount(blance float64,money float64,note string)*FamilyAccount{return &FamilyAccount{blance:blance,money:money,note:note,}
}func (this *FamilyAccount)ShowMenu()string{var key stringfmt.Println("\n——————家庭记账收支系统———————")fmt.Println("\t1.收支明细")fmt.Println("\t2.登记收入")fmt.Println("\t3.登记支出")fmt.Println("\t4.退    出\n")fmt.Println("\t请选择(1-4):")fmt.Scanln(&key)return key
}
//功能部分封装 多个方法func (this *FamilyAccount)GetKeyChooseMode1(details *string){fmt.Println("显示收支明细")//思路// 1.需要显示明细 定义details string 记录// 2.定义 余额(balance) 每次收支的 金额(money) 每次收支的说明(note)// 提示添加信息优化if *details == "状态\t收支金额\t总金额\t说明"{fmt.Println("你还没有收支信息,请添加")}else{fmt.Println(*details)}}func (this *FamilyAccount)GetKeyChooseMode2(details *string){fmt.Println("登记收入")fmt.Println("收入金额:")fmt.Scanln(&this.money)//账户余额添加处理 this.blance += this.moneyfmt.Println("收入说明:")fmt.Scanln(&this.note)//将信息拼接到details*details +=fmt.Sprintf("\n收入\t%v\t\t%v\t%v",this.money,this.blance,this.note)}func (this *FamilyAccount)GetKeyChooseMode3(details *string){fmt.Println("登记支出")//思路分析 // 登记收入基础上进行变化//余额不足的处理fmt.Println("支出金额:")fmt.Scanln(&this.money)if this.money >this.blance{fmt.Println("余额不足,当前余额:",this.money)}else{//账户余额添加处理 this.blance -= this.moneyfmt.Println("支出说明:")fmt.Scanln(&this.note)//将信息拼接到details*details +=fmt.Sprintf("\n支出\t%v\t\t%v\t%v",this.money,this.blance,this.note)}}func (this *FamilyAccount)GetKeyChooseMode4()string{var is_out string// 优化体验 确定退出操作fmt.Println("确定退出?y/n")fmt.Scanln(&is_out)if is_out == "y"{fmt.Println("退出了该系统")}return is_out
}
package main
import ("OopToShow""fmt"
)
func main(){FamilyAccount1:=OopToShow.NewFamilAccount(10000.0,0,"")details := "状态\t收支金额\t总金额\t说明"str :=""for;;{key:=FamilyAccount1.ShowMenu()if key == "1"{FamilyAccount1.GetKeyChooseMode1(&details)}else if key =="2"{FamilyAccount1.GetKeyChooseMode2(&details)}else if key =="3"{FamilyAccount1.GetKeyChooseMode3(&details)}else if key =="4"{str =FamilyAccount1.GetKeyChooseMode4()}else{fmt.Println("请输入正确的选项")}if str =="y"{break}}
}

GO版本家庭记账系统相关推荐

  1. [附源码]JAVA毕业设计家庭记账系统(系统+LW)

    [附源码]JAVA毕业设计家庭记账系统(系统+LW) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  2. java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S架构 开 ...

  3. JAVA毕设项目家庭记账系统(java+VUE+Mybatis+Maven+Mysql)

    项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  4. 基于SpringBoot的家庭记账管理系统的设计与实现

    摘  要 随着社会的发展,社会的方方面面都在利用信息化时代的优势.互联网的优势和普及使得各种系统的开发成为必需. 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和m ...

  5. PHP家庭账单系统,PHP+SQLite 多用户记账系统.家庭在线记账理财PHP管理系统.

    PHP+SQLite 多用户记账系统.家庭在线记账理财PHP管理系统. 特别说明 目前版本,其中一个函数文件content.php源码没有开放,后续处理好了再考虑开放,所以目前这个文件是加密状态. 将 ...

  6. SSM家庭理财个人理财管理系统记账系统

    博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 SSM家庭理财个人理财管理系统记账系统 视频效果 https://www.bili ...

  7. 基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 本源码技术栈: ...

  8. 计算机毕业设计JAVA家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw

    计算机毕业设计JAVA家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目 ...

  9. 家庭收支记账系统--java项目练习

    一.功能介绍: 采用分级菜单模式 主界面为菜单选择: 通过从键盘输入数字来进行记录家庭的收入.支出,并且打印收支明细表等功能 二.代码演示 代码由FamilyAccount Java文件和自定义Uti ...

  10. java毕业设计家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S ...

最新文章

  1. C++中的static函数和extern关键字
  2. c++中的引用和python中的引用_对比 C++ 和 Python,谈谈指针与引用
  3. war包怎么解压_渣渣辉表情包下载-渣渣辉抖音表情包动态图下载
  4. IPv4与IPv6数据报格式
  5. Java设计模式1:设计模式概论
  6. 微信域名屏蔽检测方法 微信域名检测接口的机制
  7. sql出现列名无效的原因_SQL数据库中的数据类型与表结构的创建
  8. WPF TextBox提示文字设定
  9. iOS9新系统下App Store应用上传新指南
  10. 局域网查询在线计算机ip地址,教你利用局域网快速查询电脑IP地址的详细步骤...
  11. 支持javascript的ppt软件_把PPT放入浏览器中——12款用于演示的JS库
  12. 【Python 小白到精通 | 课程笔记】第三章:数据处理就像侦探游戏(函数和包)
  13. Ubuntu16.040如何解决安装网易云音乐后第二次开机打不开问题
  14. 从gitlab迁移到极狐gitlab的方法 #JIHULAB101
  15. 时间序列预测中使用类EMD方法时的信息泄露和计算量问题
  16. 常见的Transforms的使用方法
  17. 随机函数的rand、srand用法
  18. Groovy~Groovy的Map操作
  19. 联想笔记本的window server R2系统安装、优化及相关软件安装全过程
  20. 自己写的手机游戏脚本

热门文章

  1. ShadowGun Shader学习
  2. Windows7orServer2008安装VM-Tools
  3. 联想服务器重装系统后usb无法启动,联想启天装win7系统的详细教程完美解决USB不能用的问题...
  4. 主流反外挂技术的优缺点比较
  5. ideal如何快速导入import_IntelliJ IDEA 自动导入包 快捷方式
  6. PostgreSQL教程
  7. 搭建php实验报告_php实验报告..doc
  8. 计算机语言缩写 dos,dos是什么意思 dos缩写中英全称是什么
  9. Python漫画下载器
  10. 计算机系毕业论文ppt模板,计算机专业答辩PPT模板.ppt