Java基础编程题(7.31)

来源:互联网 发布:php session用法 编辑:程序博客网 时间:2024/06/05 02:44

  • 目录
    • 总结
    • 第一道 支付问题
    • 第二道 龟兔赛跑

目录

总结

这段时间由于上夜班没有生物钟调整过来,在加上自己比较懒,所以就没有写博客,前两天去上课做了几道编程题,由于没有按时完成,后来剩下的一道也由于我较懒所以没写,因此就把我写的两道题写出来吧!

第一道 支付问题

利用面向对象的思想实现一套代码,要求一个APP支持微信支付,支付宝支付,银联支付,以后甚至更多的支付方式。支付通常包含鉴权(authorization)、支付订单生成(generateBill)、最后确认支付(pay)过程。

实现代码设计和代码如下:
代码块设计

//pay.javapackage com.Dinkben.pay;//编写一个接口,定义authorization,generateBill,pay方法public interface Pay {    public abstract void authorization();    public abstract void generateBill();    public abstract void payProcess();}
//AliPay.javapackage com.Dinkben.pay;//支付宝支付public class AliPay implements Pay {    @Override    public void authorization() {        System.out.println("请授予支付宝支付权限");    }    @Override    public void generateBill() {        System.out.println("已生成账单");    }    @Override     public void payProcess() {        System.out.println("支付已确认");    }}
//UnionPay.javapackage com.Dinkben.pay;//银联支付public class UnionPay implements Pay {    @Override    public void authorization() {        System.out.println("请授予银联支付权限");    }    @Override    public void generateBill() {        System.out.println("已生成账单");    }    @Override    public void payProcess() {        System.out.println("支付已确认");    }}
//WechatPay.javapackage com.Dinkben.pay;//微信支付public class WechatPay implements Pay {    public void authorization() {        System.out.println("请授予微信支付权限");    }    @Override    public void generateBill() {                System.out.println("已生成账单");    }    @Override    public void payProcess() {        System.out.println("支付已确认");    }}
//SelectPay.javapackage com.Dinkben.pay;//选择哪一种支付方式import java.util.Scanner;public class SelectPay {    public SelectPay() {        System.out                .println("Please enter you choise:Alipay,Unionpay or Wechatpay?");        Scanner scanner = new Scanner(System.in);        String string = scanner.next();        switch (string) {        case "Alipay":            AliPay aliPay = new AliPay();            aliPay.authorization();            break;        case "Unionpay":            UnionPay unionPay=new UnionPay();            unionPay.authorization();            break;        case "Wechatpay":            WechatPay wechatPay=new WechatPay();            wechatPay.authorization();            break;        default:            break;        }    }}
//PayOnline.javapackage com.Dinkben.pay;//在线支付,选择其中一种方式public class PayOnline {    public static void main(String[] args) {        SelectPay selectPay=new SelectPay();    }}

结果:
目前只是实现简单的方法,具体流程没有实现

第二道 龟兔赛跑

    龟兔赛跑的故事大家都听过,请采用线程的知识,编写代码作比较。 具体要求如下: 1、乌龟和兔子各自一个线程。 2、乌龟每步跑1厘米,兔子每步跳100厘米。 3、兔子每跑到第100步的时候,会休息0.001秒; 4、问:50000厘米比赛谁获胜?
//RabbitThread.javapackage com.Dinkben.Thread;public class RabbitThread extends Thread {    int rab_step = 0;    long startTime = System.currentTimeMillis();    private String str;    private int journey;    public RabbitThread(int journey) {        this.journey = journey;    }    @Override    public void run() {        for (int i = 0; i < journey; i++) {             journey = journey - 100;            ++rab_step;            if (rab_step % 100 == 0) {                try {                    Thread.sleep(1);                } catch (InterruptedException ex) {                }            }        }        str = "兔子总用时(毫秒):" + (System.currentTimeMillis() - startTime);        System.out.println(str);    }}
//TortoiseThread.javapackage com.Dinkben.Thread;public class TortoiseThread extends Thread{    long startTime = System.currentTimeMillis();    private String str;    private int journey;    public TortoiseThread(int journey) {        this.journey = journey;    }    @Override    public void run() {        for (int i = 0; i <journey; i++) {              }        str = "乌龟总用时(毫秒 ):"+(System.currentTimeMillis()-startTime) ;        System.out.println(str);    }}
//ThreadTest.javapackage com.Dinkben.Thread;public class ThreadTest {    public static void main(String[] args) {        RabbitThread r=new RabbitThread(50000);        TortoiseThread t=new TortoiseThread(50000);        r.start();        t.start();          }}

結果:
这里写图片描述

0 0