【一名正在不断努力的新人,记得每天温习代码~~~】
【现在所会知识有限,会有很多不足,请大家多多指教,共同进步~~~感谢】
【该代码来自B站韩顺平老师Java课程,喜欢的小伙伴可以去B站搜索哦,很不错的老师哟!!!】
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/**
* 该类是完成零钱通的各个功能的类
* 使用OOP(面向对象)
* 将各个功能对应一个方法
*/
public class SmallChangeSysOOP {
//2.完成零钱通明细
//3.收益入账
//4.消费
//5.退出
//6.用户退出时给出提示
//属性
//定义相关变量
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = "";
String details = "--------零钱通明细--------";
double money = 0;
double balance = 0;//余额
Date date = null;//表示日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); //可以用于日期格式化
String note = "";
//先显示菜单,可以选择菜单
public void mainMenu(){
do {
System.out.println("\n======零钱通菜单OOP======");
System.out.println("\t\t1.零钱通明细");
System.out.println("\t\t2.收益入账");
System.out.println("\t\t3.消 费");
System.out.println("\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.print("收益入账金额:");
money = scanner.nextDouble();
//money 的值范围应该校验
//找出不正确的金额条件
if (money <= 0){
System.out.println("收益金额需要大于0元");
return; //退出方法不在执行后面代码
}
balance += money;
//拼接收益入账信息到 details
date = new Date();//获取当前日期
details += "\n收益入账\t+" + money + "\t" + sdf.format(date) + "\t" +balance;
}
//消费
public void pay(){
System.out.print("消费金额:");
money = scanner.nextDouble();
//money的范围校验
//找出金额不正确的情况
if(money <= 0 || money > balance){
System.out.println("你的消费金额应该在 0-" + balance);
return;
}
System.out.println("消费说明:");
note = scanner.next();
balance -= money;
//拼接消费信息到 details
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;
}
}
//当用户退出while
if (choice.equals("y")){
loop = false;
}
}
}
/**
* 这里我们直接调用SmallChangeSysOOP 对象,显示主菜单即可
*/
public class SmallChangeSysApp {
public static void main(String[] args) {
new SmallChangeSysOOP().mainMenu();
}
}