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

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

  1. java面向对象数组_Java面向对象的构造器与数组对象

    Java开发离不开面相对象,那么面向对象如何来的?什么又是数组对象?今天小编就来与大家共同学习一下Java的面向对象的构造器与数组对象. 构造器:用于创建对象时执行初始化.当创建一个对象时eg:new ...

  2. java面向对象基础

    java数组 文章目录 java面向对象初步认识 软件开发 面向对象和面向过程 对象 对象和类 类的定义 类和对象的练习 类的方法 类的方法的练习 java面向对象初步认识 软件开发 软件开发分为了结 ...

  3. Java—面向对象设计—类和对象

    理解面向对象程序设计 面向对象程序(Object-oriented programming,OOP)设计是继面向过程又一具有里程碑意义的编程思想,是现实世界模型的自然延伸.下面从结构化程序设计说起,逐 ...

  4. java面向对象编程基础

    java面向对象编程基础 前言:什么是java 是咖啡飘香的清晨 - 是斯坦福校园意浓情深 - 是James的思想睿智 是剁手党双十一挥舞的利刃 是大数据云计算驰骋的平台 - 是ATM上吐出的钞票 - ...

  5. Java面向对象(OOP)入门

    一.面向对象概述 Java是面向对象思想的高级计算机编程语言. 面向对象(简称:OOP)是一种以事物为中心的编程思想,是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件 ...

  6. java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法

    面向过程和面向对象 解决简单问题可以使用面向过程 解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程. 面向对象具有三大特征:封装性.继承性和多态性,而面向过程没有继承性和多态性,并且面向 ...

  7. Java面向对象回顾

    Java面向对象回顾 文章目录 Java面向对象回顾 一.面向对象 1.什么是对象 现实生活中的对象与程序中的对象 2.什么是面向对象 面向过程 面向对象 3.面向过程与面向对象的比较 思想方面 设计 ...

  8. java面向对象最全入门笔记(通俗易懂,适合初学者)

    需要资料的加微信 备注01(记得备注,不然不通的) 免费领取三套价值2880元的Java资料 1.上百本Java电子书 2.Java互联网分布式应用视频资料合集 3.阿里.百度.腾讯等等大厂Java面 ...

  9. php是面向对象还是过程,PHP面向过程和面向对象

    php程序编写分为面向过程和面向对象.两者在功能实现上没有区别,但是在代码编写上区别很大,面向过程的代码很乱,不易管理,而面向对象把常用的功能封装为一个类,这样代码清楚多了. 下面举个小例子说明一下: ...

  10. 通俗易懂地说明「面向对象」和「面向过程」的区别

    一.面向对象是什么 面向对象 (Object Oriented,OO) 的思想对软件开发相当重要,它的概念和应用甚至已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布 ...

最新文章

  1. 宇宙是一个无始无终的循环?
  2. SMTPDiag 诊断工具
  3. CefSharp向浏览器中指定DOM发送点击事件
  4. Java单链表、双端链表、有序链表实现
  5. GIPS语音编解码器家族
  6. Flask框架——ORM数据库
  7. 【SpringCloud】Spring cloud 版本与 spring boot版本对应关系
  8. Macaca使用过程中的疑问
  9. php连接mysql执行sql语句_php+mysql 连接服务器、数据库以及执行SQL语句的类库
  10. 打不开gitHub的解决方法
  11. 【图像融合】基于matlab GUI SIFT+小波变换图像拼接融合系统【含Matlab源码 815期】
  12. MySQL5.6安装流程(MySQL入门)
  13. 遗传算法matlab_遗传算法简单介绍与MATLAB实现
  14. MCS-51单片机总体概述(一)
  15. 【python】计算圆周率到任意位支持任意位(速度快)
  16. zoom会议背景设置,zoom手机背景怎么设置
  17. 超强总结,用心分享丨大数据超神之路(三):Linux必备知识
  18. 注册企业邮箱,怎么给国外的人发邮件?
  19. 使用Java实现建造者模式
  20. qBittorrent一个替代 µTorrent 的开源软件

热门文章

  1. SQL 分组排序group by
  2. 第06章 软件架构设计 之 软件架构风格
  3. 嵌入式算法19---国家商用密码SM算法
  4. 想自学编程?这么多编程自学网站,总有一个适合你吧!
  5. 用Python实现从Oracle到GreenPlum的表结构转换
  6. Windows Installer服务总是自动关闭导致无法安装在win10上安装英伟达显卡驱动的解决方案...
  7. 最大约数(秋季每日一题 34)
  8. js实现日期农历与公历的互转
  9. 自反ACL实验(GNS3)
  10. 搜狗新闻文本分析实例代码