综合练习1
综合练习1
综合练习1
1 买飞机票30~31(p74)
需求 : 机票的价格按照淡季,旺季,头等舱和经济舱收费, 录入机票的原价,月份和头等舱,经济舱.
按照如下规则计算机票价格 : 旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11-来年4)头等舱7折,经济舱6.5折.
2 找质数
需求 : 判断101-200之间有多少个质数,并输出所有质数
P75 综合练习 32
3 开发验证码
需求 : 定义方法实现随机产生一个5位的验证码
格式 : 长度5,前四位是大写字母或者小写字母,最后一位是数字
4 数组元素的复制 33
需求 : 把一个数组中的元素复制到另一个新数组中去.
p76 综合练习 34
5 评委打分
需求 : 在唱歌比赛中, 有6名评委给选手打分, 分数范围是[0-100]之间的整数. 选手的最后得分为 : 去掉最高,最低分后的4个评委的平均分, 请完成上述过程并计算出选手的得分.
p77 综合练习 35
6 数字加密
需求 : 某系统的数字密码(大于0),比如1983, 采取加密方式进行传输.
规则 : 先得到每位数, 然后每位数都加上5, 再对10取余, 最后将所有数字反转, 得到一串新数.
1 9 8 3
+5 6 14 13 8
%10 6 4 3 8
反转 8 3 4 6
加密后的结果是 : 8346
7 解密 36
需求 : 将上一步加密的数字解密
步骤:
1.把整数里的每一位数字放到数组中,(整数转数组)
2.加密
1,加5
2,%10
3,反转
3.把数组里面的每一位数字进行拼接,(数组转整数)
4.解密
p78 综合练习 8 抢红包(抽奖的两种实现方式) 37
需求 : 大V直播抽奖,奖品是现金红包,分别有{2,588,888,1000,10000}5种奖金.请使用代码模拟抽奖,打印出每一个奖项, 奖项的出现顺序要随机且不重复.
打印效果如下 : 888元的奖金被抽出...
p79 综合练习 9 双色球彩票系统 38
需求:投注号码由6个红球号码和1个蓝球号码组成. 红球133中选择(不重复),蓝球从116中选择
1.随机生成7个随机号码(红球和蓝球号码),符合上述规则.
要求: 写出生成随机中奖号码方法,(包括:(1)随机赋值不重复元素方法.(2)数组从小到大排序(不包括最后一位数)方法.(3)获得随机数组的方法(双色球中奖号码)(需要用到上述方法).
2.用户输入号码 要求:写出下注方法,用户录入6个红球号码和1个蓝球号码,并记录到数组,再展示出来.
3.判断是否中奖,中几等奖.
| 奖项 | 红球个数 | 蓝球个数 | 奖金 |
|---|---|---|---|
| 一等奖 | 6红球 | 蓝球 | 1000w |
| 二等奖 | 6红球 | 500w | |
| 三等奖 | 5红球 | 蓝球 | 3000 |
| 四等奖 | 5红球 | 200 | |
| 四等奖 | 4红球 | 蓝球 | |
| 五等奖 | 4红球 | 10 | |
| 五等奖 | 3红球 | 蓝球 | |
| 六等奖 | 2红球 | 蓝球 | 5 |
| 六等奖 | 1红球 | 蓝球 | |
| 六等奖 | 蓝球 |
p80 练习 39 二维数组
需求 : 商城每个季度的营业额如下: 单位(万元)
一季度 : 22,66,44
二季度 : 77,33,88
三季度 : 25,45,65
四季度 : 11,66,99
要求计算出每个季度的总营业额和全年的总营业额.
综合练习2
p91 练习 文字格斗游戏
需求: 两个角色(role)pk,回合制,角色都有,名字name,血量hp,在选定人物时候(new对象的时候),这些信息就应该被确定下来.
控制台: a 攻击了 b , 造成了XXX点伤害, b还剩下XXX点血.
a 打败了 b.
printf
System.out.printf("hello%s",world) -> helloworld
System.out.printf("%shello%s",哈哈,world) -> 哈哈helloworld
%s 是占位符, 后面的参数是填充的数据.没有换行效果.
步骤:1. 先写一个JavaBean类 role(角色) 属性:name,hp.构造方法,get/set方法
攻击方法attack: 谁攻击谁,方法的调用者攻击参数.
造成的伤害为1~20(随机)damage, 修改挨打人的血量remainHp,用三元控制一下remainHp,不能为负数.
真正修改挨打人的血量.
-
在测试类中,创建两个对象, 在循环中调用攻击方法,再判断谁的hp为0,谁就被打败.
-
升级版 ,name属性不同(鸣人,佐助) 会有不同的招式
根据随机伤害不同 : -200,020,2040,4080.四种解说- 数据的伤害不同会有不同的招式解说:
(鸣人)
"%s发动攻击,%s使出了'影分身'.%s的攻击打中了分身"-20~0
"%s使出了'飞踢攻击'打中了%s", 0~20
"%s使出了'手里剑攻击'打中了%s" 20~40
,"%s使出了'螺旋丸攻击'打中了%s" 40~80
(佐助)
"%s发动攻击,%s使出了'须佐能乎'.%s的攻击被防御了"-20~0
"%s使出了'重拳攻击'打中了%s", 0~20
"%s使出了'草薙剑攻击'打中了%s" 20~40
,"%s使出了'千鸟攻击'打中了%s", 40~80 - 数据的伤害不同会有不同的招式解说:
p92 对象数组练习
- 定义数组存储3个商品对象
商品属性:id,名字,价格,库存 . 创建三个对象 , 把商品对象存入数组中.打印对象属性.
小技巧: 键盘录入的两套体系
-
经验 : 数据能不写死, 尽量不写死.
-
两下tab一下回车 :空参构造, CTRL+A 全选(ctrl+down) 回车 全参构造,
-
创建对象时,忘记参数顺序可以按ctrl+p看细节.
-
nextInt(),接收整数, nextDouble(),接收小数, next(), 接收字符串...遇到空格, 制表符, 回车就停止接收, 这些符号后面的随机就不会接收了.
-
nextLine(); 接收字符串 可以接收空格, 制表符, 遇到回车才停止接收数据.
弊端:先用nextInt, 再用nextLine会导致下面的nextLine接收不到数据.
键盘录入的两套体系不能混用.
-
定义数组存储3部汽车对象, 属性,品牌(brand),价格(price),颜色(color). 创建3个汽车对象, 数据通过键盘录入而来. 再把数据存入数组.并输出数据.
-
定义数组存储3手机对象, 属性,品牌(brand),价格(price),颜色(color). 要求, 计算三部手机的平均价格.
-
定义数组存储4个女朋友的对象, 属性, 姓名,年龄,性别,爱好. 要求1:计算出平均年龄,要求2:统计年龄比平均年龄低的女朋友有几个,并把他们的所有信息打印出来.
-
定义一个长度为3的数组, 存储1~3名学生对象作为初始数据, 学生对象的学号, 姓名各不相同. 属性: 学号, 姓名, 年龄.
需求1:再次添加一个学生对象, 并在添加的时候进行学号的唯一性判断.
需求2:添加完毕后, 遍历所有学生信息.
需求3:通过ID删除学生信息, 如果存在就删除,如果不存在则提示删除失败.
需求4:删除完毕之后, 遍历所有学生信息
需求5:查询数组ID为"002"的学生, 如果存在,则将他的年龄+1岁

浙公网安备 33010602011771号