第一次编程作业
博客班级 | https://edu.cnblogs.com/campus/fzzcxy/2018SE2 |
---|---|
作业要求 | https://edu.cnblogs.com/campus/fzzcxy/2018SE2/homework/11169 |
作业目标 | <git的使用 html页面的解析> |
作业源代码 | https://gitee.com/wang-weihan/personal |
学号 | <211806344> |
代码行数和时间
- 代码行数:150行。
- 分析时间:分析时间 30min,编码时间 120min。
思路
- 第一个模块:解析html文件
因为从未接触过解析html文件,所以从一开始从网上查找文件得到通过jsuop可查找html文件的页面元素,既然可以获得元素那就开始进行下一步分析大小班课的html页面代码的规律。
- 第二个模块:分析html代码规律
可以发现活动都是的区域都是属于‘div[class = interaction-row]’的一类和有无参与活动可以通过颜色进行判断,这样就可以进行提取。
- 第三个模块:分析分数计算规则
编程
1. 解析html文件,变量的设置
org.jsoup.nodes.Document smalldocument= Jsoup.parse(new File("small.htm"), "utf-8");
通过jsoup解析html文件,并且设置变量。
2.通过标签查找元素
int smallpro_length=smalldocument.select("div[class = interaction-row]").size();
先找出小班课总共又几个活动,在使用循环进入,从一开始的观察html中发现第二个span的文本域是活动的名称可以用来分辨题目的类型。
boolean isjoin = smalldocument.select("div[class = interaction-row]").get(i).select("span[style='color:#8FC31F']").text().contains("已参与");
然后要判断学生是否参与了了此次活动,通过颜色查找然后到标签的文本域然后判断是否参与。
String experience =pro.get(smallprospan_length-1).text();
if(smallproname.contains("附加题")&&isjoin==true) {
add +=trans(experience);
}
if(smallproname.contains("编程题")&&isjoin==true) {
program +=trans(experience);
}
if(smallproname.contains("课堂完成")&&isjoin==true) {
base +=trans(experience);
}
if(smallproname.contains("课堂小测")&&isjoin==true) {
test+= trans(experience);
}
经验值的文本域是最后一个span标签,所以可以提取文本域在进行从字符串中提取数字可以获得活动的经验值,最后通过if语句判断题目类型和是否参与进行活动经验值的加分。
public static int trans(String str) {
String str2="";
if(str != null && !"".equals(str)){
for(int i=0;i<str.length();i++)
if(str.charAt(i)>=48 && str.charAt(i)<=57)
str2+=str.charAt(i);
}
int str3 = Integer.parseInt(str2);
return str3;
3.分数计算规则
遇到问题
- 1.打开编译器后设置了变量便一筹莫展,一点思路都没有,从0到1都是困难的,最后也是在同学的帮助和自己通过查阅获得的思路能够将此题写出,但是代码还是存在着一些的问题,如大班课的活动是否参与,大班课的活动是否参与只能通过颜色判断,而我小班课用的是文本的判断,所以在经验值上应该是要稍微比正确的略高。
- 2.在使用git上传到远程仓库是遇到了
这样的错误,在查阅了解到git提交改动到缓存,要push的时候不会将本地所有的分支都push掉,所以出现这个问题。那么我们就需要新建分支提交改动然后合并分支。
参考文献
https://www.cnblogs.com/sam-uncle/p/10922366.html
https://blog.csdn.net/qq_33527943/article/details/80418439
https://blog.csdn.net/weixin_43264399/article/details/87350219
https://jsoup.org/apidocs/