作业解析-java案例

目录

1. 作业题目………………………………………………………………

2. 作业目的……………………………………………………………..

3. 运行效果……………………………………………………………..

4. 实现过程……………………………………………………………..

5. 知识点巩固………………………………………………………….

6 知识拓展……………………………………………………………….

7 学习建议……………………………………………………………….

作业辅导解析

Programming Assignment 4

1. 作业题目:

31th January,2019

you will have created a program that can compare two poker hands and declare a winner.

2.作业目的:

1、 To become comfortable with using flow control and loops 2、 Using one class object in another class

3、 Calling methods inside and outside of classes

3.运行效果:

见 Test.java 和对应的测试输入数据,做了自动化测试,可以自己在对应的文件中再加测试 用例。 用如下命令运行测试文件: javac Test.java java Test

4.实现过程:

Problem 1: Enter hand of cards (25 points) 用 Scanner 每次读取一行数据,构建 PokerHand 对象,用 String 的 split 方法按空格切分 出字符串,按照扑克牌编号、花色的顺序处理 5 张扑克牌。对异常条件做了判断,具体见金 具体 Card 的构造方法。 formattedHand 方法用来格式化扑克牌信息。 Problem 2: Discover player’s poker hand (50 points)。 按课件的建议,写了 8 个方法来判断牌的类型,判断的时候从大到小判断,避免误判,比如 三个带一对,除了可以当做三个带一对,还可以当做三个,也可以当做一对,因为是从大到 小判断,只会判断成 3 个带一对。 image 8 个判断方法中多次使用图中的代码,这个代码是用来统计每张牌出现的次数, cnt[card.getCardNumber() – 1] += 1; 减 1 是因为数据下标从 0 开始。 Problem3 和 2 一样,实现 Problem 2 直接实现了 Problem 3. Problem 4: Print the winner or tie (10 points) 按照课件的建议,用数组保存各个牌的类型,优先级高的放前面,比较两副牌的时候,首先 计算出两副牌的类型,然后判断这个类型在数组中的位置,位置越小牌面越大。

5. 知识点巩固:

6. 知识拓展:

7.学习建议:

作业中用到的 java 知识都是基础语法,基础语法一定要多练习才能熟练掌握。