一、思路分析:
1、功能1:先完成可以显示主菜单,并且可以退出
分析思路:
1) 使用一个for循环,循环显示菜单
2) 根据用户的输入来完成对应的功能
3) 如果用户输入了4, 就退出该软件
代码:
/*面向过程实现*/
func MyFamilyAccount() {
var num int
var flag bool = false
var isMX bool = false
var details string
for {
menu()
fmt.Scanln(&num)
switch num {
case 1:
if isMX {
incomeAndexpense(details)
}else{
fmt.Println("没有明细")
}
case 2:
isMX = true
details += income()
case 3:
isMX = true
details +=expense()
case 4:
flag = true
default:
fmt.Println("输入有误!!!")
}
if flag {
break
}
}
}
2、功能2:完成可以显示明细和登记收入的功能
分析思路:
1) 定义两个变量 money float64: 表示支出或者收入的金额, balance float64 : 表示账号金额,
2) 当有一笔支出或是收入时,我们就直接把这个具体情况拼接到一个 details string 中即可。
代码:
func income() string {
fmt.Println("本次收入金额:",1000)
fmt.Println("本次收入说明:","有人发红包")
details := "收入" + "\t10000" + "\t1000" + "\t有人发红包" + "\n"
// fmt.Println(details)
return details
}
func incomeAndexpense(details string) {
fmt.Println("------------------------当前收支明细记录------------------------")
fmt.Println("收支"+"\t账户金额"+"\t收支金额"+"\t明细")
fmt.Println(details)
fmt.Println("--------------------------------------------------------------")
}
3、功能3:完成了登记支出的功能
思路分析:
由于登记支出和登记收入几乎一样,修改一下即可.
代码实现:
func expense() string {
fmt.Println("本次支出金额:",500)
fmt.Println("本次支出说明:","发红包")
details := "支出" + "\t10000" + "\t500" + "\t发红包" + "\n"
// fmt.Println(details)
return details
}
二、完整代码:
utils/familyAccount.go
package utils
import (
"fmt"
)
/*面向过程实现*/
func MyFamilyAccount() {
var num int
var flag bool = false
var isMX bool = false
var details string
for {
menu()
fmt.Scanln(&num)
switch num {
case 1:
if isMX {
incomeAndexpense(details)
}else{
fmt.Println("没有明细")
}
case 2:
isMX = true
details += income()
case 3:
isMX = true
details +=expense()
case 4:
flag = true
default:
fmt.Println("输入有误!!!")
}
if flag {
break
}
}
}
func expense() string {
fmt.Println("本次支出金额:",500)
fmt.Println("本次支出说明:","发红包")
details := "支出" + "\t10000" + "\t500" + "\t发红包" + "\n"
// fmt.Println(details)
return details
}
func income() string {
fmt.Println("本次收入金额:",1000)
fmt.Println("本次收入说明:","有人发红包")
details := "收入" + "\t10000" + "\t1000" + "\t有人发红包" + "\n"
// fmt.Println(details)
return details
}
func incomeAndexpense(details string) {
fmt.Println("------------------------当前收支明细记录------------------------")
fmt.Println("收支"+"\t账户金额"+"\t收支金额"+"\t明细")
fmt.Println(details)
fmt.Println("--------------------------------------------------------------")
}
func menu() {
fmt.Println("------------家庭收支记账软件------------")
fmt.Println(" 1 收支明细")
fmt.Println(" 2 登记收入")
fmt.Println(" 3 登记支出")
fmt.Println(" 4 退出")
fmt.Println(" 请选择(1-4)")
fmt.Println("--------------------------------------")
}
main/main.go
package main
import (
"go_code/softwaredev/family/code/utils"
)
func main() {
utils.MyFamilyAccount()
}