实现类:
package com.demo;
/*
*
* 使用面向对象的方法来调用零钱 通的功能类
* */
public class SmallChangesApp {
public static void main(String[] args) {
new SmallChangesOOP().mainMenu();
}
}
功能类:
package com.demo;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangesOOP {
// 属性
// 定义相关的变量
boolean loop = true;
String key = " ";
Scanner scanner = new Scanner( System.in );
// 1.完成零钱通明细 1.可以存储到数组 2.使用对象 3.使用字符串拼接 (先完成收入和消费)
// 收入入账
double money = 0;//存钱
double balance = 0;//余额
Date date = null;//日期
SimpleDateFormat sdf = new SimpleDateFormat( "YYYY-MM-dd HH:mm" );
String detail = "================零钱通明细=====================";
// 消费
// 定义变量来保存消费的金额
String note = null;
// 显示菜单的方法
public void mainMenu() {
do {
System.out.println( "\n\n=============零钱通菜单=========" );
System.out.println( "\t\t\t\t1.零钱明细" );
System.out.println( "\t\t\t\t2.收益入账" );
System.out.println( "\t\t\t\t3.消费" );
System.out.println( "\t\t\t\t4.退出" );
System.out.println( "请选择(1-4)" );
key = scanner.next();
switch (key) {
case "1":
this.liQianMingXi();
break;
case "2":
this.income();
break;
case "3":
this.consume();
break;
case "4":
this.exit();
break;
default:
System.out.println( "你的输入有误请重新选择" );
break;
}
} while (loop);
}
// 收入金额
public void income() {
System.out.println( "\t\t\t\t2.收益入账金额" );
money = scanner.nextDouble();
if (money <= 0) {
return;//执行到这里不会住下执行
}
}
//零钱明细
public void liQianMingXi() {
money += 0;
balance += money;
date = new Date();
// System.out.println( sdf.format( date ) );
detail += "\n收益入账+" + money + "\t" + sdf.format( date ) + "\t余额" + balance;
System.out.println( detail );
return;
}
// 消费
public void consume() {
System.out.println( "输入消费的角色" );
note = scanner.next();
while (true) {
System.out.println( "\t\t\t\t3.输入你的消费金额" );
money = scanner.nextDouble();//范围的校验
/*找出不符合条件的然后break*/
if (balance - money < 0) {
//判断消费的金额是否符合要求
System.out.printf( "你的余额不足,余额只有%f\n", balance );
break;
// 它又会回到上面继续执行循环
}
balance -= money;
break;
}
date = new Date();
detail += "\n" + note + "金额-" + money + "\t" + sdf.format( date ) + "\t余额" + balance;
System.out.println( detail );
return;
}
// 退出
public void exit() {
// 提示是否退出界面y/n
// 思路定义一个接收变量
// while +break 来实现chioce是y还是n
// 退出while循环之后在判断是y还是n
String choice = " ";
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 ("y".equals( choice )) {
loop = false;
System.out.println( "\t\t\t\t-------退出界面------" );
}
return;
}
}