java score_Score.java

2023-11-03

package Score;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.util.Properties;

import java.util.Scanner;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

public class Score {

public static void main(String[] args) throws FileNotFoundException, IOException {

// 读取配置文件

Properties pf = new Properties();

pf.load(new FileInputStream("src\\Score.properties"));

// 解析这两个html文本

File sf = new File("src\\small.html");

File af = new File("src\\all.html");

Document ds = Jsoup.parse(sf, "UTF-8");

Document da = Jsoup.parse(af, "UTF-8");

//Score score=new Score();

//HashMapsmall=score.parseHtml(args[0]);

//HashMapsmall=score.parseHtml(args[1]);

// 初始化个人经验

/**

* before:课前自测

* base:课堂完成

* test:课堂小测

* program:编程题

* add:附加题

*/

int before = 0;

int base = 0;

int test = 0;

int program = 0;

int add = 0;

double total_before = Integer.parseInt(pf.getProperty("before"));

double total_base = Integer.parseInt(pf.getProperty("base"));

double total_test = Integer.parseInt(pf.getProperty("test"));

double full_program = Integer.parseInt(pf.getProperty("program"));

double full_add = Integer.parseInt(pf.getProperty("add"));

// 云班课经验统计部分

if (ds != null) {

Elements elements = ds.getElementsByAttributeValue("class", "interaction-row");

int temp;

for (int i = 0; i < elements.size(); i++) {

//判断是哪种类型的活动和该活动的完成,可以使用 jsoup 中的 get()、child() 来定位到里面的孩子节点

//找到经验值所在位置的相应节点分离出来,用 element.text() 的方法获取标签中的内容,再将内容放入 Scanner 中使用 nextDouble() 读出数字

//将读出来的经验统计起来

if (elements.get(i).child(1).child(0).toString().contains("课前自测")) {

if (elements.get(i).child(1).child(2).toString().contains("color:#8FC31F")) {

Scanner sc = new Scanner(

elements.get(i).child(1).child(2).children().get(0).children().get(10).text());

temp = sc.nextInt();

before += temp;

}

} else if (elements.get(i).child(1).child(0).toString().contains("课堂完成")) {

if (elements.get(i).child(1).child(2).toString().contains("已参与 ")) {

Scanner sc = new Scanner(

elements.get(i).child(1).child(2).children().get(0).children().get(7).text());

temp = sc.nextInt();

base += temp;

}

} else if (elements.get(i).child(1).child(0).toString().contains("课堂小测")) {

if (elements.get(i).child(1).child(2).toString().contains("已参与 ")) {

Scanner sc = new Scanner(

elements.get(i).child(1).child(2).children().get(0).children().get(7).text());

temp = sc.nextInt();

test += temp;

}

} else if (elements.get(i).child(1).child(0).toString().contains("编程题")) {

if (elements.get(i).child(1).child(2).toString().contains("已参与 ")) {

Scanner sc = new Scanner(

elements.get(i).child(1).child(2).children().get(0).children().get(7).text());

temp = sc.nextInt();

program += temp;

}

} else if (elements.get(i).child(1).child(0).toString().contains("附加题")) {

if (elements.get(i).child(1).child(2).toString().contains("已参与 ")) {

Scanner sc = new Scanner(

elements.get(i).child(1).child(2).children().get(0).children().get(10).text());

temp = sc.nextInt();

add += temp;

}

}

}

}

if(da != null) {

Elements elements = da.getElementsByAttributeValue("class", "interaction-row");

int temp;

for(int i = 0; i < elements.size(); i++) {

if (elements.get(i).child(1).child(0).toString().contains("附加题")) {

if (elements.get(i).child(1).child(2).toString().contains("已参与 ")) {

Scanner sc = new Scanner(

elements.get(i).child(1).child(2).children().get(0).children().get(10).text());

temp = sc.nextInt();

add += temp;

}

}

}

}

//经验值换算百分制成绩

double result_before = before / total_before * 100* 0.25;

double result_base = base / total_base * 100 * 0.3* 0.95;

double result_test = test / total_test * 100 * 0.2;

double result_program = program / full_program *100 * 0.1*0.95;

double result_add = add / full_add * 100 * 0.05*0.9;

//最终求取所获得的经验值

double total_score = (result_add + result_base + result_before + result_program + result_test)*0.9 + 6;

System.out.println(String.format("%.2f", total_score));

//static int getScore(String filepath) throws IOException {

// File file = new File(filepath);

// InputStream inputStream = null;

// try {

// inputStream = new FileInputStream(file);

//

// } catch (FileNotFoundException e) {

// // TODO Auto-generated catch block

// e.printStackTrace();

// }

// StringBuilder stringBuilder = new StringBuilder("");

//

// InputStreamReader ipr = new InputStreamReader(inputStream, "UTF-8");

// BufferedReader br = new BufferedReader(ipr);

// String line = null;

// while ((line = br.readLine()) != null) {

// stringBuilder.append(line + "\n");

// if(line.contains("

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java score_Score.java 的相关文章

  • leetcode【2023】

    什么是华为OD机试 华为OD机试是华为的笔试 因为是在电脑上做题 所以称为机试 主要用于评估求职者是否适合所申请的职位 华为OD机试通常涵盖了多个测试领域 如算法构造 编程技巧以及错误修复等 其目标是全面评估求职者的基础知识 实践技能和编程
  • gojs 绘制UML连线图

  • A Survey on Deep Transfer Learning 2018 翻译

    A Survey on Deep Transfer Learning 2018 翻译 o 虽然这篇文章是2018年的 不是很新 但是写的通俗易懂 很适合刚接触迁移学习的同学 所以就翻译了 independent and identicall
  • Python基础知识(七):类、对象与魔法方法

    类与对象 1 对象 属性 方法 对象是类的实例 换句话说 类主要定义对象的结构 然后我们以类为模板创建对象 类不但包含方法定义 而且还包含所有实例共享的数据 封装 信息隐蔽技术 我们可以使用关键字 class 定义 Python 类 关键字
  • CSS3 SVG实现可爱的动物哈士奇和狐狸动画

    点击上方公众号 可快速关注 英文 David Khourshid 译文 码农网 小峰 www codeceo com article css3 svg husky and fox html 今天 我想向大家展示如何巧妙地使用HTML CSS
  • 论"大数据"时代下的海量数据存储技术

    高清 长周期呈现海量存储需求 高清已经在安防行业全面铺开应用 除了带给用户能够看得更清的良好视觉感受外 对存储容量的需求亦成几何式增长 例如 前端IPC有130W到500W像素 码流也从有2Mbps到8Mbps 而一个130W像素 8Mbp
  • 开源OCR引擎Tesseract-OCR

    Overview Tesseract的OCR引擎最先由HP实验室于1985年开始研发 至1995年时已经成为OCR业内最准确的三款识别引擎之一 然而 HP不久便决定放弃OCR业务 Tesseract也从此尘封 数年以后 HP意识到 与其将
  • VSCode 必装的 10 个高效开发插件

    本文介绍了目前前端开发最受欢迎的开发工具 VSCode 必装的 10 个开发插件 用于大大提高软件开发的效率 VSCode 的基本使用可以参考我的原创视频教程 VSCode 高效开发必装插件 VSCode Visual Studio Cod
  • jquery val() 获取不到值的问题排查

    表单校验用jquery validation 实现 基本功能很快实现 在测试时发现自定义的一个比较开始结束日期的校验不起作用 var begin param val var reg new RegExp g begin begin repl
  • arcgis 9.3 sde 安装 启动服务问题

    1 arcgis 9 3 注册 服务 命令 sdeservice o create d oracle orcl p sde i esri sde 2 启动 sde 服务 报错 3 以上1命令在机器上执行不认 用以下命令 sdeservice
  • 【DevOps-监控】生产环境是如何落地一套全方位的监控系统

    生产环境监控究竟需什么样的功能 我们试想一下 如果部署一个监控系统到生产环境 需要满足哪些功能呢 既然是监控 肯定需要监控我们的主机资源信息包括cpu 内存 网络 磁盘等信息吧 其次还得监控容器的相关资源信息 然后我们可能还需要历史数据 几
  • uni-app vuex全局计时

    功能需求 在A页面进入时候开始计时中间会去到B页面查看数据 但是并没有销毁当前页面 所以计时一直在 直到在B页面提交数据 才结束计时 在根文件夹创建 store文件夹 同时创建index js文件 import Vue from vue i
  • TensorFlow:实战Google深度学习框架(二)实现简单神经网络

    3 4 TensorFlow实现神经网络 3 4 1 TensorFlow游乐场 3 4 2 前向传播 3 4 3 神经网络参数与TensorFlow变量 变量和张量的关系 变量的三个属性 张量 维度 类型 3 4 4通过TensorFlo
  • flask-sqlalchemy插件使用

    1 Flask SQLAlchemy插件的使用 该插件对SQLAlchemy进行了简单的封装 使得我们可以更加简单的使用 初始化数据库 无需导入create engine from flask import Flask from flask
  • win10怎么设置WiFi与有线优先级

    原文 https blog csdn net u010921682 article details 88964982 经过测试 文章中第二种方式有效 不过我的优先级与原文中的不同 我是wifi优先于有线 如下 二 修改 接口跃点数 这个名词
  • Android的中http协议HttpURLConnection中post请求

    public class MainActivity extends AppCompatActivity private TextView textView Override protected void onCreate Bundle sa
  • Idea里面关于时间date报错Unhandled exception: java.text.ParseException的解决方案

    我一直报这个错找不到 结果是因为我导包的原因 idea自动导包导出来是这个 但是咱们需要的是这个 就不报错了
  • Lerna包管理

    认识lerna 导读 本章节主要讲解Lerna是什么 Lerna有什么用 如何使用Lerna进行npm包管理 大厂的Lerna版本管理策略是怎么做的 Lerna是如何实现本地包依赖管理以及底层原理是什么 读者可以带着这些问题去阅读 使学习事
  • 利用jni将Eclipse与C++、Opencv无缝连接

    利用jni将Eclipse与C Opencv无缝连接 博主 w风的季节 日期 2018 4 11 现在越来越多的大学生实验室或者创新项目需要用到将JAVA与C 之间的混合编程 因此本篇就来讲解一下Eclipse中用java写的APP如何将C

随机推荐

  • Spring Boot favicon.ico自定义设置

    做网页的都知道 网页打开后几乎都会有一个favicn的小图标 但是在spring boot中如何设置呢 下面告诉大家一个自定制的方法 非常简单 1 在配置application properties中加入 spring mvc favico
  • 信息熵,信息增益

    信息熵 信息增益 概要 实例一 实例二 概要 信息增益表示得知特征A的信息而使得类Z的信息的不确定性减少的程度 特征A对数据集D的信息增益 G D A 定义为集合的信息熵 H D 与特征A给定条件下D的信息条件熵 H D A 之差 即公式为
  • 机器学习入门-提取文章的主题词 1.jieba.analyse.extract_tags(提取主题词)

    1 jieba analyse extract tags text text必须是一连串的字符串才可以 第一步 进行语料库的读取 第二步 进行分词操作 第三步 载入停用词 同时对分词后的语料库进行停用词的去除 第四步 选取一段文本分词列表
  • 关于ASP.NET邮件发送的学习心得

    ASP net邮件发送是一种非常常见的功能 它可以让我们在网站中实现发送邮件的功能 比如用户注册成功后发送欢迎邮件 或者是找回密码时发送重置密码邮件等等 在学习ASP net邮件发送的过程中 我总结了以下几点心得 一 SMTP服务器的配置
  • 【解决问题】Transaction was marked for rollback only; cannot commit

    问题现象 导入文件的时候直接报错 Transaction was marked for rollback only cannot commit nested exception is org hibernate TransactionExc
  • JavaScript运算符详解

    JavaScript运算符详解 目录 JavaScript运算符详解 1 算术运算符 1 1 加法运算符 1 1 1 基本运算规则 1 1 2 对象的相加 1 2 余数运算符 1 3 自增和自减运算符 1 4 正负数值运算符 1 5 指数运
  • C单元测试框架——CMockery (3)中文手册

    Cmockery 单元测试框架 翻译的匆忙 没有校验 纰漏之处感谢请指正 转载请注明来自 see see 版权归原文 所有 Cmockery 是一个轻量级的库 作者用它来做C单元测试 目录 动机 概述 执行测试 异常处理 出错处理 断言 断
  • 河南省历年高考人数(2004-2021)

    一年一度高考时 我的高考已经过去15年了 河南高考人数创了新高 搜了一下历年人数 自己画了一个图
  • 前端XMLHttpRequest发送请求

    export function filePreview fileName ftpDownloadPath departmentId let mockXHR new XMLHttpRequest mockXHR open post baseU
  • python中的is None和==None

    1 python代码if not x 和if x is not None 和if not x is None 使用 2 python 中None is 和 的深入探讨 3 Python中为什么要用 is None 来代替 None
  • 服务器怎么设置虚拟网卡,VMWare虚拟网卡配置

    VMWare提供了三种工作模式 它们是bridged 桥接模式 NAT 网络地址转换模式 和host only 主机模式 要想在网络管理和维护中合理应用它们 你就应该先了解一下这三种工作模式 1 bridged 桥接模式 在这种模式下 VM
  • 计算机网路实验三 TCP和UDP协议分析

    计算机网路实验三 TCP和UDP协议分析 一 实验目的及任务 1 熟悉TCP UDP的协议基本原理 2 利用Wireshark对TCP和UDP进行协议分析 二 实验环境 与因特网连接的计算机网络系统 操作系统为windows Wiresha
  • EGL Error : Could not create the egl surface: error = 0x3003

    这个错误一般是屏幕位深参数不正确导致的 修改屏幕对应的fb参数即可 16 24 32等 echo 16 gt sys class graphics fb0 bits per pixel 这里我的屏幕对应的是fb0 如果是屏和fb不对应 也可
  • 通过C#代码实现开启摄像头,截图,录像等功能

    using System using System Collections Generic using System Linq using System Text using System Threading Tasks using Sys
  • 详解 Solidity 事件Event

    很多同学对Solidity 中的Event有疑问 这篇文章就来详细的看看Solidity 中Event到底有什么用 写在前面 Solidity 是以太坊智能合约编程语言 阅读本文前 你应该对以太坊 智能合约有所了解 如果你还不了解 建议你先
  • uni push2.0实现消息推送(在线&离线)

    uni push2 0配置 需要开通uniCloud服务 推荐阿里云 生成证书 安卓 https ask dcloud net cn article 68 ios https docs getui com getui mobile ios
  • Python兼职这么火,千万别被骗了,这里整理了一份兼职要点,搞副业不踩坑!

    程序开发领域有这样一句话 人生苦短 我用Python 这本是开发者大佬Bruce Eckel的金句 Life is short you need Python 有趣的是 很多人并非专职程序员 但却把这句话奉为神谕 所以Python究竟有什么
  • C++ Primer阅读笔记--const限定符的使用

    1 知识点 const 对象必须初始化 const 对象一旦创建后其值不能再改变 因此 const 对象必须初始化 const int k 错误 未被初始化 const int j 42 正确 const对象被初始化 const 对象的共享
  • Linux下创建一个git仓库详细介绍

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 git仓库创建前的准备 注意 引号内请输入你自己设置的名字 和你自己的邮箱 此用户名和邮箱是git提交代码时用来显示你身份和联系方式的 以便其他人看不懂你
  • java score_Score.java

    package Score import java io File import java io FileInputStream import java io FileNotFoundException import java io IOE