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

界面及操作过程如下所示:
-----------------家庭收支记账软件-----------------
1 收支明细
2 登记收入
3 登记支出
4 退 出
请选择(1-4):

选择1:
-----------------当前收支明细记录-----------------
收支 账户金额 收支金额 说 明
收入 11000 1000 劳务费
支出 10200 800 物业费
选择2:
本次收入金额:1000
本次收入说明:劳务费_
选择3:
本次支出金额:800
本次支出说明:物业费_
根据需求提取出类,属性和方法,完成上述功能

运行结果




测试类Client

package com.gem.记账;import java.util.Scanner;public class Client {public static void main(String[] args) {Home home = new Home();//实例化Scanner scanner = new Scanner(System.in);while (true) { //循环界面功能menue(scanner, home); //界面}}private static void menue(Scanner scanner, Home home) {System.out.println("-----------家庭收支记账软件---------------");System.out.println("1.收支明细");System.out.println("2.登记收入");System.out.println("3.登记支出");System.out.println("4.退出");System.out.println("选择(1-4)");int choice = Integer.parseInt(scanner.nextLine().trim());//选择switch (choice) {case 1://收支明细shouzhi(home);break;case 2://登记收入dengji(scanner, home);break;case 3://登记支出zhichu(scanner, home);break;case 4://退出System.exit(0);break;default:System.out.println("输入出错!");break;}}//等级收入private static void dengji(Scanner scanner, Home home) {// TODO Auto-generated method stubSystem.out.println("选择2:");System.out.println("  本次收入金额为:");double statemoney = Double.parseDouble(scanner.nextLine().trim());System.out.println("本次收入说明");String shuoming = scanner.nextLine().trim();String state = "收入";Recond a1 = new Recond(statemoney, shuoming, state);//传递收入金额,收入说明,和判断是"收入"home.dengjishouru(a1);}//等级支出private static void zhichu(Scanner scanner, Home home) {// TODO Auto-generated method stubSystem.out.println("选择3:");System.out.println("  本次支出金额为:");double statemoney = Double.parseDouble(scanner.nextLine().trim());System.out.println("本次收入说明");String shuoming = scanner.nextLine().trim();String state = "支出";Recond a1 = new Recond(statemoney, shuoming, state);home.dengjizhichu(a1);}//全部收支明细private static void shouzhi(Home home) {home.shouzhimingxi();}}

类Home

package com.gem.记账;public class Home {Recond recond[] = new Recond[100];//对象数组static int count = 0;//记录长度//显示所有信息public void shouzhimingxi() {System.out.println("--------当前收支明细记录------------------");System.out.println("id\t收支\t账户金额\t收支金额\t说     明");if (count == 0) {System.out.println("暂无信息显示,请重新录入");return;}for (int i = 0; i < count; i++) {recond[i].showlist();}System.out.println("-------------------------------------------");}//登记收入public void dengjishouru(Recond recond) {this.recond[this.count++] = recond; //先把键盘录入的数据放到recond[count]里面if ((count - 1) == 0) { //如果是第一次等级 那么在初始化money的基础上进行累加this.recond[this.count - 1].setMoney(this.recond[this.count - 1].getMoney() + this.recond[this.count - 1].getStatemoney());} else { //如果是第二次之后,那么则在recond对象数组上一次的money基础上进行累加,再赋值给当前的this.recond[this.count - 1].setMoney(this.recond[this.count - 2].getMoney() + this.recond[this.count - 1].getStatemoney());}System.out.println("登记收入成功");}//登记支出public void dengjizhichu(Recond recond) { //支出原理同收入原理this.recond[this.count++] = recond;if ((count - 1) == 0) {this.recond[this.count - 1].setMoney(this.recond[this.count - 1].getMoney() - this.recond[this.count - 1].getStatemoney());} else {this.recond[this.count - 1].setMoney(this.recond[this.count - 2].getMoney() - this.recond[this.count - 1].getStatemoney());}System.out.println("登记支出成功");}
}

Recond类

package com.gem.记账;public class Recond {private static int bianhao = 1;//利用静态变量实现每次创建id+1private int id;//收支的编号private String state; //用于判断是收入/支出状态private double money = 10000; //账户余额初始值private double statemoney; //收支金额private String shuoming; //说明{this.id = bianhao++;}//自定义构造方法public Recond(double money2, String shuoming2, String state2) {// TODO Auto-generated constructor stubthis.statemoney = money2;this.shuoming = shuoming2;this.state = state2;}public void showlist() {System.out.println(this.id + "\t" + this.state + "\t" + this.money + "\t" + this.statemoney + "\t" + this.shuoming);}public static int getBianhao() {return bianhao;}public static void setBianhao(int bianhao) {Recond.bianhao = bianhao;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getState() {return state;}public void setState(String state) {this.state = state;}public double getMoney() {return money;}public void setMoney(double money) {this.money = money;}public double getStatemoney() {return statemoney;}public void setStatemoney(double statemoney) {this.statemoney = statemoney;}public String getShuoming() {return shuoming;}public void setShuoming(String shuoming) {this.shuoming = shuoming;}}

eclipse编写的Java家庭收支记账软件相关推荐

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

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

  2. java家庭收支记账软件

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Ubuntu 虚拟机空间不足增加空间笔记
  2. MAC 下SVN 删除文件失败 提示emains in tree-conflict
  3. Golang modules 初探
  4. java JFrame 设置背景颜色无效的理解
  5. 开源,免费和跨平台 - MVP ComCamp 2015 KEYNOTE
  6. css3 :nth-child()选择器的使用
  7. flush方法和close方法的区别
  8. 【拆解】华为Mate Xs ,胶水用的出乎意外的少!
  9. 公司项目拓扑的演变过程
  10. 最大限度地降低多线程 C# 代码的复杂性
  11. 987. 二叉树的垂序遍历
  12. el表达式 多条件判断
  13. 几何畸变图像恢复 openCV3 - 数字图像处理作业3
  14. MyBatis中的@Mapper注解 @Mappe与@MapperScan关系
  15. 保姆级别mysql 基础练习题
  16. 阿里云云计算 52在线实验--云监控初体验
  17. 太强了 GitHub中文开源项目榜单出炉,暴露了程序员的硬性需求
  18. ADSL拨号代理服务器实现HTTP代理的搭建过程
  19. 【NodeJS】Codecademy学习笔记
  20. Java之支付宝支付(电脑网站支付)案例实战

热门文章

  1. QDateTime时间相减
  2. jest react测试
  3. 使用MV制作最简单的游戏:我要做游戏(9)PLUS
  4. css一像素线条,CSS中比一像素还要细的边框
  5. 论文看不下去,头晕怎么办?
  6. Safari 为什么取这个名字
  7. 支付宝商家多个账号下的账单管理工具配置指南
  8. C# .NET .aspx获取url网址链接的参数值函数方法
  9. 东北大学c语言绩点成绩,东北大学关于本科生课程成绩基本信息管理相关规定...
  10. 我的第一个汇编语言程序:HelloWorld