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

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.mfbz.cn/a/450231.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【更新】cyの破三之旅(20240313~20240421)

序言 在过去一个多月里&#xff0c;我又如期搞砸一些事。 有些事不去做会遗憾&#xff0c;做完也很自责。 经年如此&#xff0c;已经习惯了。 但是这次破三&#xff0c;我一定不会再搞砸了。&#xff08;FLAG已立&#xff0c;完篇收FLAG&#xff09; PS&#xff1a;真的勇…

opengl 学习(三)-----着色器

着色器 分类demo效果解析教程 分类 OPengl C demo #include "glad/glad.h" #include "glfw3.h" #include <iostream> #include <cmath> #include <vector>#include <string> #include <fstream> #include <sstream>…

【Python数据结构与判断3/7】储存多个数据的元组

目录 导入 数据结构 元组 索引 in运算 ​编辑 Debug 总结 导入 我们之前学习的变量可以存储1个数据&#xff0c;那当我们需要存储10个数据的时候该怎么办呢&#xff1f;写10个变量可以解决这个问题&#xff0c;但是太冗长。 数据结构 我们也可以如第2张图所示&#xff0…

Accelerating Performance of GPU-based Workloads Using CXL——论文泛读

FlexScience 2023 Paper CXL论文阅读笔记整理 问题 跨多GPU系统运行的高性能计算&#xff08;HPC&#xff09;工作负载&#xff0c;如科学模拟和深度学习&#xff0c;是内存和数据密集型的&#xff0c;依赖于主机内存来补充其有限的板载高带宽内存&#xff08;HBM&#xff09…

【代码随想录 | 数组 02】移除元素

文章目录 2.移除元素2.1题目2.1思路2.2.1暴力解法2.2.2双指针法 23总结 2.移除元素 27.移除元素_力扣链接 2.1题目 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&am…

Kubernetes | 起源 | 组件详解

起源 起源&#xff1a; Kubernetes&#xff08;常简称为K8s&#xff09;起源于Google内部的Borg项目&#xff0c;是一个开源的容器编排引擎&#xff0c;于2014年首次对外发布。 Google Borg Google Borg 是 Google 内部开发和使用的大规模集群管理系统&#xff0c;用于管理和运…

Visual grounding-视觉定位任务介绍

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

网络通信另个角度的认识(进程间通信),端口号(为什么要有,和pid的关系,如何封装,和进程的定位原理+对应关系)客户端如何拿到服务端的port

目录 另一个角度认识网络通信 端口号 引入 -- 为什么要有端口号 问题 解决 端口号和pid 举例 介绍 分类 知名端口 注册端口 动态端口 客户端如何知道服务端的端口号 封装端口号 定位原理 进程和端口号的对应关系 数据如何被上层进程读到 另一个角度认识网络…

Node.js安装 (WIndows版本)

一. 下载地址 Node.js 安装包及源码下载地址为&#xff1a;https://nodejs.org/en/download 二. 具体安装步骤 下载对应msi文件后&#xff0c;双击下载后的安装包 点击next&#xff0c;进入下一步 选择安装目录&#xff0c;建议修改到非C盘目录 选择安装环境 点击 I…

docker启动时环境变量不生效(docker打包成镜像后环境变量失效)

前言 因项目需要多处部署&#xff0c;为了部署的方便&#xff0c;于是准备将项目环境打包成docker镜像以便于部署。mq、mysql这些在仓库中都有现成的镜像&#xff0c;虽然java和nginx的也都有&#xff0c;但是不知道当时是怎么想的&#xff0c;就不想搞太多镜像&#xff0c;也…

力扣大厂热门面试算法题 15-17

15. 三数之和&#xff0c;16. 最接近的三数之和&#xff0c;17. 电话号码的字母组合&#xff0c;每题做详细思路梳理&#xff0c;配套Python&Java双语代码&#xff0c; 2024.03.11 可通过leetcode所有测试用例。 目录 15. 三数之和 解题思路 完整代码 Java Python ​…

29.基于SSM实现的少儿编程网上报名系统(项目 + 论文PPT)

项目介绍 随着计算机的不断发展&#xff0c;已经融入到我们生活工作的每一个领域中&#xff0c;给我们的生活工作带来了很多的便利&#xff0c;因此&#xff0c;希望可以通过该系统的开发也能使少儿编程网上报名系统实现信息化管理&#xff0c;减轻人的负担&#xff0c;提高工作…

申请选择商家转账到零钱流程怎样的

商家转账到零钱是什么&#xff1f; 【商家转账到零钱】可以说是【企业付款到零钱】的升级版&#xff0c;商家转账到零钱可以为商户提供同时向多个用户微信零钱转账的能力&#xff0c;支持分销返佣、佣金报酬、企业报销、企业补贴、服务款项、采购货款等自动向用户转账的场景。…

伦敦金交易市场的参与者有哪些?

伦敦金交易市场&#xff0c;作为全球最大的黄金交易市场之一&#xff0c;吸引了众多的参与者。这些参与者来自不同的背景和角色&#xff0c;每个人都在这个市场中发挥着重要的作用。 首先&#xff0c;我们不得不提到的是市场的核心参与者——交易商。交易商是市场上最活跃的群体…

FTP,SFTP,FTPS,SSL,TSL简介,区别,联系,使用场景说明

文章目录 简介FTPFTPSSFTP加密场景选择FTPS还是SFTPFTP、SFTP、FTPS区别、联系和具体使用场景如何使用FTP、SFTP和FTPSSSLTLSSSL和TLS区别和联系&#xff0c;以及使用场景SSL和TLS技术上的区别一些问题隐式的TLS&#xff08;FTPS/SSL&#xff09;或者显式的TLS&#xff08;FTPS…

【Python】新手入门学习:什么是python解释器,它的作用是什么?

【Python】新手入门学习&#xff1a;什么是python解释器&#xff0c;它的作用是什么&#xff1f; &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基…

STM32CubeMX学习笔记19——SD卡(SDIO接口)

1、简介 1.1 SD卡简介 很多单片机系统都需要大容量存储设备&#xff0c;以存储数据&#xff08;常用的有U盘、FLASH芯片、SD卡等&#xff09;&#xff0c;比较而言SD卡是单片机大容量外部存储的首选&#xff0c;只需要少数几个IO口即可外扩一个容量从几十M到几十G的&#xff…

前端实现 查询包含分页 以及封装table表格 上手即用!

表格组件是 element plus 中的table 又经过了一层封装 封装的table代码在最底下 <div class"box2"><el-radio-group v-model"radio" style"margin-bottom: 16px"><el-radio-button label"1">类型1</el-radio…

vue3 uniapp 项目初始化集成配置【开箱即用】

https://gitee.com/charrie/vue3-uniapp-init 技术说明 采用vue3viteuniapp技术栈&#xff0c;setup语法糖编码方式引入unocss量子化样式引擎&#xff0c;动态css不用自己写样式&#xff0c;引用class即可&#xff0c;降低代码体积全局请求入口已封装&#xff0c;使用时自己封…

易基因: WGBS+ChIP-seq揭示食管癌的细胞类型和癌症特异性表观遗传调控|Genome Biol

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 食管癌是一种常见的恶性肿瘤&#xff0c;有两种亚型&#xff1a;鳞状细胞癌&#xff08;squamous cell carcinoma&#xff0c;ESCC&#xff09;和腺癌&#xff08;adenocarcinoma&#x…
最新文章