尚硅谷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()方法