java编写家庭收支记账程序

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

项目采用分级菜单方式。主菜单如下:

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

                                                 1 收支明细

                                                 2 登记收入

                                                 3 登记支出

                                                 4 退 出 请选择(1-4):

二、思路:

1.要使用户录入的数据存储,那么就需要定义一个二维数组进行存储。

2.此界面要通过选择退出程序 才会结束运行,所以界面的展示应该写在一个死循环里面。

3.因为编写此小程序使用字符串等,我用的String类型定义二维数组。

4.需要执行的操作,用switch语句来实现。

三、 步骤:

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

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

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

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

5. 点击退出(菜单4)后,确认该操作后即可退出程序。

 四、小菜鸡的代码演示图

import java.util.Scanner;

public class familyAccount {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String[][] arr = new String[10][4];
        int count = 0;
        int sumNum = 10000;
        while (true) {
            System.out.println("----------------家庭收支记账软件----------------");
            System.out.println("                  1.收支明细");
            System.out.println("                  2.登记收入");
            System.out.println("                  3.登记支出");
            System.out.println("                  4.退 出\n");
            System.out.println("请选择(1-4):");
            int choose = sc.nextInt();
            switch (choose) {
                case 1:
                    System.out.println("----------------收支明细----------------");
                    System.out.println("收支\t\t账户总金额\t收支金额\t\t说明");
                    for(int i=0; i<arr.length; i++) {
                        if(arr[i][0] != null) {
                            System.out.println(arr[i][0]+"\t\t"+arr[i][1]+"\t\t"+arr[i][2]+"\t\t"+arr[i][3]);
                        }
                    }
                    break;
                case 2:
                    System.out.println("请输入本次收入的金额:");
                    int income = sc.nextInt();
                    System.out.println("请输入本次收入的说明:");
                    String explainX = sc.next();
                    arr[count][0] = "收入";
                    sumNum += income;
                    arr[count][1] = sumNum + "";
                    arr[count][2] = income + "";
                    arr[count][3] = explainX + "";
                    count++;
                    System.out.println("添加成功");
                    break;
                case 3:
                    System.out.println("请输入本次支出的金额:");
                    int pay = sc.nextInt();
                    System.out.println("请输入本次支出的说明:");
                    String explainY = sc.next();
                    arr[count][0] = "支出";
                    sumNum -= pay;
                    arr[count][1] =sumNum + "";
                    arr[count][2] = pay + "";
                    arr[count][3] = explainY + "";
                    count++;
                    System.out.println("添加成功");
                    break;
                case 4:
                    System.out.println("确认是否退出(y/n)");
                    String t = sc.next();
                    char c = t.charAt(0);
                    if((c == 'y' || c=='Y') && t.length()==1 ){
                        System.out.println("退出成功!");
                        return;
                    }else {
                        System.out.println("已取消退出!");
                    }

            }
        }

    }
}

猜你喜欢

转载自blog.csdn.net/EVILDOERyyds/article/details/119537005
今日推荐