零钱通项目
项目开发流程说明
项目需求说明
使用java开通零钱通项目,可以完成收益入账,消费,查看明细,退出系统等功能
项目的界面 – 化繁为简
--------------------零钱通菜单-------------------------
1 零钱通明细
2 收益入账
3 消费
4 退 出
请选择(1-4)
--------------------零钱通明细-------------------------
收益入账 +100.0 2021-01-21 17:41 余额 :100.0
收益入账 +500.0 2021-01-21 17:41 余额 :600.0
收益入账 -20.0 2021-01-21 17:41 余额 :580.0
- 先完成显示菜单,并可以选择
- 完成零钱通明细
- 可以把收益入账和消费,保存到数组
- 可以使用对象
- 简单的话可以使用String拼接
- 完成收益入账 完成功能驱动程序员增加新的变量和代码
- 消费
项目代码实现改进
- 用户输入4退出时,给出提示"你确定要退出吗?",必须输入正确的y/n,否则循环输入指令,直到输入y/n
- 在收益入账和消费时,判断金额是否合理,并给出相应的提示
- 将面向过程的代码修改成面向对象的方法,编写SmallChangeSysOOP.java类,并使用SmallChangSysApp.java完成测试
package com.hspedu;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
import java.util.SimpleTimeZone;
public class samllchange {
//化繁为简
//1.先完成显示菜单,并可以选择菜单,给出对应提示
//2.完成零钱通明细
//3.完成收益入账
//4.消费
//5.退出
//6.用户输入4退出时,给出提示"你确定要退出吗?",必须输入正确的y/n,否则循环输入指令,直到输入y/n
//7.在收益入账和消费,判断金额是否合理,并给出相应的提示
public static void main(String [] args){
Scanner scanner = new Scanner(System.in);
String key = "";
String details = "==========零钱通明细==========";
boolean loop = true;
//定义新的变量
double money = 0;
double balance = 0;
String note =""; //记录新的变量保存消费的原因
Date date = null; //data 是java.util.Data 类型,表示日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//可以用于日期格化
String choice ="";
do {
System.out.println("\n==========零钱通菜单=========");
System.out.println("\t1 零钱通明细");
System.out.println("\t2 收益入账");
System.out.println("\t3 消费");
System.out.println("\t4 退 出");
System.out.println("请选择(1-4):");
key = scanner.next();
//使用switch 分支控制
//1. 可以把收益入账和消费,保存到数组
//2. 可以使用对象
//3. 简单的话可以使用String拼接
switch (key){
case"1":
System.out.println(details);
break;
case"2":
System.out.print("收益入账金额:");
money = scanner.nextDouble();
//money的值范围应该校验
//找出不正确的金额条件,然后给出提示,就直接break 编程思想
if (money <=0){
System.out.println("收益入账金额范围需要大于 0");
break;
}
balance +=money;
date = new Date();//获取当前的日期
details +="\n收益入账\t"+money+"\t"+sdf.format(date)+"\t"+"余额:"+balance;
//拼接收益入账信息到 datails
break;
case"3":
System.out.println("消费的金额:");
money = scanner.nextDouble();
if (money <= 0||money > balance){
System.out.println("你的消费金额必须在0-"+balance+"之间");
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":
while (true){
System.out.println("你确定要退出吗,请输入y/n?");
choice = scanner.next();
if ("y".equals(choice)||"n".equals(choice)){
break;
}else {
System.out.println("你的输入有误,请重新输入y/n");
}
}
if (choice.equals("y")){
loop = false;
}
break;
default:
System.out.println("选择有误,请重新选择");
}
}while (loop);
System.out.println("-----------退出了零钱通-----------"); }
}
SmallChangeSysOOP 完成功能
- 先完成显示菜单,并可以选择
- 完成零钱通明细
- 完成收益入账
- 消费
- 退出
![image-20220209170159565](https://gitee.com/Z512/picture/raw/master/img/202202091705383.png)