自从有了它,妈妈再也不用担心我管理不好生活费啦!——家庭记账程序

本文主要是介绍自从有了它,妈妈再也不用担心我管理不好生活费啦!——家庭记账程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目标:

1.模拟实现一个基于文本界面的家庭记账软件
2.掌握初步的编程技巧和调试技巧
3.灵活运用基础知识

需求:

在这里插入图片描述

流程图:

在这里插入图片描述

难点:

个人感觉理解和运用工具包的方法比较难,剩下的就是一些小细节的问题。

思路:

1.先定义总金额和一个数组来存储数据,再定义一个变量方便数组存储数据。
2通过一个while循环语句来实现用户的进入、退出和返回。
3通过一个switch分支语句来实现四种功能。
4其中各个功能的数据接收和提醒输入数据错误通过工具包的方法来完成。

上代码!!

package Guankaer;import Guankaer.Utility;import java.util.Scanner;public class FamilyAccount {public static void main(String[] args) {String[][] arr = new String[10][4];int acount = 0;//定义一个变量方便数组存储数据int sumnum = 10000;//总金额和数组定义在循环之前while (true) {menu();char a = Utility.readMenuSelection();//调用工具包的方法提醒录入错误的情况switch (a) {//功能选择case '1': //收支明细功能case1(arr);break;case '2': //收入功能case2(arr, acount, sumnum);break;case '3': //支出功能case3(arr, acount, sumnum);break;case '4': //退出功能System.out.println("确认是否推出(Y/N)");char b = Utility.readConfirmSelection();//Scanner 不能直接方法得到char//String类型不能直接用"=="去比较大小 而是用equals方法if (b == 'Y') {System.out.println("退出成功");return;//退出整个main方法} else {break;//退出switch}}}}public static void menu() {Scanner sc = new Scanner(System.in);System.out.println("---------------家庭收支记账软件--------------");//主目录System.out.println();System.out.println("                 1.收支明细");System.out.println("                 2.登记收入");System.out.println("                 3.登记支出");System.out.println("                 4.退出");System.out.println();System.out.println("请选择(1-4)");}public static void case1(String[][] arr) {System.out.println("-----------------收支明细---------------------");System.out.println("收支" + " " + "账户总金额" + " " + "收支金额" + " " + "说明");//上标for (int i = 0; i < arr.length; i++) {if (arr[i][0] != null) {//收支明细System.out.println(arr[i][0] + "  " + arr[i][1] + "  " + arr[i][2] + "   " + arr[i][3]);}}System.out.println("-------------------------");}public static void case2(String[][] arr, int acount, int sumnum) {System.out.println("请输入本次收入金额");int income = Utility.readNumber();//接收正确录入的金额System.out.println("请输入本次收入说明");String explain1 = Utility.readString();//接收正确录入的说明arr[acount][0] = "收入";sumnum += income;//总金额变化arr[acount][1] = sumnum + "";//拼接前面的数据转换成字符串arr[acount][2] = "+" + income;arr[acount][3] = explain1 + "";acount++;System.out.println("添加成功!");}public static void case3(String[][] arr, int acount, int sumnum) {System.out.println("请输入本次支出金额");int expend = Utility.readNumber();//接收正确录入的金额System.out.println("请输入本次支出说明");String explain2 = Utility.readString();//接收正确录入的说明arr[acount][0] = "支出";sumnum -= expend;arr[acount][1] = sumnum + "";arr[acount][2] = "-" + expend;arr[acount][3] = explain2 + "";System.out.println(arr[acount][0] + "  " + arr[acount][1] + "   " + arr[acount][2] + "   " + arr[acount][3]);acount++;System.out.println("添加成功!");}
}

这篇关于自从有了它,妈妈再也不用担心我管理不好生活费啦!——家庭记账程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/874267

相关文章

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用