练习
package com.xin.base;
import java.util.Scanner;
public class Part
{
public static void main (String[] args){
int money = 10000;//初始化金额10000
//用于记录用户的信息
String detalis = "收支\t账号金额\t收支金额\t说 明\t";
//家庭记账软件
boolean isFlag = true;//标志退出
while(isFlag){
System.out.println("=====欢迎使用家庭记账软件=====");
System.out.println(" 1 选择支出记录");
System.out.println(" 2 选择收入记账");
System.out.println(" 3 选择详细账本记录");
System.out.println(" 4 退出程序"+"\n");
System.out.println(" 选择1-4 ");
char key= new Utililt().readMenuSelection();
System.out.println();
switch (key){
case '4':
System.out.println("是否退出程序请输出y或n");
char yn = new Utililt().exit();
if(yn == 'Y')
isFlag = false;
break;
case '3':
System.out.println("=====当前收支明细=====");
System.out.println(detalis);
System.out.println("====================");
break;
case '2' :
System.out.println("本次收入金额");
int amount = new Utililt().readNumber();
System.out.println("本次收入说明");
String decs = new Utililt().readString();
money += amount;
detalis += "\n"+"收入\t"+money+"\t"+amount+"\t\t\t"+decs+"\n";
System.out.println("=====登记完成======");
System.out.println(detalis);
break;
case '1' :
System.out.println("本次支出金额");
int amount1 = new Utililt().readNumber();
System.out.println("本次支出说明");
String decs1 = new Utililt().readString();
money -= amount1;
detalis += "\n支出\t"+money+"\t"+amount1+"\t\t\t"+decs1+"\n";
System.out.println("=====登记完成======");
System.out.println(detalis);
}
}
}
}
工具类
package com.xin.base;
import java.util.Scanner;
public class Utililt
{
//工具类
private static Scanner scanner = new Scanner(System.in);
//用于界面的选择,该方法读取键盘,如果用户输入1.2.3.4就分别选择所属功能
public 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;
}
//用于收支,支出的金额的输入,从键盘获取一个不超过4位的数,将其做完返回值
public int readNumber(){
int n;
for(;;){
String str = readKeyBoard(4);
try{
n = Integer.parseInt(str);
break;
}catch(NumberFormatException e){
System.out.println("数字输入错误");
}
}
return n;
}
//用于收支,支出的说明,该方法从键盘读取不超过8位长度的字符串作为返回值
public String readString(){
String str = readKeyBoard(8);
return str;
}
//用户退出功能,用于确定选择的输入
public char exit(){
char c;
for(;;){
String str = readKeyBoard(1)