本项目为尚硅谷阶段学习项目。

需求

  • 模拟实现基于文本界面的《家庭记账软件》。
  • 该软件能够记录家庭的收入、支出,并能够打印收支明细表。
  • 项目采用分级菜单方式。主菜单如下:

家庭收支记账软件 1 收支明细 2 登记收入 3 登记支出 4 退出 请选择(1-4):

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

程序

  1. 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;}
}
  1. 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项目学习(一):家庭记账软件相关推荐

  1. 我的第一个Java项目实训--家庭记账软件!

    这是我刚学完流程控制的时候照着敲得一个小项目! class familyAccount{public static void main(String[] args){boolean isFlag=tr ...

  2. 项目一:家庭记账软件

    需求说明: 1.模拟实现一个基于文本界面的<家庭记账软件> 2.该软件能够记录家庭的收入.支出,并能够打印收支明细表 3.假设家庭起始的生活基本金为0元. 每次登记收入后,收入的金额应累加 ...

  3. 【项目1】家庭记账软件

    目录 目标 涉及知识点 需求说明 流程图(活动图) -主流程 -收入和支出处理流程 实现 1.Utility工具类 2.2.FamilyAccount框架及功能实现源码 ​​​​​​​ 目标 模拟实现 ...

  4. 【Java小案例】家庭记账软件

    一.概述 1.具体需求: 1.首页设有收支明细.登记收入.登记支出.退出四个选项 2.若用户输入不存在的选项数字,请用户重新输入 3.当用户输入一个选项对应的数字,打开该选项的界面,并再次打开首页界面 ...

  5. Java基础项目一:家庭记账软件

    项目需求: 模拟实现家庭收支记账功能 一.需要以下方面: 1.家庭基金 2.存储收入的数据源:数组1 3.存储支出的数据源:数组2 4.退出软件 二.实现 1.数据源: String[] day=ne ...

  6. Java项目之家庭记账软件

    项目要求 要求实现一个基于文本界面的记账软件,模拟实现一个基于文本界面的<家庭记账软件>,掌握初步的编程技巧和调试技巧. 主要涉及以下知识点: - 局部变量和基本数据类型 - 循环语句 - ...

  7. Java项目一 家庭记账软件

    目录 概述 项目要求 代码 概述 项目来源:B站的尚硅谷java教程 这套视频总的来说还是很良心的,适合快速上手,但是要想深入了解原理的话,深度上还是差一点. 其实这套视频里涉及的练习也谈不上是项目, ...

  8. 小白自学笔记——JAVA基础 2.12 项目一 家庭记账软件

    需求说明 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 假设家庭起始的生活基本金为10000元. 每次登记收入(菜单2)后,收入的金额应 ...

  9. Java阶段项目一 家庭记账软件

    模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 项目采用分级菜单方式.主菜单如下: -----------------家庭收支记账软件-- ...

最新文章

  1. 02-CoreData 的增删改查
  2. c程序设计语言第五单元,(C语言程序设计基础课件)第五单元循环结构程序设计.pptx...
  3. Java基类Object中有哪些方法
  4. DIV+CSS网页布局常用的一些基础知识
  5. swift 项目_如何对iOS项目进行静态分析
  6. 十五、中文词向量训练二
  7. 操作系统学习总结(超赞!!!)
  8. javascript代码_15个最好用的JavaScript代码压缩工具
  9. HyperLeger Fabric开发(七)——HyperLeger Fabric链码开发
  10. 业务数据分析学习笔记--Lesson1
  11. snmp连接工具_网络管理员的5款最佳网络配置管理工具,收藏了
  12. 天天生鲜—创建数据库
  13. 解决 tesserocr 无法安装问题!
  14. acp计算机编程大赛时间,2021年ACP考试时间安排 - 希赛网
  15. HTTP 错误 500.19 代码 0x8007000d 解决方案 for win7_64 asp.net core IIS Web Core
  16. 监听SpringBoot 服务启动成功事件并打印信息
  17. 7-3 学生成绩录入及查询 (20分)__C++
  18. 区块链技术将引爆金融深层价值|筱静观察2019第7期
  19. 我了解到的新知识之----遇到路由器DNS被篡改我该怎么办?
  20. Arduino制作一个人体感应灯

热门文章

  1. mysql调用jieba库_jieba库的使用
  2. (五)Selenium自动化测试实战—PO模式
  3. html表格设计(分列,设置边框)
  4. IDEA | 使用 Git
  5. Moodle 配置和使用系列——(一)Outgoing Email 配置
  6. 怎样打开加密的pdf文件
  7. 外部系统连接SFDC,获取SFDC侧的数据
  8. 数据中心服务器部署,自动化部署的数据中心
  9. 强大的ANTLR4(1)
  10. Ant Design学习——Slider