人工智能训练师-机考操作指南(系统使用+功能介绍)
·
一、机考系统界面概览
机考系统主界面布局:
┌─────────────────────────────────────────────────────────────┐
│ ┌──────────────────────────────────────────────────────┐ │
│ │ 人工智能训练师(三级)职业技能等级认定考试 │ │
│ │ 考生:张三 准考证号:XXXXXXXXX 剩余时间:01:45:32 │ │
│ └──────────────────────────────────────────────────────┘ │
├───────────────┬─────────────────────────────────────────────┤
│ 题号导航区 │ │
│ │ 题目显示区 │
│ 1 2 3 4 │ │
│ 5 6 7 8 │ 单选题 │
│ 9 10 11 12 │ 以下哪个不属于监督学习的应用场景? │
│ 13 14 15 16 │ │
│ ... │ ○ A. 垃圾邮件分类 │
│ │ ○ B. 房价预测 │
│ 图例: │ ○ C. 客户分群(聚类) │
│ ■ 已答 │ ○ D. 图像识别 │
│ □ 未答 │ │
│ ▣ 标记 │ [上一题] [标记] [下一题] [交卷] │
│ │ │
├───────────────┴─────────────────────────────────────────────┤
│ 状态栏:第 3/105 题 题型:单选题 分值:1分 │
└─────────────────────────────────────────────────────────────┘
二、登录流程
登录操作步骤:
Step 1: 打开考试系统
┌─────────────────────────────────────────┐
│ 输入准考证号:________________ │
│ 输入身份证号:________________ │
│ [登录] [退出] │
└─────────────────────────────────────────┘
Step 2: 核对个人信息
┌─────────────────────────────────────────┐
│ 确认个人信息是否正确: │
│ 姓名:张三 │
│ 身份证号:3201**********1234 │
│ 考试科目:人工智能训练师(三级) │
│ 考试时间:2025-07-15 09:00-11:00 │
│ ───────────────────────────────── │
│ 信息有误请举手。 │
│ 信息无误请点击确认。 │
│ [确认] [有误,举手] │
└─────────────────────────────────────────┘
Step 3: 阅读考生须知
┌─────────────────────────────────────────┐
│ 考生须知(含考场纪律) │
│ ...(约30秒阅读时间)... │
│ ☑ 我已阅读并同意遵守考场纪律 │
│ [开始考试] │
└─────────────────────────────────────────┘
⚠ 注意:
- 登录信息输入错误3次会锁定,需举手请监考处理
- 核对信息时重点检查:姓名、身份证号、考试科目
- 倒计时从9:00准时开始,与是否进入答题页无关
三、答题操作详解
3.1 单选题操作
单选题操作要点:
● 鼠标左键点击选项前的 ○ 圆点即可选中
● 已选中的选项显示为 ● 实心圆点
● 再次点击已选中的选项不会取消(单选必须选一项)
● 可以点击其他选项切换答案(以最后点击为准)
● 底部按钮:[上一题] 切换到上一题
[标记] 标记/取消标记本题
[下一题] 切换到下一题
⚠ 常见误解:很多人以为点击已选项可以"取消选择"留空
但机考系统不允许留空(需重新选择其他答案)
3.2 多选题操作
多选题操作要点:
● 鼠标点击选项前的 □ 方框勾选(可多选)
● 已选中的选项显示为 ☑ 带勾方框
● 点击已选中的选项可取消该选项
● 至少选1项,至多全选
⚠ 注意:
- 多选少选均不得分(一般规则)
- 不确定的选项宁可少选也不要乱选
3.3 判断题操作
判断题操作要点:
● 通常显示为两个按钮:○ 正确 / ○ 错误
● 选中后自动确认(不需要额外点击"确认")
● 切换答案直接点击另一个选项
3.4 简答题操作
简答题操作要点:
● 题目下方会出现文本输入框
● 支持直接键盘输入
● 通常有字数统计显示
● 支持回车分段
● 部分系统支持Ctrl+C/V粘贴(考试环境不一定支持)
⚠ 注意:
- 打字慢的考生要预留更多简答题时间
- 不要用Tab键(可能切换焦点导致误操作)
- 先列要点再展开,避免遗漏
四、核心功能介绍
4.1 题号导航
题号导航面板功能:
┌─────────────────────┐
│ 题号导航 [收起] │
├─────────────────────┤
│ ■1 ■2 ■3 □4 │
│ ■5 ▣6 ■7 ■8 │ ■ = 已答(绿色/蓝色)
│ □9 ■10 ■11 ■12 │ □ = 未答(灰色)
│ ... │ ▣ = 已标记(橙色/黄色)
│ │
│ 题型筛选: │
│ [全部] [单选] [多选]│
│ [判断] [简答] │
│ [只看未答] [只看标记]│
└─────────────────────┘
操作技巧:
● 点击题号直接跳转到该题目
● 先用"只看未答"检查是否有漏题
● 再用"只看标记"回顾疑难题目
● 题号颜色可快速判断答题状态
4.2 标记功能
标记功能的正确使用方式:
┌────────────────────────────────────────────┐
│ 标记功能的三种使用场景 │
├────────────────────────────────────────────┤
│ │
│ 场景1:不确定答案 │
│ → 标记后先随便选一个,回头再看 │
│ → 好处:即使没时间回头也有答案 │
│ │
│ 场景2:想复查的题目 │
│ → 觉得可能有陷阱,标记以示提醒 │
│ │
│ 场景3:需要计算但暂缓的题目 │
│ → 先标记跳过,做完简答再回来算 │
│ │
│ ⚠ 错误用法:空着标记(没选答案) │
│ 正确用法:选一个临时答案 + 标记 │
│ │
└────────────────────────────────────────────┘
4.3 计算器功能
系统自带计算器:
┌─────────────────┐
│ 计算器 [×] │
├─────────────────┤
│ 0 │
├─────────────────┤
│ MC MR MS M+ M- │
│ 7 8 9 / √ │
│ 4 5 6 * % │
│ 1 2 3 - 1/x│
│ 0 . = + C │
└─────────────────┘
功能说明:
● 点击屏幕上的计算器图标或按钮打开
● 支持加减乘除、开方、百分比等基本运算
● MC清内存 / MR读内存 / MS存内存
● 注意:不能带入自己的计算器
4.4 倒计时与提醒
时间管理功能:
● 屏幕顶部始终显示剩余时间(倒计时)
● 最后30分钟:显示变为红色提醒
● 最后10分钟:弹出提醒窗口
● 最后5分钟:系统可能每隔1分钟提醒一次
● 时间到:系统自动提交已答题目
⚠ 重要:
- 系统自动提交时,未答的题目计0分
- 建议提前2-3分钟手动交卷,避免卡点
- 不要等到最后1分钟才开始检查
五、常见操作失误预防
| 操作失误 | 后果 | 预防方法 |
|---|---|---|
| 多选题只选了一个 | 可能遗漏正确答案 | 每道多选逐项审核 |
| 简答误点"下一题"未保存 | 写的内容丢失 | 每写完一段先停顿确认 |
| 误触"交卷"按钮 | 提前结束考试 | 手离鼠标远点,作答时专注题目区 |
| 标记了但没选答案 | 空题得0分 | 标记前先选一个临时答案 |
| Tab键切换到其他控件 | 焦点跑偏 | 简答题只用鼠标和字母数字键 |
| 刷新/关闭页面 | 可能数据丢失 | 不要碰F5/Alt+F4/Ctrl+W |
| 计算器窗口挡住题目 | 来回切换费时间 | 算完立即关闭计算器窗口 |
六、Python 工具类:ComputerBasedExamSim
"""
ComputerBasedExamSim — 机考系统控制台模拟器
用法:模拟机考界面操作,练习答题操作习惯,熟悉系统功能
"""
from enum import Enum
from dataclasses import dataclass, field
from typing import List, Dict, Optional, Tuple
import time as time_module
class QuestionType(Enum):
SINGLE = "单选题"
MULTI = "多选题"
TF = "判断题"
ESSAY = "简答题"
class AnswerStatus(Enum):
UNANSWERED = "□" # 未答
ANSWERED = "■" # 已答
MARKED = "▣" # 已标记
@dataclass
class Question:
"""考试题目"""
qid: int
qtype: QuestionType
stem: str
options: List[str] = field(default_factory=list)
answer: str = "" # 标准答案(模拟用)
user_choice: str = ""
marked: bool = False
is_essay_content: str = "" # 简答题用户输入
def get_status(self) -> AnswerStatus:
if self.marked:
return AnswerStatus.MARKED
elif self.user_choice or self.is_essay_content:
return AnswerStatus.ANSWERED
return AnswerStatus.UNANSWERED
def get_status_symbol(self) -> str:
return self.get_status().value
class ComputerBasedExamSim:
"""机考系统模拟器"""
def __init__(self, total_time: int = 120):
self.total_time = total_time * 60 # 转为秒
self.remaining = self.total_time
self.questions: List[Question] = []
self.current_index = 0
self.exam_started = False
self.exam_submitted = False
self._init_demo_questions()
def _init_demo_questions(self):
"""初始化模拟题目"""
demo = [
(QuestionType.SINGLE, "以下哪个不属于监督学习算法?",
["A. 线性回归", "B. K-Means聚类", "C. 决策树", "D. SVM"], "B"),
(QuestionType.SINGLE, "PSI值用于衡量什么?",
["A. 模型准确率", "B. 模型稳定性", "C. 模型复杂度", "D. 训练速度"], "B"),
(QuestionType.MULTI, "以下哪些是过拟合的处理方法?(多选)",
["A. Dropout", "B. 增加数据量", "C. 减少训练轮数", "D. 减小模型容量"], "ABCD"),
(QuestionType.MULTI, "数据标注质量评估包括哪些维度?(多选)",
["A. 准确率", "B. 一致性", "C. 完整性", "D. 时效性"], "ABCD"),
(QuestionType.TF, "监督学习不需要带标签的训练数据。",
[], "错"),
(QuestionType.TF, "F1-Score是精确率和召回率的调和平均数。",
[], "对"),
(QuestionType.ESSAY, "简述模型过拟合的识别方法和处理策略。",
[], ""),
]
for i, (qtype, stem, options, answer) in enumerate(demo, 1):
self.questions.append(Question(
qid=i, qtype=qtype, stem=stem, options=options, answer=answer
))
def login(self, exam_id: str, id_number: str) -> bool:
"""模拟登录"""
print("\n" + "=" * 58)
print(" 人工智能训练师(三级)职业技能等级认定考试系统")
print("=" * 58)
print(f" 准考证号:{exam_id}")
print(f" 身份证号:{id_number[:3]}**********{id_number[-4:]}")
print(" 考试科目:人工智能训练师(三级)")
print(" 考试时间:120分钟")
print("-" * 58)
print(" 请核对以上信息,确认无误后回车开始考试...")
input(" [按回车开始]")
self.exam_started = True
return True
def show_navigation_panel(self):
"""显示题号导航面板"""
print("\n ┌───────────题号导航───────────┐")
row = " │"
for q in self.questions:
if q.qid == self.current_index + 1:
row += f" [{q.get_status_symbol()}]"
else:
row += f" {q.get_status_symbol()} "
if q.qid % 8 == 0 or q.qid == len(self.questions):
print(f"{row} │")
row = " │"
if row != " │":
print(f"{row} │")
print(" │ ■已答 □未答 ▣标记 │")
print(" └─────────────────────────────┘")
def show_question(self):
"""显示当前题目"""
if not self.questions:
return
q = self.questions[self.current_index]
hours = self.remaining // 3600
minutes = (self.remaining % 3600) // 60
print(f"\n{'─' * 58}")
print(f" 第 {q.qid}/{len(self.questions)} 题 | 题型:{q.qtype.value} "
f"| 剩余时间:{hours:02d}:{minutes:02d}")
print(f"{'─' * 58}")
print(f" {q.stem}\n")
if q.qtype == QuestionType.TF:
print(f" ○ 正确 ○ 错误")
if q.user_choice:
print(f" 已选:{q.user_choice}")
elif q.qtype == QuestionType.ESSAY:
print(" [文本输入区]")
if q.is_essay_content:
print(f" 已输入:{q.is_essay_content[:60]}...")
else:
for opt in q.options:
marker = "●" if opt.startswith(q.user_choice) else "○"
print(f" {marker} {opt}")
def select_answer(self, choice: str):
"""选择答案"""
q = self.questions[self.current_index]
choice_upper = choice.strip().upper()
if q.qtype == QuestionType.TF:
q.user_choice = choice
print(f" 已选择:{choice}")
elif q.qtype == QuestionType.ESSAY:
q.is_essay_content = choice
print(f" 简答内容已保存")
else:
# 单选题或多选题的选择
if q.qtype == QuestionType.SINGLE:
q.user_choice = choice_upper # 单选覆盖
else:
# 多选:切换模式
if choice_upper in q.user_choice:
q.user_choice = q.user_choice.replace(choice_upper, "")
else:
q.user_choice += choice_upper
q.user_choice = "".join(sorted(q.user_choice))
print(f" 当前选择:{q.user_choice}")
self._update_time(10) # 模拟耗时10秒
def toggle_mark(self):
"""切换标记"""
q = self.questions[self.current_index]
q.marked = not q.marked
status = "已标记" if q.marked else "已取消标记"
print(f" [{status}] 第{q.qid}题")
def navigate(self, direction: str):
"""导航到上/下一题"""
if direction == "prev" and self.current_index > 0:
self.current_index -= 1
elif direction == "next" and self.current_index < len(self.questions) - 1:
self.current_index += 1
elif direction == "next":
print("\n ⚠ 已经是最后一题!可以交卷或返回检查。")
return False
self._update_time(2)
return True
def jump_to(self, qid: int):
"""跳转到指定题号"""
index = qid - 1
if 0 <= index < len(self.questions):
self.current_index = index
self._update_time(3)
else:
print(f" 题号{qid}不存在")
def _update_time(self, seconds: int):
"""更新剩余时间"""
self.remaining = max(0, self.remaining - seconds)
if self.remaining == 0:
self.submit()
def get_unanswered(self) -> List[int]:
"""获取未答题号"""
return [q.qid for q in self.questions
if not q.user_choice and not q.is_essay_content]
def get_marked(self) -> List[int]:
"""获取标记题号"""
return [q.qid for q in self.questions if q.marked]
def get_statistics(self) -> Dict:
"""获取答题统计"""
total = len(self.questions)
answered = sum(1 for q in self.questions
if q.user_choice or q.is_essay_content)
marked = len(self.get_marked())
return {
"总题数": total,
"已答": answered,
"未答": total - answered,
"标记": marked,
"完成率": f"{answered/total*100:.1f}%",
}
def submit(self):
"""提交试卷"""
print("\n" + "=" * 58)
print(" ⚠ 确认交卷?交卷后无法继续作答。")
print(f" 已完成:{self.get_statistics()['完成率']}")
unanswered = self.get_unanswered()
if unanswered:
print(f" 未答题号:{unanswered}")
print("=" * 58)
confirm = input(" 确任交卷请输入 'YES':")
if confirm.strip().upper() == "YES":
self.exam_submitted = True
score = self._calculate_score()
print(f"\n 交卷成功!模拟得分:{score}/{len(self.questions)*10}分")
print(" 请安静离场,等待成绩公布。")
else:
print(" 已取消交卷,请继续作答。")
def _calculate_score(self) -> int:
"""计算模拟得分"""
score = 0
for q in self.questions:
if q.qtype == QuestionType.ESSAY:
if len(q.is_essay_content) > 20:
score += 8 # 简答给基础分
elif q.user_choice.upper() == q.answer.upper():
score += 10
return score
def run_interactive_session(self):
"""运行交互式模拟"""
print("\n" + "=" * 58)
print(" 机考系统模拟器 — 请先登录")
print("=" * 58)
exam_id = input(" 准考证号:").strip()
id_number = input(" 身份证号:").strip()
if not self.login(exam_id, id_number):
return
while not self.exam_submitted and self.remaining > 0:
self.show_question()
self.show_navigation_panel()
if self.remaining <= 300:
print(f"\n ⚠ 剩余时间不足5分钟!请尽快完成并检查!")
stats = self.get_statistics()
print(f"\n 统计:已答{stats['已答']}/{stats['总题数']} | "
f"标记{stats['标记']}题 | 未答{stats['未答']}题")
cmd = input("\n [A-E选答案 / N下一题 / P上一题 / J跳转 / "
"M标记 / S统计 / Q交卷]:").strip().upper()
if cmd in "ABCDE":
self.select_answer(cmd)
elif cmd == "N":
self.navigate("next")
elif cmd == "P":
self.navigate("prev")
elif cmd == "M":
self.toggle_mark()
elif cmd == "S":
print(f"\n 详细统计:{self.get_statistics()}")
print(f" 未答题号:{self.get_unanswered()}")
print(f" 标记题号:{self.get_marked()}")
input(" 按回车继续...")
elif cmd == "J":
try:
qid = int(input(" 跳转到题号:"))
self.jump_to(qid)
except ValueError:
print(" 请输入数字")
elif cmd == "Q":
self.submit()
elif cmd == "T":
# 简答题输入
if self.questions[self.current_index].qtype == QuestionType.ESSAY:
essay = input(" 请输入简答内容:").strip()
self.select_answer(essay)
else:
print(" 未知命令。可用:A-E, N, P, J, M, S, Q, T(简答输入)")
if self.remaining <= 0 and not self.exam_submitted:
print("\n 时间到!系统自动提交试卷。")
# ========== 使用示例 ==========
if __name__ == "__main__":
# 快速演示模式(不交互)
sim = ComputerBasedExamSim(total_time=120)
# 模拟答题过程
sim.login("202507150001", "320123199001011234")
# 做第1题
sim.select_answer("B")
sim.navigate("next")
# 做第2题标记
sim.select_answer("A")
sim.toggle_mark()
sim.navigate("next")
# 做第3题(多选)
sim.select_answer("A")
sim.select_answer("B")
sim.select_answer("C")
# 查看统计
stats = sim.get_statistics()
print(f"\n 当前答题统计:{stats}")
print(f" 未答题号:{sim.get_unanswered()}")
print(f" 标记题号:{sim.get_marked()}")
print("\n ──────────────────────────────")
print(" 提示:取消下行注释可进入完整交互模拟")
print(" # sim.run_interactive_session()")
七、考试要点速记表格
| 操作要点 | 说明 | 速记 |
|---|---|---|
| 登录 | 准考证号+身份证号 | 先输信息再核对 |
| 题号颜色 | 绿=已答,灰=未答,橙=标记 | 看颜色知状态 |
| 标记功能 | 不确定时标记+先选一个答案 | 绝不空着标记 |
| 题号跳转 | 点击题号直达 | 用于快速检查 |
| 只看未答 | 筛选未答题目 | 交卷前必用 |
| 计算器 | 系统自带,屏幕调用 | 不能自带计算器 |
| 倒计时 | 最后30分钟变红 | 时刻关注剩余时间 |
| 自动提交 | 时间到自动提交 | 建议提前2min手动交 |
| 简答题 | 注意Tab键陷阱 | 不用Tab,用鼠标 |
| 交卷确认 | 等「提交成功」提示 | 不等确认=可能白考 |
更多推荐



所有评论(0)