您的位置:首页 > 编程语言 > Go语言

golang实战--家庭收支记账软件(面向过程)

2019-11-24 17:28 1626 查看

1.开发流程

 

 

2.目标

  • 模拟实现一个基于文本界面的(家庭记账软件) ;
  • 初步掌握编程技巧和调试技巧;
  • 主要包含以下知识点:局部变量和基本数据类型、循环语句、分支语句、简单屏幕格式输出、面向对象编程;
  • 该软件能够记录家庭的输入、支出,并能够打印家庭明细表;
  • 采用分级菜单的方式:
  • --------------家庭收支记账软件-----------------
  • 1.收支明细
  • 2.登记收入
  • 3.登记支出
  • 4.退出
  • 请选择(1-4)

3.实现(具体细节看代码吧)

package main

import (
"fmt"
)

func main() {
//申明一个变量,保存输入的选择
key := ""
//申明一个变量判断是否退出循环
loop := false
//定义账户的余额
balance := 10000.0
//每次收支的金额
money := 0.0
//每次收支的说明
note := ""
//收支的详情,使用字符串来记录
details := "  收支\t账户金额\t收支金额\t说    明"
//定义一个变量记录是否有收支行为
flag := false

//显示菜单
for {
fmt.Println("----------------------家庭收支软件-----------------------")
fmt.Println("                      1.收支明细")
fmt.Println("                      2.登记收入")
fmt.Println("                      3.登记支出")
fmt.Println("                      4.退出软件")
print("请选择(1-4):")
fmt.Scanln(&key)
switch key {
case "1":
if flag {
fmt.Println("----------------------当前收支明细-----------------------")
fmt.Println(details)
} else {
fmt.Println("当前没有收支明细,来一笔吧")
}
case "2":
fmt.Println("本次收入金额:")
fmt.Scanln(&money)
balance += money
fmt.Println("本次收入说明:")
fmt.Scanln(&note)
details += fmt.Sprintf("\n  收入 \t%v\t\t  %v\t\t%v", balance, money, note)
flag = true
case "3":
fmt.Println("本次支出金额:")
fmt.Scanln(&money)
if money > balance {
fmt.Println("余额不足!!!")
break
}
balance -= money
fmt.Println("本次收入说明:")
fmt.Scanln(&note)
details += fmt.Sprintf("\n  支出 \t%v\t\t  %v\t\t%v", balance, money, note)
flag = true
case "4":
fmt.Println("你确定要退出吗?y/n")
choice := ""
for {
fmt.Scanln(&choice)
if choice == "y" || choice == "n" {
break
}
fmt.Println("您的输入有误!!请重新输入!")
}
if choice == "y" {
loop = true
}
default:
fmt.Println("请输入正确的选项")
}

if loop {
break
}
}

}

初始金额为10000。0,当然也可以自己定义为0.0。

启动后的界面:

 

如果收支明细中没有记录,选择1的话,会显示“当前没有收支明细,来一笔吧”

选择2:

 

选择3:(如果金额不够,会显示“当前余额不足!”)

 

 选择1:

 

记录了我们的收入与支出,同时金额也在相应进行变化。

选择4:输入y或n,如果没输对,就提示输入错误;输入y,则退出;输入n,则返回;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: