首頁 > Java > java教程 > 主體

Java如何實現零錢通

王林
發布: 2023-04-25 15:31:08
轉載
1206 人瀏覽過

    如圖:

    Java如何實現零錢通

    想法:

    (1)可以把收益入帳和消費,保存到陣列中(但目前學到的陣列是定長的)

    (2)可以使用物件

    (3)可以使用String拼接

    完成收益入賬,完成功能驅動程式設計師增加新的變更的代碼

    (1)要接收收益入帳的金額,並更新餘額

    (2)拼接好字符字串

    (3)找到時間如何輸出,並且修改其輸出格式

    我用的字串拼接

    Java如何實現零錢通

    一些說明

    建立一個套件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();
        }
    }
    登入後複製

    #

    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(){//菜单
            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;
                }
    
            }
        }
    登入後複製

    #

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

    #
    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(){
            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;
    
        }
    
    
    }
    登入後複製
    具體說明各個方法的作用:

    public void menu()方法

    rrreee

    void detailed_ ()方法

    rrreee

    public void input()方法

    rrreee

    public void output()方法

    rrreeeJava如何實現零錢通SmallChangeSysOOP完整程式碼

    rrreee

    一些圖片Java如何實現零錢通

    Java如何實現零錢通

    Java如何實現零錢通

    ################

    以上是Java如何實現零錢通的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    相關標籤:
    來源:yisu.com
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!