package SmallChangeSys.oop;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
//该类 是完成零钱通的各个功能类
//使用面向对象编程 OOP
//将各个功能对应一个方法
public class SmallChangeSysOOP {
//属性
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");//可用于日期格式化
//1.先完成显示菜单 并可以选择菜单,给出对应显示
public void mainMenu(){
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" :
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.println("收益入帐金额");
money = scanner.nextDouble();
//money 的值范围应该校验 --> 一会再完善
//老韩思路 编程思想
//找出不正确的金额条件,然后给出提示,就直接break;
if(money <= 0){
System.out.println("收益入账金额范围需要 大于2 0");
return; //退出方法,不再执行
}
balance += money;
//拼接收益入账信息到details
date = new Date();
details += "\n收益入账\t"+ money + "\t" + sdf.format(date) + "\t" + balance;
}
public void pay(){
System.out.println("消费金额");
money = scanner.nextDouble();
//money 的值范围应该校验 --> 一会再完善
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(){
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;
}
}
再写一个类引用
package SmallChangeSys.oop;
/**
*这里我们直接调用SmallChangeSysOOP的对象,显示主菜单即可
*
*/
public class SmallChangeSysApp {
public static void main(String[] args) {
new SmallChangeSysOOP().mainMenu();
}
}
结果部分贴图