Java小项目 零钱通

Posted 笑霸final

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小项目 零钱通相关的知识,希望对你有一定的参考价值。

注意:本项目来自B站韩顺平老师 点此跳转

如图:

(学习)老韩思路:

(1)可以把收益入账和消费,保存到数组中(但目前学到的数组是定长的)
(2)可以使用对象
(3)可以使用String拼接
完成收益入账,完成功能驱动程序员增加新的变化的代码
(1)要接收收益入账的金额,并更新余额
(2)拼接好字符串
(3)找到时间如何输出,并且修改其输出格式
我用的字符串拼接

**

一些说明

**:创建一个包 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;

    




一些图片



还请大家一键三连 谢了老铁

👍点赞👍 + 👀关注👀 + 🤏收藏🤏

以上是关于Java小项目 零钱通的主要内容,如果未能解决你的问题,请参考以下文章

java-零钱通(项目)

节练习)

微信支付测试零钱通 零钱理财对标余额宝

微信怎么用零钱支付

java项目小手册

微信小程序代码片段