day11-作业-7月27日枚举+异常+StringBuilder

7.1 设计Person类,将性别属性设置为枚举类型。在测试类中,输出Person对象的时候,要 求格式如下:
Person {name = xiaoming, gender = 男}
public enum Sex {
    boy("男"),
    gilr("女");
    private String sex;
    Sex(String sex) {
        this.sex = sex;
    }
     public String getSex() {
        return sex;
    }
}
public class Person {
    String name;
    Sex gender;

    public Person(String name, Sex gender) {
        this.name = name;
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Sex getGender() {
        return gender;
    }

    public void setGender(Sex gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", gender=" + gender.getSex() +
                '}';
    }
}
public class TestPerson {
    public static void main(String[] args) {
        Person xiaoming = new Person("xiaoming", Sex.BOY);
        System.out.println(xiaoming);
    }
}

7.2 . 在Person类中,添加一个方法,用来设置Person的性别。
public void setGender(String sex) {
        if("男".equals(sex))
            this.gender = Sex.BOY;
        else if("女".equals(sex))
            this.gender = Sex.GILR;
    }
7.3 设计一个方法,计算从控制台输入的两个数字的和,并处理各种输入的时候的异常
public class TestNumSum {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String sum1 = scanner.next();
        String sum2 = scanner.next();
        Double sum = Double.parseDouble(sum1)+Double.parseDouble(sum2);
        System.out.println(sum);
    }
}
7.4 小明去饭店吃饭,身上带了22块钱,随机产生[15, 30]范围的饭钱,如果小明的钱不够支 付饭钱,抛出一个 NotEnoughMoneyException的运行时异常。
public class NotEnoughMoneyException extends Exception {
    public NotEnoughMoneyException(String massage) {
        super(massage);
    }
}
public void test4(){
        final int money = 22;
        int price = (new Random().nextInt(16))+ 15;
        if(price>money){
            try {
                throw new NotEnoughMoneyException("钱不够");
            } catch (NotEnoughMoneyException e) {
                e.printStackTrace();
            }
        }
    }

7.5 【最难】设计一个方法,将一个数组中的元素随机排列

public void test5(){
        int[] ints = {1,2,3,4,5,7,8,9,10,11,12,13,14,15};
        Random random = new Random();
        int temp;
        int r;
        for (int i = 0; i < ints.length; i++) {
            r = random.nextInt(ints.length);
            temp = ints[i];
            ints[i] = ints[r];
            ints[r] = temp;
        }
        System.out.println(Arrays.toString(ints));
    }
7.6.1 修改课上练习三,在随机产生数字的同时也能随机产生花色,代码完成后每次运行程序 时,都能随机出牌,如“梅花5”、“方块J”等
public void test6(){
            Poker randomPoker = Poker.getRandomPoker();
            System.out.println(randomPoker);
    }
public enum PokerNum {
    PA(1,"A"),
    p2(2,"2"),
    p3(3,"3"),
    p4(4,"4"),
    p5(5,"5"),
    p6(6,"6"),
    p7(7,"7"),
    p8(8,"8"),
    p9(9,"9"),
    p10(10,"10"),
    pJ(11,"J"),
    pQ(12,"Q"),
    pK(13,"K"),
    p小王(14,"小王"),
    p大王(15,"大王");
    private int index;
    private String pokerStr;

    PokerNum(int index,String pokerStr) {
        this.index = index;
        this.pokerStr = pokerStr;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }

    public String getPokerStr() {
        return pokerStr;
    }

    public void setPokerStr(String pokerStr) {
        this.pokerStr = pokerStr;
    }
    public static PokerNum getPoKerNumByIndex(int index){
        System.out.println(index);
        for (PokerNum pokerNum : PokerNum.values()) {
            if(pokerNum.index == index)
                return pokerNum;
        }
        return null;
    }
}
public enum PokerType {
    //♠♥♦♣
    hei("♠",1),
    hong("♥",2),
    fang("♦",3),
    mei("♣",4);
   private String type;
   private int typeIndex;
    PokerType(String type,int typeIndex) {
        this.type = type;
        this.typeIndex = typeIndex;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public int getTypeIndex() {
        return typeIndex;
    }

    public void setTypeIndex(int typeIndex) {
        this.typeIndex = typeIndex;
    }

    public static PokerType getPokerTypeByIndex(int i) {
        System.out.println(i);
        for (PokerType pokerType : PokerType.values()) {
            if(pokerType.typeIndex == i)
                return pokerType;
        }
        return null;
    }
}

7.6.2(附加题)输入两个小数,先将他们的整数部分拿出求和, 如果大于10,就拿出他们的小 数部分的求和,如果他们小数部分的和大于1.0 就输出“这两个数的小数部分大于1.0”,否 则就说“这两个数的小数部分小于1.0”; 如果他们整数部分求和不大于10,就拿出他们的 小数部分的求差,如果他们小数部分的差大于0.0 就输出“这两个数的小数部分的差大于 0.0”,否则就说“这两个数的小数部分的差小于0.0”;(嵌套if)
public void test62(){
        Scanner scanner = new Scanner(System.in);
        double v1 = scanner.nextDouble();
        double v2 = scanner.nextDouble();
        double floor1 = Math.floor(v1);
        double floor2 = Math.floor(v2);
        if(floor1+floor2>10){
            if (v1-floor1+v2-floor2>1.0){
                System.out.println("这两个数的小数部分和大于1.0");
            }else if(v1-floor1+v2-floor2<1.0){
                System.out.println("这两个数的小数部分和小于1.0");
            }
        }else {
            if (v1-floor1-(v2-floor2)>0.0){
                System.out.println("这两个数的小数部分差大于0.0");
            }else if(v1-floor1-(v2-floor2)<0.0){
                System.out.println("这两个数的小数部分差小于0.0");
            }
        }
    }
7.7 获取系统的当前时间,并打印以下信息 xxxx年xx月xx日 xx时xx分xx秒
@Test
    public void test7(){
        Date date = new Date();
        String format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒").format(date);
        System.out.println(format);
    }
7.8 输出2~32之间16个偶数的和
public void test8(){
        int sum = 0;
        for (int i = 2; i <=32 ; i=i+2) {
            sum+=i;
        }
        System.out.println(sum);
    }
7.9 求园面积结果保留5位小数
    public void test9(){
        int r = 2;
        double area = Math.PI*r*r;
        System.out.printf("%.5f",area);
    }
7.10 使用StringBuilder附加字符串
public void test10(){
        StringBuilder stringBuilder = new StringBuilder("123");
        StringBuilder append = stringBuilder.append("21");
        System.out.println(append);
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值