import java.util.Scanner;
public class familyaccount {
public static void main(String[] args) {
int balance=10000;
boolean loop = true;
String string = "收支\t账户金额\t收支金额\t说 明\n";
do {
System.out.println("---------------家庭收支记录-----------------");
System.out.println(" 1.收支明细 ");
System.out.println(" 2.登记收入 ");
System.out.println(" 3.登记支出 ");
System.out.println(" 4. 退出 ");
System.out.println(" 请选择<1-4>:");
System.out.println("----------------------------------------");
char sel=select();
System.out.println();
switch (sel){
case '1':
System.out.println("--------------当前收支明细--------------");
System.out.println(string);
System.out.println("------------------------------------");
break;
case '2':
System.out.println("本次收入金额:");
int number=readnumber();
System.out.println("本次收入说明:");
String str=str();
balance+=number;
string+="收入\t"+balance+"\t"+number+"\t"+str+'\n';
System.out.println("---------------登记完成--------------");
break;
case '3':
System.out.println("本次支出金额:");
int number1=readnumber();
System.out.println("本次支出说明:");
String str1=str();
balance-=number1;
string+="支出\t"+balance+"\t"+number1+"\t"+str1+'\n';
System.out.println("---------------登记完成--------------");
break;
case '4':
System.out.println("是否确认退出(Y/N)?");
char c =confirm();
if (c=='Y') {
loop=false;
}
break;
default:
readc();
}
}while(loop);
}
private static char select() {
char c;
c=keyboard(1).charAt(0);
while(true) {
if (c!='1'&&c!='2'&&c!='3'&&c!='4') {
System.out.println("输入有误,请重新输入1-4之间的数字!");
}
else
break;
}
return c;
}
private static int readnumber() {
int n;
while(true) {
String str=keyboard(4);
try {
n=Integer.parseInt(str);
break;
} catch (NumberFormatException e) {
// TODO: handle exception
System.out.println("数字输入有误,请重新输入!");
}
}
return n;
}
private static String str() {
String s=keyboard(8);
return s;
}
private static char readc() {
char c;
c=keyboard(1).charAt(0);
while (true) {
if(c!='1'||c!='2'||c!='3'||c!='4') {
System.out.println("输入有误,请重新输入!");
}
else
break;
}
return c;
}
private static String keyboard(int len) {
String str="";
Scanner scanner=new Scanner(System.in);
while(scanner.hasNext()) {
str =scanner.nextLine();
if (str.length()<1||str.length()>len) {
System.out.println("输入有误,请重新输入!");
continue;
}
break;
}
return str;
}
private static char confirm() {
char c = keyboard(1).charAt(0);
while(true) {
if (c=='Y'||c=='N') {
break;
}
else {
System.out.println("输入有误,请重新输入!");
}
}
return c;
}
}
06-17
1825
11-02
977