
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); }}
三、系统功能说明
通过上述框架设计,用户可以轻松实现家庭收支记录的核心功能,代码结构清晰,易于扩展和维护。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月21日 14时08分07秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
IDEA-@Slf4j和log标签&@Data(Lombok)无效
2019-03-13
Thymeleaf 生成下标,索引,使用Stat变量
2019-03-13
ValueError: Unexpected end of file.
2019-03-13
六、登录(二)
2019-03-13
初始微服务---Springcloud发展【第一期】
2019-03-13
RAFT 拜占庭将军 共识算法
2019-03-13
UE4 错误列表 error码(只记录我遇到的情况,持续添加,未完成)
2019-03-13
【Jquery】获取当前窗口的宽度值/高度值
2019-03-13
Android 架构组件 – 让天下没有难做的 App
2019-03-13
能解决数据可视化大屏需求的3款可视化工具
2019-03-13
【Altium Designer21】工作栏中文解析
2019-03-13
[87]用secureCRT连接虚拟机中的Ubuntu系统,出现“远程主机拒绝连接”错误
2019-03-13
Shell脚本防DNS攻击检测并删除肉机IP
2019-03-13
如何在VSCode中定制JSON的IntelliSense
2019-03-13
椭圆曲线的定义
2019-03-13
多代理区块链框架客户端的操作
2019-03-13
RSA操作中的公钥和私钥的生成
2019-03-13
go语言中类的继承和方法的使用
2019-03-13