项目需求
使用 java 开发零钱通项目,可以完成收益入账、消费、查看明细、退出系统等功能。
项目界面
项目代码
import java.util.Scanner;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SmallChangeSys {
private double balance; // 余额
private String detail = "--------------零钱通明细--------------"; //零钱通明细
public static void main(String[] args) {
SmallChangeSys smallChangeSys = new SmallChangeSys();
smallChangeSys.menu();
}
// 菜单
public void menu() {
Scanner scanner = new Scanner(System.in);
int select = 0;
boolean loop = true;
while(loop) {
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):");
select = scanner.nextInt();
switch(select){
case 1 : {
// System.out.println("零钱通明细");
printDetail();
break;
}
case 2 : {
// System.out.println("收益入账");
income();
break;
}
case 3 : {
// System.out.println("消费");
consume();
break;
}
case 4 : {
// System.out.println("退出系统");
loop = exitSys();
break;
}
default : {
System.out.println("没有该选项,请重新输入....");
}
}
}
}
// 零钱通明细
public void printDetail(){
System.out.println(detail);
}
// 收益入账
public void income(){
Scanner scanner = new Scanner(System.in);
System.out.println("请输入入账金额:");
double money = scanner.nextDouble();
// 对输入金额进行数据校验
if(money <= 0){
System.out.println("入账金额需要大于0");
return;
}
balance += money; // 余额加上收入
// 拼接上明细
detail += "\n收益入账:\t+" + money + "\t" + dateFormat() + "\t余额:" + balance;
}
// 消费
public void consume(){
String reason = ""; // 消费原因
double money = 0; // 消费金额
Scanner scanner = new Scanner(System.in);
System.out.println("请输入消费说明:");
reason = scanner.next();
System.out.println("请输入消费金额:");
money = scanner.nextDouble();
// 对消费金额进行数据校验
if(money <= 0 || money > balance){
System.out.println("消费金额要在 0-" + balance);
return;
}
balance -= money;
detail += "\n" + reason + "\t-" + money + "\t" + dateFormat() + "\t余额:" + balance;
}
// 返回格式化后的当前时间
public String dateFormat(){
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
return sdf.format(new Date());
}
// 退出系统
public boolean exitSys(){
Scanner scanner = new Scanner(System.in);
char ch;
while (true) {
System.out.println("确定退出系统吗? y/n");
ch = scanner.next().charAt(0);
if('y' == ch || 'n' == ch){
break;
}
}
if('y' == ch){
System.out.println("已退出零钱通....");
return false;
}
return true;
}
}