java 零钱通项目

项目需求

使用 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;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值