SmallChangeSysOOP 完成功能
先完成显示菜单,并可以选择 完成零钱通明细 完成收益入账 消费 退出
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/*
该类是完成零钱通各个功能的类
要求使用OOP(面向对象编程)
将各个功能对应一个方法
*/
public class SmallChangeSysOOP {
Scanner scanner = new Scanner(System.in);
String key = "";
String details = "==========零钱通明细==========";
boolean loop = true;
//定义新的变量
double money = 0;
double balance = 0;
String note =""; //记录新的变量保存消费的原因
Date date = null; //data 是java.util.Data 类型,表示日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//可以用于日期格化
String choice ="";
public void mainMenu(){
System.out.println("显示零钱通菜单");
do {
System.out.println("\n==========选择零钱通菜单=========");
System.out.println("\t1 零钱通明细");
System.out.println("\t2 收益入账");
System.out.println("\t3 消费");
System.out.println("\t4 退 出");
System.out.println("请选择(1-4):");
key = scanner.next();
//使用switch 分支控制
//1. 可以把收益入账和消费,保存到数组
//2. 可以使用对象
//3. 简单的话可以使用String拼接
switch (key){
case"1":
this.detail();
break;
case"2":
this.income();
break;
case"3":
this.pay();
break;
case"4":
this.exit();
break;
default:
System.out.println("选择有误,请重新选择");
}
}while (loop);
}
public void detail(){
System.out.println(details);
}
public void income(){
System.out.print("收益入账金额:");
money = scanner.nextDouble();
//money的值范围应该校验
//找出不正确的金额条件,然后给出提示,就直接break 编程思想
if (money <=0){
System.out.println("收益入账金额范围需要大于 0");
return;
}
balance +=money;
date = new Date();//获取当前的日期
details +="\n收益入账\t"+money+"\t"+sdf.format(date)+"\t"+"余额:"+balance;
}
public void pay(){
System.out.println("消费的金额:");
money = scanner.nextDouble();
if (money <= 0||money > balance){
System.out.println("你的消费金额必须在0-"+balance+"之间");
return;
}
System.out.println("请输入消费的原因:");
note = scanner.next();
balance -= money;
date = new Date();//获取当前的日期
details +="\n "+note+"\t"+"-"+money+"\t"+sdf.format(date)+"\t"+"余额:"+balance;
}
public void exit(){
while (true){
System.out.println("你确定要退出吗,请输入y/n?");
choice = scanner.next();
if ("y".equals(choice)||"n".equals(choice)){
break;
}else {
System.out.println("你的输入有误,请重新输入y/n");
}
}
if (choice.equals("y")){
loop = false;
}
}
}