第二次个人编程作业:代码互改

博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2
作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/homework/11199
作业目标 <通过 Issue 提出问题,修改代码>
作业源代码 https://gitee.com/its_fucking_great/personal
学号 <211806335>

码云仓库要求

  • 我的 Issues 模板
  • 我的Commit 信息

“让我看看你的代码!”


			else if (SAll.get(i).toString().contains("课堂完成")&&SAll.get(i).toString().contains("已参与&nbsp;"))
			{
				SBase = count(SBase, SAll, i);
			}
			else if (SAll.get(i).toString().contains("课堂小测")&&SAll.get(i).toString().contains("已参与&nbsp;"))
			{
				STest = count(STest, SAll, i);
			}
		private static double count(double ex, Elements SAll, int i) {
		Elements SSpan=SAll.get(i).getElementsByTag("span");
		for (int j=0;j<SSpan.size();j++)
		{
			if (SSpan.get(j).text().contains("经验"))
			{
				Scanner sc=new Scanner(SSpan.get(j).text());
				ex=ex+sc.nextDouble();
				break;
			}
		}
		return ex;
	}
  • 黄志辉的码云仓库地址
    我给他的建议:

    首先他已经将获取经验的方法封装起来,而且每个判断下面的内容高度一致
    解析下来就是
  1. 先创建一个文本字符串,获取Elements某个孩子的某个字段
  2. 把这个字段提取出相应的数字(isNum方法) 并与对应经验相加

所以可以直接把isNum(String str)改成isNum(Elements e)

“容我再改一改!”

这里王伟晗给我提了个很好的建议

因为我原本思路是找到经验值对应的span 然后提取数字
但是这种做法可能会忽略了有互评这第二个span的情况
所以在得知问题后想到一个解决方案
我将所有可能会有经验值的span 保存在一个元素集合

Elements exs = titleItem.select("span[style='color:#8FC31F;']");

用增强for循环遍历

for (Element ex : exs) //里面是原先提取数值的方法

这样从原本一个span里的经验,变成多个span里的经验相加,从而实现计算互评

还有一些同学对我规范上做出建议,我也在慢慢改正,增加注释

小结

这次作业让我在帮助同学修改代码中,发现一些其他同学的奇思妙想,也发现了自己的一些不足,同学的建议都挺好的。
我认识到如果仅仅局限于自己的代码,就很难得到成长。
我也渐渐的提高了自己阅读他人代码的能力,对开发更加熟悉,这样感觉对今后项目开发时团队合作很有帮助。

posted @ 2020-09-21 01:28  林鑫宇  阅读(210)  评论(0编辑  收藏  举报