zoukankan      html  css  js  c++  java
  • 第一次个人编程作业:我的分数我做主

    博客班级 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上还是用了不少时间。只能说我平时很少做有点困难的作业,对于前端的知识
    也没有什么跟进还有部分基础知识薄弱。

  • 相关阅读:
    Unix & Linux 教程学习_2
    Unix & Linux 教程学习
    再次测试一下markdown
    黑马程序员-OC练习作业
    黑马程序员-根据本地地址计算文本中有多少行的代码
    黑马程序员-OC常见结构体NSRange、NSPoint、NSSize、NSRect
    黑马程序员-OC内存管理的初步认识
    黑马程序员-OC的构造方法init以及自定义构造方法
    黑马程序员-OC的三大特性:封装、继承、多态
    黑马程序员-OC的类和对象的初步认识
  • 原文地址:https://www.cnblogs.com/211806413wangyijun/p/13661815.html
Copyright © 2011-2022 走看看