Files
ClassFeedback/.pi/skills/class-feedback-report/samples/report-sample.html

212 lines
11 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<!-- 样式参考样例:AI 生成报告时,完整复用本文件的 CSS、卡片结构与文案风格,仅替换内容 -->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>学习反馈单 · 王小明</title>
<style>
:root{
--ink:#334155; --strong:#1e293b; --sub:#64748b;
--paper:#faf8f4; --card:#ffffff; --line:#e8e4dc;
--green:#059669; --green-soft:#ecfdf5; --green-line:#a7f3d0;
--amber:#b45309; --amber-soft:#fffbeb; --amber-line:#fde68a;
--orange:#c2410c; --orange-soft:#fff7ed;
--blue:#2563eb; --blue-soft:#eff6ff;
--violet:#6d28d9; --violet-soft:#f5f3ff;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
color:var(--ink); background:var(--paper);
line-height:1.95; font-size:16.5px; padding:20px 12px 40px;
}
.wrap{max-width:820px;margin:0 auto}
.draft{
text-align:center;color:#a8a29e;font-size:12px;margin-bottom:10px;
}
.hero{
background:linear-gradient(135deg,#0f766e 0%,#0e7490 55%,#4f46e5 130%);
color:#fff;border-radius:20px;padding:30px 30px 24px;margin-bottom:18px;
}
.hero .hello{font-size:14px;opacity:.85;letter-spacing:2px}
.hero h1{font-size:27px;font-weight:700;margin-top:2px}
.hero .sub{opacity:.9;font-size:14px;margin-top:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{
background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.28);
border-radius:999px;padding:4px 14px;font-size:13.5px;
}
.chip b{font-size:14.5px}
.card{
background:var(--card);border:1px solid var(--line);border-radius:16px;
padding:24px 26px;margin-bottom:18px;
}
.card h2{font-size:20px;color:var(--strong);margin-bottom:14px}
.praise{background:var(--green-soft);border:1.5px solid var(--green-line)}
.praise h2{color:var(--green)}
.praise li{margin:8px 0 8px 18px}
.praise b{color:var(--green)}
.bars{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.bar-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bar-label{flex:none;width:88px;font-size:15px;color:var(--strong)}
.bar{flex:1;min-width:180px;height:14px;background:#eee9e0;border-radius:999px;overflow:hidden}
.bar i{display:block;height:100%;border-radius:999px}
.bar-num{flex:none;width:56px;font-size:14.5px;color:var(--sub);text-align:right}
.prob{
border:1px solid var(--line);border-radius:14px;
padding:18px 20px;margin:14px 0;background:#fffdf9;
}
.prob .phead{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:6px}
.prob .pname{font-weight:700;font-size:16.5px;color:var(--strong)}
.prob .pmeta{color:var(--sub);font-size:13px}
.tl{list-style:none;margin-top:10px}
.tl li{
display:flex;gap:10px;align-items:flex-start;
padding:8px 0;border-top:1px dashed var(--line);font-size:15.5px;
}
.tl li:first-child{border-top:none}
.pill{
flex:none;min-width:104px;text-align:center;border-radius:999px;
font-size:13px;font-weight:600;padding:3px 10px;margin-top:3px;white-space:nowrap;
}
.pill.ce{background:var(--amber-soft);color:var(--amber);border:1px solid var(--amber-line)}
.pill.wa{background:var(--orange-soft);color:var(--orange);border:1px solid #fed7aa}
.pill.tle{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}
.pill.ac{background:var(--green-soft);color:var(--green);border:1px solid var(--green-line)}
.note{
background:var(--blue-soft);border-left:4px solid var(--blue);
border-radius:0 12px 12px 0;padding:12px 16px;margin-top:12px;
font-size:14.5px;color:#1e40af;
}
.obj-intro{
background:var(--violet-soft);border:1px solid #ddd6fe;border-radius:12px;
padding:12px 16px;font-size:15px;color:#5b21b6;margin-bottom:16px;
}
.summary p{margin:9px 0;font-size:16px}
.footer{
text-align:center;color:#a8a29e;font-size:12.5px;margin-top:8px;line-height:2;
}
@media (max-width:640px){
body{font-size:15.5px;padding:12px 8px 30px}
.card{padding:18px}
.hero{padding:22px 20px}
.hero h1{font-size:23px}
.bar-label{width:74px;font-size:14px}
.tl li{flex-direction:column;gap:4px}
.pill{min-width:0;align-self:flex-start}
}
@media print{
body{background:#fff;padding:0;font-size:14px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.card,.hero{box-shadow:none;border-radius:10px;break-inside:avoid}
.hero{-webkit-print-color-adjust:exact;print-color-adjust:exact}
.export-btn{display:none}
.draft{display:none}
}
.export-btn{
position:fixed;right:18px;bottom:20px;z-index:9;
border:none;background:#0f766e;color:#fff;cursor:pointer;
border-radius:999px;padding:11px 20px;font-size:15px;font-family:inherit;
box-shadow:0 6px 18px rgba(15,118,110,.35);
}
.export-btn:hover{background:#115e59}
.export-btn:active{transform:scale(.97)}
</style>
</head>
<body>
<div class="wrap">
<div class="draft">教师审核稿 · 审阅后转发家长</div>
<button class="export-btn" onclick="window.print()">🖨️ 导出 PDF</button>
<div class="hero">
<div class="hello">学 习 反 馈 单</div>
<h1>王小明 同学 · 克力周日0830CSP02-01「基础回顾」</h1>
<div class="sub">克力周日0830CSP02 班 | 2026-09-10 | 本讲共 17 题(课堂 7 + 作业 3 + 拓展 7)</div>
<div class="chips">
<div class="chip">🎉 动过的 3 道题 <b>全部订正通过</b></div>
<div class="chip">提交 <b>9</b> 次 · <b>零放弃</b></div>
<div class="chip">解题思路 <b>全部正确</b></div>
</div>
</div>
<div class="card praise">
<h2>🌟 老师的表扬</h2>
<ul>
<li><b>三道题最终全部订正通过,9 次提交没有一次放弃</b>——这股不搞定不罢休的劲头,非常了不起!</li>
<li><b>看得懂编译器的报错</b>:每次报错后都朝着正确的方向修,思路一步都没乱。</li>
<li><b>死循环是自己找到的</b>:把 <code>1&lt;=T</code> 改成 <code>i&lt;=T</code>,说明循环三要素真的理解了。</li>
<li>三道题的<b>解题思路最终都是对的</b>——差的只是「把代码写规范」这一层,这层最容易补!</li>
</ul>
</div>
<div class="card">
<h2>📊 本讲完成情况</h2>
<div class="bars">
<div class="bar-row"><span class="bar-label">课堂练习</span><span class="bar"><i style="width:43%;background:linear-gradient(90deg,#fbbf24,#f59e0b)"></i></span><span class="bar-num">3/7</span></div>
<div class="bar-row"><span class="bar-label">课后作业</span><span class="bar"><i style="width:0%;background:#cbd5e1"></i></span><span class="bar-num">0/3</span></div>
<div class="bar-row"><span class="bar-label">拓展练习</span><span class="bar"><i style="width:0%;background:#cbd5e1"></i></span><span class="bar-num">0/7</span></div>
</div>
</div>
<div class="card">
<h2>💻 编程题:每一次提交都看过了</h2>
<div class="prob">
<div class="phead"><span class="pname">🛍️ 商店折扣</span><span class="pmeta">4 次提交</span></div>
<ul class="tl">
<li><span class="pill ce">✍️ 第 1 次</span><span>变量没有定义——x、y、n、p 直接拿来用,忘了先声明</span></li>
<li><span class="pill ce">✍️ 第 2 次</span><span>补了一半——x y n p 都声明了,但 m1 还是漏了</span></li>
<li><span class="pill ce">✍️ 第 3 次</span><span>变量重复定义——补 m1 的时候没注意 m2 之前已经声明过了</span></li>
<li><span class="pill ac">🎉 第 4 次</span><span><b>通过!</b>声明整理干净,逻辑一点没改就对了</span></li>
</ul>
<div class="note">📌 三次编译错误其实都是同一件事——「<b>先声明、再使用</b>」。第四次你把声明排得整整齐齐,代码马上就通了,说明你完全有能力一次写好!</div>
</div>
<div class="prob">
<div class="phead"><span class="pname">🚀 小杨的爱心快递</span><span class="pmeta">2 次提交</span></div>
<ul class="tl">
<li><span class="pill ce">✍️ 第 1 次</span><span>语法混入了其他写法——cin V 少了 &gt;&gt;、把 if 当成公式赋值、用了 C++ 里不存在的 print()</span></li>
<li><span class="pill ac">🎉 第 2 次</span><span><b>通过!</b>一次把三处全部改对</span></li>
</ul>
<div class="note">📌 第一次的写法像是把解题思路直接「翻译」成了代码——<b>思路其实是对的!</b>第二次一口气改对三处,理解力没问题。接下来练的就是「落笔就用 C++ 的标准写法」。</div>
</div>
<div class="prob">
<div class="phead"><span class="pname">🔋 手机电量显示</span><span class="pmeta">3 次提交</span></div>
<ul class="tl">
<li><span class="pill ce">✍️ 第 1 次</span><span>函数名写错——又用了 print()(C++ 里是 cout)</span></li>
<li><span class="pill tle">⏱️ 第 2 次</span><span>运行超时——循环条件写成 1 &lt;= T(永远成立,程序停不下来),应该是 i &lt;= T</span></li>
<li><span class="pill ac">🎉 第 3 次</span><span><b>通过!</b>循环条件和输出全部修正</span></li>
</ul>
<div class="note">📌 超时不可怕,它说明程序已经在「跑」了——而且是你自己把 1&lt;=T 找出来改成 i&lt;=T 的,<b>循环三要素你是懂的</b>,下次落笔前默念一遍就行。</div>
</div>
<div class="prob">
<div class="phead"><span class="pname">📝 选择题 / 判断题</span><span class="pmeta">还没开始</span></div>
<ul class="tl">
<li><span class="pill tle">小提醒</span><span>本节课的客观题还没有开始做。<b>不着急,先把编程补上就是很大的进步。</b>做到的时候记得:错题直接看讲解,不要反复试答案。</span></li>
</ul>
</div>
</div>
<div class="card summary">
<h2>📖 老师的整体评价</h2>
<p>王小明同学本节课可以概括为:<b>逻辑没问题,规范要跟上</b>。</p>
<p>💪 <b>值得肯定的</b>:三道题 9 次提交全部坚持订正到通过;报错读得懂、修改方向一直是对的;三题的解题逻辑最终全对——「会不会」的问题不存在,纯粹是「怎么把代码写规范」的问题。</p>
<p>🔧 <b>接下来要养的三个小习惯</b>:</p>
<p style="margin:6px 0 6px 12px">① <b>先编译、后提交</b>——编译器说 0 error 才点提交,这一条就能把本次 6 次错误全部消灭;</p>
<p style="margin:6px 0 6px 12px">② <b>动笔前先列变量清单</b>——名字、类型、初值三样写齐再写逻辑(漏声明、重复声明都是这么防住的);</p>
<p style="margin:6px 0 6px 12px">③ <b>C++ 标准写法对照一遍</b>——输出 cout &lt;&lt;、输入 cin &gt;&gt;、条件只写成语句,把第一讲的代码抄一遍当字帖;循环写完默跑一圈三个数字(i=1、i&lt;=T、i++)。</p>
</div>
<div class="footer">
数据来源:OJ 课程反馈接口(教师视角,只读)| 生成:2026-09-10<br>
本反馈由授课教师审核后发放;内容只描述学习习惯与方法,与孩子的人格评价无关。
</div>
</div>
</body>
</html>