java 家庭收支程序(详解)

目录

项目概述

软件功能

项目说明‘

涉及知识点

需求说明

程序代码示例

思路介绍

代码实现


项目概述

软件功能

记录家庭的收入、支出,并能够打印收支明细表以及总额。

项目说明

项目主要是方法实现,4个方法实现4个功能。数据不会永久存储。

涉及知识点

1.变量的定义
2.基本数据类型的使用
3.循环语句
4.分支语句
5.方法声明、调用和返回值的接收

6.debug的使用等

需求说明

假设家庭起始的生活基本金为10000元。

每次登记收入后, 收入的金额应累加到基本金上,并记录本次收入明细, 以便后续的查询。

每次登记支出后, 支出的金额应从基本金中扣除,并记 录本次支出明细,以便后续的查询。


查询收支明细时,显示所有的收入和支出明细列表。

程序代码示例

思路介绍

表头等固定内容定义一个字符串变量接收,表头主要时打印出来。然后在循环里面(可以反复记录)用switch...case...调用4个方法即可。

代码实现

收支明细方法:没有内容提示用户(if实现)。定义布尔类型默认false,后面增加支出或收入内容则改为true;具体代码如下:

 public static void test1(){
        if (isHas){//isHas 默认false,有值的改动就改为true
            System.out.println(info);//info为表头内容(字符串)
        }else {
            System.out.println("无信息,请录入后查看!");
        }
    }

收入方法:接收收入金额和收入说明,然后在定义好的表头后面打印。

public static void test2(){
        System.out.println("本次收入金额:");
        money = sc.nextDouble();
        if (money<0){
            System.out.println("收入金额不合法!");
        }
        balance+=money;
        System.out.println("本次收入说明:");
        temp = sc.next();
        info+=("收入\t"+money+"\t\t"+balance+"\t\t"+temp+"\n");
        isHas=true;//输入内容  这个变量改为true  对应方法一
    }

支出方法:基本和收入方法类似

public static void test3(){
        System.out.println("输入支出金额:");
        money= sc.nextDouble();
        if (money>balance||money<=0){
            System.out.println("金额不合法!");
        }
        balance-=money;
        System.out.println("本次支出说明:");
        temp= sc.next();
        info+=("支出\t"+money+"\t\t"+balance+"\t\t"+temp+"\n");
        isHas=true;
    }

退出方法:要和用户有互动,是否确认退出?只接收y/n,如果不是这两个字符则反复询问,y退出,n返回软件。

public static void test4(){
        while (true){
            System.out.println("请确认退出系统(y/n)");
            yn=sc.next().charAt(0);
            if (yn=='y'||yn=='n'){
                break;
            }
        }
        if (yn=='y'){
            judge=false;
        }
    }

最后在main方法调用所有方法即可。

public static void main(String[] args) {


        do {
            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 num = sc.nextInt();
            switch (num) {
                case 1:
//                    System.out.println("收支");
                    test1();
                    break;
                case 2:
//                    System.out.println("登记收入");
                    test2();
                    break;
                case 3:
//                    System.out.println("等级指出");
                    test3();
                    break;
                case 4:
                    test4();
                    break;
                }
            }while (judge) ;
        System.out.println("退出成功!");
    }

最终效果为:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值