定义一个零钱通类:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeOOPSys {
boolean loop = true;
boolean p= true;
Scanner scanner = new Scanner(System.in);
String key ="";
String details = "========零钱通明细==========";
double money = 0;
double balance = 0;
//余额变化是变化detalis
Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm");
String note ="";
public void mainMenu(){
do {
System.out.println("\n\n\n=======零钱通的菜单======");
System.out.println("\t\t\t1 零钱通明细");
System.out.println("\t\t\t2 收益入账");
System.out.println("\t\t\t3 消费");
System.out.println("\t\t\t4 退出");
System.out.println("请选择(1-5):");
key = scanner.next();
switch (key){
case"1":
this.detail();
break;
case "2":
this.income();
break;
case "3":
this.pay();
break;
case "4":
this.exit();
default:
System.out.println("5 输入有误");
loop = false;
break;
}
} while (loop);
}
public void detail(){
System.out.println("1 零钱通明细");
System.out.println(details);
}
public String income(){
System.out.println("收益入账金额:");
while (p) {
money = scanner.nextDouble();
if (money > 0) {
//校验输入的金额
balance += money;
break;
} else {
System.out.println("您输入的金额有误,请重新输入");
}
}
date = new Date();//这里是+= 不然只能显示一笔,因为要显示每笔的记录
details += "\n收益入账\t"+"+"+money+"\t"+sdf.format(date)+"\t"+balance;
return details;
}
public String pay(){
System.out.println("消费金额:");
money = scanner.nextDouble();
if(money>balance){
System.out.println("提示:您的余额不足");
return " ";
}
//消费金额校验
System.out.println("消费说明:");
note = scanner.next();
balance-=money;
date = new Date();
details += "\n"+note+"-"+money+"\t"+sdf.format(date)+"\t"+balance;
return details;
}
public void exit(){
String choice = "";
while (true){//只能输入y/n否则一直循环
System.out.println("你确定要退出吗?y/n");
choice = scanner.next();
if("y".equals(choice)||"n".equals(choice)){
break;
}
}//一段代码完成一个功能,尽量不要混在一起
if (choice.equals("y")){
loop = false;
}
loop =false;
}
}
主类:
public class Test {
public static void main(String[] args) {
SmallChangeOOPSys smallChangeOOPSys = new SmallChangeOOPSys();
smallChangeOOPSys.mainMenu();
smallChangeOOPSys.income();
smallChangeOOPSys.pay();
smallChangeOOPSys.exit();
}
}