Java基础项目:家庭记录收支程序

需求分析
要求:该软件能够记录家庭的收入、支出,并能够打印收支明细表。

1.主界面示例

--------家庭收支记账软件--------

1 收支明细
2 登记收入
3 登记支出
4 退出

2.不同模块功能

(1)主界面——输入选项——判断选项,进行不同功能块

--------家庭收支记账软件--------

1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):

(2)收支明细展示界面——向用户展示已有的记录

--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):1
--------收入明细表--------
收支        账户总金额    收支金额        说明

(3)登记收入/登记支出界面——接收用户输入计算总计并添加数据记录

--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):2
请输入本次收入的说明:
搬砖
请输入本次收入的金额:
500
添加成功!
--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):1
--------收入明细表--------
收支        账户总金额    收支金额        说明
收入        10500        +500        搬砖
--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):3
请输入本次支出的说明:
吃烧烤
请输入本次支出的金额:
1000
添加成功!
--------家庭收支记账软件--------
1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):1
--------收入明细表--------
收支        账户总金额    收支金额        说明
收入        10500        +500        搬砖
支出        9500        -1000        吃烧烤


(4)退出界面——用于退出程序

--------家庭支记账软件--------

1 收支明细
2 登记收入
3 登记支出
4 退出
请选择(1-4):4
退出成功!

3.实现该软件需要用到的方法(仅供参考)
1.定义一个main方法

(1)用输出语句完成主界面的编写

(2)用Scanner实现键盘录入数据

(3)用switch语句完成操作的选择

(4)用while(ture)死循环,完成后再次回到主界面

(5)完成操作的选择时,可以直接调用已经定义好的方法。[收支明细(detail),登记收入(registeredIncome),登记支出(expenditure)]

public static void main(String[] args) {
        //创建对象,用Scanner实现键盘录入数据
        Scanner sc = new Scanner(System.in);
        //接收数据
        String[] arr = new String[10];
        //定义账户初始金额
        int [] brr= {10000};
        int count = 0;
        //使用while死循环语句,完成后再次回到主界面
        while (true)
        {
            //用输出语句完成主界面的编写
            System.out.println("--------家庭收支记账软件--------");
            System.out.println("1 收支明细");
            System.out.println("2 登记收入");
            System.out.println("3 登记支出");
            System.out.println("4 退出");
            System.out.print("请选择(1-4):");
      //判断是否选择了主界面已有的选项
            int num = sc.nextInt();
            if (num > 4 || num < 1) {
                System.out.println("请输入正确数字");
            } else {
                //用switch语句完成操作的选择
                switch (num) {
                    case 1:
                        //显示表头信息
                        //\t其实就是tab键的位置
                        System.out.println("--------收入明细表--------");
                        System.out.println("收支\t\t账户总金额\t收支金额\t\t说明");
                        //直接调用已经定义好的方法。[收支明细(detail)]
                        detail(arr);
                        break;
                    case 2:
                        //直接调用已经定义好的方法。[登记收入(registeredIncome)]
                        arr[count] = registeredIncome(brr);
                        count++;
                        break;
                    case 3:
                        //直接调用已经定义好的方法。[登记支出(expenditure)]
                        arr[count] = expenditure(brr);
                        count++;
                        break;
                }
                if(num==4){
                    System.out.println("退出成功!");
                    break;
                }
            }
        }
    }

2.定义一个方法,用于查看收支明细

public static  void detail(String[]arr){
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != null)
            {
                System.out.println(arr[i]);
            }
        }
    }

3.定义一个方法,用于登记收入

public static String registeredIncome(int []brr){
        //键盘录入信息,显示提示信息,提示要输入何种信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入本次收入的说明:");
        String where = sc.nextLine();
        System.out.println("请输入本次收入的金额:");
        int quantity = sc.nextInt();
        System.out.println("添加成功!");
        brr[0] += quantity;
        String a =  "收入" + "\t\t" + brr[0]+"\t\t+"+quantity + "\t\t" + where;
        return a;

    }

4.定义一个方法,用于登记支出

public static String expenditure( int []brr) {
        //键盘录入信息,显示提示信息,提示要输入何种信息
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入本次支出的说明:");
        String where = sc.nextLine();
        System.out.println("请输入本次支出的金额:");
        int quantity = sc.nextInt();
        System.out.println("添加成功!");
        brr[0]-=quantity;
        String a = "支出" + "\t\t" + brr[0]+"\t\t-"+quantity + "\t\t" + where;
        return a;

    }

4.总结编辑代码的感受

(1)在代码编写时加上自己的注释,方便自己与他人理解代码

(2)将不同功能块打包成方法能够减少代码量,提高编程效率

(3)在代码编程过程中,尽可能考虑到用户的体验感,注意细节(例如:在合适的位置使用\t)。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值