2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > java面向对象数组实现家庭收支记账软件_golang实战--家庭收支记账软件(面向过程)...

java面向对象数组实现家庭收支记账软件_golang实战--家庭收支记账软件(面向过程)...

时间:2019-08-09 13:54:27

相关推荐

java面向对象数组实现家庭收支记账软件_golang实战--家庭收支记账软件(面向过程)...

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,则返回;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。