当前位置: 首页 > news >正文

Java奠基】Java经典案例讲解

目录

卖飞机票

找质数

开发验证码

数组元素的复制

评委打分

数字加密

数字解密

抢红包

模拟双色球

二维数组


卖飞机票

需求:机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格:

旺季(5-10月)头等舱9折,经济舱8.5折;淡季(11月到来年4月)头等舱7折,经济舱6.5折。代码如下:

import java.util.Scanner;public class Main {public static void main(String[] args) {// 键盘录入机票原价、月份、头等舱或经济舱Scanner sc = new Scanner(System.in);System.out.println("请输入机票原价");int ticket = sc.nextInt();System.out.println("请输入月份");int month = sc.nextInt();System.out.println("请输入当前购买的舱位 0 头等舱 1 经济舱");int seat = sc.nextInt();// 判断月份是淡季还是旺季if(month >= 5 && month <= 10){ // 旺季ticket = getTicket(seat, ticket, 0.9, 0.85);}else if((month >=1 && month <= 4) || (month >= 11 && month <= 12)){ // 淡季ticket = getTicket(seat, ticket, 0.7, 0.65);}else{System.out.println("键盘录入不合法!");}System.out.println(ticket);}// 定义判断乘坐的是经济舱还是头等舱static int getTicket(int seat, int ticket, double x, double x1) {if (seat == 0) {ticket = (int) (ticket * x);} else if (seat == 1) {ticket = (int) (ticket * x1);} else {System.out.println("没有这个舱位!");}return ticket;}
}

找质数

需求:判断101 ~ 200 之间有多少个素数,并输出所有素数。代码如下:

public class Main {public static void main(String[] args) {// 统计素数的数量int count  = 0;for (int i = 101; i <= 200 ; i++) {// 假设当前i为素数boolean flag = true;for (int j = 2; j < i ; j++) {if(i % j ==0){flag = false;break;}}if(flag){System.out.println("当前的素数为:"+i);count++;}}System.out.println("一共有素数"+count+"个");}
}

开发验证码

需求:定义方法实现随机产生一个5位的验证码,验证码格式为:长度为5、前四位是大写字母或者小写字母、最后一位是数字。代码如下:

public class Main {public static void main(String[] args) {// 大小写字母都放在数组中char[] chs = new char[52];for (int i = 0; i < chs.length; i++) {// 使用 ASCII码表if(i<=25){chs[i] = (char) (97 + i); // 添加小写字母}else{chs[i] = (char) (65 + i - 26); // 添加大写字母}}// 定义一个字符串类型用来记录最终结果String result = "";// 随机抽取四次字母Random r = new Random();for (int i = 0; i < 4; i++) {int randomIndex = r.nextInt(chs.length);// 利用随机索引获取对应元素result = result + chs[randomIndex];}// 随机抽取一个数字 0 ~ 9int number = r.nextInt(10);result = result + number;System.out.println("当前验证码为:"+result);}
}

数组元素的复制

需求:把一个数组中的元素复制到另一个新数组中去。代码如下:

public class Main {public static void main(String[] args) {// 定义一个旧数组用来存储数据int[] arr = {1,2,3,4,5};// 定义一个新数组,数组长度与旧数组长度一致int[] newarr = new int[arr.length];// 遍历旧数组,得到数组中的每一个元素依次放入到新数组当中for (int i = 0; i < arr.length; i++) {newarr[i] = arr[i];}// 打印新数组中的元素for (int i = 0; i < newarr.length; i++) {System.out.println(newarr[i]);}}
}

评委打分

需求:在唱歌比赛中,有6名评委给选手打分,分数范围是 [0 - 100]之间的整数。选手的最后得分为:去掉最高分、最低分的4个评委的平均分,请完成上述过程并计算选手的得分。代码如下:

public class Main {public static void main(String[] args) {// 定义一个数组,用来存储6名评委的打分(0 ~ 100)int[] scoreArr = getScore();for (int i = 1; i < scoreArr.length; i++) {System.out.println(scoreArr[i]);}// 求数组最大最小值int max = getMax(scoreArr);int min = getMin(scoreArr);// 求数组元素6个元素的总和int sum = getSum(scoreArr);// 当前的评分System.out.println("选手的最终评分为:"+(sum - max - min)/(scoreArr.length - 2));}// 获取数组元素总和public static int getSum(int[] scoreArr){int sum = 0;for (int i = 0; i < scoreArr.length; i++) {sum = sum + scoreArr[i];}return sum;}// 定义获取数组元素最大值的方法public static int getMax(int[] scoreArr){int max = scoreArr[0];for (int i = 1; i < scoreArr.length; i++) {if(max>scoreArr[i]){max = scoreArr[i];}}return max;}// 定义获取数组元素最小值的方法public static int getMin(int[] scoreArr){int min = scoreArr[0];for (int i = 0; i < scoreArr.length; i++) {if(min<scoreArr[i]){min = scoreArr[i];}}return min;}// 定义获取评委打分的方法public static int[] getScore(){// 定义数组int[] scores = new int[6];// 使用键盘录入的方式,输入分数:0~100Scanner sc = new Scanner(System.in);for (int i = 0; i < scores.length;) {System.out.println("请输入评委的打分:");int score = sc.nextInt();if(score >=0 && score <= 100){scores[i] = score;i++;}else {System.out.println("成绩超出了范围,请继续录入!");}}return scores;}
}

数字加密

需求:某系统的数字密码(大于0),比如1983,采用加密方式进行传输。规则如下:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数,比如1983加密之后变成8346。代码如下:

public class Main {public static void main(String[] args) {// 把整数里面的每一位放在数组当中int[] arr = { 1,9,8,3 };// 对数组上的每一位元素加5for (int i = 0; i < arr.length; i++) {arr[i] = arr[i] + 5;}// 将数组的每一位元素进行10取余for (int i = 0; i < arr.length; i++) {arr[i] = arr[i] % 10;}// 将数组中的所有元素进行置换for(int i = 0,j = arr.length -1;i<j;i++,j--){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}int number = 0;for (int i = 0; i < arr.length; i++) {number = number * 10 + arr[i];}System.out.println(number);}
}

数字解密

需求:对上面的加密进行解密,比如加密的8346解密成1983,代码如下:

public class Main {public static void main(String[] args) {// 把整数里面的每一位放在数组当中int[] arr = { 8,3,4,6 };// 反转for (int i = 0, j = arr.length-1; i < j; i++,j--) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}// 由于加密是对10进行取余方式获取的,在解密的时候需要判断,0~4之间+10 4~9不变for (int i = 0; i < arr.length; i++) {if(arr[i]>0 && arr[i]<=4){arr[i] = arr[i] + 10;}}// 数组每一位元素减5for (int i = 0; i < arr.length; i++) {arr[i] = arr[i] - 5;}// 获取数组每一位元素拼接成最终结果int number = 0;for (int i = 0; i < arr.length; i++) {number = number * 10 + arr[i];}System.out.println(number);}
}

抢红包

需求:一个大V直播抽奖,奖品是现金红包,分别有{ 2,588,888,1000,10000 }五个奖金,请使用代码模拟抽奖,打印出每个奖项,奖项出现的顺序要随机且不能重复,代码如下:

public class Main {public static void main(String[] args) {// 定义一个奖池数组int[] arr = { 2,588,888,1000,10000 };// 定义新数组用于存储抽奖的结果int[] newArr = new int[arr.length];// 抽奖Random r = new Random();for (int i = 0; i < 5;) {// 获取随机索引int randomIndex = r.nextInt(arr.length);// 获取奖项int prize =  arr[randomIndex];// 判断当前的奖项是否存在,如果存在则重新抽取,如果不存在,就表示是有效奖项boolean flag = contains(newArr,prize);if(!flag){// 把当前抽取到的奖项添加到newArr当中newArr[i] = prize;// 添加完毕移动索引i++;}}// 遍历newArrfor (int i = 0; i < newArr.length; i++) {System.out.println(newArr[i]);}}// 判断prize在数组中是否存在public static boolean contains(int[] arr,int prize){for (int i = 0; i < arr.length; i++) {if(arr[i] == prize){return true;}}return false;}
}

模拟双色球

需求:投注号码由6个红色球号和1个蓝色球号组成。红色球号码从 1 ~ 33 中选择;蓝色球号码从 1 ~ 16 中选择。代码如下:

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;public class Main {public static void main(String[] args) {// 生成中将代码int[] arr = createNumber();System.out.println("当前中将代码为"+ Arrays.toString(arr) + "请仿照中将代码输入,才能中将(doge)");// 用户输入的号码int[] userInputArr = InputNum();// 判断用户的中将情况int redCount = 0;int blueCount = 0;// 判断红球for (int i = 0; i < userInputArr.length - 1; i++) {int reqNumber= userInputArr[i];for (int j = 0; j < arr.length -1; j++) {if(reqNumber == arr[j]){redCount++;// 如果找到了,那么后面的数字就没有必要继续比较了,跳出内循环,继续判断下一个红球号码是否中将。break;}}}// 判断蓝球int blueNumber = userInputArr[userInputArr.length -1];if(blueNumber == arr[arr.length -1]){blueCount++;}// 根据红球的个数以及蓝球的个数来判断中奖情况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) || (redCount ==4 && blueCount ==1)) {System.out.println("恭喜你,中将200!");}else if ((redCount ==4 && blueCount ==0) || (redCount ==3 && blueCount ==1)) {System.out.println("恭喜你,中将10!");}else if ((redCount ==2 && blueCount ==1) || (redCount ==1 && blueCount ==1) || (redCount ==0 && blueCount ==1)) {System.out.println("恭喜你,中将5!");}else {System.out.println("谢谢参与,谢谢惠顾!");}}public static int[] InputNum(){// 创建数组用于添加用户购买的彩票数量int[] arr = new int[7];// 利用键盘录入让用户进行输入Scanner sc = new Scanner(System.in);// 让用户输入红色球for (int i = 0; i < 6;) {System.out.println("请输入第" + (i + 1) + "个红色号码");int reqNumber = sc.nextInt();// reqNumber 在 1~33 唯一不重复if(reqNumber >= 1 && reqNumber <= 33){boolean flag = contains(arr,reqNumber);if(!flag){// 不存在的,有效的可以存在数组当中arr[i] = reqNumber;i++;}else{// 存在System.out.println("当前的红色号码球已经存在,请重新输入!");}}else {System.out.println("当前的红色号码超出范围,请重新输入!");}}// 让用户输入蓝色球System.out.println("请输入蓝色球");// 1~16while (true){int blueNumber = sc.nextInt();if(blueNumber >=1 && blueNumber <=16){arr[arr.length -1] = blueNumber;break;}else {System.out.println("当前蓝球号码超出范围,请重新输入!");}}return arr;}public static int[] createNumber(){// 创建数组用于添加中将号码,6个红球、1蓝球,数组长度为7int[] arr = new int[7];// 随机生成号码并添加到数组中Random r = new Random();for (int i = 0; i < 6;) {// 获取红球号码int redNumber = r.nextInt(33) + 1;boolean flag = contains(arr,redNumber);if(!flag){// 把红球号码添加到数组当中arr[i] = redNumber;i++;}}// 生成蓝球号码并添加到数组当中int blueNumber = r.nextInt(16) + 1;arr[arr.length - 1] = blueNumber;return arr;}// 用于判断数组在数组中是否存在public static boolean contains(int[] arr,int number){for (int i = 0; i < arr.length; i++) {if(arr[i] == number){return true;}}return false;}
}

PS:赌博有风险,入行需谨慎!根据上面的赌球代码,我测试了好几次连5元都没中。希望大家玩乐适度为主,切莫上头!

二维数组

需求:某商城每个季度的营业额如下:单位(万元)

第一季度:22,66,44

第二季度:77,33,88

第三季度:25,45,65

第四季度:11,66,99

要求计算出每个季度的总营业额和全年的总营业额:代码如下:

public class Main {public static void main(String[] args) {// 创建二维数组并存储数据int[][] yearArrArr = {{22, 66, 44},{77, 33, 88},{25, 45, 65},{11, 66, 99}};// 全年的营业额int yearSum = 0;// 遍历二维数组,得到每一个一维数组并求和for (int i = 0; i < yearArrArr.length; i++) {int[] quarterArr = yearArrArr[i];int sum = getSum(quarterArr);System.out.println("第" + (i+1) + "个季度的总营业额为:" + sum);yearSum = yearSum + sum;}System.out.println("全年的总营业额为:"+yearSum);}// 定义一个方法,计算每一个季度的营业额public static int getSum(int[] arr){int sum = 0;for (int i = 0; i < arr.length; i++) {sum = sum + arr[i];}return sum;}
}

相关文章:

Java奠基】Java经典案例讲解

目录 卖飞机票 找质数 开发验证码 数组元素的复制 评委打分 数字加密 数字解密 抢红包 模拟双色球 二维数组 卖飞机票 需求&#xff1a;机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格&#xff1a; 旺季&…...

新闻文本分类任务:使用Transformer实现

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️&#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

如何在 Vue 中使用 防抖 和 节流

大厂面试题分享 面试题库前后端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★地址&#xff1a;前端面试题库 https://mp.weixin.qq.com/s?__bizMzU5NzA0NzQyNg&mid2247485824&idx3&sn70cd26a7c0c683de64802f6cb9835003&scene21#wech…...

美国Linux服务器系统增强安全的配置

美国Linux服务器系统可能出现的安全漏洞中&#xff0c;更多是由于不当的系统配置所造成的&#xff0c;用户们可以通过一些适当的安全配置来防止问题的发生。美国Linux服务器系统上运行的服务越多&#xff0c;不当配置的概率也就越高&#xff0c;那么系统出现安全问题的可能性也…...

【史上最全面esp32教程】oled显示篇

文章目录前言介绍及库下载基础使用引脚的连接使用函数总结前言 本节课主要讲的是OLED的基础使用。使用的oled为0.96寸&#xff0c;128*64。 大家的其他型号也是可以用的。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 介绍及库下载 oled的简介&…...

第十四届蓝桥杯三月真题刷题训练——第 21 天

目录 第 1 题&#xff1a;灭鼠先锋 问题描述 运行限制 代码&#xff1a; 思路&#xff1a; 第 2 题&#xff1a;小蓝与钥匙 问题描述 答案提交 运行限制 代码&#xff1a; 思路 : 第 3 题&#xff1a;李白打酒加强版 第 4 题&#xff1a;机房 第 1 题&#xff1…...

css绘制一个Pinia小菠萝

效果如下&#xff1a; pinia小菠萝分为头部和身体&#xff0c;头部三片叶子&#xff0c;菠萝为身体 头部 先绘制头部的盒子&#xff0c;将三片叶子至于头部盒子中 先绘制中间的叶子&#xff0c;利用border-radius实现叶子的效果&#xff0c;可以借助工具来快速实现圆角的预想…...

OpenCV入门(二十)快速学会OpenCV 19 对象测量

OpenCV入门&#xff08;二十&#xff09;快速学会OpenCV 19 对象测量1.对象测量2.多边形拟合3.计算对象中心作者&#xff1a;Xiou 1.对象测量 opencv 中对象测量包括&#xff1a; 如面积&#xff0c;周长&#xff0c;质心&#xff0c;边界框等。 弧长与面积测量&#xff1b; …...

TCP和UDP协议的区别?

是否面向连接&#xff1a; TCP 是面向连接的传输&#xff0c;UDP 是面向无连接的传输。 是否是可靠传输&#xff1a;TCP是可靠的传输服务&#xff0c;在传递数据之前&#xff0c;会有三次握手来建立连接&#xff1b;在数据传递时&#xff0c;有确认、窗口、重传、拥塞控制机制…...

【C语言蓝桥杯每日一题】——排序

【C语言蓝桥杯每日一题】—— 排序&#x1f60e;前言&#x1f64c;排序&#x1f64c;总结撒花&#x1f49e;&#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&#xff1a;全神贯注的上吧&#xff01;&#xff01;&#xff01; &#x1f60a;作者简介&am…...

学校官网的制作

学校官网 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>*{margin: 0;padding: 0;}.top{background-color: #3D3BB8;width: 100%;position: fixed;padding: 20px 0 12px 0;}.box{width…...

【云原生】k8s集群命令行工具kubectl之故障排除和调试命令

kubectl之故障排除和调试命令一、describe二、logs三、attach四、exec五、port-forward六、proxy七、cp八、debug8.1、案例1&#xff1a;共享进程空间8.2、案例2&#xff1a;更改启动命令、容器镜像8.3、案例3&#xff1a;调试节点8.4、其他一、describe 显示某个资源或某组资…...

AJAX,Axios,JSON简单了解

一. AJAX简介概念: AJAX(Asynchronous JavaScript And XML): 异步的JavaScript 和XMLAJAX作用:1.与服务器进行数据交换: 通过AJAX可以给服务器发送请求&#xff0c;并获取服务器响应的数据使用了AJAX和服务器进行通信&#xff0c;就可以使用 HTMLAJAX来替换JSP页面了2.异步交互…...

私域流量该如何打造?这套模式直接借鉴

梦龙商业案例分析&#xff0c;带你了解商业背后的秘密 古往今来&#xff0c;消费方与购买方的地位似乎就没有变过&#xff0c;消费者始终是处在被动接受的地位。 但到了现在&#xff0c;其实消费地位早已经不知不觉产生了改变。 就比如以前都是厂家有什么消费者买什么&#…...

【jenkins部署】一文弄懂自动打包部署(前后台)

这里写目录标题序言软件安装jdkmaven配置maven阿里镜像以及本地库位置git安装安装jenkins插件安装环境配置创建项目配置gitee生成gitee WebHookmaven打包验证是否打包成功连接远程服务器并重启服务远程服务器生成私钥配置ssh项目配置ssh脚本vue项目打包nodejs安装下载配置环境变…...

应届生投腾讯,被面试官问了8个和 ThreadLocal 相关的问题。

问&#xff1a;谈一谈ThreadLocal的结构。 ThreadLocal内部维护了一个ThreadLocalMap静态内部类&#xff0c;ThreadLocalMap中又维护了一个Entry静态内部类&#xff0c;和Entry数组。 Entry类继承弱引用类WeakReference&#xff0c;Entry类有一个有参构造函数&#xff0c;参数…...

Linux命令scp用法

本文主要讲的是scp用法如果哪里不对欢迎指出&#xff0c;主页https://blog.csdn.net/qq_57785602?typeblogscp 可以在win系统使用&#xff0c;本文百分之八十写的是win系统怎么使用&#xff0c;在本地上到服务器文件,从服务器下载文件到本地用工具连接到公司服务器时&#xff…...

数据质量怎么监控

目录 一、任务基线级别 二、任务级别 & 表级别 三、字段级别 1. 对指标字段的监控 2. 对维度字段的监控 四、报表级别监控 五、总结 跑了几场面试&#xff0c;数据质量怎么监控是经常被问到的问题&#xff0c;仅次于自我介绍。 因为数据行业发展了几年&#xff0c;数…...

.NET Core 实现Excel的导入导出

.NET Core 使用NPOI实现Excel的导入导出前言NPOI简介一、安装相对应的程序包1.1、在 “管理NuGet程序包” 中的浏览搜索&#xff1a;“NPOI”二、新建Excel帮助类三、调用3.1、增加一个“keywords”模型类&#xff0c;用作导出3.2、添加一个控制器3.3、编写导入导出的控制器代码…...

排好队,一个一个来:宫本武藏教你学队列(附各种队列源码)

文章目录前言&#xff1a;理解“队列”的正确姿势一个关于队列的小思考——请求处理队列的两大“护法”————顺序队列和链式队列数组实现的队列链表实现的队列循环队列关于开篇&#xff0c;你明白了吗&#xff1f;最后说一句前言&#xff1a; 哈喽&#xff01;欢迎来到黑洞晓…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)

目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 ​编辑​编辑 UDP的特征 socke函数 bind函数 recvfrom函数&#xff08;接收函数&#xff09; sendto函数&#xff08;发送函数&#xff09; 五、网络编程之 UDP 用…...

多元隐函数 偏导公式

我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式&#xff0c;给定一个隐函数关系&#xff1a; F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 &#x1f9e0; 目标&#xff1a; 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z​、 …...

Xcode 16 集成 cocoapods 报错

基于 Xcode 16 新建工程项目&#xff0c;集成 cocoapods 执行 pod init 报错 ### Error RuntimeError - PBXGroup attempted to initialize an object with unknown ISA PBXFileSystemSynchronizedRootGroup from attributes: {"isa">"PBXFileSystemSynchro…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析

目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork&#xff08;创建个人副本&#xff09;步骤 2: Clone&#xff08;克隆…...