Java编程练习——买飞机票、找素数、验证码、数组元素复制、评委打分、数字加密、双色球系统

本文展示了多个Java编程实例,包括计算不同月份和仓位类型的机票价格、找出指定范围内的素数、生成验证码、实现数组元素复制、评委打分算法、数字加密以及模拟双色球抽奖系统。涵盖了条件判断、循环、数学运算、数组操作、随机数生成等多个编程知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例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("]");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值