这个作业属于哪个课程 | https://bbs.csdn.net/forums/ssynkqtd-01 |
---|---|
这个作业要求在哪里 | https://bbs.csdn.net/topics/613513116 |
这个作业的目标 | 完成对澳大利亚网球公开赛相关数据的收集,并实现一个能够对赛事数据进行统计的控制台程序 |
其他参考文献 | CSDN |
GitCode项目地址
https://gitcode.net/m0_61730655/project-java
## PSP表格
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 40 |
• Estimate | • 估计这个任务需要多少时间 | 1100 | 1185 |
Development | 开发 | 1020 | 1095 |
• Analysis | • 需求分析 (包括学习新技术) | 120 | 130 |
• Design Spec | • 生成设计文档 | 20 | 20 |
• Design Review | • 设计复审 | 20 | 20 |
• Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | 10 | 10 |
• Design | • 具体设计 | 90 | 100 |
Coding | • 具体编码 | 560 | 600 |
• Code Review | • 代码复审 | 140 | 145 |
• Test | • 测试(自我测试,修改代码,提交修改) | 60 | 70 |
Reporting | 报告 | 50 | 50 |
• Test Repor | • 测试报告 | 20 | 20 |
• Size Measurement | • 计算工作量 | 10 | 10 |
• Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | 20 | 20 |
合计 | 1100 | 1185 |
解题思路描述
问题1:怎么读取JSON文件
用FileReader和StringBuffer读取JSON文件
问题2:怎么解析JSON文件
用JSONObject和JSONArray进行解析,根据JSON文件逐层解析出需要的内容,最后汇总输出
关键代码展示
FileReader fileReader = new FileReader(file);
Reader reader = new InputStreamReader(new FileInputStream(file), "Utf-8");
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
String jsonStr = sb.toString();
return jsonStr;
JSONObject parse = (JSONObject)JSONObject.parseObject(json);
JSONArray players=parse.getJSONArray("players");
for(Object player:players) {
JSONObject jsonObject=(JSONObject)player;
String full_name=jsonObject.getString("full_name");
String gender=jsonObject.getString("gender");
String nationality=jsonObject.getString("nationality");
filewriter.write("full_name:"+full_name+"\r\n"+"gender:"+gender+"\r\n"
+"nationality:"+nationality+"\r\n"+"-----"+"\r\n");
}
性能改进
- 格式化输出结果
- 接口封装
单元测试
- input.txt
p
players
result 0116
- output.txt
输入错误
full_name:Radu Albot
gender:male
nationality:Moldova
time:1:34
winner:M. Sakkari
score:1:6|4:6
异常处理
在输入错误,找不到文件等情况时发现异常并输出提示,使用try,catch语句处理异常
心得体会
在本次作业的过程中我学会了如何更科学的处理问题,包括如何思考,如何写计划等方面。同时也对软件工程有了更加深刻的了解。同时也意识到了自己代码规范上的不足,这些问题都将提醒我在以后的学习工作中要更加仔细,更加完善自己。