这是我刚学完流程控制的时候照着敲得一个小项目!
class familyAccount{
public static void main(String[] args){
boolean isFlag=true;
String details="收支\t账户金额\t收支金额\t说 明\n";
int balance=10000;
while(isFlag){
System.out.println("***************欢迎来到家庭记账软件****************\n");
System.out.println("--------------------1.收支明细");
System.out.println("--------------------2.登记收入");
System.out.println("--------------------3.登记支出");
System.out.println("--------------------4.退出软件");
System.out.print("--------------请输入你要选择的操作(1-4):");
char selection = Utility.readMenuSelection();
System.out.println();
switch(selection){
case '1':
System.out.println("------------------当前收支明细记录------------------");
System.out.println(details);
System.out.println("----------------------------------------------------");
break;
case '2':
System.out.print("本次收入金额:");
int money=Utility.readNumber();
System.out.print("本次收入说明:");
String info=Utility.readString();
balance += money;
details +=("收入\t"+balance+"\t\t"+money+"\t\t"+info+"\n");
System.out.println("------------登记完成-------------");
break;
case '3':
System.out.print("本次支出金额:");
int money1=Utility.readNumber();
System.out.print("本次支出说明:");
String info1=Utility.readString();
if(balance>=money1){
balance-=money1;
details +=("支出\t"+balance+"\t\t"+money1+"\t\t"+info1+"\n");
}else{
System.out.println("支出超出额度,支付失败!");
}
System.out.println("------------登记完成-------------");
break;
case '4':
System.out.println("确认是否退出(Y/N):");
char isExit=Utility.readConfirmSelection();
if(isExit=='Y'){
isFlag=false;
}
break;
}
}
}
}
import java.util.Scanner;
public class Utility {
private static Scanner scanner=new Scanner(System.in);
private static String readKeyBoard(int limit) {
String line = "";
while (scanner.hasNext()) {
line = scanner.nextLine();
if (line.length() < 1 || line.length() > limit) {
System.out.print("输入长度(不大于" + limit + ")错误,请重新输入:");
continue;
}
break;
}
return line;
}
public static char readMenuSelection(){
char c;
for(;;){
String str = readKeyBoard(1);
c=str.charAt(0);
if(c!='1'&&c!='2'&&c!='3'&&c!='4'){
System.out.println("选择错误,请重新输入:");
}else break;
}
return c;
}
public static int readNumber(){
int n;
for(;;){
String str=readKeyBoard(9);
try{
n=Integer.parseInt(str);
break;
}catch (NumberFormatException e){
System.out.println("选择错误,请重新输入:");
}
}
return n;
}
public static String readString(){
String str=readKeyBoard(8);
return str;
}
public static char readConfirmSelection(){
char c;
for(;;){
String str =readKeyBoard(1).toUpperCase();
c=str.charAt(0);
if(c=='Y'||c=='N'){
break;
}else{
System.out.println("输入错误,请重新输入:");
}
}
return c;
}
}