目录

卖飞机票

找质数

开发验证码

数组元素的复制

评委打分

数字加密

数字解密

抢红包

模拟双色球

二维数组


卖飞机票

需求:机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格:

旺季(5-10月)头等舱9折,经济舱8.5折;淡季(11月到来年4月)头等舱7折,经济舱6.5折。代码如下:

import java.util.Scanner;public class Main {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 = getTicket(seat, ticket, 0.9, 0.85);}else if((month >=1 && month <= 4) || (month >= 11 && month <= 12)){ // 淡季ticket = getTicket(seat, ticket, 0.7, 0.65);}else{System.out.println("键盘录入不合法!");}System.out.println(ticket);}// 定义判断乘坐的是经济舱还是头等舱static int getTicket(int seat, int ticket, double x, double x1) {if (seat == 0) {ticket = (int) (ticket * x);} else if (seat == 1) {ticket = (int) (ticket * x1);} else {System.out.println("没有这个舱位!");}return ticket;}
}

找质数

需求:判断101 ~ 200 之间有多少个素数,并输出所有素数。代码如下:

public class Main {public static void main(String[] args) {// 统计素数的数量int count  = 0;for (int i = 101; i <= 200 ; i++) {// 假设当前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、前四位是大写字母或者小写字母、最后一位是数字。代码如下:

public class Main {public static void main(String[] args) {// 大小写字母都放在数组中char[] chs = new char[52];for (int i = 0; i < chs.length; i++) {// 使用 ASCII码表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 randomIndex = r.nextInt(chs.length);// 利用随机索引获取对应元素result = result + chs[randomIndex];}// 随机抽取一个数字 0 ~ 9int number = r.nextInt(10);result = result + number;System.out.println("当前验证码为:"+result);}
}

数组元素的复制

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

public class Main {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个评委的平均分,请完成上述过程并计算选手的得分。代码如下:

public class Main {public static void main(String[] args) {// 定义一个数组,用来存储6名评委的打分(0 ~ 100)int[] scoreArr = getScore();for (int i = 1; i < scoreArr.length; i++) {System.out.println(scoreArr[i]);}// 求数组最大最小值int max = getMax(scoreArr);int min = getMin(scoreArr);// 求数组元素6个元素的总和int sum = getSum(scoreArr);// 当前的评分System.out.println("选手的最终评分为:"+(sum - max - min)/(scoreArr.length - 2));}// 获取数组元素总和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 = 1; i < scoreArr.length; i++) {if(max>scoreArr[i]){max = scoreArr[i];}}return max;}// 定义获取数组元素最小值的方法public static int getMin(int[] scoreArr){int min = scoreArr[0];for (int i = 0; i < scoreArr.length; i++) {if(min<scoreArr[i]){min = scoreArr[i];}}return min;}// 定义获取评委打分的方法public static int[] getScore(){// 定义数组int[] scores = new int[6];// 使用键盘录入的方式,输入分数:0~100Scanner 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求余,最后将所有数字反转,得到一串新数,比如1983加密之后变成8346。代码如下:

public class Main {public static void main(String[] args) {// 把整数里面的每一位放在数组当中int[] arr = { 1,9,8,3 };// 对数组上的每一位元素加5for (int i = 0; i < arr.length; i++) {arr[i] = arr[i] + 5;}// 将数组的每一位元素进行10取余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);}
}

数字解密

需求:对上面的加密进行解密,比如加密的8346解密成1983,代码如下:

public class Main {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 4~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 }五个奖金,请使用代码模拟抽奖,打印出每个奖项,奖项出现的顺序要随机且不能重复,代码如下:

public class Main {public static void main(String[] args) {// 定义一个奖池数组int[] arr = { 2,588,888,1000,10000 };// 定义新数组用于存储抽奖的结果int[] newArr = new int[arr.length];// 抽奖Random r = new Random();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++;}}// 遍历newArrfor (int i = 0; i < newArr.length; i++) {System.out.println(newArr[i]);}}// 判断prize在数组中是否存在public static boolean contains(int[] arr,int prize){for (int i = 0; i < arr.length; i++) {if(arr[i] == prize){return true;}}return false;}
}

模拟双色球

需求:投注号码由6个红色球号和1个蓝色球号组成。红色球号码从 1 ~ 33 中选择;蓝色球号码从 1 ~ 16 中选择。代码如下:

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;public class Main {public static void main(String[] args) {// 生成中将代码int[] arr = createNumber();System.out.println("当前中将代码为"+ Arrays.toString(arr) + "请仿照中将代码输入,才能中将(doge)");// 用户输入的号码int[] userInputArr = InputNum();// 判断用户的中将情况int redCount = 0;int blueCount = 0;// 判断红球for (int i = 0; i < userInputArr.length - 1; i++) {int reqNumber= userInputArr[i];for (int j = 0; j < arr.length -1; j++) {if(reqNumber == arr[j]){redCount++;// 如果找到了,那么后面的数字就没有必要继续比较了,跳出内循环,继续判断下一个红球号码是否中将。break;}}}// 判断蓝球int blueNumber = userInputArr[userInputArr.length -1];if(blueNumber == arr[arr.length -1]){blueCount++;}// 根据红球的个数以及蓝球的个数来判断中奖情况if(redCount ==6 && blueCount ==1){System.out.println("恭喜你,中将1000万!");} else if (redCount ==6 && blueCount ==0) {System.out.println("恭喜你,中将500万!");}else if (redCount ==5 && blueCount ==1) {System.out.println("恭喜你,中将3000!");}else if ((redCount ==5 && blueCount ==0) || (redCount ==4 && blueCount ==1)) {System.out.println("恭喜你,中将200!");}else if ((redCount ==4 && blueCount ==0) || (redCount ==3 && blueCount ==1)) {System.out.println("恭喜你,中将10!");}else if ((redCount ==2 && blueCount ==1) || (redCount ==1 && blueCount ==1) || (redCount ==0 && blueCount ==1)) {System.out.println("恭喜你,中将5!");}else {System.out.println("谢谢参与,谢谢惠顾!");}}public static int[] InputNum(){// 创建数组用于添加用户购买的彩票数量int[] arr = new int[7];// 利用键盘录入让用户进行输入Scanner sc = new Scanner(System.in);// 让用户输入红色球for (int i = 0; i < 6;) {System.out.println("请输入第" + (i + 1) + "个红色号码");int reqNumber = sc.nextInt();// reqNumber 在 1~33 唯一不重复if(reqNumber >= 1 && reqNumber <= 33){boolean flag = contains(arr,reqNumber);if(!flag){// 不存在的,有效的可以存在数组当中arr[i] = reqNumber;i++;}else{// 存在System.out.println("当前的红色号码球已经存在,请重新输入!");}}else {System.out.println("当前的红色号码超出范围,请重新输入!");}}// 让用户输入蓝色球System.out.println("请输入蓝色球");// 1~16while (true){int blueNumber = sc.nextInt();if(blueNumber >=1 && blueNumber <=16){arr[arr.length -1] = blueNumber;break;}else {System.out.println("当前蓝球号码超出范围,请重新输入!");}}return arr;}public static int[] createNumber(){// 创建数组用于添加中将号码,6个红球、1蓝球,数组长度为7int[] arr = new int[7];// 随机生成号码并添加到数组中Random r = new Random();for (int i = 0; i < 6;) {// 获取红球号码int redNumber = r.nextInt(33) + 1;boolean flag = contains(arr,redNumber);if(!flag){// 把红球号码添加到数组当中arr[i] = redNumber;i++;}}// 生成蓝球号码并添加到数组当中int blueNumber = r.nextInt(16) + 1;arr[arr.length - 1] = blueNumber;return arr;}// 用于判断数组在数组中是否存在public static boolean contains(int[] arr,int number){for (int i = 0; i < arr.length; i++) {if(arr[i] == number){return true;}}return false;}
}

PS:赌博有风险,入行需谨慎!根据上面的赌球代码,我测试了好几次连5元都没中。希望大家玩乐适度为主,切莫上头!

二维数组

需求:某商城每个季度的营业额如下:单位(万元)

第一季度:22,66,44

第二季度:77,33,88

第三季度:25,45,65

第四季度:11,66,99

要求计算出每个季度的总营业额和全年的总营业额:代码如下:

public class Main {public static void main(String[] args) {// 创建二维数组并存储数据int[][] yearArrArr = {{22, 66, 44},{77, 33, 88},{25, 45, 65},{11, 66, 99}};// 全年的营业额int yearSum = 0;// 遍历二维数组,得到每一个一维数组并求和for (int i = 0; i < yearArrArr.length; i++) {int[] quarterArr = yearArrArr[i];int sum = getSum(quarterArr);System.out.println("第" + (i+1) + "个季度的总营业额为:" + sum);yearSum = yearSum + sum;}System.out.println("全年的总营业额为:"+yearSum);}// 定义一个方法,计算每一个季度的营业额public static int getSum(int[] arr){int sum = 0;for (int i = 0; i < arr.length; i++) {sum = sum + arr[i];}return sum;}
}

Java奠基】Java经典案例讲解相关推荐

  1. Java继承多态经典案例分享

    今天动力节点java培训机构小编为大家分享Java继承多态经典案例,希望通过此文能够帮助到大家,下面就随小编一起看看Java继承多态经典案例. public class A { public Stri ...

  2. 视频教程-Oracle数据库开发技巧与经典案例讲解一-Oracle

    Oracle数据库开发技巧与经典案例讲解一 Oracle DBA,熟悉Unix操作系统,精通Oracle数据库. 曾任职某大型金融IT公司,负责银行领域数据库构建与运维,维护大量银行数据库系统.目前在 ...

  3. 高中数学必修二立体几何中的向量方法(经典案例讲解)

    高中数学必修二立体几何中的向量方法介绍,关于立体几何基础知识梳理,通过三个经典案例介绍立体几何易错点. 一.立体几何基础知识梳理 1.空间向量与空间角的关系 二.立体几何辨明两个易误点 三.经典案例解 ...

  4. 十个成功企业案例分析_2020年新版 企业合理节税避税经典案例讲解+企业纳税筹划实用技巧与典型案例分析...

    企业纳税筹划实用技巧与典型案例分析>.本书论述了企业投资决策纳税筹划方案.企业经营决策纳税筹划方案.企业融资决策纳税筹划方案.企业再投资与结业决策纳税筹划方案.企业跨国经营纳税筹划方案.企业薪酬 ...

  5. Java奠基】数组的讲解与使用

    目录 数组概述 数组的定义与初始化 数值遍历 数组的常见操作 数组内存图 数组概述 数组是一种容器,可以用来存储同种数据类型的多个值,数组容器在存储数据的时候,需要结合隐式转换考虑.例如:int类型的 ...

  6. java 时间处理经典案例

    package day1; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.C ...

  7. java逻辑循环经典案例(不死神兔、百钱百鸡、逢七过、评委打分、数组翻转)

    1减肥计划: 星期一:跑步: 星期二:游泳; 星期三:慢走; 星期四:动感单车 星期五:拳击 ;星期六:爬山; 星期日:好好吃一顿. import java.util.Scanner; /*减肥计划: ...

  8. java程序算法实例_java编程算法经典案例

    编程经典案例(持续更新中,敬请期待): 一.购物问题 小明的女朋友最喜欢在网上买买买了,可是钱包里钞票有限,不能想买啥就买啥.面对琳琅满目的物品,她想买尽可能多的种类,每种只买一件,同时总价格还不能超 ...

  9. java中的基本小程序_12个用Java编写基础小程序经典案例(收藏篇)

    原标题:12个用Java编写基础小程序&经典案例(收藏篇) 如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用. 1.输出两个int数中的最大值 impor ...

最新文章

  1. PostgreSQL · 特性介绍 · 全文搜索介绍
  2. unity导入osgb格式的数据_游戏开发声音格式的选择
  3. Step By Step_Java通过JNI调C程序执行
  4. 有理有据!为什么String选择数字31作为hashCode方法乘子?
  5. C# 两个类之间传递数据
  6. axios get 跨域_axios网络交互应用-Vue
  7. JS来推断文本框内容改变事件
  8. 研发中,问题以界面开发人员为解决负责人
  9. Modbus RTU/ASCll+TCP+OPC电脑模拟+串口调试软件对接方案
  10. C语言2019软件,c语言模拟编程学习软件v2019 最新版
  11. oh-my-zsh主题添加命令显示执行时间和当前时间
  12. 软件设计学习笔记1_架构
  13. 英语单词学习-词根词缀记忆思维导图
  14. Linux 学习笔记16 信号量
  15. 【MAC使用技巧】QuickTime Player使用技巧
  16. idea pycharm 的注册方式
  17. unity找不到报错界面
  18. 电报群组导航机器人_优必选周剑:All in 机器人,你不感性一点、轴一点怎么行?...
  19. Autogrid5划分网格
  20. Android 控件之Gallery图片集

热门文章

  1. [易飞]2019年税率改革
  2. GStreamer学习笔记
  3. outlook附件无法打开_通过键盘在Outlook 2007中打开附件
  4. 从蓝桥杯丢盔卸甲,来学一点javaScript
  5. 一文读懂 协方差矩阵
  6. java培训机构靠谱吗,已入坑老司机给你的几点忠告
  7. 门禁服务器业务导航不显示,门禁一卡通管理软件重大问题解决办法
  8. python 求x的 n次方
  9. python读取grib格式数据
  10. 云计算机渲染效果,为什么有的人要用云渲染?云渲染怎么用?