家庭收支项目
接下来放代码
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; } }