A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

赞!!!!!!!!!!
回复 使用道具 举报
这道题我觉得白看不厌啊,出的挺好的一道题,考的很全面
回复 使用道具 举报
真的假的?这是点招题?那到时候估计时间会不够了
回复 使用道具 举报
学习学习!
回复 使用道具 举报
回复 使用道具 举报
好全面,考察了面向对象的几乎所有的知识点
回复 使用道具 举报
考试只有20分钟啊,这题题目都没有需要健壮性,只要能实现功能就好了,主方法要是像你这样完善题目的话,绝对不止20分钟把,其实这题不难啦
回复 使用道具 举报
说错了,是一道题平均20分钟,
这是我的答案:
package com.heima.homework;

import java.util.Random;
import java.util.Scanner;

public class Example {
        public static void main(String[] args) {
                System.out.println("请用户输入付款方式:");
                Scanner sc = new Scanner(System.in);
                String name = sc.nextLine();
                System.out.println("请用户输入付款金额:");
                double money = sc.nextDouble();
                System.out.println(Person.buy(name).pay(money));
        }
}

abstract class Payment {
        public abstract double pay(double money);
}

class Zfb extends Payment {
        Random r = new Random();

        public double pay(double money) {
                return money - money * (r.nextInt(4) + 5) * 0.1;
        }
}

class Cash extends Payment {

        @Override
        public double pay(double money) {
                return money;
        }

}

class Person {
        public static Payment buy(String name) {
                if ("Zfb".equals(name)) {
                        return new Zfb();
                } else if ("Cash".equals(name)) {
                        return new Cash();
                } else {
                        return new Cash();
                }
        }
}
回复 使用道具 举报
package com.zfb.test;

import java.util.Scanner;

import com.zfb.pay.*;
import com.zfb.person.*;

public class Test {

        public static void main(String[] args) {
                Person p = new Person();
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入付款金额:");
                double money = 0;
                if(sc.hasNextDouble()||sc.hasNextInt()){
                        money = sc.nextDouble();
                }
                System.out.println("请选择付款方式:");
                System.out.println("        1:支付宝\n        2:现金\n        任意数字:其它付款方式");
                int select = 2;
                if(sc.hasNextInt()){
                        select = sc.nextInt();
                }
               
                switch(select){
                        case 1:
                                System.out.println("你最终需付款的金额为:"+p.buy("Zfb").pay(money));
                        break;
                        default:
                        case 2:
                                System.out.println("你最终需付款的金额为:"+p.buy("Cash").pay(money));
                        break;
                       
                }
        }
}
package com.zfb.pay;

public abstract class Payment {
        public abstract double pay(double money);
}
package com.zfb.pay;
import java.util.Random;

public class Zfb extends Payment {
        public double pay(double money) {
                Random r = new Random();
                double m =r.nextInt(3)+5;
                return money*(m/10);
        }
}
package com.zfb.pay;

public class Cash extends Payment {

        @Override
        public double pay(double money) {

                return money;
        }

}

package com.zfb.person;

import com.zfb.pay.*;

public class Person {
        public static Payment buy(String pay){
                if("Zfb".equals(pay)){       
                        return new Zfb();
                }else if("Cash".equals(pay)){
                        return new Cash();
                }
                return new Cash();
        }
}
回复 使用道具 举报
这个考试时间是多久啊,感觉想了很久啊,因为不是熟练
回复 使用道具 举报
还不是特别懂这道题,好久没敲点招题的代码了,都生疏了
回复 使用道具 举报
此间的少年 发表于 2016-9-29 23:27
基础班即将毕业,现在回头看这种题,好简单啊

简单吗?我怎么一直觉得很有价值啊,很综合的题啊
回复 使用道具 举报
我今天考了,感觉不是很难
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
楼主注释一下就好了
回复 使用道具 举报
Random r = new Random();                 double money2 = (r.nextInt(4)+5)*0.1*money;                 return money2;这是什么意思??可不可以用math,random
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马