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

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

目标:

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

相关文章

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

python uv包管理小结

《pythonuv包管理小结》uv是一个高性能的Python包管理工具,它不仅能够高效地处理包管理和依赖解析,还提供了对Python版本管理的支持,本文主要介绍了pythonuv包管理小结,具有一... 目录安装 uv使用 uv 管理 python 版本安装指定版本的 Python查看已安装的 Python

SpringBoot实现微信小程序支付功能

《SpringBoot实现微信小程序支付功能》小程序支付功能已成为众多应用的核心需求之一,本文主要介绍了SpringBoot实现微信小程序支付功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录一、引言二、准备工作(一)微信支付商户平台配置(二)Spring Boot项目搭建(三)配置文件

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in