Java项目学习(一):家庭记账软件
本项目为尚硅谷阶段学习项目。
需求
- 模拟实现基于文本界面的《家庭记账软件》。
- 该软件能够记录家庭的收入、支出,并能够打印收支明细表。
- 项目采用分级菜单方式。主菜单如下:
家庭收支记账软件 1 收支明细 2 登记收入 3 登记支出 4 退出 请选择(1-4):
- 假设家庭起始的生活基本金为10000元。
- 每次登记收入后,收入的金额应累加到基本金上,并记录本次收入明细,以便后续的查询。
- 每次登记支出后,支出的金额应从基本金中扣除,并记录本次支出明细,以便后续查询。
- 查询收支明细时,将显示所有的收入、支出明细列表。
程序
- Utility类,提供获取用户输入的功能
public class Utility {private static Scanner scanner = new Scanner(System.in);//界面菜单的选择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.println("选择错误,请重新输入:");}else break;}return c;}//收入和支出金额的输入,不超过4位public static int readNumber(){int n;for (; ; ){String str = readKeyBoard(4);try {n = Integer.parseInt(str);break;} catch (NumberFormatException e){System.out.println("数字输入错误,请重新输入:");}}return n;}//用于收入和支出说明的输入,不超过8位public static String readString(){String str = readKeyBoard(8);return str;}//用于确认选择的输入,从键盘中读取“Y”“N”,并将其作为方法的返回值public static char readConfirmSelection(){char c;for (; ; ){String str = readKeyBoard(1).toUpperCase();c = str.charAt(0);if (c=='Y' || c=='N'){break;}else {System.out.println("选择错误,请重新输入:");}}return c;}public static String readKeyBoard(int limit){String line = "";while (scanner.hasNext()){line = scanner.nextLine();if (line.length()<1 || line.length()>limit){System.out.println("输入不符合要求,请重新输入:");continue;}break;}return line;}
}
- FamilyAccount类,主功能程序
public class FamilyAccount {public static void main(String[] args) {String details = "收支\t账户金额\t收支金额\t 说明\n";boolean isFlag = true;int balance = 10000;while (isFlag){System.out.println("\n-----------------家庭记账收支软件-----------------\n");System.out.println(" 1 收支明细");System.out.println(" 2 登记收入");System.out.println(" 3 登记支出");System.out.println(" 4 退出\n");System.out.print(" 请选择<1-4>:");//获取用户的选择char selection = Utility.readMenuSelection();switch (selection){case '1'://System.out.println("1 收支明细");System.out.println("-----------------当前收支明细记录-----------------");System.out.println(details);System.out.println("--------------------------------------------------");break;case '2'://System.out.println("2 登记收入");System.out.print("本次收入金额:");int money = Utility.readNumber();System.out.println("本次收入说明:");String info = Utility.readString();balance += money;details += "收入\t" + balance + "\t" +money + "\t\t\t" + info + "\n";System.out.println("---------------------登记完成---------------------");break;case '3'://System.out.println("3 登记支出");System.out.println("本次支出金额:");int money1 = Utility.readNumber();System.out.println("本次支出说明:");String info1 = Utility.readString();if (balance>=money1){balance -= money1;}else{System.out.println("支出超出账户额度,支付失败");}details += "支出\t" + balance + "\t" +money1 + "\t\t\t" + info1 + "\n";System.out.println("---------------------登记完成---------------------");break;case '4'://System.out.println("4 退出");System.out.println("确认是否退出<y/n>");char isExit = Utility.readConfirmSelection();if (isExit=='Y'){isFlag = false;}break;}}}
}
Java项目学习(一):家庭记账软件相关推荐
- 我的第一个Java项目实训--家庭记账软件!
这是我刚学完流程控制的时候照着敲得一个小项目! class familyAccount{public static void main(String[] args){boolean isFlag=tr ...
- 项目一:家庭记账软件
需求说明: 1.模拟实现一个基于文本界面的<家庭记账软件> 2.该软件能够记录家庭的收入.支出,并能够打印收支明细表 3.假设家庭起始的生活基本金为0元. 每次登记收入后,收入的金额应累加 ...
- 【项目1】家庭记账软件
目录 目标 涉及知识点 需求说明 流程图(活动图) -主流程 -收入和支出处理流程 实现 1.Utility工具类 2.2.FamilyAccount框架及功能实现源码 目标 模拟实现 ...
- 【Java小案例】家庭记账软件
一.概述 1.具体需求: 1.首页设有收支明细.登记收入.登记支出.退出四个选项 2.若用户输入不存在的选项数字,请用户重新输入 3.当用户输入一个选项对应的数字,打开该选项的界面,并再次打开首页界面 ...
- Java基础项目一:家庭记账软件
项目需求: 模拟实现家庭收支记账功能 一.需要以下方面: 1.家庭基金 2.存储收入的数据源:数组1 3.存储支出的数据源:数组2 4.退出软件 二.实现 1.数据源: String[] day=ne ...
- Java项目之家庭记账软件
项目要求 要求实现一个基于文本界面的记账软件,模拟实现一个基于文本界面的<家庭记账软件>,掌握初步的编程技巧和调试技巧. 主要涉及以下知识点: - 局部变量和基本数据类型 - 循环语句 - ...
- Java项目一 家庭记账软件
目录 概述 项目要求 代码 概述 项目来源:B站的尚硅谷java教程 这套视频总的来说还是很良心的,适合快速上手,但是要想深入了解原理的话,深度上还是差一点. 其实这套视频里涉及的练习也谈不上是项目, ...
- 小白自学笔记——JAVA基础 2.12 项目一 家庭记账软件
需求说明 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 假设家庭起始的生活基本金为10000元. 每次登记收入(菜单2)后,收入的金额应 ...
- Java阶段项目一 家庭记账软件
模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 项目采用分级菜单方式.主菜单如下: -----------------家庭收支记账软件-- ...
最新文章
- 02-CoreData 的增删改查
- c程序设计语言第五单元,(C语言程序设计基础课件)第五单元循环结构程序设计.pptx...
- Java基类Object中有哪些方法
- DIV+CSS网页布局常用的一些基础知识
- swift 项目_如何对iOS项目进行静态分析
- 十五、中文词向量训练二
- 操作系统学习总结(超赞!!!)
- javascript代码_15个最好用的JavaScript代码压缩工具
- HyperLeger Fabric开发(七)——HyperLeger Fabric链码开发
- 业务数据分析学习笔记--Lesson1
- snmp连接工具_网络管理员的5款最佳网络配置管理工具,收藏了
- 天天生鲜—创建数据库
- 解决 tesserocr 无法安装问题!
- acp计算机编程大赛时间,2021年ACP考试时间安排 - 希赛网
- HTTP 错误 500.19 代码 0x8007000d 解决方案 for win7_64 asp.net core IIS Web Core
- 监听SpringBoot 服务启动成功事件并打印信息
- 7-3 学生成绩录入及查询 (20分)__C++
- 区块链技术将引爆金融深层价值|筱静观察2019第7期
- 我了解到的新知识之----遇到路由器DNS被篡改我该怎么办?
- Arduino制作一个人体感应灯