Java小项目 零钱通

简介: Java项目小练习零钱通(学习)老韩思路:一些说明SmallChangeSys 用来写main方法代码如下具体说明各个方法的作用:public void menu()方法void detailed_()方法public void input()方法public void output()方法SmallChangeSysOOP完整代码

Java项目小练习零钱通


(学习)老韩思路:


一些说明


SmallChangeSys 用来写main方法代码如下


具体说明各个方法的作用:


public void menu()方法


void detailed_()方法


public void input()方法


public void output()方法


SmallChangeSysOOP完整代码


一些图片


70bde902032d44239a302bb2df0f869d.png


如图:


(学习)老韩思路:


(1)可以把收益入账和消费,保存到数组中(但目前学到的数组是定长的)


(2)可以使用对象


(3)可以使用String拼接


完成收益入账,完成功能驱动程序员增加新的变化的代码


(1)要接收收益入账的金额,并更新余额


(2)拼接好字符串


(3)找到时间如何输出,并且修改其输出格式


我用的字符串拼接


9ec008edbcce476aa6f14c405bffeaf9.png


一些说明


**:创建一个包 com.project.money.oop


然后创建两个类 SmallChangeSys和SmallChangeSysOOP


SmallChangeSys 用来写main方法代码如下


package com.project.money.oop;
public class SmallChangeSys {
    public static void main(String[] args) {
        SmallChangeSysOOP p=new SmallChangeSysOOP();
        p.menu();
    }
}


SmallChangeSysOOP用来实现具体功能


代码如下:


package com.project.money.oop;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSysOOP {
    private  double in_money=0;//当前流动的钱
    private double balance=0;//余额
    private String detailed="------------零钱通明细--------------";
    private Date date = null;
    //可以用于日期格式化的
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
public void menu(){};
//1 零钱通明细
 public void detailed_(){};
 //2 收益入账"
 public void input(){};
 //3消费
    public void output(){};
}


具体说明各个方法的作用:


public void menu()方法


public void menu(){//菜单
        boolean loop=true;
        Scanner scanner = new Scanner(System.in);
        while(loop){//循环展示菜单
            System.out.println("\n============oop零钱通菜单==============");
            System.out.println("\t\t1 零钱通明细");
            System.out.println("\t\t2 收益入账");
            System.out.println("\t\t3 消费");
            System.out.println("\t\t4 退" + "\t" + "出");
            System.out.print("请选择1-4:");int key= scanner.nextInt();//选择;
            switch (key){
                case 1:detailed_();break;
                case 2:input();break;
                case 3:output();break;
                case 4:System.out.println("\t\t程序已经退出");loop=false;break;
            }
        }
    }


void detailed_()方法


public void detailed_(){
        System.out.println(detailed);//直接输出字符
    }


public void input()方法


public void input(){//收益入账
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入金额:");
        this.in_money=scanner.nextDouble();
        while(in_money<0){
            System.out.println("======输入有误======");
            System.out.println("是否重新输入?Y(是)或 N(否) ");//可能点错了不是输入
            String in=scanner.next();//是否重新输入
            if(in.equals("n")||in.equals("N")){
                System.out.println("返回主页面中....");
                /*****************************************/
                try {
                    Thread.sleep( 1000 );//暂停1秒提升用户感受
                } catch (Exception e){}
                /*******************************************/
                return;//退出输入
            }
                System.out.println("请输入金额:");
                this.in_money=scanner.nextDouble();
        }
        this.balance+=this.in_money;
        String beizhu="";
        date = new Date();
        System.out.println("请输入备注:");
        beizhu=scanner.next();
        this.detailed+="\n收益入帐\t+" + this.in_money + "\t" + sdf.format(date) +
                "\t余额:" + this.balance+ "  备注:" +beizhu;
    }


public void output()方法


 public void output(){
        System.out.println("请输入金额:");
        Scanner scanner = new Scanner(System.in);
        in_money=scanner.nextDouble();
        if(balance<in_money){
            System.out.println("余额不足,请充值");
            return;
        }
        while(in_money<0){
            System.out.println("输入错误,请重输");
            in_money=scanner.nextDouble();
            if(balance<in_money){
                System.out.println("余额不足,请充值");
                return;
            }
        }
        this.balance-=in_money;
        System.out.println("请输入备注:");
        String beizhu=scanner.next();
        this.detailed+="\n余额支出\t-" + this.in_money + "\t" + sdf.format(date) +
                "\t余额:" + this.balance+ "  备注:" +beizhu;
    }


SmallChangeSysOOP完整代码


package com.project.money.oop;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class SmallChangeSysOOP {
    private  double in_money=0;//当前流动的钱
    private double balance=0;//余额
    private String detailed="------------零钱通明细--------------";
    private Date date = null;
    //可以用于日期格式化的
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    public void menu(){//菜单
        boolean loop=true;
        Scanner scanner = new Scanner(System.in);
        while(loop){//循环展示菜单
            System.out.println("\n============oop零钱通菜单==============");
            System.out.println("\t\t1 零钱通明细");
            System.out.println("\t\t2 收益入账");
            System.out.println("\t\t3 消费");
            System.out.println("\t\t4 退" + "\t" + "出");
            System.out.print("请选择1-4:");int key= scanner.nextInt();//选择;
            switch (key){
                case 1:detailed_();break;
                case 2:input();break;
                case 3:output();break;
                case 4:System.out.println("\t\t程序已经退出");loop=false;break;
            }
        }
    }
    //1 零钱通明细
    public void detailed_(){
        System.out.println(detailed);
    }
    //2 收益入账"
    public void input(){//收益入账
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入金额:");
        this.in_money=scanner.nextDouble();
        while(in_money<0){
            System.out.println("======输入有误======");
            System.out.println("是否重新输入?Y(是)或 N(否) ");//可能点错了不是输入
            String in=scanner.next();//是否重新输入
            if(in.equals("n")||in.equals("N")){
                System.out.println("返回主页面中....");
                /*****************************************/
                try {
                    Thread.sleep( 1000 );//暂停1秒提升用户感受
                } catch (Exception e){}
                /*******************************************/
                return;//退出输入
            }
                System.out.println("请输入金额:");
                this.in_money=scanner.nextDouble();
        }
        this.balance+=this.in_money;
        String beizhu="";
        date = new Date();
        System.out.println("请输入备注:");
        beizhu=scanner.next();
        this.detailed+="\n收益入帐\t+" + this.in_money + "\t" + sdf.format(date) +
                "\t余额:" + this.balance+ "  备注:" +beizhu;
    }
    //3消费
    public void output(){
        System.out.println("请输入金额:");
        Scanner scanner = new Scanner(System.in);
        in_money=scanner.nextDouble();
        if(balance<in_money){
            System.out.println("余额不足,请充值");
            return;
        }
        while(in_money<0){
            System.out.println("输入错误,请重输");
            in_money=scanner.nextDouble();
            if(balance<in_money){
                System.out.println("余额不足,请充值");
                return;
            }
        }
        this.balance-=in_money;
        System.out.println("请输入备注:");
        String beizhu=scanner.next();
        this.detailed+="\n余额支出\t-" + this.in_money + "\t" + sdf.format(date) +
                "\t余额:" + this.balance+ "  备注:" +beizhu;
    }
}


一些图片7549a180389d4ba0b5c6201be2544a0c.png9a38658a090b4df8b0b5a6605a5ffd13.png761f1f88ae444a9896ace81dcb06b3e7.png202fb51445eb4050a1fb93fea68fdf4e.png

目录
相关文章
|
1月前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
191 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
10天前
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
62 23
|
1月前
|
前端开发 JavaScript Java
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
137 13
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
|
1月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
102 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
1月前
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
91 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
1月前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
110 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
1月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
78 7
|
2月前
|
前端开发 Java 程序员
菜鸟之路day02-04拼图小游戏开发一一JAVA基础综合项目
本项目基于黑马程序员教程,涵盖面向对象进阶、继承、多态等知识,历时约24小时完成。项目去除了登录和注册模块,专注于单机游戏体验。使用Git进行版本管理,代码托管于Gitee。项目包含窗体搭建、事件监听、图片加载与打乱、交互逻辑实现、菜单功能及美化界面等内容。通过此项目,巩固了Java基础并提升了实际开发能力。 仓库地址:[https://gitee.com/zhang-tenglan/puzzlegame.git](https://gitee.com/zhang-tenglan/puzzlegame.git)
53 6
|
3月前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
1045 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
2月前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
88 6
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等