点我
零钱通项目实验
项目需求
零钱通项目,功能有零钱通明细、收益入账、消费、退出系统
- 用户输入4退出时,给出提示信息为确定要退出吗? Y/N,必须输入正确的Y/N,,否则循环输入指令,直到输入y或者n;
- 在收益入账和消费时,判断金额是否合理,并给出相应提示
项目先化繁为简
面向过程编程
import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.util.Date;
public class SmallChangeSys {
public static void main(String[] args) {
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = "";
// 1.零钱通明细
String details = "\n----------零钱通明细----------";
//2.收益入账
double money = 0.0;
double balance = 0.0; //余额
Date date = null; //表示当前的日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//可用于日期格式化
//3.消费
String note = "";
do {
System.out.println("=========零钱通菜单=========");
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 (key){
case "1":
System.out.println(details);
break;
case "2":
System.out.println("本次收益入账金额:");
money = scanner.nextDouble();
//money值校验
if (money <= 0){
System.out.println("收益入账金额需要大于零");
break;
}
balance += money;
date = new Date();//获取到当前的日期
details += "\n收益入账\t+" + money + "\t" + sdf.format(date) + "\t" + balance;
//System.out.println(details);
break;
case "3":
System.out.println("消费金额:");
money = scanner.nextDouble();
//消费金额校验
if (money > balance || money <= 0){
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":
String choice = "";
//必须输入y或者n
while (true){
System.out.println("确定要退出吗?y/n");
choice = scanner.next();
if ("y".equals(choice) || "n".equals(choice)){
break;
}
}
//如果输入y则退出程序
if (choice.equals("y")){
loop = false;
}
break;
default:
System.out.println("输入有误,请重新选择");
}
}while (loop);
System.out.println("------已退出零钱通项目------");
}
}
面向对象编程
SmallChangeSysOOP类 用于完成各个 功能
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
//将每个功能对应一个方法
public class SmallChangeSysOOP {
boolean loop = true;
Scanner scanner = new Scanner(System.in);
String key = "";
// 1.零钱通明细
String details = "\n----------零钱通明细----------";
//2.收益入账
double money = 0.0;
double balance = 0.0; //余额
Date date = null; //表示当前的日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");//可用于日期格式化
//3.消费
String note = "";
// 主菜单
public void mainMenu(){
do {
System.out.println("=========OOP版本 零钱通菜单=========");
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 (key){
case "1":
this.detail();
break;
case "2":
this.income();
break;
case "3":
this.pay();
break;
case "4":
this.exit();
break;
default:
System.out.println("输入有误,请重新选择");
}
}while (loop);
}
//零钱通明细
public void detail(){
System.out.println(details);
}
//收益入账
public void income(){
System.out.println("本次收益入账金额:");
money = scanner.nextDouble();
//money值校验
if (money <= 0){
System.out.println("收益入账金额需要大于零");
return ; //退出方法 不再执行后面的代码
}
balance += money;
date = new Date();//获取到当前的日期
details += "\n收益入账\t+" + money + "\t" + sdf.format(date) + "\t" + balance;
}
//消费
public void pay(){
System.out.println("消费金额:");
money = scanner.nextDouble();
//消费金额校验
if (money > balance || money <= 0){
System.out.println("您的消费金额应该在0-" + balance);
return;
}
System.out.println("消费说明:");
note = scanner.next();
balance -= money;
date = new Date();//获取到当前的日期
details += "\n" + note + "\t-" + money + "\t" + sdf.format(date) + "\t" + balance;
}
//退出功能
public void exit(){
String choice = "";
//必须输入y或者n
while (true){
System.out.println("确定要退出吗?y/n");
choice = scanner.next();
if ("y".equals(choice) || "n".equals(choice)){
break;
}
}
//如果输入y则退出程序
if (choice.equals("y")){
loop = false;
}
}
}
SmallChangeSysApp类 用于完成测试
//直接调用SmallChangeSysOOP的对象,显示主菜单即可
public class SmallChangeSysApp {
public static void main(String[] args) {
new SmallChangeSysOOP().mainMenu();
}
}
分类:
JAVA
版权申明
本文系作者 @小白学安全 原创发布在 xbxaq.com 站点,未经许可,禁止转载!
评论