文档详情

第5章数组教学课件.ppt

发布:2025-06-11约1.75万字共82页下载文档
文本预览下载声明

编写一个方法,计算给定的两个数组之和,格式如下:publicstaticint[]sumArray(int[]a,int[]b)要求返回的数组元素是两个参数数组对应元素之和,不对应的元素直接赋给相应的位置,例如,{1,2,4}+{2,4,6,8}={3,6,10,8}。编程作业本章知识点思维导图本章知识点导图**面向对象程序设计桥牌是一种文明、高雅、竞技性很强的智力游戏,由4个人分两组玩。桥牌使用普通扑克牌去掉大小王后的52张牌,分为梅花(C)、方块(D)、红心(H)和黑桃(S)四种花色,每种花色有13张牌,从大到小的顺序为:A(最大)、K、Q、J、10、9、8、7、6、5、4、3、2(最小)。问题描述打桥牌首先需发牌。本案例就是通过编程实现随机发牌。最后,按顺序显示输出4个玩家得到的牌。(1)可以使用一个有52个元素的数组存储52张牌。为了区分52张牌,使用不同的元素值即可,为了方便这里使用0到51。设元素值从0到12为黑桃,13到25为红桃,26到38为方块,39到51为梅花。在创建数组后为每个元素赋值,如下所示。设计思路int[]deck=newint[52];for(vari=0;ideck.length;i++)//填充每个元素deck[i]=i;(2)为实现随机发牌,需要打乱数组元素的值,这里对每个元素,随机生成一个整数下标,将当前元素与产生的下标的元素交换,循环结束后,数组中的元素值被打乱。设计思路for(vari=0;ideck.length;i++){//随机产生一个元素下标0~51intindex=(int)(Math.random()*deck.length);inttemp=deck[i];//将当前元素与产生的下标的元素交换deck[i]=deck[index];deck[index]=temp;}(3)牌的顺序打乱后,四个玩家的牌依次从52张牌取出13张牌。第1个13张牌属于第1个玩家,第2个13张牌属于第2个玩家,第3个13张牌属于第3个玩家,第4个13张牌属于第4个玩家。最后要求每个玩家的牌按顺序输出,因此需要对每个玩家的牌排序,这里使用Arrays类的sort()方法,它可以对数组部分元素排序,比如对第3个玩家的牌排序,使用下面代码。设计思路Arrays.sort(deck,26,39);(4)最后根据每张牌的数值转换为牌的名称(如,?K)。为此,定义两个String数组,如下所示。String[]suits={?,?,?,?};String[]ranks={A,K,Q,J,10,9,8,7, 6,5,4,3,2};根据下面代码确定每张牌的花色和次序,然后输出。设计思路Stringsuit=suits[deck[i]/13];//确定花色Stringrank=ranks[deck[i]%13];//确定次序System.out.printf(%s%-3s,suit,rank);int[]deck=newint[52];String[]suits={?,?,?,?};String[]ranks={A,K,Q,J,10,9,8,7,6,5,4,3,2};//初始化每一张牌for(vari=0;ideck.length;i++)deck[i]=i;程序5.6BridgeCards.java//打乱牌的次序for(vari=0;ideck.length;i++){//随机产生一个元素下标0~51intindex=(int)(Math.random()*deck.length);inttemp=deck[i];//将当前元素与产生的元素交换deck[i]=deck[index];deck[index]

显示全部
相似文档