家庭收支项目代码

这是一个关于家庭收支项目的Java代码实现,包括主函数和封装的方法。代码旨在帮助管理和记录家庭财务。
摘要由CSDN通过智能技术生成

家庭收支项目

 

 接下来放代码

package study_04关卡7;

import java.util.*;

public class 家庭收支程序 {
    public static void main(String[] args) {
        分离.mainInterface();
        char a = 分离.functionSelection();
        String[][] arr = new String[1000][4];
        String[] arr1 = new String[4];
        arr[0][0] = "收支";
        arr[0][1] = "账户总金额";
        arr[0][2] = "收支金额";
        arr[0][3] = "说     明";
        arr[1][0] = "默认";
        arr[1][1] = "10000";//7
        arr[1][2] = "默认   ";//5
        arr[1][3] = "默认     "; //62
        for (; ; ) {
            if (a == '2') {
                分离.two(arr1, arr);
                System.out.println("亲爱的用户,请您观察一下您输入的数据是否准确无误");
                System.out.println(Arrays.toString(arr1));
                System.out.println("如果您想重新输入的话,请输入数字1或者2,\n1表示重新输入,2表示返回主界面");
                char b = 分离.functionSelectionTwo();
                for (; ; ) {
                    if (b == '1') {
                        分离.two(arr1, arr);
                        System.out.println("亲爱的用户,请您观察一下您输入的数据是否准确无误");
                        System.out.println(Arrays.toString(arr1));
                        System.out.println("如果您想重新输入的话,请输入数字1或者2,\n1表示重新输入,2表示返回主界面");
                        b = 分离.functionSelectionTwo();
                        continue;
                    } else if (b == '2') {
                        分离.mainInterface();
                        分离.arr(arr, arr1);
                        break;
                    }
                }
            } else if (a == '3') {
                分离.three(arr1, arr);
                System.out.println("亲爱的用户,请您观察一下您输入的数据是否准确无误");
                System.out.println(Arrays.toString(arr1));
                System.out.println("如果您想重新输入的话,请输入数字1或者2,\n1表示重新输入,2表示返回主界面");
                char b = 分离.functionSelectionTwo();
                for (; ; ) {
                    if (b == '1') {
                        分离.three(arr1, arr);
                        System.out.println("亲爱的用户,请您观察一下您输入的数据是否准确无误");
                        System.out.println(Arrays.toString(arr1));
                        System.out.println("如果您想重新输入的话,请输入数字1或者2,\n1表示重新输入,2表示返回主界面");
                        b = 分离.functionSelectionTwo();
                        continue;
                    } else if (b == '2') {
                        分离.mainInterface();
                        分离.arr(arr, arr1);
                        break;
                    }
                }
            } else if (a == '1') {
                for (int i = 0; i > -1; i++) {
                    boolean bo = true;
                    for (int j = 0; j < 4; j++) {
                        if (arr[i][j] == null) {
                            bo = false;
                            break;
                        }
//                        System.out.print(arr[i][j] + ",");
                        System.out.print(String.format("%-10s",arr[i][j]));
                    }
                    System.out.println();
                    if (bo == false) {
                        break;
                    }
                }
                分离.mainInterface();
            }else{
                break;
            }
            a = 分离.functionSelection();
        }
    }
}

以上就是写的主函数,接下来给大家放封装的方法。分离这两个字是类名,后面跟的是封装的方法名。

下面放代码

package study_04关卡7;

import java.util.Arrays;
import java.util.Scanner;

public class 分离 {
    static Scanner scanner = new Scanner(System.in);
    //将生成的数组放进二维数组里面。
    public static void arr(String arr[][],String arr1[]){
        String str="";
        boolean a =true;
        for (int i = 0; i > -1; i++) {
            for (int j = 0; j < 4; j++) {
                if (arr[i][j] == null) {
                    for (int k = 0; k <4 ; k++) {
                        arr[i][k]=arr1[k];
                    }
                    a = false;
                    break;
                }
            }
            if (a == false) {
                break;
            }
        }
    }
    //限定最多输入几个字符
    public static String characterLength(int length) {
        String rawData = "";
        boolean i = true;
        while (i) {
            rawData = scanner.next();
            if (rawData.length() < 1 || rawData.length() > length) {
                System.out.println("您输入的长度不符合,请输入长度为" + length + "的数据");
            } else {
                i = false;
            }
        }
        return rawData;
    }
    //实现功能选择,确保只能输入1到4
    public static char functionSelection() {
        char a;
        for (; ; ) {
            String str = characterLength(1);
            a = str.charAt(0);
            if (a != '1' && a != '2' && a != '3' && a != '4') {
                System.out.println("输入错误重新输入");
            } else {
                break;
            }
        }
        return a;
    }
    //实现功能选择,确保只能输入1-2
    public static char functionSelectionTwo() {
        char a;
        for (; ; ) {
            String str = characterLength(1);
            a = str.charAt(0);
            if (a != '1' && a != '2' ) {
                System.out.println("输入错误重新输入");
            } else {
                break;
            }
        }
        return a;
    }
    //确保输入的都是纯数字,这里用于支出。
    public static String allNumber1(String arr[][]) {
        char a;
        String str = "";
        System.out.print("请您输入您支出了多少钱,请输入纯数字");
        for (; ; ) {
            str = scanner.next();
            if(str.length()>9){
                System.out.println("请重新输入,您输入的位数过大");
                continue;
            }
            boolean x = true;
            for (int i = 0; i < str.length(); i++) {
                boolean c = false;
                c = false;
                a = str.charAt(i);
                for (int k = 0; k < 10; k++) {
                    if (a == (char) (k + '0')) {
                        c = c | true;
                        continue;
                    }
                }
                if (c == false) {
                    System.out.print("您输入的格式有误,请输入纯数字");
                    x = false;
                    break;
                } else {
                    x = x & c;
                }
            }
            if (x == true) {
                String s=allMoney(arr);
                int ss=Integer.parseInt(s);
                int st=Integer.parseInt(str);
                if(st>ss){
                    System.out.println("您输入的支出大于了您的总金额,支出失败");
                    System.out.println("请您重新输入");

                }else {
                    break;
                }
            }
        }

        str = "-" + str;
        return str;
    }
    //确保输入的都是纯数字,这里用于收入。
    public static String allNumber() {
        char a;
        String str = "";
        System.out.print("请您输入您收入了多少钱,请输入纯数字");
        for (; ; ) {
            str = scanner.next();
            if(str.length()>9){
                System.out.println("请重新输入,您输入的位数过大");
                continue;
            }
            boolean x = true;
            for (int i = 0; i < str.length(); i++) {
                boolean c = false;
                c = false;
                a = str.charAt(i);
                for (int k = 0; k < 10; k++) {
                    if (a == (char) (k + '0')) {
                        c = c | true;
                        continue;
                    }
                }
                if (c == false) {
                    System.out.print("您输入的格式有误,请输入纯数字");
                    x = false;
                    break;
                } else {
                    x = x & c;
                }
            }
            if (x == true) {
                break;
            }
        }
        str = "+" + str;
        return str;
    }
    //调用已经输入的金额
    public  static String money(String arr[]){
        String str = "";
        str=arr[2];
        str=str.substring(1);
        return str;
    }
    //调用总金额
    public static String allMoney(String arr[][]) {
        String str = "";
        boolean a = true;
        for (int i = 0; i > -1; i++) {
            for (int j = 0; j < 4; j++) {
                if (arr[i][j] == null) {
                    str = arr[i - 1][1];
                    a = false;
                    break;
                }
            }
            if (a == false) {
                break;
            }
        }
        return str;
    }
    //支出总金额计算
    public static String totalAmount1(String arr[][],String arr1[]) {
        String str = money(arr1);
        int a;
        a = Integer.parseInt(str);
        int b;
        String s = allMoney(arr);
        b = Integer.parseInt(s);
        int c = b-a;
        String i= c+"";
        return i;
    }
    //收入总金额计算。
    public static String totalAmount(String arr[][],String arr1[]) {
        String str = money(arr1);
        int a;
        a = Integer.parseInt(str);
        int b;
        String s = allMoney(arr);
        b = Integer.parseInt(s);
        int c = a + b;
        String i= c+"";
        return i;
    }
//输入说明,限制五个字符
    public static void reason(String arr[]){
        System.out.println("请输入关于这笔钱的说明");
        String a=characterLength(5);
        arr[3]=a;
    }
    //确保只能输入收入这两个字
    public static void income(String arr[]) {
        String a="收入";
                arr[0] = a;

    }
//确保只能输出支出这两个字
public static void expenditure(String arr[]) {
   String a="支出";
            arr[0] = a;

}
    //功能2
    public static void two(String arr[],String arr1[][]) {
        System.out.println("------------欢迎来到登记收入界面kiss,kiss----------");
        income(arr);
        String a = allNumber();
        arr[2] = a;
       String b =totalAmount(arr1,arr);
       arr[1]=b;
        reason(arr);
    }
//主界面
    public static void mainInterface(){
        System.out.println("----------家庭收支记账程序----------");
        System.out.println("          1.收支明细");
        System.out.println("          2.登记收入");
        System.out.println("          3.登记支出");
        System.out.println("          4.退出");
        System.out.println();
        System.out.print("          请选择(1-4);");
    }

    /**
     *实现功能三
     * @param arr
     * @param arr1
     */
    public  static void three(String arr[],String arr1[][]){
expenditure(arr);
 String str= allNumber1(arr1);
 arr[2]=str;
 reason(arr);
 String a= totalAmount1(arr1,arr);
arr[1]=a;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值