# lagou_bigdata_assignments **Repository Path**: fqzhang42/lagou_bigdata_assignments ## Basic Information - **Project Name**: lagou_bigdata_assignments - **Description**: 拉勾大数据训练营作业提交 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-21 - **Last Updated**: 2022-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 拉勾大数据训练营作业提交 ## 启动集群 ```bash start-dfs.sh # 根据规划,在h1执行 stop-dfs.sh start-yarn.sh # 根据规划,在h3执行 stop-yarn.sh mr-jobhistory-daemon.sh start historyserver # h1 # 启动Impala # h3 service impala-state-store start service impala-catalog start service impala-server start # h1, h2 service impala-server start impala-shell ``` ## 第一阶段作业 ### 模块一 - Java语言基础 验证视频:链接: https://pan.baidu.com/s/1U3f2ip_3xhkLI_bg2hlZog 提取码: c64u 1. 编程题 - [DayOfYear.java](https://gitee.com/fq-zhang/lagou_bigdata_assignments/blob/master/src/phase01/module1/code/DayOfYear.java) 提示用户输入年月日信息,判断这一天是这一年中的第几天并打印。 2. 编程题 - [PerfectNumber.java](https://gitee.com/fq-zhang/lagou_bigdata_assignments/blob/master/src/phase01/module1/code/PerfectNumber.java) 编程找出 1000 以内的所有完数并打印出来。 所谓完数就是一个数恰好等于它的因子之和, 如: 6=1+2+3 3. 编程题 - [DualColorNumbers.java](https://gitee.com/fq-zhang/lagou_bigdata_assignments/blob/master/src/phase01/module1/code/DualColorNumbers.java) 实现双色球抽奖游戏中奖号码的生成,中奖号码由 6 个红球号码和 1 个蓝球号码组成。 其中红球号码要求随机生成 6 个 1~33 之间不重复的随机号码。 其中蓝球号码要求随机生成 1 个 1~16 之间的随机号码。 4. 编程题 - [ArrayGrowth.java](https://gitee.com/fq-zhang/lagou_bigdata_assignments/blob/master/src/phase01/module1/code/ArrayGrowth.java) 自定义数组扩容规则,当已存储元素数量达到总容量的 80%时,扩容 1.5 倍。 例如,总容量是 10,当输入第 8 个元素时,数组进行扩容,容量从 10 变 15。 5. 编程题 - [FIR.java](https://gitee.com/fq-zhang/lagou_bigdata_assignments/blob/master/src/phase01/module1/code/FIR.java) 使用双重循环实现五子棋游戏棋盘的绘制, 棋盘界面的具体效果如下: ![五子棋游戏棋盘](https://s0.lgstatic.com/i/image/M00/7E/8F/Ciqc1F_POZKAFXPEAAE80Qr3KdQ067.png) ### 模块二 - Java面向对象编程 验证视频:链接: https://pan.baidu.com/s/1LAKJupbDf2D3XFvY_EPTnQ 提取码: acjr 1. 编程实现以下需求:[第一题](https://gitee.com/fq-zhang/lagou_bigdata_assignments/tree/master/src/phase01/module2/code/question1) 定义一个长度为$16\times16$的整型二维数组并输入或指定所有位置的元素值,分别实现二维数组中所有行和所有列中所有元素的累加和并打印。 再分别实现二维数组中左上角到右下角和右上角到左下角所有元素的累加和并打印。 2. 编程实现控制台版并支持两人对战的五子棋游戏。[第二题](https://gitee.com/fq-zhang/lagou_bigdata_assignments/tree/master/src/phase01/module2/code/question2) (1) 绘制棋盘 - 写一个成员方法实现 (2) 提示黑方和白方分别下棋并重新绘制棋盘 - 写一个成员方法实现。 (3) 每当一方下棋后判断是否获胜 - 写一个成员方法实现。 (4) 提示: 采用二维数组来模拟并描述棋盘,棋盘如下: ![img](CgoCgV6lPoeANwWrAADLvd0SGGM133.png) 3. 按照要求设计并实现以下实体类和接口。[第三题](https://gitee.com/fq-zhang/lagou_bigdata_assignments/tree/master/src/phase01/module2/code/question3) 3.1 第一步:设计和实现以下类 (1)手机卡类 特征:卡类型、卡号、用户名、密码、账户余额、通话时长(分钟)、上网流量 行为:显示(卡号 + 用户名 + 当前余额) (2)通话套餐类 特征:通话时长、短信条数、每月资费 行为: 显示所有套餐信息 (3)上网套餐类 特征:上网流量、每月资费 行为:显示所有套餐信息 (4)用户消费信息类 特征:统计通话时长、统计上网流量、每月消费金额 3.2 第二步:设计和实现以下枚举类 手机卡的类型总共有 3 种:大卡、小卡、微型卡 3.3 第三步:实体类的优化 将通话套餐类和上网套餐类中相同的特征和行为提取出来组成抽象套餐类。 3.4 第四步:创建并实现以下接口 (1)通话服务接口 抽象方法: 参数1: 通话分钟, 参数2: 手机卡类对象 让通话套餐类实现通话服务接口。 (2)上网服务接口 抽象方法: 参数1: 上网流量, 参数2: 手机卡类对象 让上网套餐类实现上网服务接口。 3.5 第五步:进行代码测试 ​ 编写测试类使用多态格式分别调用上述方法,方法体中打印一句话进行功能模拟即可。 ### 模块三 - Java核心类库(上) 1. 编程题 编程统计字符串"ABCD123!@#$%ab"中大写字母、小写字母、数字、其它字符的个数并打 印出来。 2. 编程题 编程获取两个指定字符串中的最大相同子串。 如: s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd" 提示: 将短的那个串进行长度依次递减的子串与较长的串比较。 3. 编程题 准备一个 HashMap 集合,统计字符串"123,456,789,123,456"中每个数字字符串出现的次数并打印出来。 如: ​ 123 出现了 2 次 ​ 456 出现了 2 次 ​ 789 出现了 1 次 4. 编程题 使用 List 集合实现简易的学生信息管理系统,要求打印字符界面提示用户选择相应的功 能,根据用户输入的选择去实现增加、删除、修改、查找以及遍历所有学生信息的功能。 其中学生的信息有:学号、姓名、年龄。 要求: 尽量将功能拆分为多个.java 文件。 5. 编程题 使用集合实现斗地主游戏的部分功能,要求如下: (1)首先准备 54 张扑克牌并打乱顺序。 (2)由三个玩家交替摸牌,每人 17 张扑克牌,最后三张留作底牌。 (3)查看三个玩家手中的扑克牌和底牌。 (4)其中玩家手中的扑克牌需要按照大小顺序打印,规则如下: 手中扑克牌从大到小的摆放顺序:大王,小王,2,A,K,Q,J,10,9,8,7,6,5,4,3 ### 模块四 - Java核心类库(下) # 下载链接 - Java SE 16: [Download](https://www.oracle.com/java/technologies/javase-jdk16-doc-downloads.html) | [online](https://docs.oracle.com/en/java/javase/16/) | [Javadoc](https://docs.oracle.com/en/java/javase/16/docs/api/index.html) - Java SE 15: [Download](https://www.oracle.com/java/technologies/javase-jdk15-doc-downloads.html) | [online](https://docs.oracle.com/en/java/javase/15/) | [Javadoc](https://docs.oracle.com/en/java/javase/15/docs/api/index.html) - Java SE 14: [Download](https://www.oracle.com/java/technologies/javase-jdk14-doc-downloads.html) | [online](https://docs.oracle.com/en/java/javase/14/) | [Javadoc](https://docs.oracle.com/en/java/javase/14/docs/api/index.html) - Java SE 13: [Download](https://www.oracle.com/java/technologies/javase-jdk13-doc-downloads.html) | [online](https://docs.oracle.com/en/java/javase/13/) - Java SE 12: [Download](https://www.oracle.com/technetwork/java/javase/documentation/jdk12-doc-downloads-5296039.html) | [Online](http://docs.oracle.com/javase/12/docs/) - Java SE 11: [Download](https://www.oracle.com/technetwork/java/javase/documentation/jdk11-doc-downloads-5097203.html) | [Online](http://docs.oracle.com/javase/11/docs/) - Java SE 10: (former download link now reports “end of support”) | [Online](http://docs.oracle.com/javase/10/docs/) - Java SE 9: [Download](http://www.oracle.com/technetwork/java/javase/documentation/jdk9-doc-downloads-3850606.html) | [Online](http://docs.oracle.com/javase/9/docs/) - Java SE 8: [Download](http://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-2133158.html) | [Online](http://docs.oracle.com/javase/8/docs/)