零钱通(面向过程版本)
需求分析
1. 需要实现的功能
(1) 收益入账
(2) 消费
(3 )查看明细
(4 )退出系统
2. 代码优化部分
(1) 对用户输入 4 退出时,给出提示 “你确定要退出吗?y/n”,必须输入正确的 y/n,否则循环输入指令,直到输入 y 或者 n。
(2) 在收益入账和消费时,判断金额是否合理,并给出相应的提示。
代码示例
import java.util.Date;
import java.util.Scanner;
import java.text.SimpleDateFormat;
public class basic {
public static void main(String[] args) {
double money = 0;
boolean loop = true;
String details = "---------------零钱通明细---------------";
Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
while (loop) {
System.out.println();
System.out.println("---------------零钱通菜单---------------");
System.out.println("\t\t\t1.零钱通明细");
System.out.println("\t\t\t2.收益入账");
System.out.println("\t\t\t3.消费");
System.out.println("\t\t\t4.退出");
System.out.println("----------------------------------------");
System.out.print("\n请选择功能:");
Scanner input = new Scanner(System.in);
String choice = input.next();
switch (choice) {
case "1":
System.out.println(details);
break;
case "2":
System.out.print("输入入账金额:");
double income = input.nextDouble();
if (income <= 0) {
System.out.println("入账金额需要大于0");
break;
}
money += income;
date = new Date();
details += "\n收益入账\t" + "+" + income + "\t" + sdf.format(date) + "\t" + "余额:" + money;
break;
case "3":
System.out.print("消费去向:");
String info = input.next();
System.out.print("消费金额:");
double span = input.nextDouble();
if (span < 0 || span > money) {
System.out.println("消费金额需要在 0 ~ " + money + "之间");
break;
}
if(money == 0){
System.out.println("你的钱花光了,请等待下一笔入账之后再消费~~");
break;
}
money -= span;
date = new Date();
details += "\n" + info + "\t" + "-" + span + "\t" + sdf.format(date) + "\t" + "余额:" + money;
break;
case "4":
String choice1 = "";
while (true) {
System.out.println("\n确认退出吗?y/n");
System.out.print("请输入选择:");
choice1 = input.next();
if (choice1.equals("y") || choice1.equals("n")) {
break;
}
}
if (choice1.equals("y")) {
loop = false;
System.out.println("------------退出了零钱通系统-------------");
}
break;
default:
System.out.println("请输入(1 - 4) 选择功能");
break;
}
}
}
}
说明
日期格式化部分(到面向对象中级阶段会详解,现在只是了解)
import java.text.SimpleDateFormat;
import java.util.Date;
public class date{
public static void mian(String[] args){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
System.out.println(sdf.format(date));
}
}
编程习惯说明:一段代码写一个功能,提高代码的可读性