news 2026/6/10 6:14:06

java综合练

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
java综合练

第一题

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

public static void main(String[] args) { //1分析: //1.键盘录入机票原价、月份、头等舱或经济舱 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(); //2.先判断月份是旺季还是淡季 if(month>=5&&month<=10){ //旺季 //3.经济舱or头等舱 if(seat==0){ //4.根据实际情况计算出对应的价格 //头等舱 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.7); }else if(seat == 1){ //经济舱 ticket = (int)(ticket*0.65); }else{ System.out.println("无该舱位"); } }else{ //表示键盘录入的月份是一个非法数据 System.out.println("键盘录入的月份非法"); } System.out.println(ticket); }

抽取方法(idea小技巧选中需要生成方法的代码,ctrl+alt+M

public static void main(String[] args) { /*机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。 按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。*/ //1分析: //1.键盘录入机票原价、月份、头等舱或经济舱 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(); //2.先判断月份是旺季还是淡季 if (month >= 5 && month <= 10) { //旺季 //3.经济舱or头等舱 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; }

第二题

需求:定义方法实现随机产生一个5位的验证码
验证码格式:
长度为5
前四位是大写字母或者小写字母
最后一位是数字

public static void main(String[] args) { //方法: //在以后如果我们要在一堆没有什么规律的数据中随机抽取 //可以把数据放到数组当中 //再随机抽取一个索引 //分析: //1.大写小写字母放到数组当中 char[] chs = new char[52]; for (int i = 0; i < chs.length; i++) { //ASCII码表 if(i<=25){ //添加小写字母 chs[i]=(char)(97+i); }else{ //因为else里的i从26开始 //添加大写字母 //A --- 65 chs[i]=(char)(65+i-26);//故这里减去26 } } //定义一个字符串类型的变量,用来记录最终的结果 String result = ""; //2.随机抽取4次 //随机抽取数组中的索引 Random r = new Random(); for (int i = 0; i <4; i++) { int randomIndex = r.nextInt(chs.length); // System.out.print(chs[randomIndex]+" "); result = result + chs[randomIndex]; } // System.out.println(result); //3.随机抽取一个数字0~9 int number = r.nextInt(10); result = result +number; System.out.println(result); }

第三题

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

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++){ newArr[i]=arr[i]; } for (int i = 0; i < newArr.length; i++) { System.out.println(newArr[i]); } }

第四题

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

//把思路理清,把各个方法写好,main方法很好写

public static void main(String[] args) { /*需求: 在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]之间的整数。 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分, 请完成上述过程并计算出选手的得分。*/ 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+=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求余,
最后将所有数字反转,
得到一串新数。

public static void main(String[] args) { /*某系统的数字密码(大于0)。比如1983,采用加密方式进行传输, 规则如下: 每位数加上5 再对10求余, 最后将所有数字反转, 得到一串新数。*/ int[] arr = {1, 9, 8, 3}; for (int i = 0; i < arr.length; i++) { arr[i] = arr[i] + 5; } for (int i = 0; i < arr.length; i++) { arr[i] = arr[i] % 10; } for (int i = 0, j = arr.length-1;i<j; i++,j--) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } int number = 0; for (int i = 0; i < arr.length; i++) { number = number*10 + arr[i]; } System.out.println(number); }

将数字一一存入数组的方法如下:

public static void main(String[] args) { //需求: //把整数上的每一位都添加到数组当中 //反向推导 //1.计算出数组的长度 int number = 1983; int temp = number; int count = 0; while(number!=0){ number = number / 10; count++; } //2.定义数组 //动态初始化 int[] arr = new int[count]; //3.把整数上的每一位都添加到数组当中 int index = arr.length-1; while(temp!=0){ int ge= temp%10; temp /= 10; arr[index]=ge; index--; } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } }

解密

解析:

0~9加5得到的最大最小值分别为14和5

5~14对10取余有规律可言:

当数字在5~9内,不变;在0~4内,加10

作答:

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; } //3.由于加密是通过对1e取余的方式进行获取的 //所以在解密的时候就需要判断,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; } } //每一位减5 for (int i = 0; i < arr.length; i++) { arr[i]=arr[i]-5; } //5.获取数组里面的每一位数字拼接成最终的结果--1 9 8 3变为1983 int number = 0; for (int i = 0; i < arr.length; i++) { number = number*10+arr[i]; } System.out.println(number); // for (int i = 0; i < arr.length; i++) { // System.out.print(arr[i]); // } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:28:54

Vue生命周期总结(四个阶段,八个钩子函数)

目录一、Vue的生命周期阶段二、生命周期钩子函数1、创建阶段1、beforeCreate2、created &#xff08;常用&#xff09;2、挂载阶段1、beforeMount2、 mounted3、更新阶段1、beforeUpdate2、updated4、销毁阶段1、beforeDestroy2、destroyed一、Vue的生命周期阶段 vue生命周期分…

作者头像 李华
网站建设 2026/6/10 13:34:35

GeoJSON.io终极指南:快速创建和编辑地理数据的免费神器

GeoJSON.io终极指南&#xff1a;快速创建和编辑地理数据的免费神器 【免费下载链接】geojson.io A quick, simple tool for creating, viewing, and sharing spatial data 项目地址: https://gitcode.com/gh_mirrors/ge/geojson.io 想要在地图上轻松标记位置、绘制路线或…

作者头像 李华
网站建设 2026/6/9 6:03:16

MySQL索引使用--最左前缀法则

验证索引效率在未建立索引之前&#xff0c;执行如下SQL语句&#xff0c;查询SQL的耗时&#xff1a;select * from tb_sku where snSN0003450001针对字段创建索引create index idx_sku_sn on tb_sku(sn);创建完索引之后&#xff0c;再来看这条查询sql的耗时。查看sql的执行计划最…

作者头像 李华
网站建设 2026/6/10 13:07:53

Atlas200赋能水稻病虫害精准识别:AI+边缘计算守护粮食安全

Atlas200赋能水稻病虫害精准识别&#xff1a;AI边缘计算守护粮食安全 作为全球三大粮食作物之一&#xff0c;水稻的产量安全直接关系到全球粮食供给稳定。然而&#xff0c;细菌性穗枯病、稻瘟病等常见病虫害常导致水稻减产甚至绝收&#xff0c;传统人工识别方式不仅效率低下&am…

作者头像 李华
网站建设 2026/6/10 12:34:04

2025低成本学AI:实用认证推荐

在技术快速发展的今天&#xff0c;掌握相关技能已成为许多职场人士关注的方向。其中&#xff0c;人工智能相关知识的了解与应用能力&#xff0c;正在成为一项有价值的补充技能。本文将介绍几个不同方向的入门级认证&#xff0c;供有需要的学习者参考选择。CAIE注册人工智能工程…

作者头像 李华