【Golang】家庭收支记账软件
*本文笔记参考:b站【尚硅谷】Golang入门到实战教程
1、项目开发流程
<----需求分析---->设计阶段---->实现阶段(代码)---->测试阶段---->实施阶段---->维护阶段
2、项目需求
模拟实现一个基本文本界面的《家庭记账软件》,该软件能够记录家庭的收入、支出,并能够打印收支明细表。
3、项目界面
--------------家庭收支记账软件--------------1 收支明细2 登记收入3 登记支出4 退 出 请选择(1-4):2
本次收入金额:1000
本次收入说明:有人发红包
-----------------登记完成-----------------
--------------家庭收支记账软件--------------1 收支明细2 登记收入3 登记支出4 退 出 请选择(1-4):1--------------当前收支明细记录--------------
收支 账户金额 收支金额 说 明
收入 11000 1000 有人发红包
-----------------------------------------
--------------家庭收支记账软件--------------1 收支明细2 登记收入3 登记支出4 退 出 请选择(1-4):3本次支出金额:50
本次支出说明:给别人发红包
------------------登记完成-------------------
4、基本功能实现
编写文件 TestMyAccount.go 完成基本功能:
可以显示主菜单,并且可以退出;
可以显示收支明细;
可以登记收入;
可以登记支出。
//main/TestMyAccount.go文件(主文件)
package main
import ("code/test1/model"
)
func main() {model.NewAccount().MainMenu()
}
//model/account.go文件(模块文件,包含各功能函数)
package model
import "fmt"
type Account struct {account string //账户pwd string //密码key int //用户输入的选项money float64 //收支金额note string //收支说明balance float64 //余额details string //收支详情choice string //是否退出flag bool //退出循环的标志位
}
//将各函数封装到NewAccount中,返回一个*Account实例
func NewAccount() *Account {return &Account{key: 0,money: 0.0,note: "",balance: 10000.0,details: "",choice: "",flag: true,}
}
//显示收支明细
func (this *Account) showDetails() {fmt.Println("--------------当前收支明细记录--------------")if this.details == "" {fmt.Println("当前没有收支明细,快来添加吧")return}fmt.Println("收支\t账户金额\t收支金额\t详细说明")fmt.Println(this.details)
}
//登记收入
func (this *Account) income() {fmt.Println()fmt.Print("本次收入金额:")fmt.Scanln(&this.money)fmt.Print("本次收入说明:")fmt.Scanln(&this.note)this.balance += this.moneyfmt.Println("-----------------登记完成-----------------")fmt.Println()this.details += fmt.Sprintf("收入\t%v\t%v\tv%v\n", this.balance, this.money, this.note)
}
//登记支出
func (this *Account) pay() {fmt.Println()fmt.Print("本次支出金额:")fmt.Scanln(&this.money)if this.money > this.balance {fmt.Println("余额不足")return}fmt.Print("本次支出说明:")fmt.Scanln(&this.note)this.balance -= this.moneyfmt.Println("-----------------登记完成-----------------")fmt.Println()this.details += fmt.Sprintf("支出\t%v\t%v\t%v\n", this.balance, this.money, this.note)
}
//退出
func (this *Account) quit() {fmt.Print("确定要退出吗?y/n:")fmt.Scanln(&this.choice)if this.choice == "y" {fmt.Println("成功退出系统")this.flag = false} else {this.flag = true}
}
//显示主菜单
func (this *Account) MainMenu() {for {fmt.Print("请输入账号:")fmt.Scanln(&this.account)if this.account != "lichan" {fmt.Println("账号输入错误,请重新输入")continue}for this.account == "lichan" {fmt.Print("请输入密码:")fmt.Scanln(&this.pwd)if this.pwd != "123456" {fmt.Println("密码输入错误,请重新输入")continue} else {break}}fmt.Println("恭喜您,登录成功")break}
for this.flag == true {fmt.Println("--------------家庭收支记账软件--------------")fmt.Println(" 1 收支明细")fmt.Println(" 2 登记收入")fmt.Println(" 3 登记支出")fmt.Println(" 4 退 出")fmt.Print(" 请选择(1-4):")fmt.Scanln(&this.key)switch this.key {case 1:this.showDetails()case 2:this.income()case 3:this.pay()case 4:this.quit()}}
}
//输出
请输入账号:lichan
请输入密码:123456
恭喜您,登录成功
--------------家庭收支记账软件--------------1 收支明细2 登记收入3 登记支出4 退 出请选择(1-4):1
--------------当前收支明细记录--------------
当前没有收支明细,快来添加吧
--------------家庭收支记账软件--------------1 收支明细2 登记收入3 登记支出4 退 出请选择(1-4):2
本次收入金额:500
本次收入说明:红包收入
-----------------登记完成-----------------
--------------家庭收支记账软件--------------1 收支明细2 登记收入3 登记支出4 退 出请选择(1-4):1
--------------当前收支明细记录--------------
收支 账户金额 收支金额 详细说明
收入 10500 500 v红包收入
--------------家庭收支记账软件--------------1 收支明细2 登记收入3 登记支出4 退 出请选择(1-4):3
本次支出金额:20000
余额不足
--------------家庭收支记账软件--------------1 收支明细2 登记收入3 登记支出4 退 出请选择(1-4):3
本次支出金额:100
本次支出说明:红包支出
-----------------登记完成-----------------
--------------家庭收支记账软件--------------1 收支明细2 登记收入3 登记支出4 退 出请选择(1-4):4
确定要退出吗?y/n:y
成功退出系统
【Golang】家庭收支记账软件相关推荐
- golang项目----家庭收支记账软件
家庭收支记账软件 实现基本功能(先使用面向过程,后面改成面向对象) 项目代码实现改进 面向过程源码 面向对象源码 utils包中 main包中 实现基本功能(先使用面向过程,后面改成面向对象) 编写文 ...
- 3.项目一(家庭收支记账软件)
家庭收支记账软件 项目一:家庭收支记账软件 1. 项目演示 2. Utility工具类的说明 Utility工具类提供了一系列的方法,方便我们从控制台获取相关数据: 用户的选择(1-4):readMe ...
- java家庭收支记账软件-day01
import java.util.Scanner; public class itemfamily {public static void main(String[] args) {Scanner s ...
- 家庭收支记账软件--Java
家庭收支记账软件–Java 需求描述: 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 项目采用分级菜单方式.主菜单如下: 需求说明: 假 ...
- go 家庭收支记账软件
项目开发流程 项目需求说明 模拟实现基于文本界面的<家庭记账软件> 该软件能够记录家庭的收入.支出,并能够打印收支明细表 项目的界面 -------------家庭收支记账软件------ ...
- Java实现家庭收支记账软件
题目来自于尚硅谷基础项目1,其中没有使用项目提供的现成的方法 测试类 package test;import face.MainInterFace; import code.*; public cla ...
- Go 小项目1 - 家庭收支记账软件
Go 小项目1 - 家庭收支记账软件 一)需求 1)模拟实现基于文本界面的<家庭记账软件> 2)该软件能够记录家庭的收入.支出,并能够打印收支明细表 二)编码 1)功能 1.完成主菜单的编 ...
- Java项目:家庭收支记账软件
目录 前言 一.任务要求 二.实现代码 总结 前言 最近花了一个星期看了JAVA经典书籍<Java核心技术卷I>,囫囵吞枣般看完,领略了其中大概内容,花时间看视频巩固一下,就去b站看了尚硅 ...
- java基础(家庭收支记账软件)
家庭收支记账软件 目标 模拟实现一个基于文本界面的<家庭记账软件> 掌握初步的编程技巧和调试技巧 主要涉及以下知识点: 变量的定义 基本数据类型的使用 循环语句 分支语句 方法声明.调用和 ...
- 案例一,家庭收支记账软件
1.项目要求: • 模拟实现一个基于文本界面的<家庭记账软件> • 掌握初步的编程技巧和调试技巧 • 主要涉及以下知识点: >变量的定义 > 基本数据类型的使用 > 循环 ...
最新文章
- 可以用于回归分类的总结
- Matplotlib实例教程(三)折线图 plt.plot()
- JVM实战与原理---类加载机制
- Core Foundation 与 cocoa Foundation框架区别
- 【转】Zookeeper 安装和配置
- 入局视频会议市场 揭秘“腾讯会议”背后的创新黑科技
- 随机邻域嵌入_图嵌入(Graph embedding)综述
- 永和自适应官网代理系统模块V6.0.8
- 王道 —— 操作系统的四个特征
- 游戏工委:已有63家单位响应防止未成年人沉迷通知
- 计算机常见的多媒体端口,常用的多媒体设备接口有哪些?
- 鸟瞰 Java 并发框架
- 创建一个简单tcp服务器需要的流程
- Linux命令之打包tar
- FLASH连连看算法分析及源代码
- 全网最详细的深度学习pytorch-gpu环境配置
- CuO-SBA-15分子筛催化氧化苯甲醇制苯甲醛|单宁酸修饰磁性Fe3O4/SBA-15纳米粒子|CuO/SBA-15介孔材料催化剂
- 为什么RISC-V中需要恒零寄存器?
- ip r route -n
- sap成本流怎么看_[原创]SAP方丈-写给新手的SAP成本核算流程