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

需求:

使用二维数组记录,如图:

 界面要求:

 登记收入:

 登记支出:

 

 代码实现:

设定初始值:

int x = 1;//后面需要通过x来找数组中的索引
        String[][] arr = new String[10][4];
        Scanner sc = new Scanner(System.in);
        //基础数据
        arr[0][0] = "收支";
        arr[0][1] = "账户总金额";
        arr[0][2] = "收支金额";
        arr[0][3] = "说明";
        arr[1][0] = "收入";
        arr[1][1] = "10500";
        arr[1][2] = "+500";
        arr[1][3] = "板砖";

 为了能让界面一直显示,用死循环while(true){}来实现,同时要把判断语句加入死循环中

 while (true) {
            System.out.println("-------------家庭收支记账软件-----------");//开局表达
            System.out.println("1 收支明细");
            System.out.println("2 登记收入");
            System.out.println("3 登记支出");
            System.out.println("4 退 出");
            System.out.println();
            System.out.println("请选择(1-4):");
            String sr = sc.next();//输入

然后用switch进行判断输入的数来选择进行操作:(switch(sr){})

输入1时:

case "1"://收支明细
                    for (int q = 0; q < arr.length; q++) {
                        for (int c = 0; c < arr[q].length; c++) {
                            if (arr[q][c] != null) {//如果数组内的值为空则不打印
                                if (q != 0) {
                                    System.out.print(" " + arr[q][c] + "\t\t");
                                } else {
                                    System.out.print(arr[q][c] + "\t\t");
                                }
                            }
                            if (c == 3 & arr[q][c] != null) {
                                System.out.println();
                            }
                        }
                    }
                    break;

输入2时:

case "2"://收入登记
                    System.out.println("请输入一个数");
                    Scanner scanner = new Scanner(System.in);//创建新的对象,用来存后面的输入的数据
                    if(scanner.hasNextInt()){//这里的scanner.hasNextInt()则是判断上面创建的对象输入的是否为int类型
                        int t = scanner.nextInt();//收支金额
                        int integer = Integer.parseInt(arr[x][1]);//让String强转为int,用到Integer.valueOf,Integer包装类
                        x++;
                        arr[x][0] = "收入";
                        integer = integer + t;//用强转为int类型的上一位的数值进行运算
                        arr[x][1] = integer + ""; //拼接,也就让int类型强转成String
                        arr[x][2] = "+" + t;//这样表示的能把int类型存入Spring
                        System.out.println("请说明理由");
                        String r = sc.next();//说明
                        arr[x][3] = r;
                        System.out.println("添加成功");
                    }else{//如果不是则打印下面
                        System.out.println("无法识别");
                    }
                    break;

注意:这里用到了包装类Integer.valueOf(需要强制转换的数据),同时用int类型来记录数据

输入3时:

case "3"://收入登记
                    System.out.println("请输入一个数");
                    Scanner scanner1 = new Scanner(System.in);//创建新的对象,用来存后面的输入的数据
                    if (scanner1.hasNextInt()) {//这里的scanner.hasNextInt()则是判断上面创建的对象输入的是否为int类型
                        int y = scanner1.nextInt();//收支金额
                        int integer1 = Integer.parseInt(arr[x][1]);//让String强转为int,用到Integer.valueOf,Integer包装类
                        x++;
                        arr[x][0] = "支出";
                        integer1 = integer1 - y;//用强转为int类型的上一位的数值进行运算
                        arr[x][1] = integer1 + ""; //拼接,也就让int类型强转成String
                        arr[x][2] = "-" + y;//这样表示的能把int类型存入Spring
                        System.out.println("请说明理由");
                        String u = sc.next();//说明
                        arr[x][3] = u;
                        System.out.println("添加成功");
                    } else {
                        System.out.println("无法识别");
                    }
                    break;

输入4时:

case "4":
                    System.out.println("是否确定");
                    String p = sc.next();
                    if (p.equals("否")) {//equals比较两个数是否相同
                        break;
                    } else if (p.equals("是")) {
                        return;
                    } else {
                        System.out.println("无法识别");
                    }
                    break;

注:用到equals比较,比较两个数是否相同,相同则执行下面的操作。

如果输入的不是(1-4)的字符串则打印下面

default://如果输入的字符串不是上面的则打印下面
                    System.out.println("输入有误");

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值