*本文笔记参考: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 完成基本功能:

  1. 可以显示主菜单,并且可以退出;

  2. 可以显示收支明细;

  3. 可以登记收入;

  4. 可以登记支出。

//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】家庭收支记账软件相关推荐

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

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

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

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

  3. java家庭收支记账软件-day01

    import java.util.Scanner; public class itemfamily {public static void main(String[] args) {Scanner s ...

  4. 家庭收支记账软件--Java

    家庭收支记账软件–Java 需求描述: 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 项目采用分级菜单方式.主菜单如下: 需求说明: 假 ...

  5. go 家庭收支记账软件

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

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

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

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

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

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

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

  9. java基础(家庭收支记账软件)

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

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

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

最新文章

  1. 可以用于回归分类的总结
  2. Matplotlib实例教程(三)折线图 plt.plot()
  3. JVM实战与原理---类加载机制
  4. Core Foundation 与 cocoa Foundation框架区别
  5. 【转】Zookeeper 安装和配置
  6. 入局视频会议市场 揭秘“腾讯会议”背后的创新黑科技
  7. 随机邻域嵌入_图嵌入(Graph embedding)综述
  8. 永和自适应官网代理系统模块V6.0.8
  9. 王道 —— 操作系统的四个特征
  10. 游戏工委:已有63家单位响应防止未成年人沉迷通知
  11. 计算机常见的多媒体端口,常用的多媒体设备接口有哪些?
  12. 鸟瞰 Java 并发框架
  13. 创建一个简单tcp服务器需要的流程
  14. Linux命令之打包tar
  15. FLASH连连看算法分析及源代码
  16. 全网最详细的深度学习pytorch-gpu环境配置
  17. CuO-SBA-15分子筛催化氧化苯甲醇制苯甲醛|单宁酸修饰磁性Fe3O4/SBA-15纳米粒子|CuO/SBA-15介孔材料催化剂
  18. 为什么RISC-V中需要恒零寄存器?
  19. ip r route -n
  20. sap成本流怎么看_[原创]SAP方丈-写给新手的SAP成本核算流程

热门文章

  1. matlab二维正态分布图,MATLAB二维正态分布图
  2. Pownerdesigner画用例图/类图/时序图
  3. python_文件统计问题:文件” seqs_fasta.txt”保存着具有fasta格式的100多个蛋白质氨基酸序列
  4. Python英文搜索引擎(模糊搜索)
  5. 有些参考文献找不到页码和期号怎么解决?
  6. Kotlin 系列 之 Flow (一)
  7. 『开发』小程序通过易班接口登陆并请求数据
  8. 聊天中批判性思维的应用
  9. MAC地址-集线器-ARP
  10. Xbox360有线手柄