1.关于飞机票购买问题
- 机票价格按照淡季旺季,头等舱、经济舱收费,输入机票价格、月份头等舱或者经济舱
- 按照一下规则来计算机机票的价格(5-10)头等舱9折,经济舱8.5折,淡季11月-来年四月 头等舱7折,经济舱6.5折
package com.company;
//ctrl+alt+M抽取方法
//机票价格按照淡季旺季,头等舱、经济舱收费,输入机票价格、月份头等舱或者经济舱
//按照一下规则来计算机机票的价格(5-10)头等舱9折,经济舱8.5折,淡季11月-来年四月 头等舱7折,经济舱6.5折
import java.util.Scanner;
public class airTicket {
public static void main(String[] args) {
//分析 1.输入机票价格,月份,头等舱或者经济舱
System.out.println("请输入机票价格:");
Scanner scanner=new Scanner(System.in);
int price=scanner.nextInt();
System.out.println("请输入月份:");
int mouth=scanner.nextInt();
System.out.println("请输入种类:");
int type=scanner.nextInt();
//先判断是淡季还是旺季
if (mouth>=5&&mouth<=10){
//判断座位,算出价格
price = getPrice(type, price, 0.9, 0.85);
}else if ((mouth>=1&&mouth<5)||(mouth>=11&&mouth<=12)){
price = getPrice(type, price, 0.7, 0.65);
}else {
System.out.println("没有该月份");
}
System.out.println(price);
}
private static int getPrice(int type, int price, double x, double x1) {
if (type ==1){
price = (int) (price * x);
}else if (type ==2){
price =(int)(price * x1);
}else {
System.out.println("没有该座位");
}
return price;
}
}
2.猜数字小游戏
- 创建一个随机数,来进行猜,系统给出相应的提示
package com.company;
import java.util.Random;
import java.util.Scanner;
public class guessNumber {
public static void main(String[] args) {
//1.创建一个随机数
Random r=new Random();
int result=r.nextInt(50);
//2.利用while循环进行猜数字环节,猜对后退出
while (true){
Scanner scanner=new Scanner(System.in);
int scanNumber=scanner.nextInt();
if (scanNumber>result){
System.out.println("猜大了");
}else if (scanNumber<result){
System.out.println("猜小了");
}else {
System.out.println("猜对了");
break;
}
}
}
}
3.开发验证码问题
- 要求验证码由五位组成,前四个是由26个字母大小写任意组合,最后一位是1数字
package com.company;
import java.util.Random;
import java.util.Scanner;
public class randVerification {
public static void main(String[] args) {
//随机验证码 首先创建一个结果来接受验证码
String result="";
//1.将所有的a-z以及A-Z存放到数组当中去
char[] chr = new char[52];
for (int i = 0; i < 52; i++) {
//加入小写字母 a==97
if (i < 26) {
chr[i] = (char) (97 + i);
} else {
//加入大写字母 A==65
chr[i]=(char)(65+i-26);
}
}
Random random=new Random();
//2.从中随机抽取四个字母
for (int i=0;i<4;i++){
int randomIndex=random.nextInt(52);
//利用随机索引获取对应元素,并加入到结果上
result=result+chr[randomIndex];
}
//3.随机抽取0~9
int number=random.nextInt(10);
//4.拼接结果并且运行
result=result+number;
}
}
4.一个数据将它每一位存放在数组当中
- 需求:手动输入一个数据,将这个数据整数上的每一位放到数组上
- 1.通过键盘输入一个数据
- 2.统计该数据的位数
- 3.将数据进行分割
- 4.将数据进行打印输出
package com.company;
import java.util.Scanner;
public class NumberSplit {
//需求:手动输入一个数据,将这个数据整数上的每一位放到数组上
public static void main(String[] args) {
/*分析:
1.通过键盘输入一个数据
2.统计该数据的位数
3.将数据进行分割
4.将数据进行打印输出
*/
//1.通过键盘输入一个数据
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
//2.统计该数据的位数
int temp = number;
int count = 0;//统计位数
while (number != 0) {
number = number / 10;
count++;
}
//3.将数据进行分割,并添加到数组中
int[] arr=new int[10];
for (int i = count-1; i >=0; i--) {
arr[i]=temp%10;
temp=temp/10;
}
//4.对数据进行打印输出
for (int i = 0; i < count; i++) {
System.out.print( arr[i]+" ");
}
}
}
5.数字加密
需求:
某系统的数字密码大于0,比如1983,采用加密形式进行传输,
比如规则如下
1.每位数字+5
2.在对10取余
3.最后将所有数字反转
4.得到新的串
package com.company;
//数字加密
/*某系统的数字密码大于0,比如1983,采用加密形式进行传输,
比如规则如下
1.每位数字+5
2.在对10取余
3.最后将所有数字反转
4.得到新的串
*/
public class DigitalEncryption {
public static void main(String[] args) {
//分析:
//1.创建一个数组存放1983
int[]arr={1,9,8,3};
//2.对数组中每个元素进行+5操作
for (int i = 0; i < arr.length; i++) {
arr[i]=arr[i]+5;
}
//3.对数组中的数据就行取余操作
for (int i = 0; i < arr.length; i++) {
arr[i]=arr[i]%10;
}
//4.将数组中的数据进行反转操作,临时变量作为中间值
int temp=0;
for (int i=0,j=arr.length-1;i<j;i++,j--){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
//5.得到新的串
int result=0;
for (int i = 0; i <arr.length ; i++) {
result=result*10+arr[i];
}
System.out.println("加密后的结果是:"+result);
}
}
6.数字解密
某系统的数字密码大于0,比如1983,采用加密形式进行传输,规则如下
1.每位数字+5
2.在对10取余
3.最后将所有数字反转
4.得到新的串
将上述信息进行解密
分析:
1.先将其反转过来
2.若对应的是0~4加10,若对应的是5~9则不变
3.拼接字符串
代码实现如下:package com.company;
/*某系统的数字密码大于0,比如1983,采用加密形式进行传输,
比如规则如下
1.每位数字+5
2.在对10取余
3.最后将所有数字反转
4.得到新的串
将上述信息进行解密
*/
/*
* 1.先将其反转过来
* 2.若对应的是0~4加10,若对应的是5~9则不变
* 3.拼接字符串
* */
public class DigitalDecryption {
public static void main(String[] args) {
int[] arr = {8, 3, 4, 6};
//1.反转
for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 2.若对应的是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;
}
}
for (int i = 0; i < arr.length; i++) {
arr[i]=arr[i]-5;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
7.评委抽奖
需求:
一个大v直播抽奖,奖金分别有(2,588,888,1000,10000) 请用代码抽奖并打印出每个奖项,奖项的出现的顺序要随机且不重复
打印效果如下(随机顺序)
package com.company;
import java.util.Random;
/*需求:
* 一个大v直播抽奖,奖金分别有(2,588,888,1000,10000)
* 请用代码抽奖并打印出每个奖项,奖项的出现的顺序要随机且不重复
* 打印效果如下(随即顺序)*/
public class LotteryDraw {
/*分析:
* 1.创建一个数组,作为中奖的对象
* 2.打乱数组顺序,循环遍历
* 3.打印中奖结果*/
public static void main(String[] args) {
int[] arr = {2, 588, 888, 1000, 10000};
Random random = new Random();
//生成随机数的代码 ,也可以利用random生成两个随机数索引,让这两个索引进行交换即可
for (int i = 0; i < arr.length; i++) {
int randomIndex= random.nextInt(arr.length);
int temp=arr[i];
arr[i]=arr[randomIndex];
arr[randomIndex]=temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+" ");
}
}
}
8.评委打分
需求:6个评委打分,去掉最高分和最低分求平均分
package com.company;
import java.util.Scanner;
// 6个评委打分,去掉最高分和最低分求平均分
public class RatingByJudge {
public static void main(String[] args) {
//分析:1.将评委打分存放到数组当中
int[]arr=setSource();
// for (int i=0;i<6;i++){
// System.out.println(arr[i]);
// }
//2.求最高分
int max=getMax(arr);
// System.out.println("最大值是"+max);
//3.求最低分
int min=getMin(arr);
//4.求总成绩
int sum=getSum(arr);
//5.求平均分
int average=(sum-max-min)/(arr.length-2);
System.out.println("该选手的最终成绩为:"+average);
}
public static int[] setSource() {
int[] arr = new int[6];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 6; ) {
int source = scanner.nextInt();
if (source <= 100 && source > 0) {
arr[i] = source;
i++;
} else System.out.println("输入成绩有误,当前是第"+(i+1)+"位评委");
}
return arr;
}
public static int getMax(int[]arr){
int max=arr[0];
for (int i = 1; i <arr.length ; i++) {
if (max<arr[i])
max=arr[i];
}
return max;
}
public static int getMin(int arr[]){
int min=arr[0];
for (int i = 1; i <arr.length ; i++) {
if (min>arr[i])
min=arr[i];
}
return min;
}
public static int getSum(int arr[]){
int sum=0;
for (int i=0;i<6;i++){
sum+=arr[i];
}
return sum;
}
}