学习视频链接:https://www.bilibili.com/video/BV17F411T7Ao

文章目录

  • 练习一:飞机票
  • 练习二:打印素数
  • 练习三:验证码
  • 练习四:复制数组
  • 练习五:评委打分
  • 练习六:数字加密
  • 练习七:数字解密
  • 练习八:抽奖
    • 解法一:
    • 解法二:
  • 练习九:双色球

练习一:飞机票

需求:

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

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

代码示例:

import java.util.Scanner;/*** @ClassName: codePractice01* @Author: Kox* @Data: 2023/1/13* @Sketch:*/
public class codePractice01 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入飞机原价格:");int price = sc.nextInt();System.out.print("请输入月份:");int month = sc.nextInt();System.out.print("请输入舱位:(0是头等,1是经济)");int level = sc.nextInt();if (month >= 5 && month <= 10) {price = getPrice(price, level, 0.9, 0.85);} else if ((month >= 1 && month <= 4) || (month >= 11 && month <= 12)) {price = getPrice(price, level, 0.7, 0.65);} else {System.out.println("月份输入错误");}System.out.println(price);}public static int getPrice(int price, int level , double v0, double v1) {if (level == 0) {price = (int) (price * v0);} else if (level == 1){price = (int) (price * v1);} else {System.out.println("没有这个舱位!");}return price;}
}

练习二:打印素数

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

备注:素数就是质数

代码示例:

/*** @ClassName: cn.kox.practice.codePractice02* @Author: Kox* @Data: 2023/1/13* @Sketch: 找质数*/
public class codePractice02 {public static void main(String[] args) {int count = 0;for (int i = 101; i <= 200; i++) {boolean flag = true;for (int j = 2; j < i; j++) {if (i % j == 0) {flag = false;break;}}if (flag) {System.out.print(i + "\t");count++;}}System.out.println("\n有" + count + "个质数。");}
}

练习三:验证码

需求:

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

验证码格式:

​ 长度为5

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

​ 最后一位是数字

代码示例:

import java.util.Arrays;
import java.util.Random;/*** @ClassName: codePractice03* @Author: Kox* @Data: 2023/1/13* @Sketch: 开发验证码*/
public class codePractice03 {public static void main(String[] args) {char[] letter = new char[52];for (int i = 0; i < letter.length; i++) {if (i <= 25) {letter[i] = (char)(97 + i);} else {letter[i] = (char)(65 + i - 26);}}Random r = new Random();
//        String verify = "";char[] verify = new char[5];for (int i = 0; i <= 4; i++) {int index = r.nextInt(letter.length - 1) + 1;if (include(verify, letter, index)) {verify[i] = letter[index];}if (i == 4) {index = r.nextInt(10) + 48;verify[i] = (char) index;}}System.out.println(Arrays.toString(verify));}public static boolean include(char[] brr, char[] arr, int num) {for (int i = 0; i < brr.length - 1; i++) {if (brr[i] == arr[num]) {return false;}}return true;}
}

练习四:复制数组

需求:

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

代码示例:

import java.util.Arrays;/*** @ClassName: codePractice04* @Author: Kox* @Data: 2023/1/13* @Sketch: 数组元素复制*/
public class codePractice04 {public static void main(String[] args) {int[] arr = {1, 2, 3, 5, 6, 99, 100};int[] brr = new int[arr.length];for (int i = 0; i < arr.length; i++) {brr[i] = arr[i];}System.out.println(Arrays.toString(brr));}
}

练习五:评委打分

需求 :

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

代码示例:

import java.util.Arrays;
import java.util.Random;/*** @ClassName: codePractice05* @Author: Kox* @Data: 2023/1/13* @Sketch: 评委打分*/
public class codePractice05 {public static void main(String[] args) {int[] arr = new int[6];     // 评委的分数Random r = new Random();for (int i = 0; i < arr.length; i++) {int rScore = r.nextInt(101);arr[i] = rScore;}int score = 0;for (int i = 0; i < arr.length; i++) {score += arr[i];}int maxScore = getMax(arr);int minScore = getMin(arr);double endScore = (double) (score - maxScore - minScore) / (arr.length - 2);System.out.println(Arrays.toString(arr));System.out.println("去掉一个最高分:" + maxScore + ",去掉一个最低分:" + minScore + ",最后得分" + endScore + "分儿。");}public static int getMax(int[] arr) {int maxScore = arr[0];for (int i = 1; i < arr.length; i++) {if (maxScore < arr[i]) {maxScore = arr[i];}}return maxScore;}public static int getMin(int[] arr) {int minScore = arr[0];for (int i = 1; i < arr.length; i++) {if (minScore > arr[i]) {minScore = arr[i];}}return minScore;}
}

练习六:数字加密

需求:

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

规则如下:

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

举例:

     1   9   8   3
+5     6   14  13  8
%10     6   4   3   8
反转     8   3   4   6
加密后的结果就是:8346

代码示例:

/*** @ClassName: codePractice06* @Author: Kox* @Data: 2023/1/14* @Sketch: 数字加密*/
public class codePractice06 {public static void main(String[] args) {int[] arr = {1, 9 , 8 , 3};int number = 0;for (int i = arr.length-1; i >= 0; i--) {number = number * 10 + getNum(arr[i]);}System.out.print("加密后的结果就是:" + number);}public static int getNum(int num) {num = (num + 5) % 10;return num;}}

练习七:数字解密

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

代码示例:

/*** @ClassName: codePractice07* @Author: Kox* @Data: 2023/1/14* @Sketch: 数字解密*/
public class codePractice07 {public static void main(String[] args) {int[] arr = {8, 3, 4, 6};int number = 0;for (int i = arr.length-1; i >= 0; i--) {number = number * 10 + getNum(arr[i]);}System.out.println(number);}public static int getNum(int num) {num = (num + 5) % 10;return num;}
}

练习八:抽奖

需求:

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

888元的奖金被抽出
588元的奖金被抽出
10000元的奖金被抽出
1000元的奖金被抽出
2元的奖金被抽出

解法一:

import java.util.Arrays;
import java.util.Random;/*** @ClassName: codePractice08* @Author: Kox* @Data: 2023/1/14* @Sketch: 抽奖*/
public class codePractice08 {public static void main(String[] args) {int[] arr = {2, 588, 1000, 10000};Random r = new Random();for (int i = 0; i < arr.length; i++) {int index = r.nextInt(arr.length);int temp = arr[i];arr[i] = arr[index];arr[index] =temp;}System.out.println(Arrays.toString(arr));}}

解法二:

import java.util.Random;/*** @ClassName: codeHomework11* @Author: Kox* @Data: 2023/1/10* @Sketch: 题目11*/
public class codeHomework11 {public static void main(String[] args) {int[] arr = {2, 588, 1000, 10000};int[] brr = new int[arr.length];Random r = new Random();int flag = 0;while (flag < arr.length) {int index = r.nextInt(arr.length);if (returnNum(brr, arr[index])) {brr[flag] = arr[index];System.out.println(brr[flag] + "元的奖金被抽出");flag++;}}}public static boolean returnNum(int[] arr, int num) {for (int i = 0; i < arr.length; i++) {if (arr[i] == num) {return false;}}return true;}
}

练习九:双色球


代码示例:

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;/*** @ClassName: codePractice09* @Author: Kox* @Data: 2023/1/14* @Sketch: 双色球系统*/
public class codePractice09 {public static void main(String[] args) {int[] red = new int[33];red = getArr(red);int[] blue = new int[16];blue = getArr(blue);int[] luckyArr = new int[7];    // 抽出的中奖数组Random r = new Random();int index = 0;while (index < luckyArr.length) {int redIndex = r.nextInt(red.length);if (getNum(luckyArr, red[redIndex])) {luckyArr[index] = red[redIndex];index++;}if (index == luckyArr.length - 1) {int blueIndex = r.nextInt(blue.length);luckyArr[index] = blue[blueIndex];index++;}}// System.out.println("本次奖池号码为:" + Arrays.toString(luckyArr));int[] userArr = new int[luckyArr.length];   // 用户输入的号码Scanner sc = new Scanner(System.in);int count = 1;while (count <= userArr.length) {if (count == userArr.length) {System.out.print("输入蓝色球的号码:");int num = sc.nextInt();if (num >= blue[0] && num <= blue[blue.length-1]) {userArr[count-1] = num;count++;} else {System.out.println("奖池没有该数字!");}} else {System.out.print("输入红色球的第" + count + "个数字:");int num = sc.nextInt();if (num >= red[0] && num <= red[red.length-1]) {if (getNum(userArr,num)) {userArr[count-1] = num;count++;} else {System.out.println("数字输入重复!");}} else {System.out.println("奖池没有该数字!");}}}int redCount = 0;int blueCount = 0;for (int i = 0; i < userArr.length; i++) {if (i == userArr.length-1) {if (luckyArr[i] == userArr[i]) {blueCount++;}} else {if (luckyArr[i] == userArr[i]) {redCount++;}}}System.out.println("本次奖池号码为:" + Arrays.toString(luckyArr));System.out.println("你竞猜的号码为:" + Arrays.toString(userArr));System.out.println("红蓝中将次数分别是:"+ redCount + ":" + blueCount);switch (redCount) {case 0,1,2 -> System.out.println(blueCount != 0 ? "六等奖5元" : redCount != 0 ? "六等奖:5元" : "无奖");case 3 -> System.out.println(blueCount != 0 ? "五等奖:10元" : "六等奖:5元");case 4 -> System.out.println(blueCount != 0 ? "四等奖:200元" : "五等奖:10元");case 5 -> System.out.println(blueCount != 0 ? "三等奖:3000元" : "四等奖:200元");case 6 -> System.out.println(blueCount != 0 ? "一等奖:最高1000万" : "二等奖:最高500万");}}public static int[] getArr(int[] arr) {for (int i = 0; i < arr.length; i++) {arr[i] = i + 1;}return arr;}public static boolean getNum(int[] arr, int num) {for (int i = 0; i < arr.length; i++) {if (arr[i] == num) {return false;}}return true;}}

Java-黑马Java学习作业-day07综合练习相关推荐

  1. Java语法快速学习-黑马程序员(个人整理版本)

    Java入门基础视频教程,java零基础自学首选黑马程序员Java入门教程(含Java项目和Java真题)_哔哩哔哩_bilibili为了帮助广大对Java有兴趣和立志进入本行业的零基础学员,本套课程 ...

  2. java学习笔记day07 成员变量与局部变量、形式参数、匿名对象、封装、private、this、构造方法、类详细讲解、static

    java学习笔记day07 1.成员变量和局部变量的区别 定义变量的注意事项 2.形式参数⭐ [P175] 形参是个类名,要的其实是一个对象 3.匿名对象(了解即可) 4.封装 class Stude ...

  3. 网站推荐(3)——黑马Java学习路线

    黑马Java学习路线 黑马的java学习路线,很详细,涵盖java基础.Java web 甚至微服务.每个阶段在B站都有配套的视频,同时资料也是可以下载的.非常适合学习 地址:http://yun.i ...

  4. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  5. Java开发快速学习!黑马java项目实战

    一面 自我介绍 项目中的监控:那个监控指标常见的有哪些? 微服务涉及到的技术以及需要注意的问题有哪些? 注册中心你了解了哪些? consul 的可靠性你了解吗? consul 的机制你有没有具体深入过 ...

  6. java毕业设计高校学习社区mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计高校学习社区mybatis+源码+调试部署+系统+数据库+lw java毕业设计高校学习社区mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S架构 开 ...

  7. java后端系统学习总结 03_java Web基础学习

    猿猿正在系统的学习一些计算机知识,和后端技术栈,目前阶段主要在系统学习java.此专栏,为我学习过程中的学习笔记,便于日后复习回顾来看,也很适合新人学习参考呦. 以下是猿猿对JavaWeb的第一遍学习 ...

  8. Java第一课学习,开启学习之旅!

    一个程序员的第一课都是用程序编写"Hello,world!",当然我也不例外! public class HelloWorld{public static void main(St ...

  9. java计算机毕业设计在线作业提交系统源码+系统+mysql数据库+lw文档

    java计算机毕业设计在线作业提交系统源码+系统+mysql数据库+lw文档 java计算机毕业设计在线作业提交系统源码+系统+mysql数据库+lw文档 本源码技术栈: 项目架构:B/S架构 开发语 ...

  10. java计算机毕业设计在线作业管理系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计在线作业管理系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计在线作业管理系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构:B/S ...

最新文章

  1. 生成批量缩率图_Windows系统实战之:批量生成某类型文件
  2. 基类和派生类写在一个文件中_BootISO:从 ISO 文件中创建一个可启动的 USB 设备...
  3. sqlserver怎么将excel表的数据导入到数据库中
  4. python 实现函数的递归
  5. Hadoop之InputFormat数据输入详解
  6. 织梦DedeCMS实现 三级栏目_二级栏目_一级栏目_网站名称 的效果代码
  7. [ExtJS5学习笔记]第十五节 Extjs5表格显示不友好?panel的frame属性在作怪
  8. android点赞动画仿twritter,【点赞动画仿抖音】Android 自定义view动画--酷炫点赞动画...
  9. 算法-lowb三人组
  10. 栈的应用 - 就近匹配
  11. 【从0开始机器学习】神经网络识别手写字符!
  12. 第一个Eureka Service
  13. dB、dBm、dBw、dBμV、dBmV、dBV、dBv等单位介绍
  14. java使用d3_D3 快速入门指北
  15. 从微信浏览器跳转到手机浏览器(ios和android)
  16. 基于云服务创建实时运营数据分析服务(一)
  17. 琪琪的果园{青龙面板可跑项目之一}保姆教程
  18. 01.Polsarpro软件介绍
  19. 安卓使用WebView清除缓存
  20. WDM 驱动程序开发

热门文章

  1. 什么是QoS?QoS是如何工作的?QoS的实验配置如何进行?
  2. Memory read error at 0xF8007080. AHB AP transaction error, DAP status f0000021
  3. 我的大学 作者:郭天祥
  4. 大语言模型的预训练[3]之Prompt Learning:P
  5. VS C++ win32 更改static文本字体和文本背景
  6. 单板如何挂载linux虚拟机,单板机上的LINUX,从零开始(二)
  7. Linux:FTP工具及SSH远程连接工具的使用
  8. 工作:三菱PLC与伺服之CC-Link IE Field Network通讯应用
  9. 【生活】程序员爱代码,而我爱你们
  10. 如何处理报表中的舍位平衡