/**
* @className: SmallChangeSysApp
* @description:调用SmallChangeOOP对象,显示主菜单即可
* @date: 2021/12/23 17:59
**/
public class SmallChangeSysApp {
public static void main(String[] args) {
new SmallChangeSysOOP().Menu();
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/**
* @className: SmallChangeSysOOP
* @description:
* 该类完成零钱通各个功能
* 使用OOP(面向对象编程)
* 每个功能对应一个方法
* @date: 2021/12/23 17:59
**/
public class SmallChangeSysOOP {
// SmallChangeSys smallChangeSys = new SmallChangeSys();
Scanner scanner = new Scanner(System.in);
boolean flag = true;
String key = "";
String details = "---------------零钱通明细---------------";
double money = 0;
double balance = 0;//余额
Date date = new Date();//日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String storeName = "";//消费说明
char answer;
//完成显示菜单
public void Menu() {
do {
//菜单
System.out.println("\n-------------零钱通菜单(OOP)---------------");
System.out.println(" 1 零钱通明细 ");
System.out.println(" 2 收益入账 ");
System.out.println(" 3 消费 ");
System.out.println(" 4 退出 ");
System.out.print("请选择(1-4):");
key = scanner.next();
switch (key) {
case "1":
this.details();
break;
case "2":
this.income();
break;
case "3":
this.consumption();
break;
case "4":
this.exit();
break;
default:
System.out.println("输入有误,重新输入。");
}
} while (flag);
}
//完成零钱通明细
public void details() {
System.out.println(details);
}
//完成收益入账
public void income() {
System.out.print("收益入账金额:");
money = scanner.nextDouble();
/**找出不正确的金额条件,然后给出提示,就直接return**/
if (money <= 0) { //入账金额不能为负数
System.out.println("入账金额不能为负数...");
return;//退出方法,不再执行后面的代码。
}
balance += money;//入账后的余额
date = new Date();//获取当前日期
//拼接信息到details
details += "\n收益入账\t" + "+" + money + "\t" +
sdf.format(date) + "\t" + "余额:" + balance;
}
//完成消费
public void consumption() {
System.out.print("消费说明:");
storeName = scanner.next();
System.out.print("消费金额:");
money = scanner.nextDouble();
/**编程思想:找出不正确的金额条件,然后给出提示,就直接return**/
if (money > balance || money <= 0) {//消费金额不能大于余额
System.out.println("您的消费金额应该在0-" + balance);
return;
}
balance -= money;//消费后的余额
date = new Date();//获取当前日期
//拼接信息到details
details += "\n" + storeName + "\t" + "-" + money +
"\t" + sdf.format(date) + "\t" + "余额:" + balance;
}
//完成退出功能
public void exit() {
while (true) {
System.out.println("你确定要退出吗?y/n");
answer = scanner.next().charAt(0);
if (answer == 'y' || answer == 'n') {
break;
}
}
if (answer == 'y') {
flag = false;
}
}
}