项目一:家庭记账本
模拟实现一个基于文本界面的 模拟实现一个基于文本界面的 《家庭记账软件 家庭记账软件 》
主要涉及以下知识点:
- 变量的定义
- 基本数据类型的使用
- 循环语句
- 分支语句
- 方法声明、调用和返回值的接收
- 简单的屏幕输出格式控制
该软件能够记录家庭的收入、支出,并能够打印收支明细表。
/* -----------------家庭收支记账软件----------------- 1 收支明细 2 登记收入 3 登记支出 4 退 出 请选择(1-4): */
需求说明
假设家庭起始的生活基本金为10000元。
每次登记收入(菜单2)后,收入的金额应累加到基本金上,并记录本次收入明细,以便后续的查询。
每次登记支出(菜单3)后,支出的金额应从基本金中扣除,并记录本次支出明细,以便后续的查询。
查询收支明细(菜单1)时,将显示所有的收入、支出名细列表。
"登记收入"的界面及操作过程如下所示:
/* -----------------家庭收支记账软件----------------- 1 收支明细 2 登记收入 3 登记支出 4 退 出 请选择(1-4):2 本次收入金额:1000 本次收入说明:劳务费 */
"登记支出"的界面及操作过程如下所示:
/* -----------------家庭收支记账软件----------------- 1 收支明细 2 登记收入 3 登记支出 4 退 出 请选择(1-4):3 本次支出金额:800 本次支出说明:物业费 */
"收支明细"的界面及操作过程如下所示:
/* -----------------家庭收支记账软件----------------- 1 收支明细 2 登记收入 3 登记支出 4 退 出 请选择(1-4):1 ----------------当前收支明细记录----------------- 收支 账户金额 收支金额 说 明 收入 11000 1000 劳务费 支出 10200 800 物业费 ------------------------------------------------ */ // 提示:明细表格的对齐,可以简单使用制表符‘\t’来实现
"退出"的界面及操作过程如下所示:
/* -----------------家庭收支记账软件----------------- 1 收支明细 2 登记收入 3 登记支出 4 退 出 请选择(1-4):4 确认是否退出(Y/N): */
package com.lingchen.pojo.familyaccount;
import java.util.Scanner;
/**
Utility工具类:
将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。
*/
public class Utility {
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.