Java基础案例

目录

案例一、飞机票

案例二、验证码

案例三、评委打分

案例四、数字加密

案例五、数字拷贝

案例六、抢红包

案例七、找素数

案例八、彩票双色球


案例一、飞机票

public class Test1 {
    public static void main(String[] args) {
//飞机票
        System.out.println(calculate(1000,8,"头等舱"));

    }

    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;
    }
}

案例二、验证码

import java.util.Random;

//验证码
public class Test2 {
    public static void main(String[] args) {
        System.out.println(createCode(20));

    }

    public static String createCode(int n){
        Random r=new Random();
        String  code="";
        for (int i = 1; i <=n; i++) {
            int type=r.nextInt(3);
            switch (type){
                case 0:
                    code+=r.nextInt(10);
                    break;
                case 1:
                    char ch1=(char)(r.nextInt(26)+65);
                    code+=ch1;
                    break;
                case 2:
                    char ch2=(char)(r.nextInt(26)+97);
                    code+=ch2;
                    break;
            }
        }
        return code;
    }
}

案例三、评委打分

import java.util.Scanner;

//请平均分
public class Test3 {
    public static void main(String[] args) {
        System.out.println(getAverage(6));

    }

    public static double getAverage(int 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, min = scores[0], 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));
    }
}

案例四、数字加密

/*数据加密*/
public class Test4 {
    public static void main(String[] args) {
        System.out.println("加密后的结果是:"+encrypt(2008));

    }
    public static String encrypt(int number){
       int []numbers=split(number);

        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 int[] copy(int[] arr){
        int []arr2=new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            arr2[i]=arr[i];
        }
        return 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.print("]");
    }
}

案例六、抢红包

import java.util.Random;
import java.util.Scanner;

/*抢红包*/
public class Test6 {
    public static void main(String[] args) {
        int[] moneys = {11, 555, 666, 777, 999};
        start(moneys);

    }

    public static void start(int[] moneys) {
        Scanner sc = new Scanner(System.in);
        Random r = new Random();
        for (int i = 0; i <= 5; i++) {
            System.out.println("请您输入任意内容进行抽奖:");
            sc.next();

            while (true) {
                int index = r.nextInt(moneys.length);
                int money = moneys[index];
                if (money != 0) {
                    System.out.println("恭喜您,您抽中了红包" + money);
                    moneys[index] = 0;
                    break;
                }
            }
            System.out.println("活动结束");

        }
    }
}



案例七、找素数

/*判断素数的个数*/
public class Test7 {
    public static void main(String[] args) {
        System.out.println("当前素数的个数是:"+serach(101, 200));

    }

    public static int serach(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;
    }
}

案例八、彩票双色球

import java.util.Random;
import java.util.Scanner;

/*判断中奖情况*/
public class Test10 {
    public static void main(String[] args) {
        int[] userNumbers=userSelectNumber();
        System.out.println("您投注的号码:");
        printArray(userNumbers);
        int[] luckNumbers=createLuckNumbers();
        System.out.println("中奖的号码:");
        printArray(luckNumbers);
        judge(userNumbers,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.print("]");
    }

    //1、设计一个方法,用于让用户投注一组号码并返回(前6个是红球号码,最后一个是蓝球号码)
    public static int[] userSelectNumber() {
        //2、创建一个整型数组,用于存放用户所投注的7个号码,(前6个是红球号码,最后一个是蓝球号码)
        int[] numbers = new int[7];
        Scanner sc = new Scanner(System.in);
        //3、遍历前6个位置,让用户投注6个号码存入
        for (int i = 0; i < numbers.length - 1; i++) {
            //i=0 1 2 3 4
            while (true) {
                //4、开始让用户为当前位置投注一个红球号码(1-33之间的号码,不能重复)
                System.out.println("请您输入第" + (i + 1) + "个红球号码(1-33之间),不能重复:");
                int number = sc.nextInt();
                //5、先判断用户输入的红球是否在1-33之间
                if (number < 1 || number > 33) {
                    System.out.println("对不起,您输入的红球范围不在1-33之间,请重新输入!");
                } else {
                    //号码是在1-33之间,接着继续判断号码是否重复,不重复才可以使用
                    if (exist(numbers, number)) {
                        //number当前这个号码重复了
                        System.out.println("对不起,您输入的红球号码重复了");
                    } else {
                        //number当前这个号码没有重复了,可以使用了
                        numbers[i] = number;
                        break;
                    }
                }
            }
        }
        while (true) {
            //6、投注一个蓝球号码
            System.out.println("请您输入一个蓝球号码(1-16):");
            int number = sc.nextInt();
            if (number < 1 || number > 16) {
                System.out.println("对不起,您输入的蓝球号码范围不对!");
            } else {
                numbers[6] = number;
                break;//蓝球号码录入成功,结束死循环
            }
        }
        return numbers;
    }

    public static boolean exist(int[] numbers, int number) {
        //判断number这个数字是否在numbers中存在
        for (int i = 0; i < numbers.length; i++) {
            if (numbers[i] == 0) {
                break;
            }
            if (numbers[i] == number) {
                return true;
            }
        }
        return false;
    }

    //2、设计一个方法:随机生成一组中奖号码出来(6个红球号码,1个蓝球号码)
    public static int[] createLuckNumbers() {
        //1、创建一个整型数组,用于存储这7个号码
        int[] numbers = new int[7];
        Random r = new Random();
        //2、遍历前6个位置处,依此随机一个红球号码存入(1-33 不重复)
        for (int i = 0; i < numbers.length; i++) {
            while (true) {
                //3、为当前位置随机一个红球号码出来存入 1-33
                int number = r.nextInt(33) + 1;
                //4、判断这个号码是否之前出现过(红球号码不能重复)
                if (!exist(numbers, number)) {
                    //number不重复
                    numbers[i] = number;
                    break;//结束死循环,代表了找到了这个位置的一个不重复的红球号码
                }
            }
        }
        //3、录入一个蓝球号码,1-16
        numbers[6] = r.nextInt(16) + 1;
        return numbers;
    }

    //设计一个方法,用于判断用户的中奖情况
    public static void judge(int[] userNumbers, int[] luckNumbers) {
        //userNumber=[12,14,16,18,23,26,8]
        //luckNumber=[16,17,18,19,26,32,8]

        //分别定义2个变量用于记住红球命中了几个以及蓝球命中了几个
        int redCount = 0;
        int blueCount = 0;

        //先判断红球命中的数量
        //遍历用户投注号码的前6个红球
        for (int i = 0; i < userNumbers.length - 1; i++) {
            //userNumber[i]
            //开始遍历中奖号码前6个号码,看用户当前选择的这个号码是否命中了
            for (int j = 0; j < luckNumbers.length - 1; j++) {
                if (userNumbers[i] == luckNumbers[j]) {
                    redCount++;
                }
            }
        }
        //3、判断蓝球是否命中
        blueCount = userNumbers[6] == luckNumbers[6] ? 1 : 0;

        System.out.println("您命中的红球数量是:" + redCount);
        System.out.println("您命中的蓝球数量是:" + blueCount);

        //4、判断中将详情,并输出结果
        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) {
            System.out.println("恭喜您,中奖200元!!");
        } else if (redCount == 4 && blueCount == 0) {
            System.out.println("恭喜您,中奖10元!!");
        } else if (redCount < 3 && blueCount == 1) {
            System.out.println("恭喜您,中奖5元!!");
        } else {
            System.out.println("感谢您对福利事业做出的巨大贡献");
        }
    }
}

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.1 Java语言发展简史2 1.2 认识Java语言3 1.2.1 Java语言特性3 1.2.2 JavaApplet4 1.2.3 丰富的类库4 1.2.4 Java的竞争对手5 1.2.5 Java在应用领域的优势7 1.3 Java平台的体系结构7 1.3.1 JavaSE标准版8 1.3.2 JavaEE企业版10 1.3.3 JavaME微型版11 1.4 JavaSE环境安装和配置12 1.4.1 什么是JDK12 1.4.2 JDK安装目录和实用命令工具介绍12 1.4.3 设置环境变量13 1.4.4 验证配置的正确性14 1.5 MyEcilpse工具介绍JavaSE环境安装和配置15 1.6 本章练习16 第2章 2.1 什么是程序18 2.2 计算机中的程序18 2.3 Java程序19 2.3.1 Java程序中的类型19 2.3.2 Java程序开发三步曲21 2.3.3 开发Java第一个程序21 2.3.4 Java代码中的注释23 2.3.5 常见错误解析24 2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行机制29 2.7 上机练习30 第3章 3.1 变量32 3.1.1 什么是变量32 3.1.2 为什么需要变量32 3.1.3 变量的声明和赋值33 3.1.4 变量应用实例33 3.2 数据的分类34 3.2.1 Java中的八种基本数据类型34 3.2.2 普及二进制36 3.2.3 进制间转换37 3.2.4 基本数据类型间转换38 3.2.5 数据类型应用实例38 3.2.6 引用数据类型39 3.3 关键字.标识符.常量39 3.3.1 变量命名规范39 3.3.2 经验之谈-常见错误的分析与处理40 3.3.3 Java标识符命名规则41 3.3.4 关键字42 3.3.5 常量42 3.4 运算符43 3.4.1 算术运算符43 3.4.2 赋值操作符45 3.4.3 关系操作符47 3.4.4 逻辑操作符48 3.4.5 位操作符49 3.4.6 移位运算符49 3.4.7 其他操作符50 3.5 表达式52 3.5.1 表达式简介52 3.5.2 表达式的类型和值52 3.5.3 表达式的运算顺序52 3.5.4 优先级和结合性问题52 3.6 选择结构54 3.6.1 顺序语句54 3.6.2 选择条件语句54 3.6.3 switch结构59 3.6.4 经验之谈-常见错误的分析与处理65 3.6.5 Switch和多重if结构比较66 3.7 循环语句66 3.7.1 While循环67 3.7.2 经验之谈-常见while错误70 3.7.3 do-while循环72 3.7.4 for循环74 3.7.5 经验之谈-for常见错误76 3.7.6 循环语句小结78 3.7.7 break语句79 3.7.8 continue语句82 3.8 JavaDebug技术84 3.9 本章练习85 第4章 4.1 一维数组90 4.1.1 为什么要使用数组90 4.1.2 什么是数组91 4.1.3 如何使用数组92 4.1.4 经验之谈-数组常见错误97 4.2 常用算法98 4.2.1 平均值,最大值,最小值98 4.2.3 数组排序102 4.2.3 数组复制103 4.3 多维数组105 4.3.1 二重循环105 4.3.2 控制流程进阶107 4.3.3 二维数组111 4.4 经典算法113 4.4.1 算法-冒泡排序113 4.4.2 插入排序115 4.5 增强for循环116 4.6 本章练习117 第5章 5.1 面向过程的设计思想120 5.2 面向对象的设计思想120 5.3 抽象121 5.3.1 对象的理解121 5.3.2 Java抽象思想的实现122 5.4 封装124 5.4.1 对象封装的概念理解124 5.4.2 类的理解125 5.4.3 Java类模板创建125 5.4.4 Java中对象的创建和使用127 5.5 属性130 5.5.1 属性的定义130 5.5.2 变量131 5.6 方法132 5.6.1 方法的定义132 5.6.2 构造方法135 5.6.4 方法重载138 5.6.5 自定义方法138 5.6.6 系统提供方法139 5.6.7 方法调用140 5.6.8 方法参数及其传递问题144 5.6.9 理解main方法语法及命令行参数147 5.6.1 0递归算法147 5.7 this关键字148 5.8 JavaBean149 5.9 包150 5.9.1 为什么需要包?150 5.9.2 如何创建包151 5.9.3 编译并生成包:151
好的,我可以为您讲解Java基础案例7-3日记本。这个案例是一个简单的Java GUI应用程序,可以让用户创建、查看和编辑日记条目。以下是该程序所包含的一些主要功能: 1. 创建新的日记条目:用户可以在程序中创建新的日记条目,输入标题和内容。 2. 查看日记条目列表:程序可以显示所有已创建的日记条目的列表,用户可以通过点击列表中的条目来查看它们的详细内容。 3. 编辑日记条目:用户可以编辑现有的日记条目,包括更改标题和内容。 4. 删除日记条目:用户可以删除现有的日记条目。 下面是该程序的一些关键代码片段: ``` public class DiaryGUI extends JFrame { // ... GUI component declarations ... public DiaryGUI() { // ... GUI initialization code ... // Set up action listeners for buttons newButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { createNewEntry(); } }); viewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { viewSelectedEntry(); } }); editButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { editSelectedEntry(); } }); deleteButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { deleteSelectedEntry(); } }); } // Method to create a new diary entry private void createNewEntry() { // ... code to prompt user for new entry title and content ... DiaryEntry newEntry = new DiaryEntry(title, content); // ... code to add new entry to list of entries ... } // Method to view a selected diary entry private void viewSelectedEntry() { // ... code to get selected entry from list ... // ... code to display selected entry in a new window ... } // Method to edit a selected diary entry private void editSelectedEntry() { // ... code to get selected entry from list ... // ... code to prompt user for new entry title and content ... selectedEntry.setTitle(title); selectedEntry.setContent(content); } // Method to delete a selected diary entry private void deleteSelectedEntry() { // ... code to get selected entry from list ... // ... code to remove selected entry from list ... } } ``` 以上是该程序的一些基本代码片段,它们提供了创建、查看、编辑和删除日记条目的功能。当然,这个程序还有很多细节可以完善,比如数据的持久化和数据的输入验证等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值