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

分析

  • 需要使用Scanner输入语句,if-else判断语句,while、for循环;
  • 使用ArraysList容器来存储支出或收入的说明和金额;

代码实现

目录

分析

代码实现

运行结果


package hw;import java.util.ArrayList;
import java.util.List;public class FamilyAccount {private int sum;private List<String> sout = new ArrayList<String>();private List<String> sin = new ArrayList<String>();private List<Integer> iout = new ArrayList<Integer>();private List<Integer> iin = new ArrayList<Integer>();public FamilyAccount() {this.sum=10000;//默认基本金}public void PrintMainMenu(){//打印主菜单System.out.println("-------------家庭收支记账软件---------------");System.out.println("              1.收支明细");System.out.println("              2.登记收入");System.out.println("              3.登记支出");System.out.println("              4.查询本基金");System.out.println("              5.退   出");System.out.println("-----------------------------------------");}public void DetailOfIncomeAndExpenditure(){//收支明细for(int i=0;i<this.iout.size();i++){System.out.println("  支出金额:"+this.iout.get(i)+"  支出说明:"+this.sout.get(i));}for(int i=0;i<this.iin.size();i++){System.out.println("  收入金额:"+this.iin.get(i)+"  收入说明:"+this.sin.get(i));}}public void input(int income,String explain){//收入操作this.iin.add(income);//存储收入金额this.sin.add(explain);//存储收入说明
//         System.out.println("本次收入金额:" + income);
//         System.out.println("本次收入说明:" + explain);this.sum += income;//把收入加到基本金里GetGrossIncome();//输出基本金System.out.println("结束登记请按1,或按任意键继续登记");}public void expend(int expend,String oexplain){//支出操作this.iout.add(expend);this.sout.add(oexplain);
//        System.out.println("本次支出金额:"+expend);
//        System.out.println("本次支出说明:"+oexplain);this.sum-=expend;GetGrossIncome();System.out.println("结束登记请按1,或按任意键继续登记");}public void GetGrossIncome(){//获得基本金System.out.println("剩余本基金:"+this.sum);}
}
package hw;
import java.util.Scanner;
public class hw5 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);FamilyAccount fa = new FamilyAccount();System.out.println("欢迎来到家庭收支记账软件");System.out.println("按任意键进入主菜单");scan.nextInt();fa.PrintMainMenu();over: while (true) {System.out.print("请选择(1-5):");switch (scan.nextInt()) {case 1:fa.DetailOfIncomeAndExpenditure();fa.GetGrossIncome();break;case 2:while(true) {System.out.print("本次收入金额:");int income = scan.nextInt();System.out.print("本次收入说明:");String iexplain = scan.next();fa.input(income, iexplain);if(scan.nextInt()==1) break;}break;case 3:while(true) {System.out.print("本次支出金额:");int expend = scan.nextInt();System.out.print("本次支出说明:");String oexplain = scan.next();fa.expend(expend, oexplain);if(scan.nextInt()==1) break;}break;case 4:fa.GetGrossIncome();System.out.print("按任意键返回主菜单:");scan.nextInt();fa.PrintMainMenu();break;case 5:break over;//直接结束while外循环}}System.out.println("已退出!");}
}

运行结果

家庭收支记账软件(Java简易版)相关推荐

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

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

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

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

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

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

  4. Java项目:家庭收支记账软件

    目录 前言 一.任务要求 二.实现代码 总结 前言 最近花了一个星期看了JAVA经典书籍<Java核心技术卷I>,囫囵吞枣般看完,领略了其中大概内容,花时间看视频巩固一下,就去b站看了尚硅 ...

  5. java基础(家庭收支记账软件)

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

  6. java家庭收支记账软件

    说明: 这篇文章主要运用了一些java基础知识的一个综合运用 主要涉及以下知识点:  变量的定义  基本数据类型的使用  循环语句  分支语句  方法声明.调用和返回值的接收  简单的屏幕 ...

  7. Java项目一(案例):家庭收支记账软件

    Java项目一(案例):家庭收支记账软件 项目概述 软件功能 项目说明 涉及Java知识点 软件需求说明 程序代码示例 FamilyAccount.class文件 自定义Utility.class工具 ...

  8. Java实现家庭收支记账软件及编写过程中的注意事项

    一.思路 1.明确需求 总需求也就是家庭收支记账软件要实现的功能,要能实现记录家庭的收入与支出,并打印收支明细表. 2.实现步骤 第一步要展示程序的主界面,内容要包含四个菜单选项. 第二步实现根据用户 ...

  9. Java开发一个家庭收支记账软件

    4.请开发一个家庭收支记账软件 界面及操作过程如下所示: -----------------家庭收支记账软件----------------- 1 收支明细 2 登记收入 3 登记支出 4 退 出 请 ...

最新文章

  1. Leetcode:169. 求众数
  2. 整型转化 血泪的教训
  3. 6 计算机应用技,2019年10月自考计算机应用技术习题及答案6
  4. 为什么c++文件只能执行一次_numba从入门到精通(1)—为什么numba能够加速
  5. js排序算法详解-桶排序
  6. 【bash】今天你坑队友了吗
  7. Linux内核中的PID散列表实例
  8. Julia: 使用Flux实现手写数字识别
  9. 惯导系统模型及其仿真(五)
  10. php主页备案号底部中间,如何获取公安备案号?如何将公安备案号放到网站底部?...
  11. html 透明玻璃效果,PS教程:制作透明玻璃效果(一)
  12. 杰理之手机同步时间接口【篇】
  13. python修改图片,Python之修改图片像素值的方法
  14. 微信小程序也许会用到上传视频,针对视频转码转为m3U8格式即web端可以使用的解决办法
  15. [乐意黎原创]Win10 升级1909版本后,内存占用率居高不下的解决办法
  16. 为美术质量,如何建立RD团队
  17. SSH连接IOS越狱设备
  18. 数据库系统的组成与结构
  19. CDI技术第一步 Hello World!
  20. 卡巴斯基官方论坛送一年免费升级

热门文章

  1. NS4115 1A 内置功率管 LED 恒流驱动器
  2. 餐饮供应链管理系统解决方案
  3. 无损放大图片怎么做?工具分享
  4. 如何用python画函数图像_使用python的pyplot绘制函数实例
  5. There is no map catalog on the database. Please first create Map Catlog
  6. oracle 客户端 for mips,Imagination/Oracle携手推支持MIPS架构的Java SE 8
  7. RAR文件格式(计算机数据恢复)
  8. java计算机毕业设计霍山石斛网站源程序+mysql+系统+lw文档+远程调试
  9. R语言数据可视化分析案例:探索BRFSS数据
  10. python模拟浏览器下载文件_python第一个脚本,模拟浏览器下载文件