我的第一个Java项目实训--家庭记账软件!

这是我刚学完流程控制的时候照着敲得一个小项目!
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("1.收支明细");
     System.out.println("------------------当前收支明细记录------------------");
     System.out.println(details);
     System.out.println("----------------------------------------------------");
     break;
    case '2':
     //System.out.println("2.登记收入");
     System.out.print("本次收入金额:");
     int money=Utility.readNumber();
     System.out.print("本次收入说明:");
     String info=Utility.readString();
     balance += money;
     //处理details
     details +=("收入\t"+balance+"\t\t"+money+"\t\t"+info+"\n");
     System.out.println("------------登记完成-------------");
     break;
     case '3':
     //System.out.println("3.登记支出");
     System.out.print("本次支出金额:");
     int money1=Utility.readNumber();
     System.out.print("本次支出说明:");
     String info1=Utility.readString();
     //处理balance
     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("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;
  }
 }
     
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值