案例1:买飞机票
package com.laogao.practice;
import java.util.Scanner;
public class JavaPractice {
public static void main(String[] args) {
//案例一:买飞机票
Scanner scanner=new Scanner(System.in);
double yuanjia;
String lixing;
int month;
System.out.println("请输入机票原价:");
yuanjia=scanner.nextDouble();
System.out.println("请输入机票月份:");
month=scanner.nextInt();
System.out.println("请输入机票类型:");
lixing=scanner.next();
double ticketPrice=ticketPrice(yuanjia,lixing,month);
System.out.println("经过计算,机票价格为:"+ticketPrice);
}
public static double ticketPrice(double yuanjia,String lixing,int month){
double ticketPrice=yuanjia;
if(month>=5&&month<=10){//旺季
//判断头等舱、经济舱
switch (lixing){
case "头等舱":
ticketPrice*=0.9;
break;
case "经济舱":
ticketPrice*=0.85;
break;
default:
ticketPrice=-1;
System.out.println("仓位类型有误!");
}
}
else if(month==11||month==12||month>=1&&month<=4){//淡季
switch (lixing){
case "头等舱":
ticketPrice*=0.7;
break;
case "经济舱":
ticketPrice*=0.65;
break;
default:
ticketPrice=-1;
System.out.println("仓位类型有误!");
}
}
else {
System.out.println("月份有误!");
ticketPrice=-1;
}
return ticketPrice;
}
}
案例2:找素数(面试)
package com.laogao.practice;
public class JavaPractice {
public static void main(String[] args) {
//案例二:找素数
//素数:除了1和它本身,不再被其他正整数整除
sushu(101,200);
}
//求某个范围内所有素数
public static void sushu(int a,int b){
int count=0;
for (int i = a; i <= b; i++) {
boolean flag=true;//信号位,默认true是素数
for (int j = 2; j <= i/2; j++) {//能被整除的数,肯定小于这个数的一半
//这里:j<=i/2,考虑假如i=4,i/2=2,如果不加等号,那就不会进入循环,则4就会判断为是一个素数
if(i%j==0){//能被整除
flag=false;
break;
}
}
if(flag==true){
System.out.print(i+",");
count++;
}
}
System.out.println();
System.out.println("count="+count);
}
}
案例3:验证码
package com.laogao.practice;
import java.util.Random;
public class JavaPractice {
public static void main(String[] args) {
//案例三:验证码
String yzm=yzm(6);//验证码位数
System.out.println(yzm);
}
public static String yzm(int num){
String yzm="";
Random random=new Random();
for (int i = 0; i < num; i++) {
int type=random.nextInt(3);
switch (type){
case 0://随机数字
yzm+=random.nextInt(10);
break;
case 1://随机大写字母 A 65-Z 90
yzm+=(char)(random.nextInt(26)+65);//括号很重要
break;
case 2://随机小写字母
yzm+=(char)(random.nextInt(26)+97);
break;
}
}
return yzm;
}
}
案例4:数组元素复制(面试)
package com.laogao.practice;
public class JavaPractice {
public static void main(String[] args) {
//案例四:数组元素复制
int []arr1={1,2,5,8,6,3};
int []arr2=new int[arr1.length];//创建一个新数组
copyarr(arr1,arr2);
printarr(arr1);
printarr(arr2);
}
//复制数组,不是指向同一个地址
public static void copyarr(int []arr1,int []arr2){
for (int i = 0; i < arr1.length; i++) {
arr2[i]=arr1[i];
}
}
//打印数组
public static void printarr(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:评委打分
package com.laogao.practice;
import java.util.Scanner;
public class JavaPractice {
public static void main(String[] args) {
//案例五:评委打分
double []arr1=new double[6];
Scanner scanner=new Scanner(System.in);
for (int i=0;i< arr1.length;i++) {
System.out.println("请输入"+(i+1)+"号评委打分:");
arr1[i]=scanner.nextDouble();
}
score(arr1);
}
//评委打分
public static void score(double []arr1){
double sum=0,min=arr1[0],max=arr1[0];
for (int i = 0; i < arr1.length; i++) {
sum+=arr1[i];
if (min>arr1[i]){
min=arr1[i];
}
if (max<arr1[i]){
max=arr1[i];
}
}
System.out.println("max="+max);
System.out.println("min="+min);
System.out.println("avg="+(sum-max-min)/(arr1.length-2));
}
}
案例6:数字加密
package com.laogao.practice;
import java.util.Scanner;
public class JavaPractice {
public static void main(String[] args) {
//案例六:数字加密
Scanner scanner=new Scanner(System.in);
System.out.println("请输入需要加密的数字个数:");
int length=scanner.nextInt();
int []arr1=new int[length];//存储每位数字
for (int i=0;i< arr1.length;i++) {
System.out.println("请输入要加密的第"+(i+1)+"位数字:");
arr1[i]=scanner.nextInt();
}
//打印一下
printarr(arr1);
//加密
numEncryption(arr1);
printarr(arr1);
}
//数字加密
public static void numEncryption(int []arr1){
for (int i = 0; i < arr1.length; i++) {
arr1[i]+=5;//每位数字+5
arr1[i]%=10;//每位数字对10取余
}
//数组整体取反;
for (int i = 0,j= arr1.length-1; i < j; i++,j--) {
int temp=arr1[i];
arr1[i]=arr1[j];
arr1[j]=temp;
}
}
//打印数组内容
//打印数组
public static void printarr(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:双色球系统
package com.laogao.practice;
import java.util.Random;
import java.util.Scanner;
public class JavaPractice {
public static void main(String[] args) {
//案例七:双色球
int[]luckNums=createLuckNums();
int[]userNums=userInputNums();
judge(luckNums,userNums);
}
//1、随机生成一组中奖号码
public static int[] createLuckNums(){
int [] luckNums=new int[7];
Random random=new Random();
for (int i = 0; i < luckNums.length-1; i++) {//生成六位
//不可重复
int item;//1-33
boolean flag;//信号位,判断随机生成的数字是否重复,默认不重复
while (true) {
item = (random.nextInt(33)+1);
flag = true;
for (int j = 0; j < i; j++) {
if (item==luckNums[j]){
flag=false;//如果重复,则需要重新生成一个随机数再进行判断
break;
}
}
if (flag==true){//不重复
luckNums[i]=item;
break;
}
}
}
luckNums[luckNums.length-1]=(random.nextInt(16)+1);
return luckNums;
}
//2、用户输入一组号码
public static int[] userInputNums(){
Scanner scanner =new Scanner(System.in);
int[] userNums=new int[7];
for (int i=0;i<userNums.length-1;i++) {
System.out.println("请输入第"+(i+1)+"个红球号码(1~33不重复):");
userNums[i]=scanner.nextInt();
}
System.out.println("请输入第1个蓝球号码(1~16):");
userNums[6]=scanner.nextInt();
return userNums;
}
//3、判断用户中奖情况,红球、篮球中了几个
public static void judge(int[]luckNums,int[] userNums) {
int countred=0,countblue=0;
//红球比较
for (int i = 0; i < userNums.length-1; i++) {
for (int j = 0; j < luckNums.length-1; j++) {
if (userNums[i]==luckNums[j]){
countred++;
break;
}
}
}
//篮球比较
if(userNums[6]==luckNums[6]){
countblue++;
}
System.out.println("中奖号码:");
printarr(luckNums);
System.out.println("您的号码:");
printarr(userNums);
System.out.println("您命中的红球个数:"+countred);
System.out.println("您命中的蓝球个数:"+countblue);
//判断中奖情况
if(countred<3&&countblue==1){
System.out.println("恭喜中奖,5元");
}else if(countred==3&&countblue==1 || countred==4&&countblue==0){
System.out.println("恭喜中奖,10元");
}else if(countred==4&&countblue==1 || countred==5&&countblue==0){
System.out.println("恭喜中奖,200元");
}else if(countred==5&&countblue==1){
System.out.println("恭喜中奖,3000元");
}else if(countred==6){
System.out.println("恭喜中奖,500万");
}else if(countred==6&&countblue==1){
System.out.println("恭喜中奖,1000万");
}else{
System.out.println("谢谢您为彩票事业的贡献~");
}
}
//打印数组
public static void printarr(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("]");
}
}