一、买飞机票
public class test1 {
public static void main(String[] args) {
//买飞机票
double price=calculate(1000,8,"经济舱");
System.out.println("优惠价:"+price);
}
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;
}
}
区间选择用if,对应取值用switch。
二、开发验证码
import java.util.Random;
public class test2 {
public static void main(String[] args) {
//生成随机验证码
System.out.println(creatCode(5));
}
public static String creatCode(int n){
Random r=new Random();
String code="";
for (int i = 0; i <n; i++) {
int type=r.nextInt(3);//0代表整数,1代表大写字母,2代表小写字母
switch(type){
case 0:
code+=r.nextInt(10);
break;
case 1: //随机一个大写字母 A65 Z 65+25
code+=(char)(r.nextInt(26)+65);
break;
case 2: //随机一个小写字母 a97 z 97+25
code+=(char)(r.nextInt(26)+97);
break;
}
}
return code;
}
}
三、评委打分
import java.util.Scanner;
public class test3 {
public static void main(String[] args) {
//评委打分
System.out.println(getAverageScore(6));
}
public static double getAverageScore(int number){
//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;//总分
int min=scores[0];
int 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)/(number-2);
}
}
四、数字加密
public class test4 {
public static void main(String[] args) {
//数字加密
System.out.println("加密后的结果是:"+encrypt(1983)); //8346
}
public static String encrypt(int number){
int[] numbers=split(number); //这里写一个方法split来拆分数字密码,点击split按alt+回车自动生成方法的框架
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 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("]");
}
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;
}
}
六、抢红包
1、方法一![](https://img-blog.csdnimg.cn/direct/bce9d9d1ad524414a374f0de9578b9a9.png)
import java.util.Random;
import java.util.Scanner;
public class test6 {
public static void main(String[] args) {
//抢红包
int[] moneys={9,666,188,520,99999};
start(moneys);
}
public static void start(int[] moneys){
Scanner sc=new Scanner(System.in);
Random r= new Random();
for (int i = 0; i <moneys.length ; i++) {
System.out.println("请您输入任意内容进行抽奖:");
sc.next(); //等待用户输入内容,按回车键才能继续执行下面语句
while (true) { //选中要循环的几行代码,按ctrl+alt+t选择while循环框架
int index=r.nextInt(moneys.length); //0-4
if(moneys[index]!=0){
System.out.println("恭喜您,抽中了红包:"+moneys[index]);
moneys[index]=0;
break;
}
}
}
System.out.println("活动结束!");
}
}
2、方法二
之前写过打乱顺序的代码,自己练习这个方法,下面是我自己写的代码:
import java.util.Random;
import java.util.Scanner;
public class test66 {
public static void main(String[] args) {
//抢红包方法二,打乱顺序,依次输出即可
int[] moneys={9,188,666,520,99999};
getMoney(moneys);
}
public static void getMoney(int[] moneys){
Random r=new Random();
for (int i = 0; i <moneys.length ; i++) {
int index=r.nextInt(moneys.length);
int temp=moneys[i];
moneys[i]=moneys[index];
moneys[index]=temp;
}
for (int i=0;i<moneys.length;i++) {
Scanner sc=new Scanner(System.in);
System.out.println("请您输入任意内容进行抽奖:");
sc.next();
System.out.println("恭喜您,抽中了红包:"+moneys[i]);
}
System.out.println("抽奖结束!");
}
}
七、找素数
101-200之间的素数。
1、方法一
- 使用信号位。
public class test7 {
public static void main(String[] args) {
//找素数
System.out.println("当前素数个数:"+search(101,200));
}
public static int search(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;
}
}
2、方法二
- 使用外部循环指定标签
public class test7_1 {
public static void main(String[] args) {
//找素数
System.out.println("当前素数个数:"+search(101,200));
}
public static int search(int start,int end){
int count=0;
OUT: //为外部循环指定标签
for (int i = start; i <=end ; i++) {
for (int j = 2; j <=i/2 ; j++) {
if(i%j==0){
//不是素数
continue OUT; //结束外部循环的当次打印
}
}
System.out.println(i);
count++;
}
return count;
}
}
3、方法三
- 写一个判断素数的方法
public class test7_2 {
public static void main(String[] args) {
int count=0;
for (int i = 101; i <=200 ; i++) {
if(check(i)){
System.out.println(i);
count++;
}
}
System.out.println("当前素数个数:"+count);
}
public static boolean check(int data){
for (int i = 2; i <=data/2 ; i++) {
if(data%i==0){
return false;
}
}
return true;
}
}
八、打印99乘法表
public class test8 {
public static void main(String[] args) {
//打印99乘法表
for (int i = 1; i <=9 ; i++) {
for (int j = 1; j <=i ; j++) {
System.out.print(j+"×"+i+"="+j*i+"\t");// \t代表一个tab
}
System.out.println();//换行
}
}
}
九、打印三角型星星
public class test9 {
public static void main(String[] args) {
//输出三角星星
int n=4;
for (int i = 1; i <=n ; i++) {
for (int j = 0; j <n-i ; j++) {
System.out.print(" ");
}
for (int j = 1; j <=2*i-1 ; j++) {
System.out.print(j%2==0?" ":"*");
}
System.out.println();
}
}
}
十、模拟双色球
1、用户投注号码球的实现
import java.util.Scanner;
public class test10 {
public static void main(String[] args) {
//完成双色球系统的开发
int[] usersNumbers=userSelectNumbers();
printArray(usersNumbers);
}
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("]");
}
public static int[] userSelectNumbers(){
//用户需要选择六个红色球,一个蓝色号码球
int[] numbers=new int[7];
//先选择红色号码球 1-33,不能重复
Scanner sc=new Scanner(System.in);
for (int i = 0; i < numbers.length-1; i++) {
while (true) {
System.out.println("请您选择第"+(i+1)+"个红色号码球,范围在1-33之间");
int number=sc.nextInt();
if(number<1||number>33){
System.out.println("您输入的范围不是在1-33之间的整数,请确认!");
}else{
//如果是在1-33之间,就要判断有没有重复,这里定义一个方法来判断
if(exist(numbers,number)){
System.out.println("您输入的号码重复了,请确认!");
}else{
numbers[i]=number;
break;
}
}
}
}
while (true) {
System.out.println("请您选择蓝色号码球,范围在1-16");
int number1=sc.nextInt();
if(number1<1||number1>16){
System.out.println("您输入的范围不是在1-16之间,请确认!");
}else{
numbers[6]=number1;
break;
}
}
return numbers;
}
private static boolean exist(int[] numbers, int number) {
for (int i = 0; i <numbers.length ; i++) {
if(numbers[i]==number){
return true;
}
}
return false;
}
}
2、随机生成一组中奖号码
import java.util.Random;
import java.util.Scanner;
public class test10 {
public static void main(String[] args) {
//完成双色球系统的开发
// int[] usersNumbers=userSelectNumbers();
// printArray(usersNumbers);
int[] LuckNumbers=creatLuckNumber();
printArray(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.println("]");
}
public static int[] userSelectNumbers(){
//用户需要选择六个红色球,一个蓝色号码球
int[] numbers=new int[7];
//先选择红色号码球 1-33,不能重复
Scanner sc=new Scanner(System.in);
for (int i = 0; i < numbers.length-1; i++) {
while (true) {
System.out.println("请您选择第"+(i+1)+"个红色号码球,范围在1-33之间");
int number=sc.nextInt();
if(number<1||number>33){
System.out.println("您输入的范围不是在1-33之间的整数,请确认!");
}else{
//如果是在1-33之间,就要判断有没有重复,这里定义一个方法来判断
if(exist(numbers,number)){
System.out.println("您输入的号码重复了,请确认!");
}else{
numbers[i]=number;
break;
}
}
}
}
while (true) {
System.out.println("请您选择蓝色号码球,范围在1-16");
int number1=sc.nextInt();
if(number1<1||number1>16){
System.out.println("您输入的范围不是在1-16之间,请确认!");
}else{
numbers[6]=number1;
break;
}
}
return numbers;
}
private static boolean exist(int[] numbers, int number) {
for (int i = 0; i <numbers.length ; i++) {
if(numbers[i]==number){
return true;
}
}
return false;
}
public static int[] creatLuckNumber(){
int[] numbers=new int[7];
Random r=new Random();
for (int i = 0; i < numbers.length-1; i++) {
while (true) {
int number=r.nextInt(33)+1;
if(!exist(numbers,number)){
numbers[i]=number;
break;
}
}
}
numbers[6]=r.nextInt(16)+1;
return numbers;
}
}
3、判断用户的中奖情况
import java.util.Random;
import java.util.Scanner;
public class test10 {
public static void main(String[] args) {
//完成双色球系统的开发
int[] usersNumbers=userSelectNumbers();
System.out.println("您投注号码:");
printArray(usersNumbers);
int[] LuckNumbers=creatLuckNumber();
System.out.println("中奖号码:");
printArray(LuckNumbers);
judge(usersNumbers,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.println("]");
}
public static int[] userSelectNumbers(){
//用户需要选择六个红色球,一个蓝色号码球
int[] numbers=new int[7];
//先选择红色号码球 1-33,不能重复
Scanner sc=new Scanner(System.in);
for (int i = 0; i < numbers.length-1; i++) {
while (true) {
System.out.println("请您选择第"+(i+1)+"个红色号码球,范围在1-33之间");
int number=sc.nextInt();
if(number<1||number>33){
System.out.println("您输入的范围不是在1-33之间的整数,请确认!");
}else{
//如果是在1-33之间,就要判断有没有重复,这里定义一个方法来判断
if(exist(numbers,number)){
System.out.println("您输入的号码重复了,请确认!");
}else{
numbers[i]=number;
break;
}
}
}
}
while (true) {
System.out.println("请您选择蓝色号码球,范围在1-16");
int number1=sc.nextInt();
if(number1<1||number1>16){
System.out.println("您输入的范围不是在1-16之间,请确认!");
}else{
numbers[6]=number1;
break;
}
}
return numbers;
}
private static boolean exist(int[] numbers, int number) {
for (int i = 0; i <numbers.length ; i++) {
if(numbers[i]==number){
return true;
}
}
return false;
}
public static int[] creatLuckNumber(){
int[] numbers=new int[7];
Random r=new Random();
for (int i = 0; i < numbers.length-1; i++) {
while (true) {
int number=r.nextInt(33)+1;
if(!exist(numbers,number)){
numbers[i]=number;
break;
}
}
}
numbers[6]=r.nextInt(16)+1;
return numbers;
}
public static void judge(int[] userNumbers,int[] luckNumbers){
int redcount=0;
int bluecount=0;//中奖个数
//先判断用户前六个红色球的中奖情况,遍历中奖号码的前六位,判断用户的号码有没有中奖
for (int i = 0; i < userNumbers.length-1; i++) {
for (int j = 0; j < luckNumbers.length-1; j++) {
if(userNumbers[i]==luckNumbers[j]){
redcount++;
break;
}
}
}
bluecount=userNumbers[6]==luckNumbers[6]?1:0;
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||redcount==4&&bluecount==1){
System.out.println("恭喜您,中了小奖:200元~~");
}else if(redcount==4&&bluecount==0||redcount==3&&bluecount==1){
System.out.println("中了10元~");
}else if(redcount<3&&bluecount==1){
System.out.println("中了5元~");
}else{
System.out.println("感谢您对福利事业做出的贡献~~~");
}
}
}