Java实现零钱通

零钱通介绍 :

零钱通是日常常见的项目,它可以对用户的账户金额进行管理,记录金额流动明细,支付宝、微信等各大APP几乎都有此功能。

题目要求 :

编写一个程序,实现零钱通的收益入账、消费、查看明细功能。要求对入账、消费的金额进行判断是否合法,并进行相应提示;对用户退出进行判断,用户输入是否退出,否则重新输入。

本例通过面向过程实现 

代码如下 :

package ChangeMoney;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Menu {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        boolean serv = true;//服务
        int operate;//将要进行的操作
        double money = 0.0;//入账金额
        double balance = 2000;//总金额,初值2000
        String reason = null;//金额变动原因
        String diagnose = null;//判断是否退出
        Date date = null;//date 是 java.util.Date 类型,表示日期
        String details = "-------------------零钱通明细-------------------";

        //格式化日期
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH : mm");

        do {
            System.out.println("===================零钱通菜单===================");
            System.out.println("\t\t\t\t  1 零钱通明细\n\t\t\t\t  2 收益  入账\n\t\t\t\t  3 消     费\n\t\t\t\t  4 退     出");
            System.out.print("请选择你要进行的操作:");
            operate = scanner.nextInt();

            switch (operate) {
                case 1:
                    System.out.println(details);
                    break;
                case 2:
                    System.out.println("入账金额 : ");
                    money = scanner.nextDouble();
                    if (money > 0.0) {
                        balance += money;
                        date = new Date();//获取当前日期
                        details += "\n收益入账" + "\t +" + money + "\t" + simpleDateFormat.format(date) + "\t" + balance;
                    }
                    else{
                        System.out.println("您的金额有误!!!");
                    }
                    break;
                case 3:
                    System.out.println("消费金额 : ");
                    money = scanner.nextDouble();
                    if (money > 0.0){
                        balance -= money;
                        System.out.println("消费原因 : ");
                        reason = scanner.next();//输入消费原因
                        date = new Date();//获取当前日期
                        details += "\n" + reason + "\t -" + money + "\t\t" + simpleDateFormat.format(date) + "\t\t" + balance;
                    }
                    else {
                        System.out.println("您的金额有误!!!");
                    }
                    break;
                case 4:
                    System.out.println("您确定要退出吗?(退出/继续)");
                    while(true) {
                                    diagnose = scanner.next();
                                    if (diagnose.equals("退出")) {
                                        System.out.println("用户退出");
                                        serv = false;
                                        break;
                                    } else if (diagnose.equals("继续")) {
                                        System.out.println("请用户继续操作");
                                        break;
                                    }
                                    if((!(diagnose.equals("退出"))) && (!(diagnose.equals("继续")))) {
                                        System.out.println("请重新输入");
                                    }
                                }
                    break;
                default:
                    System.out.println("退出零钱通");
            }
        }while(serv);
    }
}

 题目及灵感来源于B站韩顺平java0基础教学。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值