Java实现家庭收支记录软件
发布日期:2021-05-18 12:01:02 浏览次数:29 分类:精选文章

本文共 3842 字,大约阅读时间需要 12 分钟。

家庭收支记录软件开发框架

一、工具类开发

在软件开发中,工具类是实现灵活高效的关键。通过将功能细节封装,开发者可以专注于业务逻辑,而无需深入钻牛角尖。

import java.util.Scanner;public class Utility {    private static Scanner scanner = new Scanner(System.in);    public static char readMenuSelection() {        char c;        do {            String str = readKeyBoard(1);            c = str.charAt(0);            if (c != '1' && c != '2' && c != '3' && c != '4') {                System.out.print("选择错误,请重新输入:");            }        } while (true);        return c;    }    public static int readNumber() {        int n;        do {            String str = readKeyBoard(4);            try {                n = Integer.parseInt(str);                break;            } catch (NumberFormatException e) {                System.out.print("数字输入错误,请重新输入:");            }        } while (true);        return n;    }    public static String readString() {        String str = readKeyBoard(8);        return str;    }    private static String readKeyBoard(int limit) {        String line = "";        while (scanner.hasNext()) {            line = scanner.nextLine();            if (line.length() < 1 || line.length() > limit) {                System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:");                continue;            }            break;        }        return line;    }}

二、功能框架实现

家庭收支记录软件的核心功能可分为收入登记、支出登记及总账查看等模块。

class FamilyAccount {    public static void main(String[] args) {        boolean isFlag = true;        String details = "收支\t账户金额\t收支金额\t说明\n";        int counter = 1000;        do {            System.out.println("-------------------家庭收支记账软件---------------------");            System.out.println(" 1 收支明细");            System.out.println(" 2 登记收入");            System.out.println(" 3 登记支出");            System.out.println(" 4 退出");            System.out.println();            System.out.print(" 请选择(1-4):");            char selection = Utility.readMenuSelection();            switch (selection) {                case '1':                    System.out.println(details);                    break;                case '2':                    System.out.println("-------------------家庭收支记账软件---------------------");                    System.out.print("收入金额:");                    int inMoney = Utility.readNumber();                    System.out.print("收入说明:");                    String infoMoney = Utility.readString();                    counter += inMoney;                    details += ("收入\t" + counter + "\t\t" + inMoney + "\t\t" + infoMoney + "\n");                    System.out.println("----------------------登记完成--------------------------\n");                    break;                case '3':                    System.out.println("-------------------家庭收支记账软件---------------------");                    System.out.print("支出金额:");                    int outMoney = Utility.readNumber();                    System.out.print("支出说明:");                    String outMoneyReason = Utility.readString();                    if (counter >= outMoney) {                        counter -= outMoney;                    } else {                        System.out.println("支出金额超过总金额,支付失败!\n");                    }                    details += ("支出\t" + counter + "\t\t" + outMoney + "\t\t" + outMoneyReason + "\n");                    System.out.println("----------------------登记完成--------------------------\n");                    break;                case '4':                    System.out.println("确认是否退出(Y/N):");                    char isExit = Utility.readConfirmSelection();                    if (isExit == 'Y') {                        isFlag = false;                    }                    break;            }        } while (isFlag);    }}

三、系统功能说明

  • 收入登记:支持收入金额及说明的输入,自动更新账户总额。
  • 支出登记:支出金额需小于账户总额,若超出则提示支付失败。
  • 收支明细:以表格形式展示收支记录。
  • 系统退出:用户可确认退出程序。
  • 通过上述框架设计,用户可以轻松实现家庭收支记录的核心功能,代码结构清晰,易于扩展和维护。

    上一篇:Java流程控制的小练习
    下一篇:控制流程获取1-100以内的质数质数

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月21日 14时08分07秒