栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java零钱通小项目

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java零钱通小项目

在学习Java的过程中分享的一些知识
本项目代码来自韩顺平老师最新的Java课程,这是我见过最好的Java课程,想学习Java的小伙伴可以去观看这个视频
链接如下【零基础 快速学Java】韩顺平 零基础30天学会Java
大家可以详细比较两个版本的区别,深入理解面向对象思想,对基础差的小伙伴应该会有很大的帮助。如果有任何疑问的小伙伴,欢迎评论区留言或私信。

1、面向对象版本

SmallChangeSysOOP类,功能实现类

package com.project.money.oop;

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


public class SmallChangeSysOOP {
    boolean loop = true;
    Scanner scanner = new Scanner(System.in);
    String key = "";
    //1.先完成显示菜单

    //2.完成零钱通明细,可以用数组、对象、String拼接
    String detail = "------------零钱通明细--------------";

    //3.完成收益入账
    double money = 0;
    double balance = 0; //余额
    Date date = null;
    //可以用于日期格式化的
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");

    //4.完成消费
    String note = "";

    //完成菜单显示
    public void mainMenu() {
        do {
            System.out.println("n============oop零钱通菜单==============");
            System.out.println("tt1 零钱通明细");
            System.out.println("tt2 收益入账");
            System.out.println("tt3 消费");
            System.out.println("tt4 退" + "t" + "出");
            System.out.print("please input your option:");
            key = scanner.next();
            switch (key) {
                case "1":
                    detail();
                    break;
                case "2":
                    income();
                    break;
                case "3":
                    pay();
                    break;
                case "4":
                    exit();
                default:
                    System.out.println("input error,please reset input");
            }
        } while (loop);
        System.out.println("退出了零钱通项目");
    }

    //完成零钱通明细
    public void detail() {
        System.out.println(detail);
    }

    //完成收益入账
    public void income() {
        System.out.println("收益入账金额:");
        money = scanner.nextDouble();
        if (money <= 0) {
            System.out.println("收益金额需大于0");
            return;
        }
        balance += money;
        date = new Date();
        detail += "n收益入帐t+" + money + "t" + sdf.format(date) + "t" + balance;
    }

    //完成消费
    public void pay() {
        System.out.println("输入消费金额:");
        money = scanner.nextDouble();
        if (money <= 0 || money > balance) {
            System.out.println("你的消费金额应该在 0-" + balance);
            return;
        }
        System.out.println("消费说明:");
        note = scanner.next();
        balance -= money;
        date = new Date();
        detail += "n" + note + "t-" + money + "t" + sdf.format(date) + "t" + balance;
    }

    //退出
    public void exit() {
        String choice = "";
        while (true) {
            System.out.println("你确定要退出吗?y/n");
            choice = scanner.next();
            if ("y".equals(choice) || "n".equals(choice)) {
                break;
            }
        }
        if ("y".equals(choice)) {
            loop = false;
        }
    }
}

测试类 SmallChangeSysAPP

package com.project.money.oop;

import com.project.money.SmallChangeSys;


public class SmallChangeSysAPP {
    public static void main(String[] args) {
        SmallChangeSysOOP s = new SmallChangeSysOOP();
        s.mainMenu();
    }
}
2、以下是没有用面向对象思想的
package com.project.money;


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


public class SmallChangeSys {
    public static void main(String[] args) {
        boolean loop = true;
        Scanner scanner = new Scanner(System.in);
        String key = "";
        //1.先完成显示菜单

        //2.完成零钱通明细,可以用数组、对象、String拼接
        String detail = "------------零钱通明细--------------";

        //3.完成收益入账
        double money = 0;
        double balance = 0; //余额
        Date date = null;
        //可以用于日期格式化的
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");

        //4.完成消费
        String note = "";
        do {
            System.out.println("n============零钱通菜单=============");
            System.out.println("tt1 零钱通明细");
            System.out.println("tt2 收益入账");
            System.out.println("tt3 消费");
            System.out.println("tt4 退" + "t" + "出");
            System.out.print("please input your option:");
            key = scanner.next();

            switch (key) {
                case "1":
                    System.out.println(detail);
                    break;
                case "2":
                    System.out.println("收益入账金额:");
                    money = scanner.nextDouble();
                    if (money <= 0) {
                        System.out.println("收益金额需大于0");
                        break;
                    }
                    balance += money;
                    date = new Date();
                    detail += "n收益入帐t+" + money + "t" + sdf.format(date) + "t" + balance;
                    break;
                case "3":
                    System.out.println("输入消费金额:");
                    money = scanner.nextDouble();
                    if (money <= 0 || money > balance) {
                        System.out.println("你的消费金额应该在 0-" + balance);
                        break;
                    }
                    System.out.println("消费说明:");
                    note = scanner.next();
                    balance -= money;
                    date = new Date();
                    detail += "n" + note + "t-" + money + "t" + sdf.format(date) + "t" + balance;
                    break;
                case "4":
                    String choice = "";
                    while (true) {
                        System.out.println("你确定要退出吗?y/n");
                        choice = scanner.next();
                        if ("y".equals(choice) || "n".equals(choice)) {
                            break;
                        }
                    }
                    if ("y".equals(choice)) {
                        loop = false;
                    }
                    break;
                default:
                    System.out.println("input error,please reset input");
            }
        } while (loop);
        System.out.println("退出了零钱通项目");
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/343108.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号