第一次个人编程作业:我的分数我做主
博客班级 | https://edu.cnblogs.com/campus/fzzcxy/2018SE2/ |
---|---|
作业要求 | https://edu.cnblogs.com/campus/fzzcxy/2018SE2/homework/11169 |
作业目标 | 学会git的基本使用,本地仓库与码云仓库传输文件,学会使用jsoup对指定网页进行数据爬虫并统计 |
作业源代码 | https://gitee.com/naibius/personal/ |
学号 | 211806362 |
一、完成统计
代码一共102行,总耗时共7小时,其中需求分析时间1小时,编码时间6小时。
二、步骤分析
-
首先,对读取已创建的配置文件中的数据:
Properties p =new Properties(); p.load(new FileInputStream("total.properties")); double Pbefore/Pbase/Ptest/Pprogram/Padd = Double.parseDouble(p.getProperty("before"));
-
接着,对指定网页提取数据,经借鉴同学代码和网络搜索后发现可以通过jsoup对html进行解析:
Document document1 = Jsoup.parse(new File("src/small.html"), "utf-8"); Document document2 = Jsoup.parse(new File("src/all.html"), "utf-8");
-
之后通过对需要的数据进行筛选提取,并计算出总成绩。
-
最后通过git传送给码云仓库。
-
这样分解后使思路更加清晰,提高效率。
三、学习记录、修改优化
-
首先思考如何将html代码解析出来,通过借鉴同学代码和网站查询,发现可以通过安装jsoup包来对html文件进行解析。
Document document1 = Jsoup.parse(new File("src/small.html"), "utf-8"); Document document2 = Jsoup.parse(new File("src/all.html"), "utf-8");```
-
之后对云班课上的活动网页进行检查,发现要查询的文件类名均为:"interaction-row",因此使用选择器进行筛选 。
Elements small = document1.getElementsByAttributeValue("class", "interaction-row"); Elements all = document2.getElementsByAttributeValue("class", "interaction-row");
通过循环判断,改变条件来获取数据。 循环:
for (int 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("条件"))}
获取数据:
Scanner scanner1 = new Scanner(small.get(i).child(1).child(2).children().get(0).children().get(7).text()); temp = scanner1.nextInt(); Hbefore = Hbefore + temp; scanner1.close();
-
计算总成绩打印输出
double Fbefore = Hbefore/Pbefore*0.25*100; double Fbase = Hbase/Pbase*0.3*0.95*100; double Ftest = Htest/Ptest*0.2*100; Pprogram=95; double Fprogram = Hprogram/Pprogram*0.1*100; Padd=90; double Fadd = Hadd/Padd*0.05*100; double total=Fbefore+Fbase+Ftest+Fprogram+Fadd; System.out.println(String.format("%.2f",total));
-
上传到码云仓库
首先使用
git init
将所需目录初始化为Git代码库,之后通过
git add 文件名
来上传需要上传的文件接着使用
git commit -m"注释的内容"
来提交到本地仓库并备注然后将文件提交到gitee
git remote add origin 远程项目的Https地址
最后使用
git push
将代码推送到远程仓库。
四、参考资料
https://blog.csdn.net/cuishouming/article/details/81164410
https://blog.csdn.net/webnum/article/details/94737559