1.面向过程版
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @version 1.0
* function:
* author:阿卜杜赛麦提
* @date:2022/12/26 0:37
*/
public class MainMenu {
public static void main(String[] args) {
boolean loop=true;//控制退出程序
Scanner scanner = new Scanner(System.in);
String str=""; //接受用户指令
String symx="--------------零钱通明细---------------";
double money=0; //接受用户输入的零钱
double balance=0; //余额
String str1="";//输出明细
String str2="";//消费说明
char c1; //程序退出说明;
Date date=new Date();
SimpleDateFormat side=new SimpleDateFormat("yyyy-MM-dd HH:mm");//格式化日期
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.退 出\n");
System.out.print("请选择(1-4):");
str=scanner.next();
switch (str){
case "1":
System.out.println("1.零钱通明细");
System.out.println(str1);
break;
case "2":
System.out.println("2.收益入账");
try {
money=scanner.nextDouble();
}catch (Exception e){
System.out.println("请输入数字");
break;
}
balance+=money;
str1+="\n收益+"+money+"\t\t时间"+side.format(date)+"\t\t余额"+balance;
break;
case "3":
System.out.println("3.消费");
System.out.print("请输入消费说明确认: ");
str2=scanner.next();
try {
System.out.print("请输入消费金额: ");
money=scanner.nextDouble();
}catch (Exception e){
System.out.println("请输入数字");
break;
}
if (money<0||balance<money){
System.out.println("余额不足,请充值");
break;
}
balance-=money;
str1+="\n"+str2+"消费-"+money+"\t\t时间"+side.format(date)+"\t\t余额"+balance;
break;
case "4":
System.out.println("4.退 出\n");
System.out.println("你确定要退出程序吗? y/n");
while (true){
c1=scanner.next().charAt(0);
if (c1=='y'){
System.out.println("程序成功退出。。。");
loop=false;
break;
}
if (c1=='n'){
System.out.println("退出失败。。。");
break;
}
System.out.println("输入错误,请重新输入 y/n");
}break;
default:
System.out.println("输入有误,请在(1-4)之间输入");
}
}while (loop);
}
}
2.面向对象版
1.主类
/**
* @version 1.0
* function:
* author:阿卜杜赛麦提
* @date:2022/12/26 11:22
*/
public class Main {
public static void main(String[] args) {
new MainMenu().Menu();
}
}
2.主菜单类
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/**
* @version 1.0
* function:
* author:阿卜杜赛麦提
* @date:2022/12/26 11:13
*/
public class MainMenu {
boolean loop=true;//控制退出程序
Scanner scanner = new Scanner(System.in);
String str=""; //接受用户指令
String symx="--------------零钱通明细---------------";
double money=0; //接受用户输入的零钱
double balance=0; //余额
String str1="";//输出明细
String str2="";//消费说明
char c1; //程序退出说明;
Date date=new Date();
SimpleDateFormat side=new SimpleDateFormat("yyyy-MM-dd HH:mm");//格式化日期
//主菜单
public void Menu(){
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.退 出\n");
System.out.print("请选择(1-4):");
str=scanner.next();
switch (str){
case "1":
System.out.println("1.零钱通明细");
System.out.println(str1);
break;
case "2":
this.income();
break;
case "3":
this.Pay();
break;
case "4":
this.exit();
break;
default:
System.out.println("输入有误,请在(1-4)之间输入");
}
}while (loop);
}
//收益
public void income(){
System.out.println("2.收益入账");
try {
money=scanner.nextDouble();
}catch (Exception e){
System.out.println("请输入数字");
return;
}
balance+=money;
str1+="\n收益+"+money+"\t\t时间"+side.format(date)+"\t\t余额"+balance;
}
//消费
public void Pay(){
System.out.println("3.消费");
System.out.print("请输入消费说明确认: ");
str2=scanner.next();
try {
System.out.print("请输入消费金额: ");
money=scanner.nextDouble();
}catch (Exception e){
System.out.println("请输入数字");
return;
}
if (money<0||balance<money){
System.out.println("余额不足,请充值");
return;
}
balance-=money;
str1+="\n"+str2+"消费-"+money+"\t\t时间"+side.format(date)+"\t\t余额"+balance;
}
//退出
public void exit(){
System.out.println("4.退 出\n");
System.out.println("你确定要退出程序吗? y/n");
while (true){
c1=scanner.next().charAt(0);
if (c1=='y'){
System.out.println("程序成功退出。。。");
loop=false;
break;
}
if (c1=='n'){
System.out.println("退出失败。。。");
break;
}
System.out.println("输入错误,请重新输入 y/n");
}
}
}
运行效果: