零钱通 ,可以完成收益入账,消费,查看明细,退出系统等功能
面向过程方法
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class smallchangesys {
public static void main(String[] args) {
//临时变量
boolean loop = true;
Scanner sc = new Scanner(System.in);
//零钱通明细
String details = "===================零钱通明细=================";
//收益金额
double money = 0;
double balance = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//消费明细
String note;
do {
System.out.println("\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.print("请选择(1-4): ");
char key = sc.next().charAt(0);
switch(key){
case '1':
System.out.println(details);
break;
case '2':
System.out.print("收益入账: ");
//输入入账金额
money = sc.nextDouble();
//收益金额校验
if(money <= 0){
System.out.println("收益金额需要大于0");
break;
}
//存入余额
balance += money;
//日期格式
Date date = new Date();
//输出明细
details += "\n收益金额\t+" + money + "\t" + sdf.format(date)
+ "\t" + balance;
break;
case '3':
System.out.print("消费金额: ");
//输入消费金额
money = sc.nextDouble();
//消费金额校验
if(money <= 0 || money > balance){
System.out.println("消费金额范围在0-" + balance);
break;
}
System.out.print("请输入消费说明:");
note = sc.next();
balance -= money;
//日期格式(获取当前时间)
date = new Date();
//输出明细
details += "\n" +note +"\t-" + money + "\t" + sdf.format(date)
+ "\t" + balance;
break;
case '4':
//定义临时变量确定是否退出
String keys;
//校验输入字符串
while(true){
System.out.print("请确认是否退出:");
keys = sc.next();
if(keys.equals("y") || keys.equals("n")){
break;
}
}
if(keys.equals("y")){
loop = false;
System.out.println("退出");
}
break;
default:
System.out.println("你输入的菜单有误!");
}
}while(loop);
}
}
面向对象方法
SmallChangeSysOOP类
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSysOOP {
//临时变量
boolean loop = true;
Scanner sc = new Scanner(System.in);
//零钱通明细
String details = "===================零钱通明细=================";
//收益金额
double money = 0;
double balance = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//消费明细
String note;
//零钱通菜单方法
public void mainMenu(){
do {
System.out.println("\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.print("请选择(1-4): ");
char key = sc.next().charAt(0);
switch(key){
case '1':
System.out.println(details);
break;
case '2':
System.out.print("收益入账: ");
//输入入账金额
money = sc.nextDouble();
//收益金额校验
if(money <= 0){
System.out.println("收益金额需要大于0");
break;
}
//存入余额
balance += money;
//日期格式
Date date = new Date();
//输出明细
details += "\n收益金额\t+" + money + "\t" + sdf.format(date)
+ "\t" + balance;
break;
case '3':
System.out.print("消费金额: ");
//输入消费金额
money = sc.nextDouble();
//消费金额校验
if(money <= 0 || money > balance){
System.out.println("消费金额范围在0-" + balance);
break;
}
System.out.print("请输入消费说明:");
note = sc.next();
balance -= money;
//日期格式(获取当前时间)
date = new Date();
//输出明细
details += "\n" +note +"\t-" + money + "\t" + sdf.format(date)
+ "\t" + balance;
break;
case '4':
//定义临时变量确定是否退出
String keys;
//校验输入字符串
while(true){
System.out.print("请确认是否退出:");
keys = sc.next();
if(keys.equals("y") || keys.equals("n")){
break;
}
}
if(keys.equals("y")){
loop = false;
System.out.println("退出");
}
break;
default:
System.out.println("你输入的菜单有误!");
}
}while(loop);
}
//零钱通明细方法
public void details(){
System.out.println(details);
}
//收益方法
public void income(){
System.out.print("收益入账: ");
//输入入账金额
money = sc.nextDouble();
//收益金额校验
if(money <= 0){
System.out.println("收益金额需要大于0");
return;
}
//存入余额
balance += money;
//日期格式
Date date = new Date();
//输出明细
details += "\n收益金额\t+" + money + "\t" + sdf.format(date)
+ "\t" + balance;
}
//消费方法
public void pay(){
System.out.print("消费金额: ");
//输入消费金额
money = sc.nextDouble();
//消费金额校验
if(money <= 0 || money > balance){
System.out.println("消费金额范围在0-" + balance);
return;
}
System.out.print("请输入消费说明:");
note = sc.next();
balance -= money;
//日期格式(获取当前时间)
Date date = new Date();
//输出明细
details += "\n" +note +"\t-" + money + "\t" + sdf.format(date)
+ "\t" + balance;
}
//退出方法
public void exit(){
//定义临时变量确定是否退出
String keys;
//校验输入字符串
while(true){
System.out.print("请确认是否退出:");
keys = sc.next();
if(keys.equals("y") || keys.equals("n")){
break;
}
}
if(keys.equals("y")){
loop = false;
System.out.println("退出");
}
}
}
SmallChangeSysApp类
public class SmallChangeSysApp {
public static void main(String[] args) {
new SmallChangeSysOOP().mainMenu();
}
}