GO版本家庭记账系统
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(¬e)//将信息拼接到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(¬e)//将信息拼接到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版本家庭记账系统相关推荐
- [附源码]JAVA毕业设计家庭记账系统(系统+LW)
[附源码]JAVA毕业设计家庭记账系统(系统+LW) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...
- java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试
java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S架构 开 ...
- JAVA毕设项目家庭记账系统(java+VUE+Mybatis+Maven+Mysql)
项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- 基于SpringBoot的家庭记账管理系统的设计与实现
摘 要 随着社会的发展,社会的方方面面都在利用信息化时代的优势.互联网的优势和普及使得各种系统的开发成为必需. 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和m ...
- PHP家庭账单系统,PHP+SQLite 多用户记账系统.家庭在线记账理财PHP管理系统.
PHP+SQLite 多用户记账系统.家庭在线记账理财PHP管理系统. 特别说明 目前版本,其中一个函数文件content.php源码没有开放,后续处理好了再考虑开放,所以目前这个文件是加密状态. 将 ...
- SSM家庭理财个人理财管理系统记账系统
博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 SSM家庭理财个人理财管理系统记账系统 视频效果 https://www.bili ...
- 基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java家庭理财记账系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 本源码技术栈: ...
- 计算机毕业设计JAVA家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw
计算机毕业设计JAVA家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw 计算机毕业设计JAVA家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目 ...
- 家庭收支记账系统--java项目练习
一.功能介绍: 采用分级菜单模式 主界面为菜单选择: 通过从键盘输入数字来进行记录家庭的收入.支出,并且打印收支明细表等功能 二.代码演示 代码由FamilyAccount Java文件和自定义Uti ...
- java毕业设计家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw
java毕业设计家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S ...
最新文章
- C++中的static函数和extern关键字
- c++中的引用和python中的引用_对比 C++ 和 Python,谈谈指针与引用
- war包怎么解压_渣渣辉表情包下载-渣渣辉抖音表情包动态图下载
- IPv4与IPv6数据报格式
- Java设计模式1:设计模式概论
- 微信域名屏蔽检测方法 微信域名检测接口的机制
- sql出现列名无效的原因_SQL数据库中的数据类型与表结构的创建
- WPF TextBox提示文字设定
- iOS9新系统下App Store应用上传新指南
- 局域网查询在线计算机ip地址,教你利用局域网快速查询电脑IP地址的详细步骤...
- 支持javascript的ppt软件_把PPT放入浏览器中——12款用于演示的JS库
- 【Python 小白到精通 | 课程笔记】第三章:数据处理就像侦探游戏(函数和包)
- Ubuntu16.040如何解决安装网易云音乐后第二次开机打不开问题
- 从gitlab迁移到极狐gitlab的方法 #JIHULAB101
- 时间序列预测中使用类EMD方法时的信息泄露和计算量问题
- 常见的Transforms的使用方法
- 随机函数的rand、srand用法
- Groovy~Groovy的Map操作
- 联想笔记本的window server R2系统安装、优化及相关软件安装全过程
- 自己写的手机游戏脚本
热门文章
- ShadowGun Shader学习
- Windows7orServer2008安装VM-Tools
- 联想服务器重装系统后usb无法启动,联想启天装win7系统的详细教程完美解决USB不能用的问题...
- 主流反外挂技术的优缺点比较
- ideal如何快速导入import_IntelliJ IDEA 自动导入包 快捷方式
- PostgreSQL教程
- 搭建php实验报告_php实验报告..doc
- 计算机语言缩写 dos,dos是什么意思 dos缩写中英全称是什么
- Python漫画下载器
- 计算机系毕业论文ppt模板,计算机专业答辩PPT模板.ppt