目录
案例一、飞机票
public class Test1 {
public static void main(String[] args) {
//飞机票
System.out.println(calculate(1000,8,"头等舱"));
}
public static double calculate(double price, int month, String type) {
//旺季
if (month >= 5 && month <= 10) {
switch (type) {
case "头等舱":
price *= 0.9;
break;
case "经济舱":
price *= 0.85;
break;
}
//淡季
} else {
switch (type) {
case "头等舱":
price *= 0.7;
break;
case "经济舱":
price *= 0.65;
break;
}
}
return price;
}
}
案例二、验证码
import java.util.Random;
//验证码
public class Test2 {
public static void main(String[] args) {
System.out.println(createCode(20));
}
public static String createCode(int n){
Random r=new Random();
String code="";
for (int i = 1; i <=n; i++) {
int type=r.nextInt(3);
switch (type){
case 0:
code+=r.nextInt(10);
break;
case 1:
char ch1=(char)(r.nextInt(26)+65);
code+=ch1;
break;
case 2:
char ch2=(char)(r.nextInt(26)+97);
code+=ch2;
break;
}
}
return code;
}
}
案例三、评委打分
import java.util.Scanner;
//请平均分
public class Test3 {
public static void main(String[] args) {
System.out.println(getAverage(6));
}
public static double getAverage(int number) {
int[] scores = new int[number];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < scores.length; i++) {
System.out.println("第" + (i + 1) + "评委打分:");
int score = sc.nextInt();
scores[i] = score;
}
int sum = 0, min = scores[0], max = scores[0];
for (int i = 0; i < scores.length; i++) {
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
}
if (scores[i] < min) {
min = scores[i];
}
}
return 1.0 * (sum - (min + max));
}
}
案例四、数字加密
/*数据加密*/
public class Test4 {
public static void main(String[] args) {
System.out.println("加密后的结果是:"+encrypt(2008));
}
public static String encrypt(int number){
int []numbers=split(number);
for (int i = 0; i < numbers.length; i++) {
numbers[i]=(numbers[i]+5)%10;
}
reverse(numbers);
String data="";
for (int i = 0; i < numbers.length; i++) {
data+=numbers[i];
}
return data;
}
public static void reverse(int[] numbers) {
for (int i = 0,j=numbers.length-1; i < j; i++,j--) {
int temp=numbers[j];
numbers[j]=numbers[i];
numbers[i]=temp;
}
}
public static int[] split(int number) {
int []numbers=new int[4];
numbers[0]=number/1000;
numbers[1]=(number/100)%10;
numbers[2]=(number/10)%10;
numbers[3]=number%10;
return numbers;
}
}
案例五、数字拷贝
/*数组拷贝*/
public class Test5 {
public static void main(String[] args) {
int []arr={11,22,33};
int []arr2=copy(arr);
printArray(arr2);
}
public static int[] copy(int[] arr){
int []arr2=new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arr2[i]=arr[i];
}
return arr2;
}
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.print("]");
}
}
案例六、抢红包
import java.util.Random;
import java.util.Scanner;
/*抢红包*/
public class Test6 {
public static void main(String[] args) {
int[] moneys = {11, 555, 666, 777, 999};
start(moneys);
}
public static void start(int[] moneys) {
Scanner sc = new Scanner(System.in);
Random r = new Random();
for (int i = 0; i <= 5; i++) {
System.out.println("请您输入任意内容进行抽奖:");
sc.next();
while (true) {
int index = r.nextInt(moneys.length);
int money = moneys[index];
if (money != 0) {
System.out.println("恭喜您,您抽中了红包" + money);
moneys[index] = 0;
break;
}
}
System.out.println("活动结束");
}
}
}
案例七、找素数
/*判断素数的个数*/
public class Test7 {
public static void main(String[] args) {
System.out.println("当前素数的个数是:"+serach(101, 200));
}
public static int serach(int start, int end) {
int count = 0;
for (int i = start; i < end; i++) {
boolean flag = true;
for (int j = 2; j < i / 2; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(i);
count++;
}
}
return count;
}
}
案例八、彩票双色球
import java.util.Random;
import java.util.Scanner;
/*判断中奖情况*/
public class Test10 {
public static void main(String[] args) {
int[] userNumbers=userSelectNumber();
System.out.println("您投注的号码:");
printArray(userNumbers);
int[] luckNumbers=createLuckNumbers();
System.out.println("中奖的号码:");
printArray(luckNumbers);
judge(userNumbers,luckNumbers);
}
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.print("]");
}
//1、设计一个方法,用于让用户投注一组号码并返回(前6个是红球号码,最后一个是蓝球号码)
public static int[] userSelectNumber() {
//2、创建一个整型数组,用于存放用户所投注的7个号码,(前6个是红球号码,最后一个是蓝球号码)
int[] numbers = new int[7];
Scanner sc = new Scanner(System.in);
//3、遍历前6个位置,让用户投注6个号码存入
for (int i = 0; i < numbers.length - 1; i++) {
//i=0 1 2 3 4
while (true) {
//4、开始让用户为当前位置投注一个红球号码(1-33之间的号码,不能重复)
System.out.println("请您输入第" + (i + 1) + "个红球号码(1-33之间),不能重复:");
int number = sc.nextInt();
//5、先判断用户输入的红球是否在1-33之间
if (number < 1 || number > 33) {
System.out.println("对不起,您输入的红球范围不在1-33之间,请重新输入!");
} else {
//号码是在1-33之间,接着继续判断号码是否重复,不重复才可以使用
if (exist(numbers, number)) {
//number当前这个号码重复了
System.out.println("对不起,您输入的红球号码重复了");
} else {
//number当前这个号码没有重复了,可以使用了
numbers[i] = number;
break;
}
}
}
}
while (true) {
//6、投注一个蓝球号码
System.out.println("请您输入一个蓝球号码(1-16):");
int number = sc.nextInt();
if (number < 1 || number > 16) {
System.out.println("对不起,您输入的蓝球号码范围不对!");
} else {
numbers[6] = number;
break;//蓝球号码录入成功,结束死循环
}
}
return numbers;
}
public static boolean exist(int[] numbers, int number) {
//判断number这个数字是否在numbers中存在
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] == 0) {
break;
}
if (numbers[i] == number) {
return true;
}
}
return false;
}
//2、设计一个方法:随机生成一组中奖号码出来(6个红球号码,1个蓝球号码)
public static int[] createLuckNumbers() {
//1、创建一个整型数组,用于存储这7个号码
int[] numbers = new int[7];
Random r = new Random();
//2、遍历前6个位置处,依此随机一个红球号码存入(1-33 不重复)
for (int i = 0; i < numbers.length; i++) {
while (true) {
//3、为当前位置随机一个红球号码出来存入 1-33
int number = r.nextInt(33) + 1;
//4、判断这个号码是否之前出现过(红球号码不能重复)
if (!exist(numbers, number)) {
//number不重复
numbers[i] = number;
break;//结束死循环,代表了找到了这个位置的一个不重复的红球号码
}
}
}
//3、录入一个蓝球号码,1-16
numbers[6] = r.nextInt(16) + 1;
return numbers;
}
//设计一个方法,用于判断用户的中奖情况
public static void judge(int[] userNumbers, int[] luckNumbers) {
//userNumber=[12,14,16,18,23,26,8]
//luckNumber=[16,17,18,19,26,32,8]
//分别定义2个变量用于记住红球命中了几个以及蓝球命中了几个
int redCount = 0;
int blueCount = 0;
//先判断红球命中的数量
//遍历用户投注号码的前6个红球
for (int i = 0; i < userNumbers.length - 1; i++) {
//userNumber[i]
//开始遍历中奖号码前6个号码,看用户当前选择的这个号码是否命中了
for (int j = 0; j < luckNumbers.length - 1; j++) {
if (userNumbers[i] == luckNumbers[j]) {
redCount++;
}
}
}
//3、判断蓝球是否命中
blueCount = userNumbers[6] == luckNumbers[6] ? 1 : 0;
System.out.println("您命中的红球数量是:" + redCount);
System.out.println("您命中的蓝球数量是:" + blueCount);
//4、判断中将详情,并输出结果
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) {
System.out.println("恭喜您,中奖200元!!");
} else if (redCount == 4 && blueCount == 0) {
System.out.println("恭喜您,中奖10元!!");
} else if (redCount < 3 && blueCount == 1) {
System.out.println("恭喜您,中奖5元!!");
} else {
System.out.println("感谢您对福利事业做出的巨大贡献");
}
}
}