一、计算飞机票价格
//机票价格按照淡季旺季,头等舱和经济舱收费,输入机票原价、月份、头等舱或经济舱
//按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月),头等舱7折,经济舱6.5折
import java.util.Scanner;
public class lianxi {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入机票原价:");
double money = sc.nextDouble();
System.out.println("请输入月份(1-12):");
int month = sc.nextInt();
System.out.println("请输入机票舱位(头等舱或经济舱):");
String type = sc.next();
if (month >= 5 && month <= 10) {
calc(0.9, 0.85, money, type);
} else if (month == 11 || month == 12 || month >= 1 && month <= 4) {
calc(0.7, 0.65, money, type);
} else {
System.out.println("输入的月份有误!");
}
}
//定义一个方法计算票价
public static void calc(double a, double b, double money, String types) {
switch (types) {
case "头等舱":
money *= a;
break;
case "经济舱":
money *= b;
break;
default:
System.out.println("输入的舱位有误!");
break;
}
System.out.println("您当前购买的机票价格为:" + money + "元");
}
}
二、找素数
//找出101-200之间的素数
public class lianxi {
public static void main(String[] args) {
for (int i = 101; i <= 200; i++) {
//prime(i);//方法调用判断是否是素数
if (prime(i)) {
System.out.print(i + " ");
}
}
}
//素数判断:除了1和本身之外不能被其他整数整除的数是素数
public static boolean prime(int num) {
for (int i = 2; i <= (num / 2); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
三、随机生成验证码
//随机生成验证码
import java.util.Random;
public class lianxi {
public static void main(String[] args) {
System.out.println("随机生成的验证码是:" + checkCode(5));
}
public static String checkCode(int n) {
Random r = new Random();
String code = "";
for (int i = 0; i < n; i++) {
//随机生成3位数0,1,2代表大写字母,小写字母、数字
int type = r.nextInt(3);
switch (type) {
case 0:
//大写A 65 - Z 65+25
char ch = (char) (r.nextInt(26) + 65);
code += ch;
break;
case 1:
//小写a 97 - z 97+25
char ch1 = (char) (r.nextInt(26) + 97);
code += ch1;
break;
case 2:
//数字1-9
code += r.nextInt(10);
break;
}
}
return code;
}
}
四、数组的复制
//数组的复制
public class lianxi {
public static void main(String[] args) {
int[] arr1 = {11, 12, 13, 14, 15};
int[] arr2 = new int[arr1.length];
//调用方法复制数组
copyArray(arr1, arr2);
//打印输出
printArray(arr1);
printArray(arr2);
}
//复制
public static void copyArray(int[] arr1, int[] arr2) {
for (int i = 0; i < arr1.length; i++) {
arr2[i] = arr1[i];
}
}
//打印
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ", ");
}
System.out.println("]");
}
}
五、评委打分
//评委打分
//六位评委给选手打分【0-100】,计算6位评委打分的总分减去最大和最小值的平均分
import java.util.Scanner;
public class lianxi {
public static void main(String[] args) {
int[] scores = new int[6];
int max = 0;
int min = 100;
int sum = 0;
Scanner sc = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.println("请输入第" + (i + 1) + "个评委的打分:");
scores[i] = sc.nextInt();
sum += scores[i]; //总分
if (max < scores[i]) {
max = scores[i];
}
if (min > scores[i]) {
min = scores[i];
}
}
double result = (sum - max - min) * 1.0 / (scores.length - 2);
System.out.println("选手最终得分是:" + result);
}
}
六、数字加密
//数字加密
//某系统的数字密码,比如1983,采用加密方式进行传输,规则如下:先得到每一位数,然后每位数加上5,再对10取余,最后反转输出
public class lianxi {
public static void main(String[] args) {
//定义数组存储密码
int[] num = {1, 9, 8, 3};
//进行加密(加5、取余10)
for (int i = 0; i < num.length; i++) {
num[i] = (num[i] + 5) % 10;
}
//反转交换
for (int i = 0, j = num.length - 1; i < j; i++, j--) {
int temp = num[i];
num[i] = num[j];
num[j] = temp;
}
//遍历数组输出
for (int i = 0; i < num.length; i++) {
System.out.print(num[i]);
}
}
}
7、双色球案例
import java.util.Random;
import java.util.Scanner;
//双色球案例
//1、随机生成7个中奖号码,6个红球(数字:1-33)要求数字不重复,一个蓝球(1-16)
//2、用户输入一组投注号码
//3、中奖情况判断:红+蓝(0+1、1+1、2+1中5元)、(3+1、4+0、4+1、5+0中200元)、(5+1中500元)、(6+0中500万)、(6+1中1000万)
public class lianxi {
public static void main(String[] args) {
int[] luckNumber = luckNumber(); //随机生成中奖号码(6个红球,1个蓝球)
int[] userNumber = userNumber(); //用户投注号码
judgeNumber(luckNumber, userNumber);//中奖情况判断
}
//数组遍历输出
public static void printArray(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
//1、随机生成中奖号码
public static int[] luckNumber() {
Random r = new Random();
int[] number = new int[7];
//先生成6个不重复的红球号码
for (int i = 0; i < number.length - 1; i++) {
//用flag作为是否是重复号码的标记
boolean flag = true;
while (true) {
int data = r.nextInt(33) + 1;//随机生成1-33的数字
for (int j = 0; j < i; j++) {
if (data == number[j]) {
flag = false;
break;
}
}
//将不重复的随机数放进数组
if (flag) {
number[i] = data;
break;
}
}
}
//随机生成一个(1-16)的蓝球数字
number[number.length - 1] = r.nextInt(16) - 1;
return number;
}
//2、用户输入投注号码
public static int[] userNumber() {
int[] number = new int[7];
Scanner sc = new Scanner(System.in);
//先将红球放进用户数组
for (int i = 0; i < number.length - 1; i++) {
System.out.println("请输入第" + (i + 1) + "个红球号码(1-33)不重复:");
number[i] = sc.nextInt();
}
//将蓝球号码放进用户数组
System.out.println("请输入蓝球号码:");
number[number.length - 1] = sc.nextInt();
return number;
}
//3、中奖情况判断
public static void judgeNumber(int[] arr1, int[] arr2) {
int num1 = 0;//用于记录红球中奖个数
int num2 = 0;//用于记录蓝球是否中奖
//先判断红球中奖个数
for (int i = 0; i < arr2.length - 1; i++) {
for (int j = 0; j < arr1.length; j++) {
if (arr1[j] == arr2[i]) {
num1++;
break;
}
}
}
//判断蓝球是否中奖
num2 = arr1[arr1.length - 1] == arr2[arr2.length - 1] ? 1 : 0;
System.out.println("中奖号码:");
printArray(arr1);
System.out.println("投注号码:");
printArray(arr2);
System.out.println("您中了" + num1 + "个红球");
System.out.println("您中了" + num2 + "个蓝球");
//得奖情况
if (num1 < 3 && num2 == 1) {
System.out.println("恭喜您,中了5元!");
} else if ((num1 < 5 && num2 == 1) || ((num1 == 4 || num1 == 5) && num2 == 0)) {
System.out.println("恭喜您,中了10元!");
} else if (num1 == 5 && num2 == 1) {
System.out.println("恭喜您,中了3000元!");
} else if (num1 == 6 && num2 == 0) {
System.out.println("恭喜您,中了500万!");
} else if (num1 == 6 && num2 == 1) {
System.out.println("恭喜您,中了1000万!");
} else {
System.out.println("很遗憾您没中奖,感谢您为福利事业作出的贡献!");
}
}
}