package SmallChangeSys;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSys {
//化繁为简
//1.先完成显示菜单 并可以选择菜单,给出对应显示
//2.完成零钱通明细
//(1)可以把收益入账和消费,保存到数组 (2)可以使用对象 (3)简单的话可以使用String拼接
//3.收益入账
//定义新的变量
//4.消费
//5.退出
//6.消费金额范围完善
//7.收益入账金额范围完善
public static void main(String[] args) {
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = "";
String details = "----------零钱通明细-------------\n";
double money = 0;
double balance = 0;
String note = "";
Date date = null; //表示日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//可用于日期格式化
do{
System.out.println("========零钱通菜单=========");
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-4): ");
key = scanner.next();
//使用 switch 分支控制
switch (key){
case "1" :
System.out.println(details);
break;
case "2" :
System.out.println("收益入帐金额");
money = scanner.nextDouble();
//money 的值范围应该校验 --> 一会再完善
//老韩思路 编程思想
//找出不正确的金额条件,然后给出提示,就直接break;
if(money <= 0){
System.out.println("收益入账金额范围需要 大于2 0");
break;
}
balance += money;
//拼接收益入账信息到details
date = new Date();
details += "\n收益入账\t"+ money + "\t" + sdf.format(date) + "\t" + balance;
break;
case "3" :
System.out.println("消费金额");
money = scanner.nextDouble();
//money 的值范围应该校验 --> 一会再完善
if(money <= 0 || money > balance){
System.out.println("你的消费金额应该在 0 - "+ balance);
break;
}
System.out.println("消费说明");
note = scanner.next();
balance -= money;
date = new Date();
details += "\n"+ note + "\t-" + money + "\t" + sdf.format(date) + "\t" + balance;
break;
case "4" :
//用户输入4退出时,给出提示"你确定要退出吗? y/n",必须输出正确的y/n
//否则循环输入命令,知道输入Y或者N
//老韩思路分析
//(1)定义一个变量 choice.接收用户的输入
//(2)使用while + break,来处理接收到的输入y或者n
//(3)当用户退出while后,再判断choice是y还是n,就可以决定是否退出
//(4)建议一个代码完成一个小功能,尽量不要混在一起
String choice = "";
while (true){
System.out.println("你确定要退出吗? y/n");
choice = scanner.next();
if("y".equals(choice) || "n".equals(choice)){
break;
}
}
if(choice.equals("y")){
loop = false;
}
System.out.println("4 退 出");
loop = false;
break;
default:
System.out.println("选择有误,请重新选择");
}
}
while (loop);
System.out.println("--------退出了零钱通项目---------");
}
}