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

目录
相关文章
|
2月前
|
Java
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
本文介绍了如何使用IDEA(IntelliJ IDEA)创建一个新的Java项目,并运行一个简单的Java程序输出"Hello Word"。文章详细展示了创建项目的步骤,包括选择JDK版本、设置项目名称和路径、创建包和类,以及编写和运行代码。最后,还展示了如何通过IDEA的运行功能来执行程序并查看输出结果。
147 4
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
|
1月前
|
关系型数据库 MySQL Java
【MySQL+java+jpa】MySQL数据返回项目的感悟
【MySQL+java+jpa】MySQL数据返回项目的感悟
44 1
|
1月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
79 3
|
3月前
|
IDE Java 开发工具
Java系统中的错误码设计问题之为Java项目中的错误消息提供国际化支持如何解决
Java系统中的错误码设计问题之为Java项目中的错误消息提供国际化支持如何解决
50 0
|
3月前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
5天前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
22 4
|
11天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
24 3
|
14天前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
35 1
|
1月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
349 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
21天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。