尚硅谷Javase项目一(家庭收支记账软件)
class FamilyCount{
public static void main(String[] args){
boolean flag=true;
String details="收支 账户信息 收支金额 说 明"+"
";
int balance = 10000;
while(flag){
System.out.println("**********家庭收支记账软件**********");
System.out.println(" 1.收支明细");
System.out.println(" 2.登记收入");
System.out.println(" 3.登记支出");
System.out.println(" 4.退 出
");
System.out.println(" 请选择(1-4):");
char selection=Utility.readMenuSelection();
switch(selection){
case 1:
//System.out.println("1.收支明细");
System.out.println("***********当前收支明细记录***********");
System.out.println(details);
System.out.println("***************登记完成***************");
break;
case 2:
//System.out.println("2.登记收入");
System.out.println("本次收入金额:");
int money=Utility.readNumber();
System.out.println("本次收入说明:");
String info=Utility.readString();
balance+=money;
details+=("收入"+" "+balance+" "+" "+money+" "+" "+info+"
");
break;
case 3:
//System.out.println("3.登记支出");
System.out.println("本次支出金额:");
int putmoney=Utility.readNumber();
System.out.println("本次支出说明:");
String putinfo=Utility.readString();
balance-=putmoney;
details+=("支出"+" "+balance+" "+" "+putmoney+" "+" "+putinfo+"
");
break;
case 4:
//System.out.println("4.退 出");
System.out.println("确认是否退出(Y/N)");
char exit=Utility.readConfirmSelection();
if(exit==Y){
flag=false;
}
break;
}
}
}
}
##工具类:
import java.util.Scanner;
/**
* 工具类
* 提供具体的人机界面交互的方法
*/
public class Utility {
private static Scanner scanner = new Scanner(System.in);
/**
* 从键盘读取信息
* @param i
* @return
*/
private static String readKeyBoard(int limit) {
label:for (;;){
String str = scanner.next();
if (str.length() > limit){
System.out.println("输入过长,请重新输入:");
continue label;
}else {
return str;
}
}
}
/**
* 用于界面的选择,该方法读取键盘,如果用户键入”1-4“中的任意字符,则方法返回。返回值为用户键入字符
*/
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.print("选择错误,请重新输入:");
}else break;
}
return c;
}
/**
* 用于收入和支出金额的输入,该方法从键盘读取一个不超过4为长度的正数,并将其作为方法的返回值
*/
public static int readNumber(){
int n;
for (;;){
String str = readKeyBoard(4);
try {
n = Integer.parseInt(str);
break;
}catch (NumberFormatException e){
System.out.println("数字输入有误,请重新输入:");
}
}
return n;
}
/**
* 用于收入和支出说明的输入,该方法从键盘读取一个不超过八位长度的字符串,并将其作为方法的返回值
*/
public static String readString(){
String str = readKeyBoard(8);
return str;
}
/**
* 用于确定选择的输入。该方法从键盘读取Y或者N,并将其作为返回值
*/
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;
}
}
下一篇:
js截取字符串subString()方法
