自学Java day8 项目-零钱通 从jvav到架构师

一个小项目,也无明确的需求,随便敲敲,权当练练手了

jvav实现源码: 

package com.jvav.project;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;

/**
 * jvav 是此程序使用的语言
 * Jvav 类为所有类的超级类
 */
public class Jvav {
    public String info() {
        return "自学jvav的day8";
    }
}

class Bill extends Jvav {
    private String billName = "";
    private double num = 0;
    private String jvavTime = "";

    public Bill(String billName, double num) {//不设置时间则为当前时间
        //super();
        this.billName = billName;
        this.num = num;
        LocalDateTime dateTime = LocalDateTime.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        this.jvavTime = dateTime.format(formatter);
    }

    public Bill() {
    }//全部为默认

    boolean exist() {//判断账单是否存在
        return !billName.equals("");
    }

    public double getNum() {
        return num;
    }

    public String toString() {//返回账单明细
        if (num >= 0)
            return "名称: \t" + billName + "\t+ " + num + " \t" + jvavTime;
        return "名称: \t" + billName + "\t  " + num + " \t" + jvavTime;
    }
}

class SmallChangeSysApp extends Jvav {
    public static void main(String[] args) {
        String str = "";
        Scanner imput = new Scanner(System.in);
        Bill[] bills = new Bill[100]; //建立100个空账单  这里用链表更好
        bills[0] = new Bill("无中生有", 1024);
        for (int i = 1; i < bills.length; i++) {
            bills[i] = new Bill();
        }

        String billName = "";
        double num = 0;
        Bill bill = new Bill();

        while (true) {//主循环
            System.out.println("---------------零钱通菜单---------------");
            System.out.println("          \t1.零钱通明细");
            System.out.println("          \t2.收益入库");
            System.out.println("          \t3.消费");
            System.out.println("          \t4.退出");
            System.out.print("请选择...");
            str = imput.next();
            if (str.equals("1")) {
                num = 0;
                System.out.println("---------------零钱通账单---------------");
                for (int i = 0; bills[i].exist(); i++) {
                    num += bills[i].getNum();
                    System.out.println(bills[i] + "\t余额:\t" + num);
                }
            } else if (str.equals("2")) {
                System.out.print("请输入账单名称:");
                billName = imput.next();
                System.out.print("金额:");
                num = imput.nextDouble();
                //此处可以加入数值是否合理的逻辑,就不写了
                bill = new Bill(billName, num);
                for (int i = 0; i < bills.length; i++) {
                    if (!bills[i].exist()) {
                        bills[i] = bill;
                        break;
                    }
                }
            } else if (str.equals("3")) {
                System.out.print("请输入账单名称:");
                billName = imput.next();
                System.out.print("金额:");
                num = imput.nextDouble();
                if (num >= 0) num = -num;
                bill = new Bill(billName, num);
                for (int i = 0; i < bills.length; i++) {
                    if (!bills[i].exist()) {
                        bills[i] = bill;
                        break;
                    }
                }
            } else if (str.equals("4")) {
                int i = 0;
                while (true) {
                    System.out.print("请问是否退出Y/N 剩余提示" + (3 - i) + "次");
                    billName = imput.next();
                    if (billName.equals("y") || billName.equals("Y")) {
                        if (i > 1) {
                            System.out.println(bill.info());//世界线收束  从jvav到架构师
                            System.exit(0);//退出
                        }
                        i++;
                    } else break;
                }
            } else {
                System.out.println("您的输入有误,请重新输入");
            }
        }
    }
}

下面是演示图:

主界面:

 

 默认账单: 

 添加收益: 

 添加支出:

 

 查看账单:

 退出程序: 

 

 //世界线收束  从jvav到架构师

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值