【无标题】

这个作业属于哪个课程软件工程实践-2023学年-W班社区-CSDN社区云
这个作业要求在哪里 软件工程实践第二次作业——个人实战
这个作业的目标完成对世界游泳锦标赛跳水项目相关数据的收集
其他参考文献


作业基本信息…

Gitcode项目地址

仓库地址

PSP表格

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

解题思路描述

问题1

功能1:输出所有选手信息

问题2

功能2:输出决赛每个运动项目结果

思路:

1、先用爬虫代码获取到网页的Jason数据并解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、然后写相关的类实现读取input文件和将数据写入output文件

接口设计和实现过程

1、readInputFromFile(String filename)接口:从指定文件中读取输入内容。当input.txt的内容为players,则会输出参与世界游泳锦标赛跳水项目的所有选手信息到output.txt。当input.txt的内容为result women 1m springboard,则会输出女子1m跳板的决赛结果到output.txt。

2、extractAndSortPlayersInfo(String jsonData, String outputFileName):提取并排序运动员信息,然后将结果写入到指定的输出文件。

3、extractAndSortPlayersInfo 方法:将传入的 JSON 数据转换为 JSONArray 对象。遍历每个运动员对象,提取姓名、性别和国家信息,创建包含这些信息的新 JSONObject,并添加到 playerList 中。使用 Comparator 根据运动员的全名对 playerList 进行排序。将排序后的结果写入到指定的输出文件中。

关键代码展示

1、从指定的网页URL获取JSON数据,返回最终构建完成的 JSON 数据字符串
在这里插入图片描述
2、输出所有运动员信息
在这里插入图片描述
在这里插入图片描述
3、输出比赛结果
在这里插入图片描述

性能改进

在网络连接或数据读取过程中可能会出现各种异常,比如提取不出名字或者分数等异常,因此应该添加适当的异常处理机制能够提高代码的健壮性。

单元测试

异常处理

当程序尝试向 playerList 中添加 playerInfo 时出现异常,会捕获异常并执行下述操作
在这里插入图片描述

心得体会

进一步学习提取和解析网页json数据的过程,学习到如何将json数据转换成字符串,并写入到文件中。在过程中也遇到不少困难,比如导入jar包失败,提取的数据空缺,还需要花更多时间深入学习相关知识。

  • 51
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值