Java开发从入门到精通(一):Java的基础语法项目案例

news2024/11/16 19:23:58

Java大数据开发和安全开发

  • Java 案例练习
    • 案例一:买飞机票
    • 案例二:开发验证码
    • 案例三:评委打分
    • 案例四:数字加密
    • 案例五:数组拷贝
    • 案例六: 抢红包
    • 案例七:找素数
    • 案例八:模拟双色球[拓展案例]

Java 案例练习

在这里插入图片描述
在这里插入图片描述

案例一:买飞机票

在这里插入图片描述
分析:

  • 方法是需要接收数据?需要接收机票原价、当前月份、舱位类型
  • 方法是否需要返回数据?需要返回计算出的机票优惠价
  • 方法内部:先使用if判断月份是旺季还是淡季,然后使用switch分支判断是头等舱还是经济舱
package com.qianxin.jipiao;

public class MaiJiPiao {
    public static void main(String[] args) {
        double pirec = fare(1150.1,11,"头等舱");
        System.out.println(pirec);
    }
    public static double fare(double plane_pirec,int datanum,String shipping_space) {
        //1. 判断当前是淡季还是旺季
        if (datanum >= 5 && datanum <= 10) {
            //旺季
            //判断舱位类型
            switch (shipping_space) {
                case "头等舱":
                    plane_pirec = plane_pirec * 0.9;
                    break;
                case "经济舱":
                    plane_pirec = plane_pirec * 0.85;
            }
        } else {
            //淡季
            switch (shipping_space) {
                case "头等舱":
                    plane_pirec = plane_pirec * 0.7;
                    break;
                case "经济舱":
                    plane_pirec = plane_pirec * 0.65;
            }
        }
        return plane_pirec;
    }
}

  • 1、遇到需要通过判断数据在哪个区间,来决定执行哪个业务,应该用什么实现?
    • 应该使用if分支结构实现
  • 2、遇到需要通过判断数据匹配哪个值,来决定执行哪个业务,应该用什么实现?
    • 应该使用switch分支结构实现

案例二:开发验证码

  • 方法是否需要接收数据? 需要接收一个整数,控制生成验证码的位数
  • 方法是否需要返回数据? 需要返回生成的验证码
  • 方法内部的业务:使用for循环依次生成每位随机字符,并使用一个String类的变量把每个字符连接起来,最后返回该变量即可

在这里插入图片描述

import java.util.Random;

public class YanZhenMa {
    public static void main(String[] args) {
        String code = CreateCode(5);
        System.out.println(code);
    }

    public static String CreateCode(int num) {
        Random r = new Random();
        //定义一个String类型的变量用于记住产生的每位随机字符
        String code = "";
        //定义一个for循环用于控制产生多少位随机字符
        for (int i = 0; i < num; i++) {
            //i = 1 2 3 4
            //为每个位置生成一个随机字符,可能是数字,大小写字母
            //思路:随机一个数字0 1 2出来 0代表数字,1代表大写字母 2.代表大写字符
            int num1 = r.nextInt(3);
            switch (num1) {
                case 0:
                    //随机生成一个数字
                    code += r.nextInt(10);
                    break;
                case 1:
                    //随机一个大写字符 A 65  Z 65+25 (0-25)+65
                    char ch1 = (char) (r.nextInt(26) + 65);
                    code += ch1;
                    break;
                case 2:
                    //随机一个小写字符a 的起始值97  z 97+25 (0-25)+97   ALT+ENTER 强制类型转化
                    char ch2 = (char) (r.nextInt(26) + 97);
                    code += ch2;
                    break;
            }

        }
        return code;
    }
}

案例三:评委打分

  • 1。方法是否需要接收数据进行处理? 需要接收评委的人数
  • 2。方法是否需要返回数据? 需要返回计算出的选手最终得分
  • 3。方法内部的业务:,定义数组,录入评委的分数存入到数组中去,接着,我们就需要遍历数组中的分数计算出总分,并找出最高分,最低分、最后按照这些数据算出选手最终得分并返回即可
package com.qianxin.jipiao;

import java.util.Scanner;

public class PingWei {
    public static void main(String[] args) {
        System.out.println("选手的平均分为:"+AvgScores(6));
    }

    public static double AvgScores(int num){
        // 1、定义一个动态初始化的数组,负责后期存入评委的打分
        int[] scores = new int[num];
        Scanner sc= new Scanner(System.in);
        // 2、遍历数组的每个位置,依次录入评委的分数
        for (int i = 0; i < num; i++) {
            System.out.println("请输入第"+ (i+1)+"个评委的分数:");
            int score = sc.nextInt();
            scores[i] =score;

        }
        //3、从数组中计算出总分,找出最高分,最低分
        int sum = 0;
        int max = scores[0];
        int min = scores[0];
        //4、遍历数组找出这些数据的.
        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];
            }
        }
        //平均分:总和减去最大值和最小值除以人数减2
        return (sum - max - min) /(num-2);

    }
}

案例四:数字加密

  • 1 方法是否需要接收数据进行处理?需要接收四位数字密码,进行加密处理。
  • 2 方法是否需要返回数据? 需要返回加密后的结果
  • 3 方法内部的业务:将四位数字密码拆分成一个一个的数字,存入到数组中去,遍历数组中的每个数字按照题目需求进行加密!最后,再把加密后的数字拼接起来返回即可!
public class JiMi {
    public static void main(String[] args) {
        System.out.println(encrypt(1983));
    }
    public static String encrypt(int num){
        //num =1983
        // 1、把这个密码拆分成一个一个的数字,才可以对其进行加密啊.
        int[] number = splot(num);
        //number=[1,9,8,3]
        for (int i = 0; i < number.length; i++) {
            System.out.println(number[i]);
        }



        // 2、遍历这个数组中的每个数字,对其进行加密处理。
        for (int i = 0; i < number.length; i++) {
            number[i] =(number[i] + 5 ) % 10;
        }
        //number= [6,4,3,8]

        // 3、对数组反转,把对数组进行反转的操作交给一个独立的方法来完成
       reverse(number);
        //number= [8,3,4,6]

        // 4、把这些加密的数字拼接起来做为加密后的结果返回即可。
        String number1 ="";
        for (int i = 0; i < number.length; i++) {
            number1 += number[i];
        }
        return number1;
    }

    public static int[] splot(int num) {
        //number = [1,9,8,3]
        int[] number = new int[4];
        number[0] = num / 1000;
        number[1] = (num / 100) % 10;
        number[2] = (num /10) % 10;
        number[3] = num /10;
        return number;

    }
    public static void reverse(int[] number) {
        //反转数组
        //number= [6,4,3,8]
        //         i     j
        for (int i = 0,j = number.length-1; i < j;i++,j--) {
            // 交换i和j位置处的值
            // 1、把后一个位置处的值交给一个临时变量先存起来
            int temp = number[j];
            // 2、把前一个位置处的值赋值给后一个位置处
            number[j] = number[i];
            // 3、把后一个位置处原来的值(由临时变量记住着) 值给前一个位置
            number[i] = temp;

        }
    }
}

案例五:数组拷贝

案例六: 抢红包

案例七:找素数

案例八:模拟双色球[拓展案例]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1508566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:外描边设置)

设置组件外描边样式。 说明&#xff1a; 从API Version 11开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本。 outline outline(value: OutlineOptions) 统一外描边样式设置接口。 卡片能力&#xff1a; 从API version 11开始&#xff0c;该…

仿牛客网项目---Elasticsearch分布式搜索引擎

1.什么是ElasticSearch分布式搜索引擎&#xff1f; Elasticsearch是一个开源的分布式搜索引擎&#xff0c;提供实时的、高可用性的搜索和分析解决方案。它支持快速索引和搜索大规模数据&#xff0c;具有分布式架构、RESTful API、基于JSON的查询语言等功能&#xff0c;适用于各…

Asp .Net Web Forms 系列:配置图片防盗链的几种方法

通过 URL Rewrite Module 组件 URL Rewrite Module 是一个用于在 ASP.NET Web Forms 或其他基于 IIS 的 Web 应用程序中重写 URL 的强大工具。这个模块允许你将复杂的、不易于记忆或不利于搜索引擎优化的 URL 转换为更简洁、更友好的格式。通过 URL 重写&#xff0c;你可以提高…

Upload 上传(图片/文件),回显(图片),下载(文件)

1.前端技术&#xff1a;V3 Ant Design Vue 2.后端技术&#xff1a;Java 图片上传/回显&#xff1a; 文件上传回显&#xff1a; 表结构&#xff1a;单文件/图片上传为A表对文件C表 &#xff08;A表field字段 对应 C表id字段&#xff09; 如图&#xff1a;A表中的 vehicle_d…

leetcode代码记录和对比(两数相加

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;3. 别人的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个…

世界排名第二的大语言模型,你听说过吗?

前言&#xff1a; 在介绍这个大语言模型之前&#xff0c;我们需要先来回顾一个事情&#xff0c;大家应该都知道&#xff0c;在去年 11 月&#xff0c;OpenAI 经历了 CEO Altman 被解雇&#xff08;后又重返&#xff09;的风波。而微软作为OpenAI的最大股东&#xff0c;直至Alt…

【DAY10 软考中级备考笔记】数据结构 图

数据结构 图 3月11日 – 天气&#xff1a;晴 晚上无线网络突然不能用了&#xff0c;花费好久弄这个&#xff0c;耽误了一些时间 1. 图的定义 这里需要注意完全图的定义&#xff0c;以及完全图的边数 这里需要注意连通图和连通分量的概念。 2. 图的存储结构 图有两种存储结构&a…

PortSwigger 基于dom的漏洞-利用 DOM 破坏来启用 XSS

进入实验随意进入一篇博客 我们可以尝试随意提交一些恶意代码看看会发生什么 很显然我们提交成功了但是我们的恶意代码貌似被过滤了 查看源码发现这里有一个过滤框架 我们打开源码分析 function loadComments(postCommentPath) {let xhr new XMLHttpRequest();xhr.onreadys…

植物病害识别:YOLO水稻病害识别/分类数据集(2000多张,2个类别,yolo标注)

YOLO水稻病害识别/分类数据集&#xff0c;包含疾病和正常2类&#xff0c;共2000多张图像&#xff0c;yolo标注完整&#xff0c;可直接训练。 适用于CV项目&#xff0c;毕设&#xff0c;科研&#xff0c;实验等 需要此数据集或其他任何数据集请私信

基于单片机的视觉导航小车设计

目 录 摘 要 I Abstract II 引 言 1 1 总体方案设计 3 1.1 方案论证 3 1.2 项目总体设计 3 2 项目硬件设计 4 2.1 主控模块设计 4 2.1.1单片机选型 4 2.1.2 STM32F103RCT6芯片 4 2.2单片机最小系统电路 5 2.3电机驱动模块设计 7 2.4红外模块设计 8 2.5红外遥控模块设计 9 2.6超…

Logseq电脑端+安卓端同步gitee或github

文章目录 0.初衷1.电脑端1.1 新建仓库1.2 克隆项目&#xff0c;生成秘钥1.3 添加图谱&#xff0c;选择文件目录&#xff0c;我是原本就有笔记&#xff0c;所以会如下所示。1.4 下载脚本文件1.5赋权限 &#xff08;windows可跳过&#xff09;1.6 修改脚本命令1.7 logseq设置同步…

Docker命令大全与实例详解

本文旨在汇总和深入解析日常工作与学习中频繁接触到的Docker核心命令&#xff0c;通过实例演示来巩固记忆&#xff0c;以便读者在实际操作中迅速查阅和高效运用。Docker作为一种轻量级容器技术&#xff0c;已经成为现代应用部署与管理的重要工具。本文将涵盖从基本的Docker环境…

公网ip和局域网ip

什么是公网IP&#xff1f; 公网&#xff0c;俗称外网&#xff0c;又被叫做互联网&#xff0c;是连接不同地区局域网或者城域网计算机的通信的远程网络。通常可以跨接很大的物理范围&#xff0c;连接多个地区、城市和国家提供远距离通信&#xff0c;形成全球性的互联网络。因此…

MySQL临时表创建出错(OS errno 13 - Permission denied)

一个客户向我抱怨&#xff1a;在MySQL查询小表没有问题&#xff0c;查询大表出错&#xff0c;下面是他发给我的出错的部分截屏&#xff08;客户的表名被我隐藏了&#xff09;。 这里的给出的信息已经比较明显了&#xff0c;是向/tmp目录中创建临时表失败&#xff08;临时表的路…

555经典电路

1、555介绍&#xff1a; 555 定时器是一种模拟和数字功能相结合的中规模集成器件。一般用双极性工艺制作的称为 555&#xff0c;用 CMOS 工艺制作的称为 7555&#xff0c;除单定时器外&#xff0c;还有对应的双定时器 556/7556。555 定时器的电源电压范围宽&#xff0c;可在 4…

YoLo进化史《A COMPREHENSIVE REVIEW OF YOLO: FROM YOLOV1 TOYOLOV8 AND BEYOND》

Abstract YOLO已成为机器人、无人驾驶汽车和视频监控应用的核心实时目标检测系统。我们对YOLO的发展进行了全面的分析&#xff0c;研究了从最初的YOLO到YOLOv8的每次迭代中的创新和贡献。我们首先描述标准指标和后处理;然后&#xff0c;我们讨论了网络架构的主要变化和每个模型…

工具篇--分布式定时任务springBoot--elasticjob简单使用(1)

文章目录 前言一、elasticjob 介绍&#xff1a;二、elasticjob 使用&#xff1a;2.1 部署zookeeper&#xff1a;2.2 引入库2.2 定义任务&#xff1a;2.3 任务执行&#xff1a;2.4 任务执行控制台输出&#xff1a; 三、elasticjob 启动错误&#xff1a;3.1 KeeperErrorCode Ope…

数据结构->双向链表带你体验开火车(哨兵)与拼接火车(应用)厢的乐趣

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;橘橙黄又青-CSDN博客 目的&#xff1a;学习双向带头链表的增&#xff0c;删&#xff0c;查&#xff0c;销毁…

Vue+SpringBoot打造个人健康管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…

PyTorch 源码解读之 torch.cuda.amp: 自动混合精度详解

PyTorch 源码解读之 torch.cuda.amp: 自动混合精度详解 Nvidia 在 Volta 架构中引入 Tensor Core 单元&#xff0c;来支持 FP32 和 FP16 混合精度计算。也在 2018 年提出一个 PyTorch 拓展 apex&#xff0c;来支持模型参数自动混合精度训练。自动混合精度&#xff08;Automati…