java——编程案例
文章目录
案例1:买飞机票
import java.util.Scanner;public class Test1 { 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(); System.out.println(calc(money, month, type)); } public static double calc(double money, int month, String type) { if (month >= 5 && month <= 10) { switch (type) { case "头等舱": money *= 0.9; break; case "经济舱": money *= 0.85; break; default: System.out.println("仓位类型输入有误!"); } } else if (month == 11 || month == 12 || month >= 1 && month <= 4) { switch (type) { case "头等舱": money *= 0.7; break; case "经济舱": money *= 0.65; break; default: System.out.println("仓位类型输入有误!"); } } else { System.out.println("输入错误!"); } return money; }}
案例2:找素数
public class Test2 { public static void main(String[] args) { for (int i = 101; i <= 200 ; i++) { //信号位:标记 boolean flag = true; for (int j = 2; j < i/2 ; j++) { if(i % j == 0){ flag = false; break; } } if(flag == true){ System.out.print(i + "\t"); } } }}
案例3:开发验证码
import java.util.Random;public class Test3 { public static void main(String[] args) { String code = createCode(5); System.out.println(code); } public static String createCode(int n){ String code = ""; Random r = new Random(); for (int i = 0; i < n; i++) { //随机生成一个字符,英文大写、小写、数字 (0、1、2) int type = r.nextInt(3); switch (type){ case 0: //大写字符A-Z:65-90 char ch0 = (char) (r.nextInt(26) + 65); code += ch0; break; case 1: char ch1 = (char) (r.nextInt(26) + 97); code += ch1; break; case 2: code += r.nextInt(10); break; } } return code; }}
案例4:数组元素的复制
public class Test4 { public static void main(String[] args) { int[] arr1 = {11,22,33}; int[] arr2 = new int[arr1.length]; copy(arr1,arr2); printArray(arr1); printArray(arr2); } public static void copy(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("]"); }}
案例5:评委打分
import java.util.Scanner;public class Test5 { public static void main(String[] args) { int[] scores = new int[6]; 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 max = scores[0]; int min = scores[0]; int sum = scores[0]; for (int i = 0; i < scores.length; i++) { if(scores[i] > max){ max = scores[i]; } if(scores[i] < min){ min = scores[i]; } sum += scores[i]; } double result = (sum - max - min) *1.0/ (scores.length - 2); System.out.println("最终得分:" + result); }}
案例6:数字加密
import java.util.Scanner;public class Test6 { public static void main(String[] args) { //定义一个数组存入需要加密的数据 System.out.println("请输入需要加密的数字个数:"); Scanner sc = new Scanner(System.in); int length = sc.nextInt(); int[] arr = new int[length]; //录入需要加密的数字 for (int i = 0; i < arr.length; i++) { System.out.println("请输入加密的第"+ (i+1) +"个数字"); int number = sc.nextInt(); arr[i] = number; } //打印数组内容看一下 printArray(arr); //对数组中的数据加密 for (int i = 0; i < arr.length; i++) { arr[i] = (arr[i] + 5) % 10; } //数组反转 for (int i = 0, j = arr.length-1; i < j; i++, j--) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } printArray(arr); } //打印数组的方法 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("]"); }}
案例7:模拟双色球
import java.util.Random;import java.util.Scanner;public class Test7 { public static void main(String[] args) { int[] luckNumbers = createLuckNumber(); int[] userNumbers = userInputNumbers(); judge(luckNumbers,userNumbers); } //随机生成中奖号码:6个红球号码(1-33,不重复),随机1个蓝球号码(1-16) public static int[] createLuckNumber(){ //定义一个动态数组 int[] numbers = new int[7]; //遍历数组,红球号码 Random r = new Random(); for (int i = 0; i < numbers.length-1; i++) { //注意:判断当前号码是否与之前的重复 while (true){ int data = r.nextInt(33) + 1; //定义一个flag变量,默认data无重复 boolean flag = true; for (int j = 0; j < i; j++) { if(numbers[j] == data){ flag = false; break; } } if(flag){ numbers[i] = data; break; } } } //蓝球号码 numbers[numbers.length - 1] = r.nextInt(16) + 1; return numbers; } //用户选号 public static int[] userInputNumbers(){ int[] numbers = new int[7]; Scanner sc = new Scanner(System.in); for (int i = 0; i < numbers.length - 1; i++) { System.out.println("请输入第"+(i+1)+"个红球号码(1-33):"); int data = sc.nextInt(); numbers[i] = data; } System.out.println("请输入一个蓝球号码(1-16):"); numbers[6] = sc.nextInt(); return numbers; } //判断是否中奖,分别计算红球命中个数和篮球命中个数 public static void judge(int[] luckNumbers,int[] userNumbers){ //定义两个变量分别存储红球、蓝球的命中个数 int redHit = 0; int blueHit = 0; //红球命中统计 for (int i = 0; i < userNumbers.length - 1; i++) { for (int j = 0; j < luckNumbers.length - 1; j++) { if(userNumbers[i] == luckNumbers[j]){ redHit ++; break; } } } //篮球命中统计 if(userNumbers[6] == luckNumbers[6]){ blueHit ++; } //结果显示 System.out.println("中奖号码是:"); printArray(luckNumbers); System.out.println("投注号码是:"); printArray(userNumbers); System.out.println("命中红球个数:" + redHit); System.out.println("命中蓝球个数:" + blueHit); //判断中奖情况 if(blueHit == 1 && redHit < 3){ System.out.println("5元!"); }else if(blueHit == 1 && redHit == 3 || blueHit== 0 && redHit == 4){ System.out.println("10元!"); }else if(blueHit == 1 && redHit == 4 || blueHit== 0 && redHit == 5){ System.out.println("200元!"); }else if(blueHit == 1 && redHit == 5){ System.out.println("3000!"); }else if(blueHit == 0 && redHit == 6){ System.out.println("最高500万!"); }else if(blueHit == 1 && redHit == 6){ System.out.println("最高1000万!"); }else { System.out.println("未中奖!"); } } //打印数组 public static void printArray(int[] arr){ for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "\t"); } System.out.println(); }}