制作页面如图:
代码如图:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Lingqiantong {
public static void main(String[] args){
//化繁为简
//1.先完成显示页面的基本框架,并可以选择菜单,给出对应的提示
//2.完成零钱通明细
//3.收益入账。
//4.消费
//5.退出
//6.用户输入4时退出时,给出提示”你确定要退出吗?y/n“,必须输入正确的y/n,否则循环输入指令,直到输出正确的y/n;
boolean loop=true;
Scanner scanner=new Scanner(System.in);
String key=" ";
//思路:1 可以把收益入账和消费,保存到数组 2 可以使用对象 3 简单的话可以使用String进行拼接
String details="-----------零钱通明细---------------";
//3.定义新的变量
double money=0;
double balance=0;
Date date=null;//表示当前日期
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");//可以用于日期格式化
//4 消费
//定义新的变量,保存消费的原因
String note="";
do{
System.out.println("=============零钱通菜单===============");
System.out.println("/t/t/t 1 零钱通明细");
System.out.println("/t/t/t 2 收益入账");
System.out.println("/t/t/t 3 消费");
System.out.println("/t/t/t 4 退 出");
System.out.println("请选择(1-4):");
key=scanner.next();
//使用switch分支控制
switch (key){
case "1":
System.out.println(details);
break;
case "2":
System.out.print("收益入账金额:");
money= scanner.nextDouble();
//思路 找出不正确的金额的条件,然后给出提示即可
if(money<=0){
System.out.println("收益入账金额需要大于0");
}
balance+= money;
//拼接收益入账信息到details
date=new Date();//获取当前日期
details+="\n收益入账\t+"+money+"\t"+sdf.format(date)+"\t"+balance;
break;
case "3":
System.out.println("消费金额:");
money= scanner.nextDouble();
//找出金额不正确的情况
if(money<=0||money>balance){
System.out.println("您的消费金额有误 ");
break;
}
System.out.println("消费说明:");
note= scanner.next();
balance-=money;
date=new Date();//获取当前日期
details+="\n"+note+"\t-"+money+"\t"+sdf.format(date)+"\t"+balance;
break;
case "4":
//思路 先定义一个变量choice,接收用户的输入
//使用while+break,来处理收到的输入时y或者n;
//退出while后,再判断choice
String choice="";
while(true ) {
System.out.println("你确定要退出吗?y/n");
choice = scanner.next();
if ("y".equals(choice) || "n".equals(choice)) {
break;
}
}
break;
default:
System.out.println("请输入正确的序号!!!");
}
}while(loop);
System.out.println("退出零钱通");
}
}
运行代码
=============零钱通菜单===============
/t/t/t 1 零钱通明细
/t/t/t 2 收益入账
/t/t/t 3 消费
/t/t/t 4 退 出
请选择(1-4):
1
-----------零钱通明细---------------
=============零钱通菜单===============
/t/t/t 1 零钱通明细
/t/t/t 2 收益入账
/t/t/t 3 消费
/t/t/t 4 退 出
请选择(1-4):
2
收益入账金额:100
=============零钱通菜单===============
/t/t/t 1 零钱通明细
/t/t/t 2 收益入账
/t/t/t 3 消费
/t/t/t 4 退 出
请选择(1-4):
2
收益入账金额:500
=============零钱通菜单===============
/t/t/t 1 零钱通明细
/t/t/t 2 收益入账
/t/t/t 3 消费
/t/t/t 4 退 出
请选择(1-4):
3
消费金额:
20
消费说明:
真功夫
=============零钱通菜单===============
/t/t/t 1 零钱通明细
/t/t/t 2 收益入账
/t/t/t 3 消费
/t/t/t 4 退 出
请选择(1-4):
1
-----------零钱通明细---------------
收益入账 +100.0 2024-01-25 20:29 100.0
收益入账 +500.0 2024-01-25 20:29 600.0
真功夫 -20.0 2024-01-25 20:29 580.0