java实现零钱通系统

使用Java 开发 零钱通项目 , 可以完成1.收益入账,2.消费,3.查看明细,4.退出系统等功能.
化繁为简.
1) 先完成显示菜单,并可以选择
2) 完成零钱通明细.
3) 完成收益入账
4) 消费
5) 退出

/**
 * @author kyo
 * @version 1.0
 */

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


//使用Java 开发 零钱通项目 , 可以完成1.收益入账,2.消费,3.查看明细,4.退出系统等功能.
//化繁为简.
//1) 先完成显示菜单,并可以选择
//2) 完成零钱通明细.
//3) 完成收益入账
//4) 消费
//5) 退出
public class changeSys {
    public static void main(String[] args) {
        change myAccount = new change(0);
        myAccount.content();
    }
}

class change {
    private double changeAccount;
    private String[] changeDetail;
    private int lengthCount = 0;

    public change(double changeAccount) {
        this.changeAccount = changeAccount;
    }

    public String[] getChangeDetail() {
        return changeDetail;
    }

    public void setChangeDetail(String[] changeDetail) {
        this.changeDetail = changeDetail;
    }

    public int getLengthCount() {
        return lengthCount;
    }

    public void setLengthCount(int lengthCount) {
        this.lengthCount = lengthCount;
    }

    public double getChangeAccount() {
        return changeAccount;
    }

    public void setChangeAccount(double changeAccount) {
        this.changeAccount = changeAccount;
    }

    public void content() {
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("=============零钱通菜单=============");
            System.out.println("1 零钱通明细");
            System.out.println("2 收益入账");
            System.out.println("3 消费");
            System.out.println("4 退出系统");
            System.out.println("输入数字选择要使用的功能(1-4):");
            int choice = sc.nextInt();//选择使用的功能
            if (choice == 1) {
                changeDetail();
            } else if (choice == 2) {
                System.out.println("请输入收益:");
                changeProfit(sc.nextDouble());
            } else if (choice == 3) {
                System.out.println("请输入消费数额:");
                double consume=sc.nextDouble();
                System.out.println("请输入消费事宜:");
                String consumeDetail=sc.next();
                changeConsume(consume,consumeDetail);
            } else if (choice == 4) {
                System.out.println("你确定要退出码?y/n");
                char ch = sc.next().charAt(0);
                if (ch == 'y' || ch == 'Y') {
                    break;
                }
            } else {
                System.out.println("输入有误!");
                //content();
            }
        }

    }

    /**
     * @description 以String数组的类型输出零钱通明细
     */
    public void changeDetail() {
        System.out.println("=============零钱通明细=============");
        if (changeDetail == null) {
            System.out.println("无明细");
            return;
        }
        for (int i = 0; i < changeDetail.length; i++) {
            System.out.println(changeDetail[i]);
        }
    }

    /**
     * @param profit
     * @description 将输入的数据以String形式存储到changeDetail中
     */
    public void changeProfit(double profit) {
        Scanner sc = new Scanner(System.in);
        while(true){//判断数值是否合法
            if(profit <= 0) {
                System.out.println("输入有误!请重新输入:");
                profit = sc.nextDouble();
            }
            else{
                break;
            }
        }
        changeAccount += profit;

        arrTool arrTool = new arrTool();
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        changeDetail = arrTool.addString(changeDetail, "收益入账\t+" + profit + "\t" + format.format(date) + "\t余额:" +
                "\t" + changeAccount);
    }

    /**
     * @description 将消费明细写入消费记录,并且更新账户余额
     * @param consume
     * @param consumeDetail
     */
    public void changeConsume(double consume, String consumeDetail) {
        Scanner sc = new Scanner(System.in);
        while(true){//判断数值是否合法
            if(consume <= 0) {
                System.out.println("输入有误!请重新输入:");
                consume = sc.nextDouble();
            }
            else{
                break;
            }
        }
        changeAccount -= consume;

        arrTool arrTool = new arrTool();
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        changeDetail = arrTool.addString(changeDetail, consumeDetail + "\t-" + consume + "\t" + format.format(date) + "\t余额:" +
                "\t" + changeAccount);

    }
}

class arrTool {
    private String[] arr;

    /**
     * @param oldArr
     * @param str
     * @return
     * @description 实现了将数组增加一位的功能
     */
    public String[] addString(String[] oldArr, String str) {
        if (oldArr == null) {
            String[] newArr = new String[1];
            newArr[0] = str;
            return newArr;
        } else {
            String[] newArr = new String[oldArr.length + 1];
            for (int i = 0; i < oldArr.length; i++) {//复制旧数组内容
                newArr[i] = oldArr[i];
            }
            newArr[oldArr.length] = str;
            return newArr;
        }

    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值