212 lines
11 KiB
HTML
212 lines
11 KiB
HTML
<!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<=T</code> 改成 <code>i<=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 少了 >>、把 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 <= T(永远成立,程序停不下来),应该是 i <= T</span></li>
|
||
<li><span class="pill ac">🎉 第 3 次</span><span><b>通过!</b>循环条件和输出全部修正</span></li>
|
||
</ul>
|
||
<div class="note">📌 超时不可怕,它说明程序已经在「跑」了——而且是你自己把 1<=T 找出来改成 i<=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 <<、输入 cin >>、条件只写成语句,把第一讲的代码抄一遍当字帖;循环写完默跑一圈三个数字(i=1、i<=T、i++)。</p>
|
||
</div>
|
||
|
||
<div class="footer">
|
||
数据来源:OJ 课程反馈接口(教师视角,只读)| 生成:2026-09-10<br>
|
||
本反馈由授课教师审核后发放;内容只描述学习习惯与方法,与孩子的人格评价无关。
|
||
</div>
|
||
|
||
</div>
|
||
</body>
|
||
</html>
|