软件工程实践第二次作业

yqkun yqkun 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个作业属于哪个课程2401_CS_SE_FZU
这个作业要求在哪里软件工程实践第二次作业
这个作业的目标完成对2024年巴黎奥运会相关数据的收集,并实现一个能够对国家排名及奖牌个数统计的控制台程序。
其他参考文献《构建之法》,CSDN

目录

  • 一.CodeArts项目地址
  • 二.PSP表格
  • 三.解题思路描述
  • 3.1数据来源
  • 3.2输出奖牌榜总和:
  • 3.3输出每日赛程:
  • 四.设计与实现过程
  • 五.关键代码展示
  • 六.性能改进
  • 七.单元测试
  • 八.异常处理
  • 九.心得体会

一.CodeArts项目地址

本地仓库地址
助教仓库地址

二.PSP表格

PSPPersonal Software Process Stages预估耗时(分钟实际耗时(分钟)
Planning计划1010
• Estimate• 估计这个任务需要多少时间1010
Development开发540570
• Analysis• 需求分析 (包括学习新技术)60120
• Design Spec• 生成设计文档1010
• Design Review• 设计复审1010
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)2020
• Design• 具体设计3030
• Coding• 具体编码360360
• Code Review• 代码复审2020
• Coding• 具体编码360360
• Test• 测试(自我测试,修改代码,提交修改)3030
Reporting报告70100
• Test Repor• 测试报告1010
• Size Measurement• 计算工作量2020
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划4060
合计620710

三.解题思路描述

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协作/代码规范等编程实现功能一,操作爬取的论文列表功能二,爬取

ywnwx

软件工程第二次作业 计算机学院

在计算机科学领域,软件工程是一门综合性的学科,它涵盖了软件开发的整个生命周期,包括需求分析、设计、编码、测试和维护。这份“软件工程第二次作业”显然旨在让学生深入理解和实践这一过程。

Mingyuan Deng

2024年机器人软件工程学课程作业项目仓库_包含四次作业任务_第一次作业使用OpenCV实现图片显示功能_第二次作业开发简易聊天程序_第三次作业构建消息发布订阅系统_期末大作业完成.zip

在2024年机器人软件工程学课程中,学生们将接触到一系列实践性极强的作业项目,这些项目被系统地组织在了一个专门的课程作业项目仓库中。

2501_91769822

第二次作业.zip

软件工程实践也是IT课程中的重要部分。学生们可能需要学习如何使用版本控制系统(如Git),进行代码管理和协作。他们可能需要提交代码、创建分支、合并代码,并理解冲突解决的过程。

weixin_64193024

2024年机器人软件工程学课程作业项目仓库-包含四次作业任务-第一次作业使用OpenCV实现图片显示功能-第二次作业开发简易聊天程序-第三次作业构建消息发布订阅系统-期末大作业完成.zip

通过这一作业,学生将掌握使用Python语言结合OpenCV进行图像处理的基础技能。第二次作业则需要学生开发一个简易的聊天程序。

taozodew123
评论
收藏 已收藏
分享
返回顶部
yqkun
2401_CS_SE_FZU 113 成员 865 内容