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

               1 收支明细2 登记收入3 登记支出4 退    出请选择(1-4):_

流程图(活动图) — 主流程

流程图(活动图) — 收入和支出处理流程

代码:
FamilyAccount.java

package com.lhc.project01;public class FamilyAccount {public static void main(String[] args) {boolean isFlag=true;//用来控制循环String details="收支\t账户金额\t收支金额/t说明/t";//用来记录收支记录的详细信息int balance=10000;//余额do {System.out.print("----------------家庭记账软件----------------");System.out.println();System.out.println("        1 收支明细");System.out.println("     2 登记收入");System.out.println("     3 登记支出");System.out.println("     4 退       出");System.out.print("  请选择(1-4):");//读取数据//调用方法两种方式1.对象名.方法名 2.类名.方法名char menuSelection = Utility.readMenuSelection();//分支switch (menuSelection) {case '1'://注意:千万不能写成1,因为'1'的unicode值是49System.out.println("----------------当前收支明细记录----------------");System.out.println(details);System.out.println("-------------------------------------------");break;case '2':System.out.println("----------------当前登记收入----------------");System.out.print("本次收入金额:");//读取收入金额int income = Utility.readNumber();System.out.print("本次收入说明::");//读取收入说明String incomeDes = Utility.readString();//将收入的钱累加到余额中balance += income;//字符串拼接details +="\n收入\t" + balance + "\t" + income + "\t" +incomeDes;System.out.println("-----------------登记完成------------------");break;case '3':System.out.println("-----------------登记支出------------------");System.out.print("本次支出金额:");//1.读取支出金额int pay = Utility.readNumber();System.out.println("本次支出说明:");//2.读取支出说明String payDos = Utility.readString();//3.从余额中减去支出金额balance-=pay;//4.字符串拼接details += "\n支出\t" + balance + "\t" + pay + "\t" +payDos;System.out.println("3");break;case '4':System.out.print("确认是否退出(Y/N):");//读取是否退出 (无论输出的内容是小写或大写) 返回的内容为大写char confirmSelection = Utility.readConfirmSelection();//判断是否退出if(confirmSelection == 'Y') {isFlag=false;}break;}}while(isFlag);}
}

Utility.java

package com.lhc.project01;import java.util.*;public class Utility {private static Scanner scanner = new Scanner(System.in);/*** 读取菜单项* @return char*/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.print("选择错误,请重新输入:");} else break;}return c;}/*** 读取收入和支出金额* @return int*/public static int readNumber() {int n;for (; ; ) {String str = readKeyBoard(4);try {n = Integer.parseInt(str);break;} catch (NumberFormatException e) {System.out.print("数字输入错误,请重新输入:");}}return n;}/*** 读取收入或支出的描述信息* @return String*/public static String readString() {String str = readKeyBoard(8);return str;}/*** 确认是否退出* @return char*/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.print("选择错误,请重新输入:");}}return c;}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;}
}

Java阶段项目一 家庭记账软件相关推荐

  1. 项目一. 家庭记账软件

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

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

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

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

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

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

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

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

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

  6. 项目一 家庭记账软件 (目标 + 需求说明 + 代码详解 + 基本金和收支明细记录 + 键盘访问的实现)

    家庭记账软件 1. 目标 2. 需求说明 3. 代码详解 4. 基本金和收支明细的记录 5. 键盘访问的实现 1. 目标 模拟实现一个基于文本界面的<家庭记账软件> 掌握初步的编程技巧和调 ...

  7. 项目一 家庭记账软件

    目录 方法一(使用Utility工具类): 实现效果: 菜单主页面 收支明细初始页面 登记收入 登记支出 退出软件 详细代码: Utility.java FamilyAccount02.java 方法 ...

  8. Java 小项目 01 简单记账软件

    1 功能介绍 1.1 功能介绍 查询账务 多条件查询 添加账务 编辑账务 删除账务 1.2 运行结果 2 环境搭建 1)开发工具:eclipse 2)第三方jar包 jar 包下载 commons-d ...

  9. Java项目学习(一):家庭记账软件

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

最新文章

  1. TX2---远程操作
  2. 职场新人:工作七大忌
  3. Objective-C中new与alloc/init的区别
  4. 解决 springboot 项目:找不到或无法加载主类
  5. java8 util.time_Java8 java.util.Date转换为java.time.ZonedDateTime
  6. python提供的三种基本数据类型是()_python基础之基本数据类型
  7. PHP实现微信企业付款
  8. 符号常量和变量有什么区别_JVM是什么?
  9. python选择排序算法_Python - 排序算法
  10. 穿透还原卡和还原软件的代码
  11. RS485接口的EMC设计方案
  12. oracle11g dos卸载,Oracle 11G 完全卸载
  13. Android源码编译:任意界面屏幕边缘上滑弹出快捷操作栏【一键加速、开关控制】
  14. linux自定义以太网协议_如何压接自己的任意长度的自定义以太网电缆
  15. 正则表达式匹配英文和法文
  16. 《清单革命》:让大脑处理更重要的事情
  17. 电脑屏幕保护推荐——Fliqlo
  18. 《Effective C++》第三版 第六章 继承与面向对象设计 32~35条例
  19. vue3 简单封装GoogleMap组件
  20. ffmpeg为视频添加特效

热门文章

  1. 外贸B2B业务邮件标题主流撰写技巧-软件
  2. java毕业设计开题报告基于SSM考试在线报名管理系统
  3. PLC常见的输入设备及其接线方式列举
  4. 第65天:仿网易轮播图
  5. KMP(Knuth-Morris-Pratt)算法
  6. go能否直接调用java_Go调用Java的一个简单例子
  7. vxi11协议服务器的实现,基于DSP和VXI-11协议的LXI仪器控制与实现.pdf
  8. GNSS相关网站汇总
  9. 苹果手机还原网络设置会怎样_iPhone信号太差?几个设置就搞定
  10. linux minit 截图,带有屏幕截图的Linux Mint 19.2代号“ Tina”的安装指南