零钱通(面向过程版本)
需求分析
1. 需要实现的功能
2. 代码优化部分
-
(1) 对用户输入 4 退出时,给出提示 “你确定要退出吗?y/n”,必须输入正确的 y/n,否则循环输入指令,直到输入 y 或者 n。
-
代码示例
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)); }
}
编程习惯说明:一段代码写一个功能,提高代码的可读性