第一次个人编程作业:我的分数我做主

博客班级 https://edu.cnblogs.com/campus/fzzcxy/2018SE2
作业要求 https://edu.cnblogs.com/campus/fzzcxy/2018SE2/homework/11169
作业目标 通过编程算出上学期自己java的成绩,学习规划编程时间,记录自己编码学习过程
作业源代码 https://gitee.com/d1216105802/personal
学号 211806413
一、代码行数:
二、时间分析:
流程 时间
---------- --------------------------------------
思考 30min
学习 120min
编码 150min
测试 10min
Git的搭建与使用 20min
撰写博客 30min
共计 360min
三、思路分析:
本次作业需要我们计算上学期的java的期末成绩,这需要我们从两个云班课上所获的经验值进行加权计算。
首先我们需要从HTML中获得我们的数据。经过搜寻发现了java中有个解析HTML文件的包叫做jsoup。
jsoup包下载:https://jsoup.org/download
导入教程:https://blog.csdn.net/qq_43597899/article/details/98744572
使用教程:https://www.open-open.com/jsoup/
通过jsoup解析HTML
Document doc_small = Jsoup.parse(new File("src\\small.html"), "UTF-8");

之后分析HTML的组成选取关键标签为我们所需的内容进行定位。
通过分析知道了我们所做的作业都在一个class名为interaction-row的div标签。
Elements small = doc_small.getElementsByAttributeValue("class", "interaction-row");

然后筛选输出需要的任务名称。
small.get(i).child(1).child(0).toString().contains("课堂完成")

之后我们需要判断这次作业是否有完成,我利用的是完成作业后经验值样式变为"#8FC31F"。
未完成:

已完成:

small.get(i).child(1).child(2).toString().contains("#8FC31F")
然后通过定位将经验值所在具体位置并将所获得的内容进行过滤。
String str_base = small.get(i).child(1).child(2).children().get(0).children().get(7).text().replaceAll("经验", "");

最后把所得的经验值进行累加。
附上具体操作代码:

for (i = 0; i < small.size(); i++) {
	if (small.get(i).child(1).child(0).toString().contains("课堂完成")) {
	      if (small.get(i).child(1).child(2).toString().contains("#8FC31F")) {
			String str_base = small.get(i).child(1).child(2).children().get(0).children().get(7).text().replaceAll("经验", "");
			double fbase = Float.parseFloat(str_base);
			base += fbase;
		}
	}
}

其他任务以此类推。

再然后我们需要一份配置文件用于计算加权后的经验值。

Properties pps = new Properties();
pps.load(new FileInputStream("src\\total.properties"));
double tt_before = Double.parseDouble(pps.getProperty("before"));
double tt_test = Double.parseDouble(pps.getProperty("test"));
double tt_base = Double.parseDouble(pps.getProperty("base"));
double tt_program = Double.parseDouble(pps.getProperty("program"));
double tt_add = Double.parseDouble(pps.getProperty("add"));
base = base / tt_base * 100 * 0.3;
before = before / tt_before * 100 * 0.25;
test = test / tt_test * 100 * 0.2;`
program = program / tt_program * 100 * 0.1;
add = add / tt_add * 100 * 0.05;
double sum=base+before+test+program+add;
System.out.println(Double.parseDouble(String.format("%.2f",sum)));

最后我们需要配置Git并建立本地仓库与远程仓库并将它们关联起来然后并上传
过程:
ssh -T git@gitee.com连上码云
git add <文件名>上传作业至暂存区
git commit -m"<提交信息>"将作业提交
git push提交至远程仓库

完成本次作业可以说是困难重重,通过这次作业我才知道java中有个jsoup包课以解析HTML
并且我也花了大把的实间去了解jsoup的使用方式,虽说他的使用几乎与前端的dom操作一样
但是用在java上还是用了不少时间。只能说我平时很少做有点困难的作业,对于前端的知识
也没有什么跟进还有部分基础知识薄弱。

posted @ 2020-09-13 16:09  粥鱼  阅读(201)  评论(4编辑  收藏  举报