需求说明:该软件可以记录家庭的收入、支出并且打印出明细。

下面为项目的流程图:

项目实现:

第一步通过创建两个数组,一个存放收入支出的金额,另一个数组存放说明,这边把数组的第一条存放基本本金,最后一条来存放总金额,之后通过while的死循环用来贯穿整个项目,在while循环上面通过输出语句来实现首界面的实现,在通过switch语句和方法来跳转到其他界面。

通过跳转到收入登记界面,在这个界面可以添加收入的金额和做的什么事情增加的收入,收入界面跟支出界面的登记原理相同。

下一个

是收支明细界面,在这个界面,可以查询到收入和支出以及总金额的相关信息,

最后一个界面是退出界面,在这个界面可以退出系统。

下面为本程序的代码:

public static void main(String[] args) {int[] arr1 =new int [100]; //存放收入的数组String[] arr2 = new String[100];//存放收入说明的数组arr1[99] =1;    //存放这所有记录的条数arr1[0] = 10000;//存放总金额arr2[0] = "基本本金";while(true){System.out.println();System.out.println();System.out.println("--------家庭收支记账软件--------");System.out.println();System.out.println();System.out.println("1.收支明细");System.out.println("2.等级收入");System.out.println("3.登记支出");System.out.println("4.退出");System.out.println("目前共有"+arr1[99]+"条记录");System.out.println();System.out.println("请选择(1-4):");
//            Scanner sc = new Scanner(System.in);Utility u = new Utility();char a = u.readMenuSelection();System.out.println(a);switch (a){case '1':detailed(arr1,arr2);//收支明细break;case '2':income(arr1,arr2);//收入登记break;case '3':expenditure(arr1,arr2);//支出登记break;case '4':char b =signout();//退出if( b =='Y'){System.out.println("退出成功");System.out.println("谢谢使用,祝您生活愉快");return;}else{break;}default:System.out.println("您输入的信息有误");break;}}}//收支明细public static void detailed (int[] arr1, String[] arr2){System.out.println("您当前的余额为:"+arr1[0]);System.out.print("收支\t");System.out.print("收支金额\t");System.out.print("说明\t");System.out.println();for(int i =0; i<arr1[99] ;i++ ){if(arr1[i] > 0){System.out.print("收入"+"\t");}else{System.out.print("支出"+"\t");}System.out.print(arr1[i]+"\t");System.out.print(arr2[i]+"\t");System.out.println();}}//收入登记public static void income(int[] arr1, String[] arr2){Utility u = new Utility();System.out.println("请输入需要登记几条收入信息:");Scanner sc = new Scanner(System.in);int in =sc.nextInt();for (int i =arr1[99]; i< arr1[99]+in; i++){System.out.println("您当前的余额为:"+arr1[0]);System.out.println("请输入第"+(i-arr1[99]+1)+"条收入金额(1-6间的整数):");arr1[i] = u.readNumber();// 获取一个1-6之间的整数System.out.println("请输入第"+(i-arr1[99]+1)+"条收入的说明(1=8个字符)");arr2[i] = u.readString();arr1[0] += arr1[i];}System.out.println("您当前的余额为:"+arr1[0]);System.out.println("添加成功");arr1[99] = arr1[99]+in;return;}//支出登记public static void expenditure(int[] arr1, String[] arr2){Utility u = new Utility();System.out.println("请输入需要登记几条支出信息:");Scanner sc = new Scanner(System.in);int ex = sc.nextInt();for(int i = arr1[99]; i<arr1[99]+ex; i++){System.out.println("您当前的余额为:"+arr1[0]);System.out.println("请输入第"+(i-arr1[99]+1)+"条收入金额(1-6个整数):");arr1[i] = (u.readNumber())*-1;System.out.println("请输入第"+(i-arr1[99]+1)+"条收入的说明(1-8个字符)");arr2[i] = u.readString();arr1[0] += arr1[i];}System.out.println("您当前的余额为:"+arr1[0]);System.out.println("添加成功");arr1[99] = arr1[99]+ex;return;}//退出public  static char signout(){Utility u = new Utility();System.out.println("您确定需要退出吗(Y/N):");
//        Scanner sc = new Scanner(System.in);char b = u.readConfirmSelection();return b;}

关卡七、家庭收支记账系统相关推荐

  1. 家庭收支记账系统--java项目练习

    一.功能介绍: 采用分级菜单模式 主界面为菜单选择: 通过从键盘输入数字来进行记录家庭的收入.支出,并且打印收支明细表等功能 二.代码演示 代码由FamilyAccount Java文件和自定义Uti ...

  2. Go入门案列1:实现一个家庭收支记账系统

    项目来源: b站尚硅谷go教学 使用 通过Create方法来创建myFamilyAccount变量(创建时设置的name和pwd相当于默认密码) ,再直接调用该变量的 MainMeau方法即可,可参照 ...

  3. 家庭收支记账软件--Java

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

  4. 3.项目一(家庭收支记账软件)

    家庭收支记账软件 项目一:家庭收支记账软件 1. 项目演示 2. Utility工具类的说明 Utility工具类提供了一系列的方法,方便我们从控制台获取相关数据: 用户的选择(1-4):readMe ...

  5. java实现简单的家庭收支记账程序

    java实现简单的家庭收支记账程序 文章目录 java实现简单的家庭收支记账程序 前言 一.需求分析 1.要求 2.不同模块功能 3.需定义的变量(仅供参考) 4.一些优化建议 二.工具类 概念 本项 ...

  6. java家庭收支记账软件-day01

    import java.util.Scanner; public class itemfamily {public static void main(String[] args) {Scanner s ...

  7. java编写家庭收支记账程序

    一.明确需求:                                                                                              ...

  8. go 家庭收支记账软件

    项目开发流程 项目需求说明 模拟实现基于文本界面的<家庭记账软件> 该软件能够记录家庭的收入.支出,并能够打印收支明细表 项目的界面 -------------家庭收支记账软件------ ...

  9. Java实现家庭收支记账软件

    题目来自于尚硅谷基础项目1,其中没有使用项目提供的现成的方法 测试类 package test;import face.MainInterFace; import code.*; public cla ...

  10. Go 小项目1 - 家庭收支记账软件

    Go 小项目1 - 家庭收支记账软件 一)需求 1)模拟实现基于文本界面的<家庭记账软件> 2)该软件能够记录家庭的收入.支出,并能够打印收支明细表 二)编码 1)功能 1.完成主菜单的编 ...

最新文章

  1. SpringBoot学习(一)
  2. linux shell 提示符设置
  3. php中文网面试题_2020年PHP面试题大汇总(收藏)
  4. centos7安装python3.7.4_Centos7升级Python3.7.4
  5. 背包形动态规划 fjutoj2375 金明的预算方案
  6. 【jq插件】Grade-打分效果
  7. c语言随机产生四位数,习题:随机产生N个四位正整数,将其中的素数选出,并升序排列之输…...
  8. 50道编程小题目之【完数】
  9. AtomicStampedReference解决CAS的ABA问题
  10. 阿里云数据库再添新成员,企业级MariaDB正式开卖!
  11. python中面向对象的缺点_面向对象中的多态在 Python 中是否没有什么意义?
  12. js获取数组中的最大值和最小值的方法汇总
  13. kettle 下载地址
  14. bootdo mysql_iBootDo: 基于BootDo项目定制版,兼容MySQL、Oracle
  15. ArcGIS空间大数据平台与HadoopSpark大数据平台的集成与开发
  16. K8s问题【flannel一直重启问题,CrashLoopBackOff】
  17. js使用tween动画(Tween.js)
  18. 7-4 单链表基本操作
  19. 编程语言:Java与C语言C++的区别是什么?知道该学什么了吧!
  20. “AI+”将比“互联网+”落地更容易

热门文章

  1. 安川伺服驱动器软件SigmaWin
  2. JDK 动态代理和CGLIB 动态代理
  3. Ubuntu通过清华镜像源下载软件
  4. ebookpk-java手机英中电子词典_关于理解和支持的句子
  5. PostgreSQL12.2_cn.chm 中文手册 最新版
  6. PostgreSQL12.2-CN-v1.0中文手册.chm下载
  7. Linux系统刻盘失败,linux下如何刻盘
  8. 如何把caj转成pdf
  9. Java IO(文件流)
  10. 高德Mapabc地图标注 基础篇