零钱通介绍 :
零钱通是日常常见的项目,它可以对用户的账户金额进行管理,记录金额流动明细,支付宝、微信等各大APP几乎都有此功能。
题目要求 :
编写一个程序,实现零钱通的收益入账、消费、查看明细功能。要求对入账、消费的金额进行判断是否合法,并进行相应提示;对用户退出进行判断,用户输入是否退出,否则重新输入。
本例通过面向过程实现
代码如下 :
package ChangeMoney;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Menu {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
boolean serv = true;//服务
int operate;//将要进行的操作
double money = 0.0;//入账金额
double balance = 2000;//总金额,初值2000
String reason = null;//金额变动原因
String diagnose = null;//判断是否退出
Date date = null;//date 是 java.util.Date 类型,表示日期
String details = "-------------------零钱通明细-------------------";
//格式化日期
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH : mm");
do {
System.out.println("===================零钱通菜单===================");
System.out.println("\t\t\t\t 1 零钱通明细\n\t\t\t\t 2 收益 入账\n\t\t\t\t 3 消 费\n\t\t\t\t 4 退 出");
System.out.print("请选择你要进行的操作:");
operate = scanner.nextInt();
switch (operate) {
case 1:
System.out.println(details);
break;
case 2:
System.out.println("入账金额 : ");
money = scanner.nextDouble();
if (money > 0.0) {
balance += money;
date = new Date();//获取当前日期
details += "\n收益入账" + "\t +" + money + "\t" + simpleDateFormat.format(date) + "\t" + balance;
}
else{
System.out.println("您的金额有误!!!");
}
break;
case 3:
System.out.println("消费金额 : ");
money = scanner.nextDouble();
if (money > 0.0){
balance -= money;
System.out.println("消费原因 : ");
reason = scanner.next();//输入消费原因
date = new Date();//获取当前日期
details += "\n" + reason + "\t -" + money + "\t\t" + simpleDateFormat.format(date) + "\t\t" + balance;
}
else {
System.out.println("您的金额有误!!!");
}
break;
case 4:
System.out.println("您确定要退出吗?(退出/继续)");
while(true) {
diagnose = scanner.next();
if (diagnose.equals("退出")) {
System.out.println("用户退出");
serv = false;
break;
} else if (diagnose.equals("继续")) {
System.out.println("请用户继续操作");
break;
}
if((!(diagnose.equals("退出"))) && (!(diagnose.equals("继续")))) {
System.out.println("请重新输入");
}
}
break;
default:
System.out.println("退出零钱通");
}
}while(serv);
}
}
题目及灵感来源于B站韩顺平java0基础教学。