博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE1
作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE1/homework/11110
作业目标 编写程序完成云班课成绩计算
作业源代码 https://gitee.com/xie-qiqin/personal
学号 211806416

记录自己的代码行数,需求分析时间,编码时间

代码行数 225行
需求分析时间 2h
编码时间 6h

云班课期末总分计算程序需求分析思路

需求分解:

  1. 获取并解析网页取得每个模块的经验: getScore(String filepath)
  2. 计算两个网页相同模块的经验值总和:getSection_Total(String small, String all) 内部调用 getScore(String filepath)用HashMap将对应值相加,外部保存结果给total
  3. 计算个人期末所得总分: totalScore(HashMap<String, Integer> total, Double before, Double base, Double test, Double program, Double add)
    该编程方法为自底向上模式,先计算好各个网页的数据,再相加,最后用公式计算总和,该方法的优势在于先搞定需要的每个模块,再在一个总的模块上进行整合,比较符合数学的逻辑,在事先知道用什么模块方法的情况下,用此模式相对于自顶向下而言复杂度较小,比较容易想到。

不会的知识的学习过程、修改优化的过程

1.Jsoup 起初想通过上学期所学的解析文件的方法来解析文件,但虽然成功解析,由于无法很好的定位经验值所在的代码,于是通过上网查阅资料的方式知道还有一个库交Jsoup(这里我叫它鸡汤库),通过在线查阅帮助文档可知里面还有两个类:Element(s),Document.Document用来保存解析的H5代码,通过调用Element(s)的方法来定位经验,当然其间用HBuilter来查看网页代码,不停地数节点,发现排布规律。
2.Jsoup导入:Jsoup并非java自带的库,需要去官网https://jsoup.org下载查看帮助文档,下载完之后放到jre文件下,进入eclips单击项目工程,点击file->Properties->Java Build Path->libiaries->Add External Jre...,这样就把Jsoup加进去了。
软件工程与UML-----云班课经验计算

参考资料

Jsoup 官网以及Api: https://jsoup.org
CSDN:https://blog.csdn.net/ProgramChangesWorld/article/details/47134255?utm_source=blogkpcl0&biz_id=102&utm_term=jsoup读取html文件的目标数据&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-47134255&spm=1018.2118.3001.4187

不足之处,以及收获

在上这门课之前已经明白自己编码能力弱,同样的一道题目我花的时间比其他人多,在上完第一次的软件工程与UML课后我发现首先要改变自己的编程习惯,拿到题目不要一开始就打代码,要先构思好方法和框架,进行需求分析,其次,通过这次作业也明白了编码能力弱其实是基础知识不牢固,有些问题没有想到可以用那些知识来解决,确用了更麻烦的方法,因此需要抽一段时间来复习一下之前学过的知识,尤其是I/O流和正则表达式,总之这次作业发现了不足,然我有了提升的方向。