家庭记账程序(第一版)

该博客介绍了一个使用Java编程实现的家庭收支记账软件,包括初始资金设定、收入和支出登记、收支明细查询及退出功能。用户通过控制台交互进行操作,软件能够动态更新并显示账户余额和交易详情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目要求:

/*1.假设家庭起始的生活基本金为10000元

2.每次登记收入(菜单2)后,收入的金额应累加到基本金上,并记录本次收入明细,以便后续的查询

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

4.查询收支明细( 菜单1)时,将显示所有的收入、支出名细列表 */

我的实现过程:

控制台输出选项后微调过程:

 如图所示,\t :横向制表(HT) (跳到下一个TAB位置) 。\t制表符每个空8个补全当前字符串长度到8的整数倍,可以调整选项位置直至居中。

 

 

import java.util.Objects;
import java.util.Scanner;

/*1.假设家庭起始的生活基本金为10000元
2.每次登记收入(菜单2)后,收入的金额应累加到基本金上,并记录本次收入明细,以便后续的查询
3.每次登记支出(菜单3)后,支出的金额应从基本金中扣除,并记录本次支出明细,以便后续的查询。
4.查询收支明细( 菜单1)时,将显示所有的收入、支出名细列表 */
public class FamilyLedger {
    public static void main(String[] args) {
// 因为使用分级目录,所以会在控制台输入想进入的步骤,导入Scanner
        Scanner sc = new Scanner(System.in);
        System.out.println("----------------家庭收支记账软件-----------------");
        System.out.println("\t\t\t\t1 收支明细");
        System.out.println("\t\t\t\t2 登记收入");
        System.out.println("\t\t\t\t3 登记指出");
        System.out.println("\t\t\t\t4 退 出");
        System.out.println("请选择(1-4):");
        int choice = sc.nextInt();

        // 限定范围
        if (choice < 1 || choice > 4) {
            System.out.println("您输入的内容有误!");
        }

        //因为除了一开始初始资金固定,后面都会有动态变化
        //初始账单
        int start = 0;
        if (choice == 1) {
            Scanner a = new Scanner(System.in);
            System.out.println("请输入初始金额:");
            start = a.nextInt();
        }

        //收入账单
        int income = 0;
        String source = "";
        if (choice == 2) {
            Scanner a = new Scanner(System.in);
            System.out.println("请输入收入金额:");
            System.out.println("请输入收入来源:");
            income = a.nextInt();
            source = a.next();
        }
        //支出账单
        int expenditure = 0;
        String reason = "";
        if (choice == 3) {
            Scanner b = new Scanner(System.in);
            System.out.println("请输入支出金额:");
            System.out.println("请输入支出原因:");
            expenditure = b.nextInt();
            reason = b.next();
        }


        //因为涉及跳转对应菜单,这里选择流程控制语句中的switch语句
        switch (choice) {
            case 1:
                System.out.println("----------------您的收支明细----------------");
                System.out.println("\t\t\t\t初始资金" + start + "元");
                break;
            case 2:
                System.out.println("收支\t" + "账户总金额\t\t" + "收入金额\t\t" + "说明");
                System.out.println("收入\t" + (10000 + income) + "\t\t\t" + (+income) + "\t\t\t" + source);
                break;
            case 3:
                System.out.println("收支\t" + "账户总金额\t\t" + "收入金额\t\t" + "说明");
                System.out.println("收入\t" + (10000 - expenditure) + "\t\t\t" + (-expenditure) + "\t\t\t" + reason);
                break;
            case 4:
                //退出界面
                String exit = "";
                Scanner c = new Scanner(System.in);
                System.out.println("请问您确定要退出此登录界面吗?");
                System.out.println("确定退出(y)/不,我再想想(n):");
                exit = c.next();
                if (Objects.equals(exit, "y")) {
                    System.out.println("您已退出菜单!");
                    return;
                } else if (Objects.equals(exit, "n")) {
                    System.out.println("您已进入菜单!");
                    break;
                }
        }

    }
}

输出结果:

输出1的情况:

输出2的情况: 

输出3的情况:

输出4的情况:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值