首頁 > 軟體

Java範例專案零錢通的實現流程

2022-03-04 19:00:30

注意:本專案來自B站韓順平老師 點此跳轉

完整程式碼請看這裡:gitee

點選這裡 GitHub連結

如圖:

老韓思路:

(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("tt1 零錢通明細");
            System.out.println("tt2 收益入賬");
            System.out.println("tt3 消費");
            System.out.println("tt4 退" + "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("tt程式已經退出");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("tt1 零錢通明細");
            System.out.println("tt2 收益入賬");
            System.out.println("tt3 消費");
            System.out.println("tt4 退" + "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("tt程式已經退出");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 零錢通內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com