Java 上机作业 1

  • }
    
  • return desc;

*}

  • */

}

/*

  • 类Deck

  • 其私有数据字段List cards,包含所有的纸牌;

  • 成员⽅法boolean add(Card card)和boolean add(Flush fluash, int number)向其中添加⼀张牌,如果已经有了18张 牌,返回false;否则,返回true;

  • 成员⽅法boolean contain(Flush flush, int number)确定是否包含 参数给定的纸牌;

  • 成员⽅法bool isFull()确定是否已经包含了18张牌;

  • 成员⽅法void reset()执⾏复 位,即清空所有的纸牌

  • */

class Deck{

private List cards;

public Deck() {

this.cards = cards;

cards = new ArrayList<>();

reset();

}

public List getCards() {

return cards;

}

//成员⽅法boolean add(Card card)和boolean add(Flush fluash, int number)向其中添加⼀张牌,如果已经有了18张 牌,返回false;否则,返回true;

public boolean add(Card card){

card = new Card(card.getFlush(),card.getNumber());

if(this.getCards().size() <= 18){

this.getCards().add(card);

return true;

}else

return false;

}

public boolean add(Flush flush, int number){

if(cards.size() < 18){

cards.add(new Card(flush,number));

return true;

}else

return false;

}

//成员⽅法boolean contain(Flush flush, int number)确定是否包含 参数给定的纸牌;

public boolean contain(Flush flush, int number){

if(cards.contains(new Card(flush,number))){//需重写contains方法

return true;

}else

return false;

}

//成员⽅法bool isFull()确定是否已经包含了18张牌;

public boolean isFull(){

if(getCards().size() == 18)

return true;

else

return false;

}

//成员⽅法void reset()执⾏复 位,即清空所有的纸牌

public void reset(){

getCards().clear();

}

}

/*

  • 类Poker

  • 私有数据字段:deckA、deckB、deckC,类型为Deck,表示发 给三个玩家的牌,要求能够获取它们;

  • 公有成员⽅法void deal()实现为三个玩家随机发牌并确保在 发牌之前,将deckA、deckB、deckC复位;

  • 可根据情况添加辅助⽅法;

  • */

class Poker{

private Deck deckA;

private Deck deckB;

private Deck deckC;

public Deck getDeckA() {

return deckA;

}

public Deck getDeckB() {

return deckB;

}

public Deck getDeckC() {

return deckC;

}

//公有成员⽅法void deal()实现为三个玩家随机发牌并确保在 发牌之前,将deckA、deckB、deckC复位;

public void deal(){

Flush[] flush = Flush.values();

deckA = new Deck();//Deck构造器中调用reset()方法实现复位

deckB = new Deck();

deckC = new Deck();

int i = 0;

int j = 0;

int k = 0;

System.out.println(“deckA的牌:”);

while(!deckA.isFull()){

int n = (int)(Math.random()*(14-1)+1);

int f = (int)(Math.random()*(5-0)+0);

if(f == 4){

n = (int)(Math.random()*(2-0)+0);

}

if(!deckA.contain(flush[f],n)){

deckA.add(flush[f],n);

System.out.print(deckA.getCards().get(i).getFlush().getFlushName() + deckA.getCards().get(i).getNumber() + " ");

i++;

}

}

System.out.println();

System.out.println(“deckB的牌:”);

while(!deckB.isFull()){

int n = (int)(Math.random()*(14-1)+1);

int f = (int)(Math.random()*(5-0)+0);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

写在最后

可能有人会问我为什么愿意去花时间帮助大家实现求职梦想,因为我一直坚信时间是可以复制的。我牺牲了自己的大概十个小时写了这片文章,换来的是成千上万的求职者节约几天甚至几周时间浪费在无用的资源上。

复习一周,字节跳动三场技术面+HR面,不小心拿了offer

复习一周,字节跳动三场技术面+HR面,不小心拿了offer

上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
上万的求职者节约几天甚至几周时间浪费在无用的资源上。

[外链图片转存中…(img-PHqcJ46m-1712109033179)]

[外链图片转存中…(img-Jz4ooGMa-1712109033179)]

上面的这些(算法与数据结构)+(Java多线程学习手册)+(计算机网络顶级教程)等学习资源
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用来完成大作业的。文档内容: 1 Java技术体系 1.1 Java语言 1.2 Java平台 1.3 Java应用领域 2 Java语言的技术特点 2.1 1 2.2 2 2.3 3 3 Java语言与C++的异同分析总结。 4 选用C和java语言时编程算法程序有什么不同,有什么优势和劣势。 5 自己编程学习的级别和状态。以及自己以后的编程学习的计划和想法。 6 下面3道题目中选一道,给出算法分析和程序。 1)“黄金分割数”在我们的生活中很常见,但是在不同的应用领域,要求的精度也不一样。 例如:三位小数是0.618 现在我们需要你能求出保留100位小数的黄金分割数,采用的算法为“分层计算法”: 黄金数= 1 --------------- 1+ 1 ------------- 1+ 1 ----------- 1+ 1 --------- ..... 注意,计算出的结果,如果第100位为0也需要保留。 2)已知一个数列: 5,2,4,3,7,6 那么,在这个数列中存在这样一些“连续数”,例如:5,2,4,3这个子数列排序后是连续的。同样2,4,3也是连续的,为了方便表示 我们使用下标来标识,这样,这个数列中存在以下“连续数”: [1,1] [1,4] [1,6] [2,2] [2,4] [3,3] [3,4] [4,4] [5,5] [5,6] [6,6] 这样,他就存在11个“连续数”。现在需要你在用户找出一个数组中所有的“连续数”。 要求: 1、用户输入一个整数N,表示下面数组的个数 2、用户每输入一行作为一个数组 如: 用户输入: 1 5,2,4,3,7,6 程序输出: 11 3)有一种数我们称之为幸运数,它的特点是这样的,首先,由自然数按顺序排列: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 … 这样,1比较特殊, 1为第一个幸运数,那么,我们移除掉序号能被2整除的数(注意:是序号,而不是数本身,每次移除后都重新排序)就剩下: 1 3 5 7 9 11 13 15 17 19… 3为第二个幸运数,那么我们需要去掉序号能被3(下一次是除4,然后是5,每次加1)整除的数,5 11 17...剩下: 1 3 7 9 13 15 19… 那么7为第三个幸运数,后面的幸运数,依此类推,移除之后剩下的数字都是幸运数。 现在我们需要你求出给定的m和n之间的幸运数的个数: 例如:给定1 20,那么个数为:5(5个幸运数分别是1,3,7,13,19) 现在要求用户输入两个数m和n(m<n<=1000*1000),输出幸运数的个数。 例如: 用户输入: 1 20 程序输出: 5 格式:小四,1.5倍行距

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值