Java模拟实现一个基于文本界面的《家庭记账软件》

本文档介绍了一个基于文本界面的Java家庭记账软件的实现,包括收入、支出登记,收支明细查询和退出功能。软件采用分级菜单,通过键盘访问实现用户交互。详细阐述了代码实现过程,包括主界面、选择结构、循环使用、输入处理等关键步骤,以及如何使用Utility工具类进行键盘输入操作。
摘要由CSDN通过智能技术生成

主要涉及以下知识点:

  • 变量的定义
  • 基本数据类型的使用
  • 循环语句
  • 分支语句
  • 方法声明、调用和返回值的接收
  • 简单的屏幕输出格式控制

需求说明

  • 模拟实现基于文本界面的《家庭记账软件》。
  • 该软件能够记录家庭的收入、支出,并能够打印收支明细表。

项目采用分级菜单方式。主菜单如下:

在这里插入图片描述

  • 假设家庭起始的生活基本金为10000元。
  • 每次登记收入(菜单2)后,收入的金额应累加到基本金上,并记 录本次收入明细,以便后续的查询。
  • 每次登记支出(菜单3)后,支出的金额应从基本金中扣除,并记 录本次支出明细,以便后续的查询。
  • 查询收支明细( 菜单1)时,将显示所有的收入、支出名细列表

“登记收入”的界面及操作过程如下所示:

在这里插入图片描述

“登记支出”的界面及操作过程如下所示:

在这里插入图片描述

“收支明细”的界面及操作过程如下所示:

在这里插入图片描述

  • 提示:明细表格的对齐,可以简单使用制表符‘\t’来实现

“退 出”的界面及操作过程如下所示:

在这里插入图片描述

键盘访问的实现

  • 项目中提供了Utility.java类,可用来方便地实现键盘访问。

工具类 Utility.java

  • 将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功 能实现细节。在Utility.java工具类中提供了以下静态方法:
  • public static char readMenuSelection() :用于界面菜单的选择。该方法读取键盘,如果
    用户键入’1’-’4’中的任意字符,则方法返回。返回值为用户键入字符。
 private static Scanner scanner = new Scanner(System.in);
    /**
	用于界面菜单的选择。该方法读取键盘,如果用户键入’1’-’4’中的任意字符,则方法返回。返回值为用户键入字符。
	*/
	public static char readMenuSelection() {
   
        char c;
        for (; ; ) {
   
            String str = readKeyBoard(1);
            c = str.charAt(0);
            if (c != '1' && c != '2' && c != '3' && c != '4') {
   
                System.out.print("选择错误,请重新输入:");
            } else break;
        }
        return c;
    }
  • public static int readNumber() :用于收入和支出金额的输入。该方法从键盘读取一个不 超过 4
    位长度的整数,并将其作为方法的返回值。
/**
	用于收入和支出金额的输入。该方法从键盘读取一个不超过4位长度的整数,并将其作为方法的返回值。
	*/
    public static int readNumber() {
   
        int n;
        for (; ; ) {
   
            String str = readKeyBoard(4);
            try {
   
                n = Integer.parseInt(str);
                break;
            } catch (NumberFormatException e) {
   
                System.out.print("数字输入错误,请重新输入:");
            }
        }
        return n;
    }
  • public static String readString() :用于收入和支出说明的输入。该方法从键盘读取一个不 超过 8
    位长度的字符串,并将其作为方法的返回值。
/**
	用于收入和支出说明的输入。该方法从键盘读取一个不超过8位长度的字符串,并将其作为方法的返回值。
	*/
    public static String readString(
  • 13
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BugMiaowu2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值