ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Java学习笔记2024/2/5

Java学习笔记2024/2/5

综合练习题

练习一:飞机票(看完就写的)

需求:

机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。

按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。

package com.angus.comprehensiveExercise;
​
import java.util.Scanner;
​
public class test1 {public static void main(String[] args) {//需求:////• 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。////• 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
​//输入机票原价、月份和头等舱或经济舱Scanner scanner = new Scanner(System.in);System.out.println("请输入机票原价");int price0 = scanner.nextInt();System.out.println("请输入月份:1~12");int month = scanner.nextInt();System.out.println("请输入头等舱: 0或经济舱: 1");int vip = scanner.nextInt();
​int price = 0;
​//旺季(5-10月)if (month >= 5 && month <= 10) {
​//头等舱9折,经济舱8.5折price = getPrice(vip, price, price0, 0.9, 0.85);
//        price = getPrice(price0,0,0.9,0.85);
​} else if ( (month >= 11 && month <= 12) || (month >=1 && month <=4) ) { //淡季(11月到来年4月)
​//头等舱7折,经济舱6.5折price = getPrice(vip, price, price0, 0.7, 0.65);
//         price = getPrice(price0,vip,0.7,0.65);
​} else {System.out.println("请输入正确的月份");}
​System.out.println("最终价格为:" + price);
​System.out.println("^^");}
​//卧槽这个抽取方法碉堡了public static int getPrice(int vip, int price, int price0, double x, double x1) {if (vip == 0) {price = (int) (price0 * x);} else if (vip == 1) {price = (int) (price0 * x1);} else {System.out.println("只能输入数字0或1");}return price;}
​
//    1.干啥?把重复性代码变为一个方法,根据原价,两个折扣和vip座位来计算最终结果
//    2.需要啥?原价,vip座位,两个折扣
//    3.返回否?返
//    public static int getPrice(int price0,int vip,double vip0,double vip1) {
//        int price = 0;
//        if (vip == 0) {
//            price = (int)(price0 * vip0);
//        } else if (vip == 1) {
//            price = (int)(price0 * vip1);
//        } else {
//            System.out.println("只能输入数字0或1");
//        }
//
//        return price;
//    }
​
}
//显示方法形参快捷键 -> Ctrl + P
//自动抽取方法快捷键 -> Ctrl + Alt + M

练习二:打印素数(看完就写的)

判断101~200之间有多少个素数,并输出所有素数。

备注:素数就是质数

package com.angus.comprehensiveExercise;
​
public class test2 {public static void main(String[] args) {//判断101~200之间有多少个素数,并输出所有素数。//备注:素数就是质数//思路一:判断1~这个数之间有没有数能够整除这个数,有就false,无就true,然后加个循环修改一下//思路二:简化思路一,不然次数太多效率太低,判断1~这个数之间有没有数能够整除这个数的平方根,有就false,无就true
​//使用思路一,还没学会用一行代码求出这个数的平方根//先判断7是不是一个素数//2~6看看有没有能整除7int count = 0;for (int i = 101; i <= 200; i++) {
​boolean flag = true; //flag要放在里面,不然只执行一次,flag的true就没了for (int j = 2; j < i; j++) {if (i % j == 0){flag = false;break;}}
​if (flag) {System.out.println(i + "是素数");count++;}}System.out.println("有" + count + "个");System.out.println("^^");}
}

练习三:验证码(已看)

需求:

定义方法实现随机产生一个5位的验证码

验证码格式:

长度为5

前四位是大写字母或者小写字母

最后一位是数字

练习四:复制数组(已看)

需求:

把一个数组中的元素复制到另一个新数组中去。

练习五:评委打分(已看)

需求 :

在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。

练习六:数字加密(已看)

需求:

某系统的数字密码(大于0),比如1983,采用加密方式进行传输。

规则如下:

先得到每位数,然后每位数都加上5 , 再对10求余,最后将所有数字反转,得到一串新数。

练习七:数字解密(没看)

把上一题加密之后的数据进行解密

练习八:抽奖(没看)

需求:

一个大V直播抽奖,奖品是现金红包,分别有{2, 588 , 888, 1000, 10000}五个奖金。请使用代码模拟抽奖,打印出每个奖项,奖项的出现顺序要随机且不重复。打印效果如下:(随机顺序,不一定是下面的顺序)

888元的奖金被抽出
588元的奖金被抽出
10000元的奖金被抽出
1000元的奖金被抽出
2元的奖金被抽出
返回列表