1 Star 0 Fork 0

田家英/personal

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
Score.java 4.86 KB
一键复制 编辑 原始数据 按行查看 历史
田家英 提交于 2020-09-20 20:21 . 代码修改
package 第一次个人编程作业;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.Scanner;
import org.jsoup.Jsoup;
import org.jsoup.select.Elements;
public class Score {
public static void main(String[] args) throws IOException {
// 利用 jsoup 解析网页文件
File smallHtml = new File("src\\small.html");
// Document smallSource = Jsoup.parse(smallHtml, "UFT-8", "");
File allHtml = new File("src\\all.html");
// Document allSource = Jsoup.parse(allHtml, "UFT-8", "");
// 导入配置文件
Properties p = new Properties();
p.load(new FileInputStream("src\\total.properties"));
// 获取配置文件的键值
double before = Double.parseDouble(p.getProperty("before"));
double base = Double.parseDouble(p.getProperty("base"));
double test = Double.parseDouble(p.getProperty("test"));
double program = Double.parseDouble(p.getProperty("program"));
double add = Double.parseDouble(p.getProperty("add"));
// 计算获得的总分
zongFen(smallHtml, allHtml, before, base, test, program, add);
}
public static void zongFen(File small_File, File all_File, double before, double base, double test, double program,
double add) {
double myBefore, myBase, myTest, myProgram, myAdd;
myBefore = myBase = myTest = myProgram = myAdd = 0;
try {
org.jsoup.nodes.Document smallSource = Jsoup.parse(small_File, "UTF-8");
org.jsoup.nodes.Document allSource = Jsoup.parse(all_File, "UTF-8");
// 对small.html的相对应的经验累积
if (smallSource != null) {
Elements small = smallSource.getElementsByClass("interaction-row");
for (int i = 0; i < small.size(); i++) {
if (small.get(i).toString().contains("课前自测") && small.get(i).toString().contains("已参与&nbsp;")) {
Elements span = small.get(i).getElementsByTag("span");
for (int j = 0; j < span.size(); j++) {
if (span.get(j).text().contains("经验")) {
Scanner sc = new Scanner(span.get(j).text());
myBefore = myBefore + sc.nextDouble();
break;
}
}
}
if (small.get(i).toString().contains("课堂完成") && small.get(i).toString().contains("已参与&nbsp;")) {
Elements span = small.get(i).getElementsByTag("span");
for (int j = 0; j < span.size(); j++) {
if (span.get(j).text().contains("经验")) {
Scanner sc = new Scanner(span.get(j).text());
myBase = myBase + sc.nextDouble();
break;
}
}
}
if (small.get(i).toString().contains("课堂小测") && small.get(i).toString().contains("已参与&nbsp;")) {
Elements span = small.get(i).getElementsByTag("span");
for (int j = 0; j < span.size(); j++) {
if (span.get(j).text().contains("经验")) {
Scanner sc = new Scanner(span.get(j).text());
myTest = myTest + sc.nextDouble();
break;
}
}
}
if (small.get(i).toString().contains("编程题") && small.get(i).toString().contains("已参与&nbsp;")) {
Elements span = small.get(i).getElementsByTag("span");
for (int j = 0; j < span.size(); j++) {
if (span.get(j).text().contains("经验")) {
Scanner sc = new Scanner(span.get(j).text());
myProgram = myProgram + sc.nextDouble();
break;
}
}
}
if (small.get(i).toString().contains("附加题") && small.get(i).toString().contains("已参与&nbsp;")) {
Elements span = small.get(i).getElementsByTag("span");
for (int j = 0; j < span.size(); j++) {
if (span.get(j).text().contains("经验")) {
Scanner sc = new Scanner(span.get(j).text());
myAdd = myAdd + sc.nextDouble();
break;
}
}
}
}
}
// 对all.html的相对应的经验累积
if (allSource != null) {
Elements all = allSource.getElementsByClass("interaction-row");
for (int i = 0; i < all.size(); i++) {
if (all.get(i).toString().contains("课前自测") && all.get(i).toString().contains("已参与&nbsp;")) {
Elements span = all.get(i).getElementsByTag("span");
for (int j = 0; j < span.size(); j++) {
if (span.get(j).text().contains("经验")) {
Scanner sc = new Scanner(span.get(j).text());
myBefore = myBefore + sc.nextDouble();
break;
}
}
}
}
}
// 计算所得分数
double finalBefore = myBefore / before * 100 * 0.25;
double finalBase = myBase / base * 100 * 0.3 * 0.95;
double finalTest = myTest / test * 100 * 0.2;
program = 95;
double finalProgram = myProgram / program * 100 * 0.1;
add = 90;
double finalAdd = myAdd / add * 100 * 0.05;
double finalScore = (finalBefore + finalBase + finalTest + finalProgram + finalAdd) * 0.9 + 6;
System.out.println(String.format("%.5s", finalScore));
} catch (IOException e) {
System.out.println("解析出错!");
e.printStackTrace();
}
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/tian-jiaying/personal.git
git@gitee.com:tian-jiaying/personal.git
tian-jiaying
personal
personal
master

搜索帮助

Dd8185d8 1850385 E526c682 1850385