韩顺平-零钱通项目

📊一、项目需求说明:

使用Java开发零钱通项目,可以完成收益入账,消费,查看明细,退出系统等功能。

📲二、项目界面:

在这里插入图片描述

在这里插入图片描述

✏️步骤:

1.先完成显示菜单,并可以选择菜单,给出对应提示
2.完成零钱通明细
3.完成收益入账
4.完成消费
5.退出

➿ step1 菜单显示

        do {
            System.out.println("\n=========零钱通菜单=========");
            System.out.println("\t\t1.零钱通明细");
            System.out.println("\t\t2.收益入账");
            System.out.println("\t\t3.消费情况");
            System.out.println("\t\t4.退   出");
 
            System.out.println("请选择1-4");
            key = scanner.next();
 
            switch (key){
                case "1":
         System.out.println("\t\t1.零钱通明细");
                    break;
                case "2":
            System.out.println("\t\t2.收益入账");
                   break;
                case "3":
              System.out.println("\t\t3.消费情况");
                   break;
                case "4":
              System.out.println("\t\t4.退   出");
                    break;
                default:
                    System.out.println("重选择");
            }
 
        }while (loop);
    }

在这里插入图片描述

➿ step2 收益入账(case 2)

(1)定义money和剩余的钱(balance)以及对应的日期;
(2)SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
(3)money的值范围应该校验,找出不正确的金额条件,money<=0, 给出提示,直接break
        double money;
        double balance=0;
        Date date=null;//date是日期
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
		String details="------------------零钱通明细----------------------------";
case "2":
                    System.out.println("收益入账金额");
                    money=scanner.nextDouble();
                  //money的值范围应该校验
                    //找出不正确的金额条件,给出提示,直接break
                    if (money<=0){
                        System.out.println("收益入账金额需要大于0");
                        break;
                    }
                    balance+=money;
                    //拼接收益信息到details
                    date=new Date();//获取当前日期
                    //System.out.println(sdf.format(date) );

                    details+="\n收益入账\t+"+money+"\t"+sdf.format(date)+"\t"+balance;
                    break;

在这里插入图片描述

➿ step3 消费情况(case 3)

(1)范围校验,找出金额不正确的情况, (money<=0||money>balance)
case "3":
                    System.out.println("消费金额");
                    money=scanner.nextDouble();
                    //范围校验,找出金额不正确的情况
                    if (money<=0||money>balance){
                        System.out.println("消费金额应该在0-"+balance);
                    }
                    System.out.println("消费说明");
                    note=scanner.next();
                    balance -= money;
                    //拼接消费信息到detail
                    date=new Date();
                    details+="\n"+note+"\t-"+money+"\t"+sdf.format(date)+"\t"+balance;
                    break;

在这里插入图片描述

➿ step4 退出(case 4)

(1)定义变量choice,接收用户输入
(2)使用while循环+break,输入y或者n,处理接收到的输入
(3)退出while后,在判断choice是y还是n,决定是否退出
 case "4":
  String choice="";
                    while (true){//要求用户必须输入y或者n,否则就一直循环
                    System.out.println("你确定要退出?y/n");
                    choice =scanner.next();
                    if ("y".equals(choice)||"n".equals(choice)){
                        break;
                    }
                    }
                    if (choice.equals("y")){
                        loop=false;
                }
                    break;
                default:
                    System.out.println("输入有误,请重新选择");
            }

在这里插入图片描述

📃完整代码:

package SmallChange;

import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.util.Date;
public class SmallChangesys {
    //化繁为简
    //1.先完成显示菜单,并可以选择菜单,给出对应提示
    //2.完成零钱通明细
    //3.完成收益入账
    //4.完成消费
    //5.退出
    //6.用户输入4时,给出提示"你确定要退出?y/n,必须输入正确的y/n,否则循环进入指令,知道输入y/n
    public static void main(String[] args) {
        //定义变量
        boolean loop=true;
        Scanner scanner=new Scanner(System.in);
        String key=" ";
        //2.完成零钱通明细
        //(1)可以将收益入账和消费保存到数组
        //(2)可以使用对象
        //(3)简单的可以使用String拼接
        String details="------------------零钱通明细----------------------------";
        //3.完成收益入账
        double money;
        double balance=0;
        Date date=null;//date是日期
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
        //4.完成消费
        //定义新变量,保存消费原因
        String note="";

        do {

            System.out.println("\n==================零钱通菜单======================");
            System.out.println("\t\t\t\t1 零钱通明细");
            System.out.println("\t\t\t\t2 收益入账");
            System.out.println("\t\t\t\t3 消     费");
            System.out.println("\t\t\t\t4 退     出");

            System.out.println("请选择1-4");
            key=scanner.next();
            //使用switch分支控制
            switch (key){
                case "1":
                    System.out.println(details);
                    break;
                case "2":
                    System.out.println("收益入账金额");
                    money=scanner.nextDouble();
                  //money的值范围应该校验
                    //找出不正确的金额条件,给出提示,直接break
                    if (money<=0){
                        System.out.println("收益入账金额需要大于0");
                        break;
                    }

                    balance+=money;
                    //拼接收益信息到details
                    date=new Date();//获取当前日期
                    //System.out.println(sdf.format(date) );

                    details+="\n收益入账\t+"+money+"\t"+sdf.format(date)+"\t"+balance;
                    break;
                case "3":
                    System.out.println("消费金额");
                    money=scanner.nextDouble();
                    //范围校验,找出金额不正确的情况
                    if (C){
                        System.out.println("消费金额应该在0-"+balance);
                    }
                    System.out.println("消费说明");
                    note=scanner.next();
                    balance -= money;
                    //拼接消费信息到detail
                    date=new Date();
                    details+="\n"+note+"\t-"+money+"\t"+sdf.format(date)+"\t"+balance;
                    break;
                case "4":
                    //(1)定义变量choice,接收用户输入
                    //(2)使用while循环+break,输入y或者n,处理接收到的输入
                    //(3)退出while后,在判断choice是y还是n,决定是否退出
                    String choice="";
                    while (true){//要求用户必须输入y或者n,否则就一直循环
                    System.out.println("你确定要退出?y/n");
                    choice =scanner.next();
                    if ("y".equals(choice)||"n".equals(choice)){
                        break;
                    }
                    }
                    if (choice.equals("y")){
                        loop=false;
                }

                    break;
                default:
                    System.out.println("输入有误,请重新选择");
            }


        }while (loop);
            System.out.println("------------退出零钱通项目-----------------");

    }
}

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值