程序需求

模拟实现一个基于文本界面的《家庭记账软件》

该软件能够记录家庭的收入、支出,并能够打印收支明细表

-----------------家庭收支记账软件-----------------

1 收支明细

2 登记收入

3 登记支出

4 退 出

请选择(1-4):_

要求:

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

程序流程图

收入功能:

从键盘读取收入的金额(int);从键盘读取收入的原因(String);按照要求存储数据(数组);添加成功。

支出功能:

从键盘读取支出的金额(int);从键盘读取支出的原因(String);按照要求存储数据(数组);添加成功。

代码:

工具类

import java.util.Scanner;
/**Utility工具类:将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。*/
public class Utility {private static Scanner scanner = new Scanner(System.in);/**用于界面菜单的选择。该方法读取键盘,如果用户键入’1’-’4’中的任意字符,则方法返回。返回值为用户键入字符。*/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;}/**用于收入和支出金额的输入。该方法从键盘读取一个不超过4位长度的整数,并将其作为方法的返回值。* @return*/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;}/**用于收入和支出说明的输入。该方法从键盘读取一个不超过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.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;}
}

主函数

import part03.Utility;/**Utility工具类:将不同的功能封装为方法,就是可以直接通过调用方法使用它的功能,而无需考虑具体的功能实现细节。*/
public class FamilyCount {static String[][] arr = new String[10][4];public static void main(String[] args) {int count=0;int sumNum=10000;while (true){show();char c = Utility.readMenuSelection();switch (c){case '1':showAll();break;case '2':System.out.println("请输入本次收入的金额:");int num = Utility.readNumber();System.out.println("请输入本次收入的说明:");String info = Utility.readString();arr[count][0]="收入";sumNum+=num;arr[count][1]= String.valueOf(sumNum);arr[count][2]= String.valueOf(num);arr[count][3]=info;count++;System.out.println("添加成功!");break;case '3':System.out.println("请输入本次支出的金额:");int num1 = Utility.readNumber();System.out.println("请输入本次支出的说明:");String info1 = Utility.readString();arr[count][0]="支出";sumNum-=num1;arr[count][1]= String.valueOf(sumNum);arr[count][2]= String.valueOf(num1);arr[count][3]=info1;count++;System.out.println("添加成功!");break;case '4':System.out.println("确认是否退出(Y/N)?:");char c1 = Utility.readConfirmSelection();if (c1=='Y'){System.out.println("拜拜!退出成功!");return;}else {break;}default:}}}public static void show(){System.out.println("-------------------家庭收支记账软件---------------------\n");System.out.println("                    1.收支明细");System.out.println("                    2.登记收入");System.out.println("                    3.登记支出");System.out.println("                    4.退    出\n");System.out.print("请选择(1-4):");}public static void showAll(){System.out.println("-------------------收支明细记录表-----------------------");System.out.println("收支\t\t账户总金额\t\t收支金额\t\t说   明");for (int j = 0; j <arr.length ; j++) {if (arr[j][0]!=null){System.out.println(arr[j][0]+"\t\t"+arr[j][1]+"\t\t\t"+arr[j][2]+"\t\t\t"+arr[j][3]);}}System.out.println("--------------------------------------------------------\n");}}

JAVA——家庭记录收支程序相关推荐

  1. Java基础项目:家庭记录收支程序

    需求分析 要求:该软件能够记录家庭的收入.支出,并能够打印收支明细表. 1.主界面示例 --------家庭收支记账软件-------- 1 收支明细 2 登记收入 3 登记支出 4 退出 2.不同模 ...

  2. 基础项目-家庭记录收支程序

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.目标 二.分析 二维数组 三.实现 try catch 错误处理 一.目标 模拟实现一个基于文本界面的<家庭记账软 ...

  3. 基本项目_家庭记录收支程序

    目的: 01.模拟实现一个基于文本界面的<家庭记账软件> 02.掌握初步的编程技巧和调试技巧 03.灵活运用基础知识 !!最后附代码 需求说明: 该软件能够记录家庭的收入.支出,并能够打印 ...

  4. 项目一(基础)家庭记录收支记账软件

    1.项目功能简介 该项目采用分级菜单方式,显示功能选择以及使用. 由收支明细,登记收入,登记支出,退出四个功能进行设计. 收支明细:查询收支明细( 菜单1)时, 将显示所有的收入.支出名细列表 登记收 ...

  5. Java基础项目——基于文本家庭简易收支记账程序

    一.目标 1.模拟实现一个基于文本的家庭简易收支记账程序 2.掌握初步的编程技巧和调试程序 3.灵活使用基础知识 二.项目需求 模拟实现一个基于文本界面(程序控制台)的<家庭收支记录程序> ...

  6. java编写家庭收支记录,Java家庭收支记账小项目(java基础)

    Java家庭收支记账小项目(java基础) Java家庭收支记账小项目(java基础) 需求说明: 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支 ...

  7. java基于微信小程序的大学生个人家庭理财产品 uniapp小程序

    为了方便操作,从多方面把用户的个人支付,个人收入等财产管理的数据,以及他们的生活结余和消费统计,用科学统计的方法把这些数据存储在财务管理软件之中。文中着重论述了该系统的功能与实现,如数据流程与存储、管 ...

  8. eclipse编写的Java家庭收支记账软件

    eclipse编写的Java家庭收支记账软件 界面及操作过程如下所示: -----------------家庭收支记账软件----------------- 1 收支明细 2 登记收入 3 登记支出 ...

  9. 使用晨曦记账本,记录家庭财政收支明细

    随着社会经济的发展起来,人们的生活水平的提高,经济收入的提高,人们也越来越关注家庭收支,管理家庭收支也是大家很关注的话题了.所有选择在电脑上记录一个家庭里的收支情况,方便更好的财务管理! 准备工具: ...

最新文章

  1. 【原创】大叔经验分享(65)spark读取不到hive表
  2. php 获取鼠标的坐标,如何实时获取鼠标的当前坐标-
  3. 【android】夜间模式简单实现
  4. python百题百练 二级题目_计算机二级有必要考吗
  5. 网站设计之Flash简单动画入门介绍(一)字体闪烁及渐显
  6. 翻转二叉树—leetcode226
  7. grep -A :显示匹配行和之后的几行
  8. Windows安全配置加固
  9. python 结构数组_Python-“结构数组”
  10. linux进行MySQL查询_linux下mysql Select查询命令
  11. 人民日报发推欢迎Google重返大陆,FB上长文阐述详细立场
  12. 多线程之阻塞队列ArrayBlockingQueue,BlockingQueue
  13. CSS——div垂直居中及div内文字垂直居中
  14. 介绍一个牛人的机器学习PPT
  15. 基于Java-web的树洞网站的设计与实现
  16. 初中计算机卡片的制作教案,卡片的制作教案..doc
  17. 盘点 | 2023年最值得学的编程语言TOP 5,Python再度夺冠!
  18. FC游戏修改教程(hack)小白文。
  19. 项目管理探究之挣值管理常见计算
  20. 2023大连民族大学计算机考研信息汇总

热门文章

  1. CVE-2022-0391
  2. 字符串替换^和|字符
  3. php Session是怎么实现的?存储在哪里?
  4. 一筐鸡蛋编程解题C语言,求解:一筐鸡蛋:9个9个拿正好拿完8个8个拿还剩1个
  5. C# Naudio 从麦克风输入到声卡输出 录音 放音功能
  6. 数据库性能优化有哪些方式
  7. Juniper防火墙session会话数过高的解决方法
  8. kill prefix hemi hexa hepta holo input 1
  9. Android13-多媒体编程
  10. UAP 添加字典表