软件工程实践第二次作业
| 这个作业属于哪个课程 | 2401_CS_SE_FZU |
|---|---|
| 这个作业要求在哪里 | 软件工程实践第二次作业 |
| 这个作业的目标 | 完成对2024年巴黎奥运会相关数据的收集,并实现一个能够对国家排名及奖牌个数统计的控制台程序。 |
| 其他参考文献 | 《构建之法》,CSDN |
目录
- 一.CodeArts项目地址
- 二.PSP表格
- 三.解题思路描述
- 3.1数据来源
- 3.2输出奖牌榜总和:
- 3.3输出每日赛程:
- 四.设计与实现过程
- 五.关键代码展示
- 六.性能改进
- 七.单元测试
- 八.异常处理
- 九.心得体会
一.CodeArts项目地址
二.PSP表格
| PSP | Personal Software Process Stages | 预估耗时(分钟 | 实际耗时(分钟) |
| Planning | 计划 | 10 | 10 |
| • Estimate | • 估计这个任务需要多少时间 | 10 | 10 |
| Development | 开发 | 540 | 570 |
| • Analysis | • 需求分析 (包括学习新技术) | 60 | 120 |
| • Design Spec | • 生成设计文档 | 10 | 10 |
| • Design Review | • 设计复审 | 10 | 10 |
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
| • Design | • 具体设计 | 30 | 30 |
| • Coding | • 具体编码 | 360 | 360 |
| • Code Review | • 代码复审 | 20 | 20 |
| • Coding | • 具体编码 | 360 | 360 |
| • Test | • 测试(自我测试,修改代码,提交修改) | 30 | 30 |
| Reporting | 报告 | 70 | 100 |
| • Test Repor | • 测试报告 | 10 | 10 |
| • Size Measurement | • 计算工作量 | 20 | 20 |
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 40 | 60 |
| 合计 | 620 | 710 |
三.解题思路描述
3.1数据来源
首先此次数据来源均通过爬取自央视2024巴黎奥运会,通过浏览器开发者模式检查打开网站是服务器传输的数据,找到了奖牌榜和每日赛程对应的json文件。通过java爬虫爬取并解析。


3.2输出奖牌榜总和:

3.3输出每日赛程:
首先赛程对应的json有多个,不同的日期的赛程有不同的json,因此在爬取json时需要将url中日期进行修改,以爬取我们所需要的日期的json。

四.设计与实现过程
首先,应要求新建以学号命名的文件夹并将项目自带的example下的src复制过来,标记为源码目录(蓝色),再新建一个test文件夹标记为测试源根(绿色)。在src下新建data目录标记为资源目录,将获取的冬奥会赛程数据(json文件)都放在此目录下,在src下创建“OlyFunction”java类来编写项目所需要的各种方法。
在经过几次修改后,放宽了对于第三方json解析库的限制,我选择使用java语言,所以使用了Gson来解析json,比起手动解析,代码简洁很多,难度也低很多。
com.google.code.gson
gson
2.8.6
并添加该配置进入IDEA
在该java类下,
编写gettotal方法解析并获取奖牌榜实体类,
编写getschedule方法解析并获取每日赛程实体类
编写scheduleout和totalout来输出这些数据
同时src下还应建立容纳json数据的两个实体类
覆盖率测试图

五.关键代码展示
每日赛程实体类


输出奖牌总数实体类


六.性能改进
完成时间较久,对性能改进方面还没有完整的实现,主要想更加完善一下代码
七.单元测试
输出奖牌榜

输出赛程


日期输入错误
结果:

八.异常处理
output.txt中输出内容会出现乱码,即使编译使用UTF—8
改进方式
使用java -Dfile. encoding=utf-8
jar 0lympicsserach.jar input.txt output.txt
在终端进行改进。实现正常输出
九.心得体会
这次作业还是很有难度,对自己本身不熟练来说,就更加难上加难,只能完成一部分的需求,并不能完整的完成所有的作业要求,还是需要提升自己,难以跟上老师的步伐有点,对爬虫等都是0基础一点一点认知,整个过程还是很痛苦的,差点就破防了每次。至少通过这次作业,对该知识点有了点新的认识,算是基本的入门了又。
相关推荐
PairProject:W班软件工程实践结对第二次作业仓库
结对第二次作业-顶会热词统计的实现为了不遗漏作业内容,这里有一个清单检查表方便同学们快速检阅。fork仓库,和伙伴商讨如何通过github协作/代码规范等编程实现功能一,操作爬取的论文列表功能二,爬取
软件工程第二次作业 计算机学院
在计算机科学领域,软件工程是一门综合性的学科,它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试和维护。这份“软件工程第二次作业”显然旨在让学生深入理解和实践这一过程。
2024年机器人软件工程学课程作业项目仓库_包含四次作业任务_第一次作业使用OpenCV实现图片显示功能_第二次作业开发简易聊天程序_第三次作业构建消息发布订阅系统_期末大作业完成.zip
在2024年机器人软件工程学课程中,学生们将接触到一系列实践性极强的作业项目,这些项目被系统地组织在了一个专门的课程作业项目仓库中。
第二次作业.zip
软件工程实践也是IT课程中的重要部分。学生们可能需要学习如何使用版本控制系统(如Git),进行代码管理和协作。他们可能需要提交代码、创建分支、合并代码,并理解冲突解决的过程。
2024年机器人软件工程学课程作业项目仓库-包含四次作业任务-第一次作业使用OpenCV实现图片显示功能-第二次作业开发简易聊天程序-第三次作业构建消息发布订阅系统-期末大作业完成.zip
通过这一作业,学生将掌握使用Python语言结合OpenCV进行图像处理的基础技能。第二次作业则需要学生开发一个简易的聊天程序。


