🏠 Home 

🚀🚀🚀🚀国科大自动评教

国科大自动评教脚本, 这个脚本可以帮助你一键生成评教内容。

// ==UserScript==
// @name         🚀🚀🚀🚀国科大自动评教
// @namespace     auto_class_evaluation
// @version       2.6.5
// @description  国科大自动评教脚本, 这个脚本可以帮助你一键生成评教内容。
// @author       LLinkedList771
// @run-at       document-start
// @match        https://jwxk.ucas.ac.cn/evaluate*
// @match        https://xkcts.ucas.ac.cn/evaluate*
// @match        https://*.ucas.ac.cn/evaluate*
// @homepageURL  https://github.com/linkedlist771/UCAS-AutoClassEvaluation
// @supportURL   https://github.com/linkedlist771/UCAS-AutoClassEvaluation/issues
// @license      MIT
// ==/UserScript==
(function() {
'use strict';
// ----------------- Styles -----------------
function addEvaluationStyles() {
const styles = `
.tools-logger-panel {
position: fixed;
top: 10%;
right: 2%;
background-color: white;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
z-index: 9999;
width: 250px;
}
.head {
font-weight: bold;
margin-bottom: 10px;
}
.switch {
display: inline-block;
vertical-align: middle;
}
.close {
cursor: pointer;
}
`;
const styleSheet = document.createElement("style");
styleSheet.type = "text/css";
styleSheet.innerText = styles;
document.head.appendChild(styleSheet);
}
// ----------------- UI Creation -----------------
function createEvaluationUI() {
const controlDiv = document.createElement('div');
controlDiv.className = 'tools-logger-panel';
controlDiv.innerHTML = `
<div class="head">
<span>评教助手</span>
<span class="close" style="float:right; cursor:pointer; margin-right:5px;">x</span>
</div>
<div class="main">
<button id="courseEvaluationBtn">完成课程评教</button>
<button id="teacherEvaluationBtn">完成老师评教</button>
</div>
`;
document.body.appendChild(controlDiv);
controlDiv.querySelector(".close").onclick = function() {
controlDiv.remove();
};
// 重新为按钮添加事件监听器
document.getElementById("courseEvaluationBtn").addEventListener("click", performCourseEvaluation);
document.getElementById("teacherEvaluationBtn").addEventListener("click", performTeacherEvaluation);
}
// ----------------- Evaluation Logic -----------------
function selectAllValue5Inputs() {
const inputs = document.querySelectorAll('input[value="5"]');
inputs.forEach(input => {
input.checked = true;
});
}
function generateRandomCourseFeedback() {
const feedbackOptions = {
1: [
"我最喜欢这门课程的实践性内容。每次上课,老师都会为我们带来真实的案例,让我们亲自动手去解决。这种实践的方式不仅让我更深入地理解了理论,还锻炼了我的实际操作能力,真的受益匪浅。",
"我喜欢这门课的教学方式。老师总是能够用简单易懂的语言解释复杂的概念,课堂上的互动也非常多,每次都能吸引我全神贯注地听课。这种教学方式让我对这个学科产生了浓厚的兴趣。",
"我最喜欢的是课程中的互动环节。每当我们对某个问题有疑惑时,老师都会耐心地为我们解答,并鼓励我们提出自己的看法。这种互动让我感到非常受尊重,也激发了我的学习热情。"
],
2: [
"我认为这门课程的教材需要更新。虽然现有的教材内容很丰富,但有些知识点已经过时了。如果能够引入一些最新的研究成果和技术,我相信这门课程会更加吸引人。",
"我希望有更多的实践机会。理论知识固然重要,但真正能够加深记忆的还是实践。如果能够有更多的实验和项目,让我们亲自动手去做,我相信学习效果会更好。",
"我认为课程的难度可以适当提高。现在的课程内容对我来说稍微有点简单,如果能够加入一些深入的内容,挑战我们的思维,我相信会更有助于我们的成长。"
],
3: [
"我平均每周在这门课程上花费5小时。除了上课的时间,我还会花费大量的时间去复习和预习。我认为只有这样,才能够真正掌握这门课程的内容。每次深入研究一个问题,都会让我有很大的收获。",
"我每周大约花费3小时。虽然时间不长,但我会确保这3小时都是高效的学习时间。我会选择一个安静的地方,全神贯注地学习,确保每分钟都不浪费。",
"我大约每周在这门课上花费7小时。我认为学习就像是锻炼,只有持续不断地努力,才能够取得好的效果。所以我愿意投入更多的时间,确保我能够掌握这门课程的所有内容。"
],
4: [
"我对这个学科#域非常感兴趣。从小我就对这个#域充满了好奇,总是想要探索其中的奥秘。这门课程为我提供了一个很好的##,让我能够深入地学习和研究,每次上课都像是一次探险。",
"在参与这门课之前,我对这个#域知之甚少。但随着学习的深入,我逐渐发现了这个学科的魅力。每一个知识点都像是一个新大陆,等待我去探索。",
"我之前对这个学科#域有一些了解。但这门课程为我打开了一个新的视角,让我看到了更多的可能性。每次上课,我都会有很多新的收获,这让我对学习充满了期待。"
],
5: [
"我经常参与课堂讨论,几乎每次都回答问题。我认为这是一个很好的学习机会,可以让我更深入地理解课程内容。每次参与讨论,都会让我有很大的收获。",
"我总是准时出勤,但不太经常回答问题。我更喜欢在课后深入思考,然后再与老师和同学讨论。这种学习方式让我能够更加深入地理解课程内容。",
"我对课堂的参与度一般。虽然我不常回答问题,但我总是认真听课,确保不错过任何一个知识点。我认为每个人都有自己的学习方式,关键是要确保学到了东西。"
]
};
let selectedFeedback = {};
for (let key in feedbackOptions) {
const randomIndex = Math.floor(Math.random() * feedbackOptions[key].length);
selectedFeedback[key] = feedbackOptions[key][randomIndex];
}
return selectedFeedback;
}
function fillCourseFeedbackTextareas() {
const selectedFeedback = generateRandomCourseFeedback();
// for (let i = 1074; i <= 1078; i++) {
//     const textarea = document.getElementById(`item_${i}`);
//     if (textarea) {
//         textarea.value = selectedFeedback[i - 1073];
//     }
// }
{/* <textarea id="item_1119" name="item_1119" rows="5" cols="100" minlength="15" maxlength="200" class="required" aria-required="true"></textarea> */}
const textareaList = Array.from(document.getElementsByTagName('textarea'));
for (let i = 0; i < textareaList.length; i++) {
const textarea = textareaList[i];
if (textarea) {
textarea.value = selectedFeedback[i + 1];
}
}
}
function selectRandomCourseQualityRating() {
// <input class="required radio" type="radio" id="1125" name="radio_1124" value="" aria-required="true">
const lastFiveRadios = Array.from(document.querySelectorAll('input[type="radio"]')).slice(-5);
const randomRadio = lastFiveRadios[Math.floor(Math.random() * lastFiveRadios.length)];
if (randomRadio) {
randomRadio.checked = true;
}
}
function selectRandomCourseSelectionReasons() {
const checkboxes = Array.from(document.querySelectorAll('input[type="checkbox"]'));
// const checkboxes = Array.from({length: 6}, (_, i) => document.getElementById((1086 + i).toString())).filter(Boolean);
const numToSelect = Math.floor(Math.random() * (checkboxes.length + 1));
checkboxes.sort(() => Math.random() - 0.5);
for (let i = 0; i < numToSelect; i++) {
checkboxes[i].checked = true;
}
}
function performCourseEvaluation() {
selectAllValue5Inputs();
fillCourseFeedbackTextareas();
selectRandomCourseQualityRating();
selectRandomCourseSelectionReasons();
showCourseCompletionAlert();
}
// ----------------- Teacher Evaluation -----------------
function generateRandomTeacherFeedback() {
const feedbackOptions = {
1: [
"这位老师的教学方法非常实用。每次上课,他都能够深入浅出地解释复杂的概念,使得我这样的初学者也能够轻松理解。他的教学方式结合了理论与实践,让我在学习的过程中既能够掌握知识,又能够培养实际操作的能力。",
"我非常喜欢这位老师的互动教学方式。课堂上,他总是鼓励我们提问和发表自己的观点,这使得课堂氛围非常活跃。每次的互动都让我感到受益匪浅,也激发了我的学习兴趣和热情。",
"这位老师总是能够用简单的方式解释复杂的问题。他有一种特殊的能力,可以将难以理解的概念转化为生动有趣的故事,这让我每次上课都感到非常轻松和愉快。他的教学方法不仅让我学到了知识,还让我学会了如何思考。"
],
2: [
"我希望老师能够增加一些实际案例分析。虽然他的课堂上已经有很多实用的内容,但如果能够结合一些真实的案例,我相信会使得学习更加有趣和实用。通过分析真实的案例,我们可以更好地理解理论知识,并学会如何将其应用于实际中。",
"老师的课堂内容非常丰富,但我还是希望能有更多的互动环节。我认为互动是学习的一个非常重要的部分,它可以帮助我们更好地理解和记忆知识。如果能够增加一些小组讨论或者实践活动,我相信会使得课堂更加生动有趣。",
"我建议老师可以考虑使用一些现代教学工具,如多媒体或在线互动##。这些工具不仅可以使得教学内容更加生动有趣,还可以提高我们的学习效率。通过在线互动##,我们还可以与其他同学进行交流和讨论,这将大大增强我们的学习体验。"
]
};
let selectedFeedback = {};
for (let key in feedbackOptions) {
const randomIndex = Math.floor(Math.random() * feedbackOptions[key].length);
selectedFeedback[key] = feedbackOptions[key][randomIndex];
}
return selectedFeedback;
}
function findTeacherFeedbackTextareas() {
var textareas = document.getElementsByTagName('textarea');
return Array.from(textareas)
}
function fillTeacherFeedbackTextareas() {
const selectedFeedback = generateRandomTeacherFeedback();
const textareas = findTeacherFeedbackTextareas();
textareas.forEach((textarea, index) => {
if (textarea) {
textarea.value = selectedFeedback[index + 1];
}
});
}
function performTeacherEvaluation() {
// 1.完成自动评分
selectAllValue5Inputs();
// 2.完成对老师的评价
fillTeacherFeedbackTextareas();
// 3.提示用户手动提交
showTeacherCompletionAlert();
}
// ----------------- Notifications -----------------
function showCourseCompletionAlert() {
alert("课程评教已完成, 请手动提交!");
}
function showTeacherCompletionAlert() {
alert("老师评教已完成, 请手动提交!");
}
// ----------------- Initialization -----------------
addEvaluationStyles();
// 确保在DOM完全加载后再创建UI
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', createEvaluationUI);
} else {
createEvaluationUI();
}
})();