Java零钱通项目

该程序设计了一个零钱通系统,具备查询明细、收益入账、消费和退出等功能。用户可以选择相应操作,如输入入账或消费金额,并查看实时更新的余额和交易记录。程序使用Java实现,通过Scanner获取用户输入,利用Switch语句处理不同功能,并通过日期格式化展示详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:写出一段程序,描写一个零钱通项目,功能有查询明细,收益,消费,退出;

图片如下:

解决思路:

1.先简后繁:先构造出框架,即具体的菜单栏,然后进行测试,确保无误

2.补充细节:构造好框架以后,再根据具体的要求,将功能转换成代码,每一个功能进行单独调试,确保每个功能都正常

3.优化:代码结束以后,根据测试结果对代码进行优化,使代码的可读性更高

代码如下(仅供参考):

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

public class SmallChangeSys {
    //零钱通项目:包括零钱通明细,收益入账,消费,退出功能
    //思路:先构架出大概的框架,再根据具体细节进行补充

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);   //创建输入对象
        String key = "";                //key(1-4)表示选择的功能
        double money = 0;               //money表示每次入账或消费的金额
        boolean bool = true;           //表示退出do..while循环的变量
        double balance = 0;          //表示余额
        String way = "";             //表示消费途径
        String re = "";             //用于在收益和消费两个功能的字符串连接
        String ch = "";             //表示是否要退出进程的选择
        boolean bool1 = true;       //表示是否退出进程

        do {
            //构造出菜单栏的框架
            System.out.println("-------------零钱通菜单-------------");
            System.out.println("\t\t\t1 零钱通明细");
            System.out.println("\t\t\t2 收益入账");
            System.out.println("\t\t\t3 消 费");
            System.out.println("\t\t\t4 退    出");
            System.out.print("请选择(1-4): ");
            key = scanner.next();           //此时key表示选择的功能
            //用switch语句进行选择
            switch (key) {
                case "1" :
                    System.out.println("\n-------------零钱通明细-------------");
                    System.out.println(re);     //输出字符串的连接
                    break;
                case "2" :
                    System.out.print("输入入账金额:");
                    money = scanner.nextDouble();          //输入入账的金额
                    //如果入账金额小于等于0,说明此时入账金额无效
                    if (money <= 0) {
                        System.out.println("收益金额无效,请重新输入");
                        break;
                    }
                    balance += money;       //入账后的余额
                    Date date = new Date();             //创建一个日期对象,调用时可以显示实时日期
                    SimpleDateFormat sdf = new SimpleDateFormat();      //目的是将日期格式化
                    re += "\n收益入账\t+" + money + "\t" + sdf.format(date) + "\t余额:" + balance;        //写出入账后的信息
                    break;
                case "3" :
                    System.out.print("输入消费金额: ");
                    money = scanner.nextDouble();   //输入消费的金额
                    //如果小于等于0,则无效
                    if (money <= 0) {
                        System.out.println("消费金额无效,请重新输入");
                        break;
                    } else if (money >= balance) {          //如果消费金额大于余额,则输出余额不足
                        System.out.println("余额不足");
                        break;
                    }
                    System.out.print("消费途径:");
                    way = scanner.next();
                    balance -= money;
                    Date date1 = new Date();             //创建一个日期对象,调用时可以显示实时日期
                    SimpleDateFormat sdf1 = new SimpleDateFormat();
                    re += "\n" + way + "\t-" + money + "\t" + sdf1.format(date1) + "\t余额:" + balance;
                    break;
                case "4" :
                    //是否要退出,y表示退出,n表示不退出
                    while (true){
                        System.out.print("是否要退出y/n :");
                        ch = scanner.next();
                        if(ch.equals("y")){
                            bool = false;
                            break;
                        }else if (ch.equals("n")) {
                            break;
                        }else {
                            System.out.println("请重新输入");
                        }
                    }
                    break;
                default:
                    System.out.println("选择有误,请重新输入");
            }
        }while (bool);
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值