java学习07---综合练习

 飞机票

1.需求:

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

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

package com.wy.test;import java.util.Scanner;public class Test1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入机票的原价");int ticket = sc.nextInt();System.out.println("请输入当前月份");int month = sc.nextInt();System.out.println("请输入仓位 0头等舱 1经济舱");int seat = sc.nextInt();if (month >= 5 && month <= 10) {if (seat == 0) {ticket = (int) (ticket * 0.9);} else if (seat == 1) {ticket = (int) (ticket * 0.85);} else {System.out.println("没有这个舱位");}} else if ((month >= 1 && month <= 4) || (month >= 11 && month <= 12)) {if (seat == 0) {ticket = (int) (ticket * 0.9);} else if (seat == 1) {ticket = (int) (ticket * 0.85);} else {System.out.println("没有这个舱位");}} else {System.out.println("月份不合法");}System.out.println(ticket);}
}

优化

package com.wy.test;import java.util.Scanner;public class Test1 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入机票的原价");int ticket = sc.nextInt();System.out.println("请输入当前月份");int month = sc.nextInt();System.out.println("请输入仓位 0头等舱 1经济舱");int seat = sc.nextInt();if (month >= 5 && month <= 10) {ticket=getPrice(ticket,seat,0.9,0.85);//旺季} else if ((month >= 1 && month <= 4) || (month >= 11 && month <= 12)) {ticket=getPrice(ticket,seat,0.7,0.65);} else {System.out.println("月份不合法");}System.out.println(ticket);}public static  int getPrice(int ticket,int seat,double v0,double v1){if (seat == 0) {ticket = (int) (ticket * v0);} else if (seat == 1) {ticket = (int) (ticket * v1);} else {System.out.println("没有这个舱位");}return ticket;}
}

快捷键ctrl+alt+m

自动抽取方法

二:打印素数

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

备注:素数就是质数

package com.wy.test;public class Test2 {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.println("当前数字"+i+"是质数");count++;}}System.out.println("一共有"+count+"个质数");}
}

 

三:验证码

需求:

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

验证码格式:

长度为5

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

最后一位是数字

package com.wy.test;import java.util.Random;public class Test3 {public static void main(String[] args) {char[] chs = new char[52];for (int i = 0; i < chs.length; i++) {if (i <= 25) {chs[i] = (char) (97 + i);//小写} else {chs[i] = (char) (65 + i - 26);//大写}}String result="";//定义一个字符串变量,记录最终结果Random r = new Random(); //随机for (int i = 0; i < 4; i++) {//利用随机索引 获取当前元素int randoxIndex = r.nextInt(chs.length);
//            System.out.println(chs[randoxIndex]);result=result+chs[randoxIndex];}
//        System.out.println(result);int number=r.nextInt(10);result=result+number;System.out.println(result);}
}

四:复制数组

需求:

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

package com.wy.test;public class Test4 {public static void main(String[] args) {int[] arr={1,2,3,4,5};int[] newArr=new int[arr.length];for (int i = 0; i < arr.length; i++) {//i--老数组的索引newArr[i]=arr[i];}for (int i = 0; i < newArr.length; i++) {System.out.println(newArr[i]);//新数组已经存储好了}}
}

五:评委打分

需求 :

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

package com.wy.test;import java.util.Scanner;public class Test5 {public static void main(String[] args) {int[] scoreArr = getScores();for (int i = 0; i < scoreArr.length; i++) {System.out.println(scoreArr[i]);}int max=getMax(scoreArr);int min=getMin(scoreArr);int sum=getSum(scoreArr);int avg=(sum-max-min)/(scoreArr.length-2);System.out.println("最终得分是"+avg);}//求和public static int getSum(int[] scoreArr){int sum=0;for (int i = 0; i < scoreArr.length; i++) {sum=sum+scoreArr[i];}return sum;}
//求数组最大值public static int getMax(int[] scoreArr) {int max = scoreArr[0];for (int i = 0; i < scoreArr.length; i++) {if (scoreArr[i] > max) {max = scoreArr[i];}}return max;}
//求数组最小值
public static int getMin(int[] scoreArr) {int  min = scoreArr[0];for (int i = 0; i < scoreArr.length; i++) {if (scoreArr[i] < min) {min = scoreArr[i];}}return min;}public static int[] getScores() {int[] scores = new int[6];Scanner sc = new Scanner(System.in);for (int i = 0; i < scores.length; ) {System.out.println("请输入评委打的分");int score = sc.nextInt();if (score >= 0 && score <= 100) {scores[i] = score;i++;} else {System.out.println("成绩不符合");}}return scores;}
}

 

六:数字加密

需求:

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

规则如下:

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

拼接

//拼接 int number = 0;for (int i = 0; i < arr.length; i++) {number = number * 10 + arr[i];System.out.println(number);

package com.wy.test;public class Test7 {public static void main(String[] args) {//计算数组长度int number=12345;int temp=number;int count=0;while(number!=0){number=number/10;count++;}//定义数组 动态int[] arr=new int[count];//把整数中的每一位添加到数组中int index=arr.length-1;while(temp!=0){int ge=temp%10;temp=temp/10;arr[index]=ge;index--;}for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}
}

七:数字解密

package com.wy.test;public class Test8 {public static void main(String[] args) {int[] arr={8,3,4,6};//反转for (int i = 0,j=arr.length-1; i < j; i++,j--) {int temp=arr[i];arr[i]=arr[j];arr[j]=temp;}//加密对10取余 解密0-4 +10;5-9 不变for (int i = 0; i < arr.length; i++) {if(arr[i]>=0&&arr[i]<=4){arr[i]=arr[i]+10;}}//每一位-5for (int i = 0; i < arr.length; i++) {arr[i]=arr[i]-5;}int number=0;for (int i = 0; i < arr.length; i++) {number=number*10+arr[i];}System.out.println(number);}}

 

八:抽奖

需求:

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

888元的奖金被抽出
588元的奖金被抽出
10000元的奖金被抽出
1000元的奖金被抽出
2元的奖金被抽出
package com.wy.test;import java.util.Random;public class Test9 {public static void main(String[] args) {//分析://1.定义数组表示奖池int[] arr = {2, 588, 888, 1000, 10000};//2.定义新数组用于存储抽奖的结果int[] newArr = new int[arr.length];//3.抽奖Random r = new Random();//因为有5个奖项,所以这里要循环5次for (int i = 0; i < 5; ) {//获取随机索引int randomIndex = r.nextInt(arr.length);//获取奖项int prize = arr[randomIndex];//判断当前的奖项是否存在,如果存在则重新抽取,如果不存在,就表示是有效奖项boolean flag = contains(newArr, prize);if(!flag){//把当前抽取到的奖项添加到newArr当中newArr[i] = prize;//添加完毕之后,移动索引i++;}}//4.遍历newArrfor (int i = 0; i < newArr.length; i++) {System.out.println(newArr[i]);}}//判断prize在数组当中是否存在//存在:true//不存在:falsepublic static boolean contains(int[] arr,int prize){for (int i = 0; i < arr.length; i++) {if(arr[i] == prize){return true;}}return false;}}

优化

package com.wy.test;import java.util.Random;public class Test10 {public static void main(String[] args) {int[] arr={2,588,888,1000,10000};Random r=new Random();for (int i = 0; i < arr.length; i++) {int randomIndex=r.nextInt(arr.length);int temp=arr[i];arr[i]=arr[randomIndex];arr[randomIndex]=temp;}for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/679661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux命令-blockdev命令(从命令行调用区块设备控制程序)

说明 blockdev命令 在命令调用“ioxtls”函数&#xff0c;以实现对设备的控制。 语法 blockdev(选项)(参数)选项 -V&#xff1a;打印版本号并退出&#xff1b; -q&#xff1a;安静模式&#xff1b; -v&#xff1a;详细信息模式&#xff1b; --setro&#xff1a;只读&#x…

浅谈jmeter性能测试步骤入门

一、Jmeter简介 1 概述 jmeter是一个软件&#xff0c;使负载测试或业绩为导向的业务&#xff08;功能&#xff09;测试不同的协议或技术。 它是 Apache 软件基金会的Stefano Mazzocchi JMeter 最初开发的。 它主要对 Apache JServ&#xff08;现在称为如 Apache Tomca…

以谷歌浏览器为例 讲述 JavaScript 断点调试操作用法

今天来说个比较实用的东西 用浏览器开发者工具 对 javaScript代码进行调试 我们先创建一个index.html 编写代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&…

Verilog和Verilog-A有什么区别

Verilog和Verilog-A都是硬件描述语言&#xff0c;用于设计和仿真电子系统。 Verilog 是一种硬件描述语言&#xff0c;广泛用于数字电路的设计、验证和仿真。它是一种结构化的语言&#xff0c;用于描述数字电路的行为和结构。Verilog可用于编写数字逻辑、寄存器传输级&#xff…

Nature Machine Intelligence 法国国家科学研究中心评论“使用大语言模型进行研究的危机”

ChatGPT 于 2022 年底发布&#xff0c;将大型语言模型 &#xff08;LLM&#xff09; 推到了聚光灯下。通过使用户能够直接用自然语言查询模型&#xff0c;ChatGPT 实现了对这些模型的访问——这是一个受欢迎的发展。从那时起&#xff0c;ChatGPT 和 Bard、Claude 和 Bing AI 等…

linux安装单机版redis详细步骤,及python连接redis案例

文章目录 linux相关工具yum方式安装redis使用编译安装redis配置redis为systemctl启动其它: 安装redis6.0python连接redis案例 linux相关工具 ./redis-benchmark #用于进行redis性能测试的工具 ./redis-check-dump #用于修复出问题的dump.rdb文件 ./redis-cli …

MongoDB聚合:$geoNear

$geoNear根据指定的点按照距离以由近到远的顺序输出文档。 从4.2版本开始&#xff0c;MongoDB移除了limit和num选项以及100个文档的限制&#xff0c;如果要限制结果文档的数量可以使用$limit阶段。 语法 { $geoNear: { <geoNear options> } }$geoNear操作接受一个包含…

【报错解决】-bash: export: `-8‘: not a valid identifier 不是有效的标识符

现象 一登陆就提示-bash: export: -8’: not a valid identifier 不是有效的标识符 问题出现的原因 设置字符集时多写了空格 [rootdb1 ~]# cat >>/etc/profile<<EOF export LANGen_US.UTF -8(-8前不应有空格) EOF 解决方法 cd /etc vi profile 把export带有-8的…

188. 买卖股票的最佳时机 IV

188. 买卖股票的最佳时机 IV 题目链接&#xff1a;188. 买卖股票的最佳时机 IV 代码如下&#xff1a; //动态规划 //参考&#xff1a;https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iv/ class Solution { public:int maxProfit(int k, vector<int>&am…

如何升级至ChatGPT Plus:快速指南,ChatGPT的秘密武器GPT4.0是什么?

提到 ChatGPT。想必大家都有所耳闻。自从 2022 年上线以来&#xff0c;就受到国内外狂热的追捧和青睐&#xff0c;上线2个月&#xff0c;月活突破1个亿&#xff01;&#xff01;&#xff01; 而且还在持续上涨中。因为有很多人都在使用 ChatGPT 。无论是各大头条、抖音等 App、…

利用YOLOv8 pose estimation 进行 人的 头部等马赛克

文章大纲 马赛克几种OpenCV 实现马赛克的方法高斯模糊pose estimation 定位并模糊:三角形的外接圆与膨胀系数实现实现代码实现效果参考文献与学习路径之前写过一个文章记录,怎么对人进行目标检测后打码,但是人脸识别有个问题是,很多人的背影,或者侧面无法识别出来人脸,那…

工具 canvas 画时钟表

自己写的工具&#xff0c;代码和Auto.js有差异 importClass(android.view.MotionEvent) importClass(android.graphics.Paint) importClass(java.util.TimeZone); importClass(java.text.SimpleDateFormat); ui.layout( <vertical><text id"坐标1"/>&l…

powershell 雅地关闭UDP监听器

在PowerShell中优雅地关闭UDP监听器意味着你需要一种机制来安全地停止正在运行的UdpClient实例。由于UdpClient类本身没有提供直接的停止或关闭方法&#xff0c;你需要通过其他方式来实现这一点。通常&#xff0c;这涉及到在监听循环中添加一个检查点&#xff0c;以便在接收到停…

vue-生命周期+工程化开发(三)

生命周期 Vue 生命周期 和 生命周期的四个阶段 思考&#xff1a; 什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09;什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a;一个Vue实例从 创建…

【办公类-23-02】20240212徐迟《江南小镇(南浔古镇)》“水晶晶”和景物”数量提取66个

作品展示 背景需求&#xff1a; 2024年春节前夕&#xff0c;我与家人前往浙江湖州、南浔旅行。探寻母亲、外婆外公、曾外婆的祖籍南浔的风土人情。在古镇上看到了”著名诗人“徐迟”的介绍。 母亲说&#xff1a;我的姑母就是在南浔读了小学和中学&#xff0c;她小学时的老师就…

PKI - 借助Nginx 实现Https_使用CA签发证书

文章目录 Pre概述操作步骤1. 生成 CA 密钥对2. 生成自签名的 CA 证书3. 生成服务器密钥对和证书签名请求 (CSR)4. 使用 CA 签署服务器证书 Nginx Https 自签证书1. 生成自签名证书和私钥2. 配置 Nginx 使用 CA签发的 HTTPS 证书3. 重启 Nginx 服务4. 直接访问5. 不验证证书直接…

Junit5基础教程

文章目录 一&#xff0c;导入依赖二&#xff0c;基本功能一、常用断言二、执行顺序和常用注解1、通过BeforeAll类的注解来保证顺序2、通过order注解来保证执行顺序 三、依赖测试四、参数化测试五、测试套件SelectPackages、IncludePackages、SelectClasses、IncludeTags等注解的…

Spark MLlib

目录 一、Spark MLlib简介 &#xff08;一&#xff09;什么是机器学习 &#xff08;二&#xff09;基于大数据的机器学习 &#xff08;三&#xff09;Spark机器学习库MLlib 二、机器学习流水线 &#xff08;一&#xff09;机器学习流水线概念 &#xff08;二&#xff09…

Vue核心基础2:事件处理 和 事件修饰符

1 事件处理 1.1 点击事件 <body><div id"root"><h1>姓名&#xff1a; {{ name }}</h1><h1>地址&#xff1a; {{ address }}</h1><!-- <button v-on:click"showInfo">提示信息</button> --><!-…

Spring中常见的设计模式

使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性、更具有灵活、优雅&#xff0c;而Spring中共有九种常见的设计模式 工厂模式 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一。这种类型的设计模式属于…