java学习之余的几个简单基础案例()

最近跟着B站上的黑马程序员学习Java,在上课期间老师讲解了几个有趣的基础案例,我想将下面几个案例分享给大家。

1.买飞机票

需求:

1.机票价格按着淡季旺季,头等舱与经济舱收费,输入机票原价、月份和经济舱还是头等舱。

2.机票的优惠价格如下:旺季(5-10月)头等舱九折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折

这道小题主要是来练习switch语句,if语句在Java语言上的用法(跟c++用法一样)

package 练习;

import java .util. Scanner;
public class plane {
    public static void main (String[] args) {
        //目标:完成买飞机票的价格计算。
        //1.让用户输入机票原价,月份,仓位类型
        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();
        //4.调用方法
        System.out.println("机票优惠后的价格是:"+ calc(money,month,type));
        }
    
    
//2.定义方法接收信息,统计优惠后的价格返回
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("您输入的仓位类型有误");
                money=-1;//表示信息错误
        }
    }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("您输入的仓位类型有误");
                money=-1;//表示信息错误
        }
    }else {
        System.out.println("对不起,你输入的月份有误");
        money=-1;//表示信息错误
    }
    return money;
}
}

2.找素数

需求:判断101-200之间有多少个素数,并输出所有素数。

package 练习;
/**
 * 需求:找到101-200之间的所有素数输出;
 */
public class sushu {

    public static void main(String[] args)
    {
        //定义一个循环,找101-200之间的素数
        for(int i=101;i<=200;i++)
        {
            //1.i=101 102 103 104 .....199 200
            //信号位:标记
            boolean flag=true;//一开始都认为是素数
            //2.判断当前遍历的这个数据是否为素数
            for(int j=2;j<i/2;i++)
            {
                if(i%j==0)
                {
                    flag=false;
                    break;
                }
            }
            //3.根据判断的结果选择是否输出
            if(flag)
            {
                System.out.println(i +"\t");
            }
        }
        
    }
}

3.开发验证码

需求:定义一个方法随机生成5位验证码,每位可能是数字,大写字母,也可能是小写字母

package 练习;
import java.util.Random;
//需求:定义一个方法随机生成5位验证码,每位可能是数字,大写字母,也可能是小写字母
public class yanzhengma {
    public static void main(String [] args)
    {
        //调用获取验证码的方法得到一个随机验证码
        String code =creatcode(5);
        System.out.println("随机验证码:"+code);
    }
/**
 * 1.定义一个方法返回一个随机验证码
 */
    public static String creatcode (int n)
    {
        String code=" ";
        Random r=new Random();
        //2.定义一个for循环,循环n次,生成随机字符
        for(int i=0;i<n;i++)
        {
            //3.生成一个随机字符;
            int type =r.nextInt(3);
            switch(type)
            {
            case 0:
                //大写字符(A 65-Z 65+25) (0-25)+65
                char ch =(char)(r.nextInt(26)+65);
                code+=ch;
                break;
            case 1:
                //小写字符(a 97-z 97+25) (0-25)+97
                char ch1 =(char)(r.nextInt(26)+97);
                code+=ch1;
                break;
            case 2:
                //数字字符
                code+= r.nextInt(10);
                break;
                
            }
            
        }
        return code;
    }
}

4.数组元素的复制

需求:把一个素组中的元素复制到一个新数组中去

package 练习;

public class shuzu {
    public static void main (String[] args)
    {
        int []arr1= {11,22,33,44};
        
        int []arr2=new int [arr1.length];
        copy(arr1,arr2);
    }
    
    public  static void printArray(int[]arr)
    {
        System.out.println("[");
        for(int i=0;i<arr.length;i++)
        {
            System.out.println(i==arr.length-1 ? arr[i]:arr[i]+",");
            
        }
        System.out.print("]");
    }
public static void copy(int[] arr1,int[]arr2)
{
    for(int i=0;i<arr1.length;i++)
{
    arr2[i]=arr1[i];
}
}
}

5.评委打分

需求:在唱歌比赛中,有六个评委给学生打分,分数范围为[0-100]之间的整数,选手的得分为:去掉一个最高分和一个最低分后的四个数来求平均值

package 练习;
/**
在唱歌比赛中,有六个评委给学生打分,分数范围为[0-100]之间的整数,
选手的得分为:去掉一个最高分和一个最低分后的四个数来求平均值
*/
import java.util.Scanner;
public class dafen {
    public static void main (String[] args)
    {
        //1.定义一个动态初始化的数组,用于后期录入6个评委的分数
        int []scores =new int [6];
        //2.录入6个评委的分数
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<scores.length;i++)
        {
            System.out.println("请输入第"+(i+1)+"个评委的打分");
            int score =sc.nextInt();
            //3.把这个分数存入到数组的对应位置处
            scores[i]=score;
        }
        //4.遍历数组中的每个数组,找出最大值、最小值、总分
        int max=scores[0];
        int min =scores[0],sum=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];
        }
        System.out.println("选手的最高分为:"+max);
        System.out.println("选手的最低分为:"+min);
        
        //统计平均分
        double result =(sum-max-min)*1.0/(scores.length-2);
        System.out.println("选手最终得分为:"+result);
        
    }
    

}
————————

最近跟着B站上的黑马程序员学习Java,在上课期间老师讲解了几个有趣的基础案例,我想将下面几个案例分享给大家。

1.买飞机票

需求:

1.机票价格按着淡季旺季,头等舱与经济舱收费,输入机票原价、月份和经济舱还是头等舱。

2.机票的优惠价格如下:旺季(5-10月)头等舱九折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折

这道小题主要是来练习switch语句,if语句在Java语言上的用法(跟c++用法一样)

package 练习;

import java .util. Scanner;
public class plane {
    public static void main (String[] args) {
        //目标:完成买飞机票的价格计算。
        //1.让用户输入机票原价,月份,仓位类型
        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();
        //4.调用方法
        System.out.println("机票优惠后的价格是:"+ calc(money,month,type));
        }
    
    
//2.定义方法接收信息,统计优惠后的价格返回
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("您输入的仓位类型有误");
                money=-1;//表示信息错误
        }
    }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("您输入的仓位类型有误");
                money=-1;//表示信息错误
        }
    }else {
        System.out.println("对不起,你输入的月份有误");
        money=-1;//表示信息错误
    }
    return money;
}
}

2.找素数

需求:判断101-200之间有多少个素数,并输出所有素数。

package 练习;
/**
 * 需求:找到101-200之间的所有素数输出;
 */
public class sushu {

    public static void main(String[] args)
    {
        //定义一个循环,找101-200之间的素数
        for(int i=101;i<=200;i++)
        {
            //1.i=101 102 103 104 .....199 200
            //信号位:标记
            boolean flag=true;//一开始都认为是素数
            //2.判断当前遍历的这个数据是否为素数
            for(int j=2;j<i/2;i++)
            {
                if(i%j==0)
                {
                    flag=false;
                    break;
                }
            }
            //3.根据判断的结果选择是否输出
            if(flag)
            {
                System.out.println(i +"\t");
            }
        }
        
    }
}

3.开发验证码

需求:定义一个方法随机生成5位验证码,每位可能是数字,大写字母,也可能是小写字母

package 练习;
import java.util.Random;
//需求:定义一个方法随机生成5位验证码,每位可能是数字,大写字母,也可能是小写字母
public class yanzhengma {
    public static void main(String [] args)
    {
        //调用获取验证码的方法得到一个随机验证码
        String code =creatcode(5);
        System.out.println("随机验证码:"+code);
    }
/**
 * 1.定义一个方法返回一个随机验证码
 */
    public static String creatcode (int n)
    {
        String code=" ";
        Random r=new Random();
        //2.定义一个for循环,循环n次,生成随机字符
        for(int i=0;i<n;i++)
        {
            //3.生成一个随机字符;
            int type =r.nextInt(3);
            switch(type)
            {
            case 0:
                //大写字符(A 65-Z 65+25) (0-25)+65
                char ch =(char)(r.nextInt(26)+65);
                code+=ch;
                break;
            case 1:
                //小写字符(a 97-z 97+25) (0-25)+97
                char ch1 =(char)(r.nextInt(26)+97);
                code+=ch1;
                break;
            case 2:
                //数字字符
                code+= r.nextInt(10);
                break;
                
            }
            
        }
        return code;
    }
}

4.数组元素的复制

需求:把一个素组中的元素复制到一个新数组中去

package 练习;

public class shuzu {
    public static void main (String[] args)
    {
        int []arr1= {11,22,33,44};
        
        int []arr2=new int [arr1.length];
        copy(arr1,arr2);
    }
    
    public  static void printArray(int[]arr)
    {
        System.out.println("[");
        for(int i=0;i<arr.length;i++)
        {
            System.out.println(i==arr.length-1 ? arr[i]:arr[i]+",");
            
        }
        System.out.print("]");
    }
public static void copy(int[] arr1,int[]arr2)
{
    for(int i=0;i<arr1.length;i++)
{
    arr2[i]=arr1[i];
}
}
}

5.评委打分

需求:在唱歌比赛中,有六个评委给学生打分,分数范围为[0-100]之间的整数,选手的得分为:去掉一个最高分和一个最低分后的四个数来求平均值

package 练习;
/**
在唱歌比赛中,有六个评委给学生打分,分数范围为[0-100]之间的整数,
选手的得分为:去掉一个最高分和一个最低分后的四个数来求平均值
*/
import java.util.Scanner;
public class dafen {
    public static void main (String[] args)
    {
        //1.定义一个动态初始化的数组,用于后期录入6个评委的分数
        int []scores =new int [6];
        //2.录入6个评委的分数
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<scores.length;i++)
        {
            System.out.println("请输入第"+(i+1)+"个评委的打分");
            int score =sc.nextInt();
            //3.把这个分数存入到数组的对应位置处
            scores[i]=score;
        }
        //4.遍历数组中的每个数组,找出最大值、最小值、总分
        int max=scores[0];
        int min =scores[0],sum=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];
        }
        System.out.println("选手的最高分为:"+max);
        System.out.println("选手的最低分为:"+min);
        
        //统计平均分
        double result =(sum-max-min)*1.0/(scores.length-2);
        System.out.println("选手最终得分为:"+result);
        
    }
    

}