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)+65char 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];}}//平均分:总和减去最大值和最小值除以人数减2return (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     jfor (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.mzph.cn/news/738694.shtml

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

相关文章

学习大数据,所需要Java基础(9)

文章目录 网络编程实现简答客户端和服务器端的交互编写客户端编写服务端 文件上传文件上传客户端以及服务器端实现文件上传服务器端实现&#xff08;多线程&#xff09;文件上传服务器端&#xff08;连接池版本&#xff09;关闭资源工具类 BS架构服务器案例案例分析BS结构服务器…

​《中华活页文选(传统文化教学与研究)》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答&#xff1a; ​问&#xff1a;《中华活页文选(传统文化教学与研究)》是什么级别的期刊&#xff1f; 答&#xff1a;国家级&#xff1b;主管单位&#xff1a;中国出版传媒股份有限公司&#xff1b;主办单位&#xff1a;中华书局有限公司 问&#xff1a;《中华活页文…

程序人生——Java开发中通用的方法和准则,Java进阶知识汇总

目录 引出Java开发中通用的方法和准则建议1:不要在常量和变量中出现易混淆的字母建议2:莫让常量蜕变成变量建议3:三元操作符的类型务必一致建议4:避免带有变长参数的方法重载建议5:别让null值和空值威胁到变长方法建议6:覆写变长方法也循规蹈矩建议7:警惕自增的陷阱建议…

023—pandas 扩展逗号爆炸分隔字符串数据

需求&#xff1a; 将 c1 按逗号拆分&#xff0c;爆炸为一行一行数据&#xff0c;然后将 c1 后边的有逗号的扩展成行&#xff0c;没逗号的只写在第一行。 思路&#xff1a; 先将 DataFrame 中有逗号的值分拆转为列表&#xff0c;接下来我们对 c1 进行爆炸&#xff0c;就得到了…

Sora背后的技术《可控生成与文本到图像扩散模型》

在迅速发展的视觉生成领域中&#xff0c;扩散模型革命性地改变了景观&#xff0c;以其令人印象深刻的文本引导生成功能标志着能力的重大转变。然而&#xff0c;仅依赖文本来条件化这些模型并不能完全满足不同应用和场景的多样化和复杂需求。认识到这一不足&#xff0c;多项研究…

开源推荐榜【ScottPlot 一个免费的开源 .NET 绘图库,百万数据点毫秒级绘制效率】

ScottPlot 是一个用于 C# 的开源绘图库&#xff0c;旨在提供简单易用的绘图功能&#xff0c;特别适用于科学和工程应用。它基于 .NET 平台&#xff0c;可以在 Windows、Linux 和 macOS 等操作系统上使用。 ScottPlot 具有以下主要特点&#xff1a; 简单易用&#xff1a;ScottPl…

数据结构 之 链表LinkedList

目录 1. ArrayList的缺陷&#xff1a; 2. 链表&#xff1a; 2.1 链表的概念及结构&#xff1a; 3. 链表的使用和模拟实现&#xff1a; 3.1 构造方法&#xff1a; 3.2 模拟实现&#xff1a; 4. 源码分享&#xff1a; 在我学习顺序表之后&#xff0c;我就立马开始了链表的学…

鸿蒙开发:从入门到精通的全方位学习指南

随着华为鸿蒙HarmonyOS生态系统的迅速扩展&#xff0c;越来越多的开发者渴望深入了解并掌握这一前沿技术。本文旨在为鸿蒙开发新手提供一份详尽且实用的学习教程&#xff0c;助您从零开始&#xff0c;逐步迈向鸿蒙开发的巅峰。 一、鸿蒙开发环境搭建 DevEco Studio安装&#x…

非接触型红外线(IR)温度传感器 为AI NB打造更舒适工作环境

生成式AI掀起全球热潮,各大计算机厂纷纷推出AI NB/PC新品,不过AI新机也同时面临的电源相关热处理的难题,众智光电科技于今日(19号)提出最佳创新解决方案,以非接触型红外线(IR)温度感测芯片突破NB应用,能让使用者有全新体验,打造更舒适的工作环境。 在现今科技迅速发展的时代,高…

力扣--深度优先算法/回溯算法90.子集Ⅱ

思路分析&#xff1a; 成员变量&#xff1a; result: 用于存储最终的子集结果。path: 用于存储当前正在构建的子集。 DFS函数&#xff1a; dfs(vector<int>& nums, int start): 递归地生成子集。 从给定的start索引开始遍历数组。如果当前元素与前一个元素相同&#…

spring boot 使用 webservice

spring boot 使用 webservice 使用 java 自带的 jax-ws 依赖 如果是jdk1.8,不需要引入任何依赖&#xff0c;如果大于1.8 <dependency><groupId>javax.jws</groupId><artifactId>javax.jws-api</artifactId><version>1.1</version&g…

前端的数据标记协议

文章目录 数据标记协议是什么数据标记协议的作用常见的数据标记协议Open Graph protocol 开放图谱协议基本元数据协议可选元数据结构化属性 —— 元数据的属性多个相同的元数据标签类型元数据的使用方法全局类型使用自定义类型使用对象类型使用歌曲对象类型视频对象类型文章对象…

webgl instance 绘制

webgl instance 绘制 效果: key1: 创建实例缓存 function createMesh() {for (let i 0; i < NUM_CUBE; i) {const angle i * 2 * Math.PI / NUM_CUBE;const x Math.sin(angle) * RADIUS;const y 0;const z Math.cos(angle) * RADIUS;cubes[i] {scale: new THREE.V…

Rust 使 Python 函数速度提高 5000%

大家应该都听说过&#xff0c;Rust 因其卓越的性能和安全性&#xff0c;正被越来越多的科技巨头采用&#xff0c;推荐开发者使用Rust来构建关键软件。 今天&#xff0c;来深入学习一下&#xff0c;如何利用 Rust 来大幅提升你的 Python代码性能&#xff01; 寻找第N个质数&…

Node.js作用

Node.js可以开发应用 开发服务器应用 开发工具类应用 开发桌面端应用

Linux查看磁盘命令df-h详解

df -h 是一个常用的 Linux 命令&#xff0c;用于查看文件系统的磁盘使用情况并以易于阅读的方式显示。以下是 df -h 命令的详细解释&#xff1a; -h&#xff1a;以人类可读的格式显示磁盘空间大小。例如&#xff0c;使用 GB、MB、KB 等单位代替字节。 执行 df -h 命令后&…

【webrtc】m122:PacingController 源码阅读

PacingController 关系与BitrateProber 关系更为密切PacingController 内置BitrateProber G:\CDN\signalapp_webrtc\modules\pacing\pacing_controller.hPacingControllerBitrateProber prober_;PacingController 关系与BitrateProber 关系更为密切,在整个系统中的地位也更重要…

阿里云2核4G服务器ECS规格清单、CPU性能详解和租用价格表

阿里云2核4G服务器多少钱一年&#xff1f;2核4G服务器1个月费用多少&#xff1f;2核4G服务器30元3个月、85元一年&#xff0c;轻量应用服务器2核4G4M带宽165元一年&#xff0c;企业用户2核4G5M带宽199元一年。本文阿里云服务器网整理的2核4G参加活动的主机是ECS经济型e实例和u1…

C++关于socket中收发数据不完整问题

1、socket缓冲区 每一个socket在被创建之后&#xff0c;系统都会给它分配两个缓冲区&#xff0c;即输入缓冲区和输出缓冲区。 &#xff08;1&#xff09;send函数并不是直接将数据传输到网络中&#xff0c;而是负责将数据写入输出缓冲区&#xff0c;数据从输出缓冲区发送到目标…

【电路笔记】-晶体管作为开关

晶体管作为开关 文章目录 晶体管作为开关1、概述2、截止区域3、饱和区域4、示例5、晶体管开关类型及应用5.1 数字逻辑晶体管开关5.2 PNP晶体管开关5.3 达林顿晶体管开关6、总结1、概述 晶体管开关可用于通过使用处于饱和或截止状态的晶体管来打开或关闭低压直流设备(例如 LED…