第一次个人编程作业

博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/
作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/homework/11169
作业目标 <学习用jsoup爬取网页,建立使用码云,学习如何记录>
作业源代码 https://gitee.com/its_fucking_great/personal/blob/master/01UML/src/Score.java
学号 <211806335>
  1. 记录自己的代码行数,需求分析时间,编码时间
    • 代码行数:95
    • 需求分析时间:2.5h
    • 编码时间:3.5h
  2. 分解需求的思路
    • 1解析配置文件获取数据
    • 2用jsoup把html导入转成事件
    • 3根据类查找匹配获取经验值(核心计算)
    • 4把经验和配置文件中的数据通过相应算法得出最终成绩
  3. 记录不会的知识的学习过程、记录修改优化的过程
    • 从网上学习了jsoup和配置文件的使用方法在编译过程遇到问题不大
    • 遇到的唯一一个bug是我根据 “参加活动颜色的style” 来查找文本中的经验时,只能得到 “ 已参加” 的文本 不能得到相应的数值
    • 仔细排查后 发现时html 中 两个span 虽然一样的style 但是 一个却加了分号; !!!
  4. 编程思路
    • 前面的需求分析1 2 4 就简单导入和计算,本次作业难点就在3这里详细说说我是怎么一步一步完成的
    • 首先打开HBulider-X打开html 同时删除link的css文件 页面就清爽很多
    • 分析html代码后发现每个题目所在的div都是interaction-row伪类属性的   
    • 用 Elements titleItems = small.getElementsByClass("interaction-row");保存为元素集
    • 然后用foreach遍历元素集
    • 对于每个题目元素,我发现题目的标题 例如 “2020-03-17课前自测:Map集合与泛型 ” 它的span都有一个title属性
    • 然后Element title = titleItem.select("span[title]").first();用select查找含有title属性span的子元素
    • if(title.text().contains("编程题")) 子元素提取文本然后用String中的contains方法查找是否包含需要的题型
    • 如果是,再查找里面是否有绿色文字,提取文本,再从文本提取数字然后相加(提取数字从网上查找的)
    • 这里只是对编程题的查找,然后将红色部分右键提取出方法(因为还有互评经验所以用上了foreach,然后用equals筛除无数字的空字符串)
    • 然后对其他 几个题型直接用上这个方法
  5. 参考链接
  6. 总结
    • 百度真强大,但主要不是百度的功劳 是其他博客园 csdn的分享,所以说我们所规范的挺重要的
    • 还有就是一开始看这次作业真的是一脸懵,然后舍友说用jsoup 然后搜了搜,将别人的使用范例跑一下一下简单很多
    • 还有就是jsoup好强大
    • 总之就是善用工具,善用搜索引擎。就像科技改变生活,古时候可能觉得登天很难,现在却很正常
    • 那些工具 框架 都能让我们写代码更加便利,我们学会善用,提高速度
posted @ 2020-09-14 21:12  林鑫宇  阅读(184)  评论(1编辑  收藏  举报