SNC 线上班 · 第一期 · Lesson 1 学员手册
SNC 运动健身营养咨询师 · 线上班

Lesson 1 学员手册

2026 年 9 月 · 第一期(内测班)
今日主题:科学基础与评估
姓 名:
组 别:
学员编号:
学习日期:

今日覆盖教材章节:

Ch01 定义、边界与循证基础 Ch02 运动饮食评估 Ch03 身体成分评估 Ch04 运动人群能量需求 Ch05 能量摄入不足与 REDs Ch06 营养生化基础
时间日程
09:00–09:15开场导览:课程定位、手册用法与今日路线
09:15–10:30Ch01 定义、边界与循证基础
10:45–11:25Ch02 运动饮食评估
11:25–12:00Ch03 身体成分评估
13:00–13:45Ch04 运动人群能量需求
13:45–14:30Ch05 能量摄入不足与 REDs
14:45–16:15Ch06 营养生化基础
16:15–17:00复盘研讨:章末思考题、EA 计算作业、Ch07/Ch08 预习布置
本手册为 Lesson 1 课程的课堂学习工作台:所有空白区域供学员课前预习、课中记录与课后复盘填写。 手册中的知识点框架与章节标注均对应课程教材;凡涉及判断与结论之处,以教材与讲师讲授为准, 选择题部分不附答案,请在课上与课后自行订正。
使用说明

使用说明

这本手册怎么陪你度过 Lesson 1

这本手册是 Lesson 1 全天课程的学习工作台,按照"课前 — 课中 — 课后"三个环节设计。 课前的预习单帮助你带着自己的问题进入课堂;课中的笔记页已经印好讲师的讲授节奏、表格框架与关键图示的空框, 你只需要跟随讲授把内容填进去;课后的复盘页用来检验:合上笔记之后,你究竟能默写出多少。

一、课前:先做预习单与前测

建议在开课前一天完成,用时约 90 分钟。手册中为 Ch01–Ch06 各准备了一份课前预习单,每份包含三部分:

另外,请在上课前完成手册开头的前测 5 道选择题。凭直觉作答,不要查阅资料,也不必与人讨论。

二、课中:跟着节奏填骨架

讲师按八个时段推进,笔记页与日程一一对应。每个板块都印好了板块标题与讲师的节奏小标题; 关键表格只印了表头和行标签,单元格留空;证据金字塔、T0–T5 分级金字塔、TEE 四组分、EA 计算公式、 三大代谢通路等框架图都留了空框。请边听边填,每个板块结束时,用栏末的"本板块核心结论" 空栏写下 3–5 行你自己的概括。每页页边标注了对应的教材章节号,课后回查原文时按图索骥即可。 练习页留有判断过程的书写区,请把你的推理步骤写下来——结论可以对答案,过程才是你自己的东西。

三、课后:复盘、后测与疑问登记

课程结束后请依次完成三件事:先翻到当日复盘页,不看笔记默写六宫格知识地图, 并在每格下面写下两行"我还没懂的";再做手册末尾的后测 5 题(与前测同题), 逐题对比前后答案、写错因;最后把全天遗留的问题登记到错题与疑问登记页, 注明关键词与教材页码,便于次日提问与日后检索。

填写方式:在电脑或平板上打开本文件时,所有浅灰色虚线框与下划线区域都可以直接点击输入; 打印之后则用手写。建议按 A4 单面打印、左侧装订。
两点提醒:前测与后测均不印答案,答案以课上讲授和教材为准;手册所有空白区域均不预填答案, 请勿在课前翻阅他人手册"对答案",那样会损失你自己最宝贵的错误。
课前自测 · 前测

课前自测(前测)

5 道选择题 · 凭直觉作答 · 不印答案

以下 5 题覆盖 Lesson 1 最容易混淆的关键概念。请凭你现有的理解作答,不必查阅资料。 答错没有关系——这正是今天学习的起点。课后将用同样 5 题进行后测,届时请逐题对比。

第 1 题 一位规律力量训练两年的会员,肌肉量明显高于常人,BMI 为 27.5,体脂率约 15%。 仅凭 BMI 把他判定为"超重、需要减脂",这个判断:

第 2 题 一位会员连续记录了 7 天饮食,教练用 EI:BMR 比值对记录进行筛查,结果为 1.20。 对这个数值最恰当的理解是:

第 3 题 计算能量可利用性(Energy Availability, EA)时,公式中的分母应当使用:

第 4 题 关于三大营养素在体内的相互转化,下列说法正确的是:

第 5 题 一项新研究发现:某补剂服用后,受试者运动后 mTOR 磷酸化水平显著升高, 急性肌肉蛋白合成(MPS)也上升。在判断"该补剂能否长期促进肌肥大"时,下列哪类证据的权重最高:

作答完毕请合上本页,开始课前预习单。今天课程结束前,你会在手册末尾遇到同样的 5 道题。
课前预习单(一)· Ch01

课前预习单(一)

Ch01 定义、边界与循证基础 | 建议用时 20 分钟 | 上课前完成,凭现有理解作答,不会的留空

A. 引导问题

问题 1:"运动营养师""医院里的临床营养师""健身教练"三者的工作边界分别在哪里? 设想一个场景:会员拿着体检报告来找你配餐,什么情况下你必须把他转介出去?

问题 2:刷到一条"最新研究表明,某补剂能显著增肌"的短视频,你会按什么步骤判断这条信息可不可信? 请尽量写出你会追问的问题。

问题 3:专家意见和个人案例故事在证据等级中通常排在最底层。这是否意味着它们毫无用处? 你认为它们在实践中适合扮演什么角色?

B. 术语预填表

英文全称与缩写已印好,请在右栏写下你理解的中文含义;不认识的留空,课上重点听、课后订正。

缩写 / 术语英文全称中文含义(预习填写 · 课上订正)
MNTMedical Nutrition Therapy
LEALow Energy Availability
RED-S / REDsRelative Energy Deficiency in Sport
MDTMultidisciplinary Team
RD / RDNRegistered Dietitian / Registered Dietitian Nutritionist
CISSNCertified Sports Nutritionist (International Society of Sports Nutrition)
T0–T5Exercise participation classification framework (McKay et al., 2022)
RCTRandomized Controlled Trial
SR / MetaSystematic Review / Meta-analysis
GRADEGrading of Recommendations Assessment, Development and Evaluation
EBNEvidence-Based Nutrition
PICOPopulation, Intervention, Comparison, Outcome

C. 常见误区 · 先判断

误区陈述

「运动营养没什么特殊的,就是把健康饮食的建议搬到健身房和训练场上; 反正凡是叫"营养师"的资质,能做的事情都一样。」

你以为的答案:

你的理由:

课后订正区(Ch01 课后回来填写)

正确判断:

讲师给出的原因(用自己的话写):

课前预习单(二)· Ch02

课前预习单(二)

Ch02 运动饮食评估 | 建议用时 20 分钟 | 上课前完成,凭现有理解作答,不会的留空

A. 引导问题

问题 1:让会员"自己记饮食",最常见的误差来源有哪些(请至少想到三类)? 这些误差的方向通常是把摄入估高了,还是估低了?

问题 2:双标水(DLW)方法常被称作膳食与能量消耗评估的"金标准"。 它为什么准?又为什么没有办法在日常咨询中给每位会员都做一次?

问题 3:一位女会员的饮食记录显示她每天只吃约 1200 kcal,但几个月来体重几乎没有变化。 面对这种"数据上对不上"的情况,你会怀疑哪些环节?接下来你打算怎么核实?

B. 术语预填表

英文全称与缩写已印好,请在右栏写下你理解的中文含义;不认识的留空,课上重点听、课后订正。

缩写 / 术语英文全称中文含义(预习填写 · 课上订正)
DLWDoubly Labeled Water
WFRWeighed Food Record
FFQFood Frequency Questionnaire
24h 回顾24-hour Dietary Recall
EIEnergy Intake
ExEEExercise Energy Expenditure
EAEnergy Availability
EI:BMRRatio of Energy Intake to Basal Metabolic Rate
霍桑效应Hawthorne Effect
TFEQ-R18Three-Factor Eating Questionnaire (R18)
多源交叉验证Multi-source cross-validation / triangulation
低报Under-reporting(of energy intake)

C. 常见误区 · 先判断

误区陈述

「会员认真交来的饮食日记(自报记录)就等于他的真实摄入。 如果记录算出来的热量和体重变化对不上,那就是执行力差、不配合。」

你以为的答案:

你的理由:

课后订正区(Ch02 课后回来填写)

正确判断:

讲师给出的原因(用自己的话写):

课前预习单(三)· Ch03

课前预习单(三)

Ch03 身体成分评估 | 建议用时 20 分钟 | 上课前完成,凭现有理解作答,不会的留空

A. 引导问题

问题 1:家用体脂秤(BIA)、健身房的皮褶厚度计、医院的 DXA,测出的体脂率常常对不上。 你觉得原因可能有哪些?如果三个数字不一样,你会以哪个为准、怎么跟会员解释?

问题 2:"去脂体重(FFM)""瘦体重(LBM)""肌肉量(MM)"听起来差不多, 你觉得它们是同一回事吗?如果用错,会影响后面哪些计算?

问题 3:一位减脂会员每周都来测体脂率,这周掉了 0.8%,下周又涨了 0.5%。 你认为追踪身体成分变化应该多久测一次、怎么测,才谈得上"有意义的变化"?

B. 术语预填表

英文全称与缩写已印好,请在右栏写下你理解的中文含义;不认识的留空,课上重点听、课后订正。

缩写 / 术语英文全称中文含义(预习填写 · 课上订正)
4C4-Compartment Model
FFMFat-Free Mass
LBMLean Body Mass
MMSkeletal Muscle Mass
ALMAppendicular Lean Mass
DXADual-energy X-ray Absorptiometry
ADP(Bod Pod)Air Displacement Plethysmography
BIABioelectrical Impedance Analysis
Siri 方程Siri Equation(body density → % body fat)
FFMIFat-Free Mass Index
MDCMinimum Detectable Change
%BFPercent Body Fat

C. 常见误区 · 先判断

误区陈述

「家用体脂秤每周称一次,读数掉了 1% 就说明减脂有效; 在不同机构、不同机器上测出的体脂率,可以直接放在一起比较。」

你以为的答案:

你的理由:

课后订正区(Ch03 课后回来填写)

正确判断:

讲师给出的原因(用自己的话写):

课前预习单(四)· Ch04

课前预习单(四)

Ch04 运动人群能量需求 | 建议用时 20 分钟 | 上课前完成,凭现有理解作答,不会的留空

A. 引导问题

问题 1:BMR(基础代谢率)和 RMR(静息代谢率)只差一个字母。 你觉得它们在测量条件上有什么不同?日常给会员配餐时,用的应该是哪一个?

问题 2:一个人一天的总能量消耗(TEE)由哪几部分构成? "今天运动多烧了 500 kcal,所以全天就净亏 500 kcal"——这个想法为什么可能落空?

问题 3:给一位肌肉量很高的力量训练者估算代谢,如果公式只问体重、身高、年龄, 不考虑肌肉量,你觉得结果会偏高还是偏低?为什么?

B. 术语预填表

英文全称与缩写已印好,请在右栏写下你理解的中文含义;不认识的留空,课上重点听、课后订正。

缩写 / 术语英文全称中文含义(预习填写 · 课上订正)
BMRBasal Metabolic Rate
RMRResting Metabolic Rate
TEETotal Energy Expenditure
TEFThermic Effect of Food
EATExercise Activity Thermogenesis
NEATNon-Exercise Activity Thermogenesis
PALPhysical Activity Level
DLWDoubly Labeled Water
ICIndirect Calorimetry
RERRespiratory Exchange Ratio
METMetabolic Equivalent of Task
CTEE / ExECConstrained TEE / Exercise Energy Compensation

C. 常见误区 · 先判断

误区陈述

「基础代谢率和静息代谢率是一回事,可以混用;运动多烧掉的热量会百分之百变成热量缺口, 所以减脂只要把运动消耗算清楚就行了。」

你以为的答案:

你的理由:

课后订正区(Ch04 课后回来填写)

正确判断:

讲师给出的原因(用自己的话写):

课前预习单(五)· Ch05

课前预习单(五)

Ch05 能量摄入不足与 REDs | 建议用时 20 分钟 | 上课前完成,凭现有理解作答,不会的留空

A. 引导问题

问题 1:"能量可利用性(EA)"和常说的"热量缺口"是同一个概念吗? 它的计算为什么用"去脂体重"而不是"体重"做分母?

问题 2:低能量可利用性(LEA)只发生在女运动员身上、只表现为月经紊乱吗? 男性训练者和大众健身人群如果长期吃不够,可能出现哪些信号?

问题 3:体重稳定,是否就能说明能量摄入是充足的? 如果一位会员体重半年没变,但训练表现持续下滑、频繁感冒、情绪低落,你会想到什么?

B. 术语预填表

英文全称与缩写已印好,请在右栏写下你理解的中文含义;不认识的留空,课上重点听、课后订正。

缩写 / 术语英文全称中文含义(预习填写 · 课上订正)
EAEnergy Availability
LEALow Energy Availability
REDsRelative Energy Deficiency in Sport
Triad / FHAFemale Athlete Triad / Functional Hypothalamic Amenorrhea
CAT2Clinical Assessment Tool (version 2, IOC)
LEAF-QLow Energy Availability in Females Questionnaire
EDE-QEating Disorder Examination Questionnaire
MDTMultidisciplinary Team
RefeedRefeed(planned energy / carbohydrate replenishment)
HPG 轴Hypothalamic–Pituitary–Gonadal axis
代谢适应Metabolic Adaptation

C. 常见误区 · 先判断

误区陈述

「RED-S/低能量可利用性是女运动员的专属问题; 只要体重稳定、月经正常(或男性觉得自己"没问题"),就说明能量摄入足够,不用管。」

你以为的答案:

你的理由:

课后订正区(Ch05 课后回来填写)

正确判断:

讲师给出的原因(用自己的话写):

课前预习单(六)· Ch06

课前预习单(六)

Ch06 营养生化基础 | 建议用时 25 分钟 | 上课前完成,凭现有理解作答,不会的留空

A. 引导问题

问题 1:一碗米饭、一块鸡胸肉、一把坚果吃进去之后,分别经过哪些消化器官和关键酶, 最终以什么形式被吸收?脂肪吸收后走的是血液还是淋巴?

问题 2:10 秒极限冲刺、400 米全力跑、全程马拉松,这三种运动主要依靠什么途径供能? 它们的"功率"和"续航"为什么差别这么大?

问题 3:有人说"碳水吃多了会变成脂肪存起来",也有人说"饿肚子时脂肪能变成糖喂大脑"。 从生化角度看,这两句话分别对不对?哪一步反应决定了"脂肪不能变回糖"?

B. 术语预填表

英文全称与缩写已印好,请在右栏写下你理解的中文含义;不认识的留空,课上重点听、课后订正。

缩写 / 术语英文全称中文含义(预习填写 · 课上订正)
ATPAdenosine Triphosphate
PCrPhosphocreatine
MPSMuscle Protein Synthesis
MPBMuscle Protein Breakdown
DNLDe Novo Lipogenesis
GNGGluconeogenesis
PDHPyruvate Dehydrogenase
TCATricarboxylic Acid Cycle(Krebs cycle)
β-氧化Beta-oxidation
SGLT1Sodium-Glucose Linked Transporter 1
PepT1Peptide Transporter 1
HSLHormone-Sensitive Lipase

C. 常见误区 · 先判断

误区陈述

「碳水化合物吃多变胖,主要是因为碳水在体内大量转化成脂肪; 而饿肚子的时候,储存的脂肪可以大量变成葡萄糖供给大脑。」

你以为的答案:

你的理由:

课后订正区(Ch06 课后回来填写)

正确判断:

讲师给出的原因(用自己的话写):

课中笔记 · 单元一 | 教材 Ch01 | 09:15–10:30

课中笔记 · 单元一

Ch01 定义、边界与循证基础 | 09:15–10:30 | 本单元建议手写 600–900 字

板块 1 · 运动营养的定义、服务对象与学科边界教材 Ch01 · 学科定位

① 运动营养的定义与工作目标 ② 服务对象:从大众健身者到竞技运动员 ③ 与临床营养(MNT)、一般健康膳食建议的分界

边界三分区(按讲师讲授填写)
运动营养咨询可以独立做
需要与医生 / 营养师协作
必须转介、不得处理
本板块核心结论(3–5 行)

板块 2 · 服务对象分级:McKay T0–T5 金字塔教材 Ch01 · 训练人群分级(McKay et al., 2022)

① 为什么要分级:不同层级的目标、风险与证据适用性不同 ② 六级的划分依据:训练量、专项化程度、赛事水平

T0–T5 分级金字塔越靠上,训练量与专项化程度越高;在每层横线上填写该级的人群特征
T5
T4
T3
T2
T1
T0
本板块核心结论(3–5 行)
课中笔记 · 单元一 | 教材 Ch01 | 09:15–10:30

课中笔记 · 单元一(续)

Ch01 定义、边界与循证基础 | 资质 · 伦理

板块 3 · 资质体系与转介指征教材 Ch01 · 资质与执业边界

① 国内外常见营养/运动营养资质 ② 资质之间互不自动互认 ③ 什么情况必须转介

资质 / 缩写颁发或认可机构执业范围与边界(填写)
RD / RDN
CISSN
IOC Diploma
SENr
AccSD
中国注册营养师
必须转介的红旗指征(按讲师讲授逐条填写)
本板块核心结论(3–5 行)

板块 4 · 职业伦理四原则教材 Ch01 · 伦理基础

① 四原则的名称 ② 每条原则在咨询场景中的具体表现

原则 ① 名称:
原则 ② 名称:
原则 ③ 名称:
原则 ④ 名称:
本板块核心结论(3–5 行)
课中笔记 · 单元一 | 教材 Ch01 | 09:15–10:30

课中笔记 · 单元一(续)

Ch01 定义、边界与循证基础 | 循证方法

板块 5 · 循证实践与证据金字塔教材 Ch01 · 证据等级

① 循证营养(EBN)的三步:提出问题 → 检索与评价证据 → 结合对象与场景决策 ② PICO 提问法 ③ 证据金字塔五层

证据金字塔(五层)横线上填写该层对应的研究类型;越靠上证据权重越高
层级 Ⅰ
层级 Ⅱ
层级 Ⅲ
层级 Ⅳ
层级 Ⅴ
GRADE 证据质量四级(填写每级含义与使用态度)
高
中
低
极低
本板块核心结论(3–5 行)

板块 6 · 文献质量的批判性评价工具教材 Ch01 · 批判性评价

不同研究设计对应不同的质量评价工具;先判断研究类型,再选工具

评价工具适用的研究类型主要评价 / 防范什么
CASP
RoB 2.0
ROBINS-I
NOS
AMSTAR
本板块核心结论(3–5 行)
课中笔记 · 单元一 | 教材 Ch01 | 09:15–10:30

课中笔记 · 单元一(续)

Ch01 定义、边界与循证基础 | 偏差识别 · 决策框架 · 课堂练习

板块 7 · 认知偏差与营销"红旗信号"教材 Ch01 · 伪科学识别

常见认知偏差(听课列举)
补剂 / 营销内容的红旗信号(听课列举)
本板块核心结论(3–5 行)

板块 8 · SNC 四层决策矩阵教材 Ch01 · 实践决策框架

遇到一个营养问题,按四层依次判断:能不能独立处理 → 需要什么证据 → 何时协作 → 何时转介

四层决策矩阵(逐层填写)
本板块核心结论(3–5 行)

课堂练习 · 边界判断教材 Ch01 · 章末案例

讲师口述 / 投屏一个咨询案例。请先判断对象处于 T0–T5 的哪一层,再写下:你能独立做什么、 需要与谁协作、出现哪些信号必须转介、转介给哪个专业。把判断过程写下来,而不只是结论。

判断过程书写区
课中笔记 · 单元二 | 教材 Ch02 | 10:45–11:25

课中笔记 · 单元二

Ch02 运动饮食评估 | 10:45–11:25 | 本单元建议手写 600–900 字

板块 1 · 为什么"吃了什么"这么难测准教材 Ch02 · 自报误差

① 误差从哪里来:记忆、份量估算、记录行为本身 ② 误差的方向:系统性低报 ③ 霍桑效应与依从差距

关键数字(听课时把数字填入横线)
自报能量摄入平均低估 % (约 kcal/d;研究间范围 %– %)
称重记录低报可达 TEE 的 % – %
份量目视估算低估 % – %
执行(依从)差距 % – %
本板块核心结论(3–5 行)

板块 2 · 膳食评估方法的精度分级(A–D)教材 Ch02 · 方法分级表

① 从金标准到现场工具的四级分层 ② 精度与可行性的交换 ③ 为会员选方法的原则

级别代表方法精度范围(填写)优点与局限(填写)
A
B
C
D
本板块核心结论(3–5 行)
课中笔记 · 单元二 | 教材 Ch02 | 10:45–11:25

课中笔记 · 单元二(续)

Ch02 运动饮食评估 | 记录流程 · 低报筛查

板块 3 · 现场可行的记录方案教材 Ch02 · 记录方法选择

① 称重记录(WFR):记几天最划算 ② 估算食物日记 + 训练日记 + 图像日记 ③ AI 识别的现实精度:中餐是难点

要点填写
精度与可行性的平衡点 天 WFR
估算日记建议天数
AI 图像识别理想误差 ;中餐场景误差
24h 回顾与 FFQ 的定位
尿氮法验证蛋白摄入的误差
本板块核心结论(3–5 行)

板块 4 · 低报筛查:EI:BMR 比值教材 Ch02 · EI:BMR 判读

① 它是什么、不是什么:定性筛查工具,不是测谎仪 ② 计算需要哪两个数 ③ 阈值与后续动作

计算流程框架(按步骤填写)
步骤 ①
步骤 ②
步骤 ③
步骤 ④
判读阈值(Black 2000)EI:BMR < → 提示
所用 BMR 估算(Cunningham 1980)BMR =
本板块核心结论(3–5 行)
课中笔记 · 单元二 | 教材 Ch02 | 10:45–11:25

课中笔记 · 单元二(续)

Ch02 运动饮食评估 | 交叉验证 · 复评 · 课堂练习

板块 5 · 多源交叉验证与复评节奏教材 Ch02 · 三角验证

① 任何单一来源都不可全信:多源互证 ② 饮食行为问卷的位置 ③ 复评间隔

交叉验证的四个维度(每框填写:看什么指标 / 怎么对上)
维度 ①
维度 ②
维度 ③
维度 ④
TFEQ-R18 测的三个维度
建议复评间隔 周
本板块核心结论(3–5 行)

课堂练习 · EI:BMR 计算与判读教材 Ch02 · 章末练习

讲师给出一位会员的饮食记录数据。请按板块 4 的流程独立计算,写下每一步的数值与判断依据; 若结果提示低报,写下你接下来会用哪两个维度交叉验证、会怎样与会员沟通(注意:不是质问)。

计算与判断过程书写区
记录总摄入 EI
体重 / FFM
BMR 估算值(写出公式代入)
EI:BMR 比值
课中笔记 · 单元三 | 教材 Ch03 | 11:25–12:00

课中笔记 · 单元三

Ch03 身体成分评估 | 11:25–12:00 | 本单元建议手写 600–900 字

板块 1 · 身体成分的组分模型演进教材 Ch03 · 组分模型

① 二组分 → 三组分 → 四组分:假设越来越少、精度越来越高 ② 4C 模型为什么被当作参照

组分模型演进框架(框内填写各模型的组分划分)
二组分模型(2C)
三组分模型(3C)
四组分模型(4C)的四个成分
成分 ①
成分 ②
成分 ③
成分 ④

4C 模型体脂率 SEE: %BF

本板块核心结论(3–5 行)

板块 2 · FFM、LBM、MM 辨析教材 Ch03 · 术语辨析

① 三个"瘦"字概念不是一回事 ② 用错会影响 EA、FFMI 等下游计算

术语定义与包含 / 扣除什么用在哪些计算里
FFM
去脂体重
LBM
瘦体重
MM
骨骼肌量

用 LBM 代替 FFM 计算 EA 时,EA 会被 估约 kcal/kg/d。

本板块核心结论(3–5 行)
课中笔记 · 单元三 | 教材 Ch03 | 11:25–12:00

课中笔记 · 单元三(续)

Ch03 身体成分评估 | 测量方法 · 公式

板块 3 · 测量方法精度分级教材 Ch03 · 方法对比

方法原理(一句话)精度 / CV(填写)优点与局限(填写)
DXA
Bod Pod(ADP)
皮褶厚度
BIA 体脂秤
BMI——(人群筛查)
Navy 公式
本板块核心结论(3–5 行)

板块 4 · 两个常用公式教材 Ch03 · Siri 方程 · FFMI

Siri 方程(体密度 Bd → %BF)

%BF =

用途与前提假设:

FFMI(去脂体重指数,Kouri 1995)

FFMI =

自然训练男性参考范围 ;上限约 ;超过 需谨慎。它是 工具,样本量 n≈300。

Casey Butt 公式的定位:

ALMI 肌少症阈值:男 < kg/m² 女 < kg/m²。

本板块核心结论(3–5 行)
课中笔记 · 单元三 | 教材 Ch03 | 11:25–12:00

课中笔记 · 单元三(续)

Ch03 身体成分评估 | 安全下限 · 追踪判读 · 课堂练习

板块 5 · 必需脂肪与低体脂预警教材 Ch03 · 安全区间

男性女性
必需脂肪(维持生理功能)
低体脂预警区间(非诊断阈值)
本板块核心结论(3–5 行)

板块 6 · MDC、测量频率与趋势判读教材 Ch03 · 标准化与追踪

① 最小可检测变化(MDC):小于它的波动都是噪声 ② 标准化 SOP:同机、同时段、同状态 ③ 看趋势不看点

MDC:DXA 体脂率 %BF
MDC:皮褶法体脂率 %BF
检出 1 kg FFM 变化所需样本量(研究视角)每组 – 人
大众训练者建议评估频率 周
单日体重波动范围± – kg(糖原 1 g 结合 g 水)
不同方法 / 机型测同一人可相差 %
趋势判读四原则(逐条填写)
本板块核心结论(3–5 行)

课堂练习 · 身体成分数据判读教材 Ch03 · 章末案例

讲师给出一位会员两次测量的数据(可能涉及不同机器、水合状态差异)。请判断:变化是否超过 MDC、 两次测量是否可比、你会如何向会员解释、下一次测量如何安排。

判读过程书写区
课中笔记 · 单元四 | 教材 Ch04 | 13:00–13:45

课中笔记 · 单元四

Ch04 运动人群能量需求 | 13:00–13:45 | 本单元建议手写 600–900 字

板块 1 · BMR 与 RMR:一个字母之差教材 Ch04 · BMR/RMR 辨析

① 测量条件的严格程度不同 ② 数值差异有多大、方向不定 ③ 实践中用哪个

BMR 基础代谢率RMR 静息代谢率
测量条件
两者差异
实践选用
本板块核心结论(3–5 行)

板块 2 · TEE 的四组分教材 Ch04 · 总能量消耗

TEE 四组分框架(每框填写:全称、占比或特点)
组分 ①:
组分 ②:
组分 ③:
组分 ④:

TEE =

RMR 占 TEE 比例(静坐人群)(精英男子耐力运动员可低至 )
TEF 占 TEE
本板块核心结论(3–5 行)
课中笔记 · 单元四 | 教材 Ch04 | 13:00–13:45

课中笔记 · 单元四(续)

Ch04 运动人群能量需求 | PAL · 测量方法

板块 3 · PAL 身体活动水平系数教材 Ch04 · PAL 系数表

① PAL = TEE / RMR ② 七档活动水平 ③ 训练日与休息日不是同一个 PAL

活动水平PAL 系数(填写)典型场景 / 例子(填写)
卧床
静坐
轻度活动
中度活动
高度活动
极高活动
超高活动

训练日与休息日的 TEE 可相差 kcal/d。TEF 因营养素不同:蛋白 、糖 、脂肪 。

本板块核心结论(3–5 行)

板块 4 · 能量消耗的测量方法与精度教材 Ch04 · 方法精度对比

方法精度(填写)现场可用性与备注(填写)
双标水 DLW
房间量热
间接量热(测 RMR)
便携 VO₂ 设备
心率推算
加速度计
MET 查表
间接量热两个关键式子 / 数值(填写)

Weir 公式:kcal/min =

RER 参考值:纯脂肪 、纯糖 、混合膳食 。

本板块核心结论(3–5 行)
课中笔记 · 单元四 | 教材 Ch04 | 13:00–13:45

课中笔记 · 单元四(续)

Ch04 运动人群能量需求 | RMR 估算 · 代谢适应

板块 5 · RMR 估算公式:怎么选教材 Ch04 · 公式选择

① 首选:基于 FFM 的 Cunningham 1991 ② 没有体成分数据:Mifflin ③ 现场快速估:快算法

公式填空
Cunningham 1991(默认首选)RMR =
Cunningham 1980BMR =
Mifflin(男)RMR =
Mifflin(女,常数项不同)RMR =
现场快算法(kcal/kg/d)维持 /减脂 /增肌

非 FFM 公式对高肌肉量训练者可能 估约 %。中国成人 EER(参考):男性轻 / 中 / 重体力 ;女性 。

本板块核心结论(3–5 行)

板块 6 · 代谢适应与"约束模型"教材 Ch04 · CTEE / ExEC

① 运动消耗不是"多烧多亏":身体会补偿 ② Pontzer 约束性总能量消耗(CTEE) ③ "代谢损伤"说法的性质

代谢适应时 RMR 的下调幅度(RMR实测/RMR预测 < 视为适应)
Knaan 2026(N=16):运动能量补偿 ExEC约 %(个体差异极大)
同研究:睡眠代谢率 SMR 变化− kcal/d;RMR − kcal/d
"代谢损伤"
减脂热量缺口设置与调整步幅初始 − kcal/d;每次调整 kcal
本板块核心结论(3–5 行)
课中笔记 · 单元四 | 教材 Ch04 | 13:00–13:45

课中笔记 · 单元四(续)

Ch04 运动人群能量需求 | 燃料分区 · 能量系统 · 课堂练习

板块 7 · 燃料分区与三大能量系统概览教材 Ch04 · 运动供能(详见 Ch06)

分区 / 系统强度区间(填写)主导燃料或底物(填写)
脂肪主导区
混合区
糖主导区
FATmax 区间

三大能量系统的功率与续航将在 Ch06 详讲,此处先记下名称:磷酸原系统 / 糖酵解系统 / 有氧氧化系统。

本板块核心结论(3–5 行)

课堂练习 · 给一位训练者估 TEE教材 Ch04 · 章末练习

讲师给出一位会员的体重、身高、年龄、FFM 与一周训练安排。请:选公式 → 算 RMR → 选 PAL → 算 TEE, 并写下你对估算结果的不确定度有多大、准备用哪两个现场数据去校准它。

估算过程书写区
选用公式与理由
RMR 代入计算
PAL 取值与理由(训练日/休息日分开)
TEE 结果
课中笔记 · 单元五 | 教材 Ch05 | 13:45–14:30

课中笔记 · 单元五

Ch05 能量摄入不足与 REDs | 13:45–14:30 | 本单元建议手写 600–900 字

板块 1 · 能量可利用性(EA):概念与公式教材 Ch05 · EA 定义

① EA 与"热量缺口"不是一回事:它衡量的是扣除运动消耗后、留给身体各项生理功能的能量 ② 分母必须是 FFM

EA 计算公式(填入符号、单位与各变量含义)

EA =( − )÷

符号含义单位 / 备注
EI
ExEE
FFM

EA 的单位:;为什么分母用 FFM 而不是体重:

本板块核心结论(3–5 行)

板块 2 · Loucks 阈值:多少算"够"教材 Ch05 · EA 阈值(Loucks)

EA 区间(kcal/kg FFM/d)分级名称(填写)身体状态与处置原则(填写)
≥ 45
30 – 45
< 30

阈值存在个体差异,约 ± ;男性在 EA < 时可观察到睾酮下降(25–30 区间尚有争议); 男性最敏感的三个终点:。阈值来自住院实验(连续约 5 天)。

本板块核心结论(3–5 行)
课中笔记 · 单元五 | 教材 Ch05 | 13:45–14:30

课中笔记 · 单元五(续)

Ch05 能量摄入不足与 REDs | 概念演进 · 影响 · 筛查

板块 3 · 从女运动员三联征到 REDs:概念演进教材 Ch05 · 框架演进

时间线(在每个年份下填写:框架名称与核心内容)
1992
2007
2014
2018
2023
2025
LEA 影响的多系统(听课填写:受影响系统 + 一个典型表现)
本板块核心结论(3–5 行)

板块 4 · 筛查与评估工具教材 Ch05 · 筛查工具

工具 / 手段用途与关键条目(填写)判读标准(填写)
CAT2(IOC 三步法)
LEAF-Q
EDE-Q
DXA(骨密度)

CAT2 颜色评级:。红色评级的处置时限: 小时内启动 MDT。

本板块核心结论(3–5 行)
课中笔记 · 单元五 | 教材 Ch05 | 13:45–14:30

课中笔记 · 单元五(续)

Ch05 能量摄入不足与 REDs | 干预恢复 · 课堂练习

板块 5 · 干预与恢复:怎么吃回来、怎么练回来教材 Ch05 · 恢复策略

① 恢复目标与加量节奏 ② Refeed 的设计 ③ 训练阶梯 ④ 恢复时窗:各系统快慢不同,骨最慢

EA 恢复目标
能量加量节奏每 周增加 kcal/d
恢复期宏量营养素碳水占比 ;蛋白 g/kg;脂肪占比
Refeed 日
训练阶梯(前 1–2 周)
恢复时窗表(填写各指标恢复所需时间)
指标恢复时窗(填写)
体重
T3(甲状腺激素)
LH / 雌二醇
月经恢复
骨密度
本板块核心结论(3–5 行)

课堂练习 · 大众会员 EA 计算与处置教材 Ch05 · 章末案例

案例:一位规律健身的女会员,自述每日摄入约 1600 kcal,日均运动消耗约 600 kcal, 体成分测试 FFM 约 42 kg。请计算她的 EA、对照阈值分级,并写下:你会向她确认哪些信息、 你的三步边界动作(能独立做什么 / 建议什么 / 何时转介)。

计算与处置书写区
课中笔记 · 单元六 | 教材 Ch06 | 14:45–16:15

课中笔记 · 单元六

Ch06 营养生化基础 | 14:45–16:15 | 本单元建议手写 700–900 字(今日最长一单元)

板块 1 · 三大营养素的消化与吸收教材 Ch06 · 消化吸收

① 碳水:口腔 → 小肠,单糖经转运体入门静脉 ② 蛋白:内切 + 外切,大部分以二肽三肽吸收 ③ 脂肪:乳化 → 微胶粒 → 乳糜微粒走淋巴

关键部位与酶(填写)终产物与转运体(填写)吸收路径(填写)
碳水
蛋白质
脂肪

能量密度:碳水 kcal/g、蛋白 kcal/g、脂肪 kcal/g。 乳糖酶非持久性(成年乳糖酶下降)全球约 %,东亚人群 。

本板块核心结论(3–5 行)
课中笔记 · 单元六 | 教材 Ch06 | 14:45–16:15

课中笔记 · 单元六(续)

Ch06 营养生化基础 | 糖代谢 · 脂代谢

板块 2 · 糖代谢通路教材 Ch06 · 糖酵解 · TCA

糖代谢流程空框(填写:部位、关键酶、产物、ATP 收支)
① 糖酵解
② 丙酮酸 → 乙酰CoA(PDH)
③ 三羧酸循环(TCA)+ 氧化磷酸化

三个限速酶:。 PDH 反应的方向:(此点决定后面"脂肪能否变糖")。

本板块核心结论(3–5 行)

板块 3 · 脂代谢通路教材 Ch06 · β-氧化 · DNL

脂肪动员与 β-氧化
从头脂肪生成 DNL
HSL(激素敏感性脂肪酶)的调控
DNL 的限速酶与调控
DNL 对日常脂肪储存的贡献约 %(高碳水过量时 ;极端 >700 g/d 时 )
本板块核心结论(3–5 行)
课中笔记 · 单元六 | 教材 Ch06 | 14:45–16:15

课中笔记 · 单元六(续)

Ch06 营养生化基础 | 氨基酸代谢 · 互转 · 能量系统

板块 4 · 氨基酸代谢与三大营养素互转教材 Ch06 · 代谢互转

互转五路径图(在箭头上填写:能否转化、关键途径、效率或限制点)
转化路径能否(填写)关键途径 / 限制(填写)
碳水 → 脂肪
脂肪 → 碳水
蛋白质 → 碳水
蛋白质 → 脂肪
碳水 → 蛋白质(净合成)

糖异生(GNG)的前体:。 尿素循环:1 g 蛋白质 → 约 0.16 g 氮 → 约 g 尿素。生酮氨基酸:。

本板块核心结论(3–5 行)

板块 5 · 三大能量系统:功率与续航教材 Ch06 · ATP 供能系统

系统主导时长(填写)功率 W/kg(填写)底物与产物(填写)
磷酸原系统
(ATP-PCr)
糖酵解系统
(无氧酵解)
有氧氧化系统

糖酵解净产 ATP: 个;葡萄糖彻底氧化净产约 个 ATP; NADH ≈ ATP、FADH₂ ≈ ATP。

本板块核心结论(3–5 行)
课中笔记 · 单元六 | 教材 Ch06 | 14:45–16:15

课中笔记 · 单元六(续)

Ch06 营养生化基础 | 激素调控 · 课堂练习

板块 6 · 四大激素与运动中的代谢调度教材 Ch06 · 激素调控

激素主要作用方向(填写)运动中 / 运动后变化(填写)营养触发(填写)
胰岛素
胰高血糖素
肾上腺素
皮质醇

运动后骨骼肌 GLUT4 的变化:。 胰岛素敏感性升高可持续 小时。

本板块核心结论(3–5 行)

课堂练习 · 供能系统与互转判断教材 Ch06 · 章末思考

讲师给出若干运动场景与营养说法。请分别判断:主导供能系统是哪个、为什么; 说法是否符合生化事实、卡在哪个酶或哪条通路上。把推理过程写在下面。

判断过程书写区

教练转化提示(讲师总结,记一条你最有感触的):

当日复盘 | 16:15–17:00

当日复盘页

六宫格知识地图 · 合上笔记默写 · 写不出来的格子就是今晚要补的地方

请合上笔记、不翻教材,凭记忆在每个格子里写出该主题今天最核心的框架、数字或结论(写不完整也请尽力写)。 默写完再翻开笔记用红笔补漏。每格下方两行"我还没懂的",请如实填写——它们就是你今晚复习和明天提问的清单。

① 边界与分层(Ch01)

我还没懂的:

② 膳食评估(Ch02)

我还没懂的:

③ 身体成分(Ch03)

我还没懂的:

④ 能量需求(Ch04)

我还没懂的:

⑤ RED-S / LEA(Ch05)

我还没懂的:

⑥ 生化通路(Ch06)

我还没懂的:
复盘研讨 · 作业与明日预习

复盘研讨:作业与明日预习

16:15–17:00 | 章末思考题 · EA 计算作业 · Ch07/Ch08 预习

一、章末思考题教材 Ch01–Ch06 章末

各章章末均留有思考题,研讨环节讲师会带大家过其中最关键的几道。请把你在讨论中被说服或仍存疑的要点记在这里:

二、EA 计算作业(今晚提交)教材 Ch05 · EA 计算

把课堂上的大众女会员案例(每日摄入约 1600 kcal、日均运动消耗约 600 kcal、FFM 约 42 kg) 独立重算一遍,写出完整代入过程与阈值分级;再用你自己(或一位你熟悉的会员)的数据算一次, 并写下:数据分别来自哪里、哪些数字你其实没有把握、你准备怎么补上。

作业书写区

三、明日预习提示教材 Ch07 · Ch08

明天进入全书最重的两章,请务必预留预习时间。
Ch07 碳水化合物:从今天 Ch06 的糖代谢通路出发,明天会落到实践——不同训练时长与强度下该吃多少、 什么时候吃、运动前中后怎么安排,以及糖原储备与恢复。预习时请带着今天笔记里"糖酵解、TCA、GLUT4"这几个概念去读。
Ch08 蛋白质:围绕肌肉蛋白合成(MPS)与分解(MPB)的平衡展开——每餐吃多少、一天总量多少、 训练后"窗口期"到底还有多重要。预习时请留意今天 Ch01 讲过的证据等级:你会看到 1.6–1.7 g/kg/d 这类推荐值背后是哪一级证据。

预习任务(明天上课前完成)

章节预习时要回答的问题预习笔记(填写)
Ch07
碳水
糖原储备大概能支撑多长时间的高强度运动?运动中补糖的时机大致怎么分?
Ch08
蛋白质
力量训练者每日蛋白推荐量是多少?"训练后窗口期"在日总量达标后还剩多少意义?
课后后测 · 5 题

课后自测(后测)

与前测同样 5 题 · 独立作答后翻回前测逐题对比

现在请脱离笔记完成下面 5 道题(与课前完全相同)。作答后,翻到手册开头的前测页, 把两次答案填入下一页的对比表,并为每一道发生变化或仍然答错的题写清错因。

第 1 题 一位规律力量训练两年的会员,肌肉量明显高于常人,BMI 为 27.5,体脂率约 15%。 仅凭 BMI 把他判定为"超重、需要减脂",这个判断:

第 2 题 一位会员连续记录了 7 天饮食,教练用 EI:BMR 比值对记录进行筛查,结果为 1.20。 对这个数值最恰当的理解是:

第 3 题 计算能量可利用性(Energy Availability, EA)时,公式中的分母应当使用:

第 4 题 关于三大营养素在体内的相互转化,下列说法正确的是:

第 5 题 一项新研究发现:某补剂服用后,受试者运动后 mTOR 磷酸化水平显著升高, 急性肌肉蛋白合成(MPS)也上升。在判断"该补剂能否长期促进肌肥大"时,下列哪类证据的权重最高:

前后测对比 · 错因分析

前后答案对比与错因

把前测页的答案誊到左栏,后测答案填在中栏

题号前测答案后测答案是否变化错因分析 / 我现在的理解(用自己的话写)
第 1 题
第 2 题
第 3 题
第 4 题
第 5 题

今日一句话总结

如果只能把今天学到的一件事带去明天的工作,你会带哪一件?写在下面,并准备好在小组群里分享。

后测答案不在本手册中印出。若对某题仍不确定,请回到对应教材章节(第 1–5 题分别对应 Ch03、Ch02、Ch04/Ch05、Ch06、Ch01), 或把问题登记到下一页的疑问表,明天课前由讲师统一解答。
错题与疑问登记

错题与疑问登记页

贯穿整个课程使用 | 第二天课前讲师回收高频问题统一解答

今天产生的任何疑问——预习单里没填出来的术语、笔记页空格填不上的数字、练习中拿不准的判断—— 都请登记在下表。"课上是否解决"一栏在当天复盘时填写;"关键词 / 教材页码"帮助你日后回查, 也方便讲师定位问题出处。

日期我的疑问课上是否解决关键词 / 教材页码
Lesson 1 到此结束。请确认今天的三件收尾动作都已完成:① 六宫格知识地图默填并补漏; ② 后测 5 题与前测逐题对比、写错因;③ EA 计算作业今晚提交,疑问登记表已填。 明天见——请带着 Ch07 碳水化合物与 Ch08 蛋白质的预习问题进课堂。
SNC Lesson 1 学员手册 · 填写工作台 已填写 0/0
内容自动保存在本机浏览器中,无需联网。
", '
', '
', '
SNC 运动健身营养咨询师线上班 · Lesson 1
', '

', "SNC2026 Lesson 1 学员手册 · 已填写提交版

", '
' + metaLine + "
", '
', "本文件由学员手册自动导出,按手册页序整理全部问题与学员答案,未填写处已标注。", "请将本文件发送至组长微信群或邮箱,组长将对照标准答案批改。
", rows.join("\n"), '

', "SNC2026 Lesson 1 学员手册提交版 · 由手册功能层自动生成 · " + esc(dateStamp()) + "

", "
" ].join("\n"); return html; } function downloadBlob(blob, fname){ var url = URL.createObjectURL(blob); var a = document.createElement("a"); a.href = url; a.download = fname; document.body.appendChild(a); a.click(); setTimeout(function(){ document.body.removeChild(a); URL.revokeObjectURL(url); }, 1200); } function exportSubmissionFile(opts){ opts = opts || {}; try{ var html = buildSubmissionHtml(); var name = studentName(); var fname = "SNC2026_Day1手册提交_" + name + "_" + dateStamp() + ".html"; if(opts.test){ return { ok:true, bytes: html.length, fileName: fname, html: html }; } downloadBlob(new Blob([html], {type:"text/html;charset=utf-8"}), fname); elStatus.textContent = "提交文件已导出:" + fname + "。"; toast("提交文件已开始下载。请将本文件发送至组长微信群或邮箱,组长将对照标准答案批改。", 6000); return { ok:true, fileName: fname }; }catch(e){ if(opts.test) return { ok:false, error: e.message }; toast("导出提交文件失败:" + e.message); return { ok:false, error: e.message }; } } /* ---------------- 在线提交 ---------------- */ function submitOnline(){ var cover = getCover(); if(blank(cover.姓名)){ toast("请先在封面填写姓名(组别、学员编号也建议一并填写),再进行提交。"); return; } if(!SUBMIT_ENDPOINT){ toast("在线提交通道将在开课前开通,请先使用「导出提交文件」交给组长。正在为你导出。", 5600); elStatus.textContent = "在线提交通道未开通,已改为导出提交文件。"; setTimeout(function(){ exportSubmissionFile(); }, 900); return; } setBusy(true, "正在在线提交,请稍候。"); var payload = collectData(); fetch(SUBMIT_ENDPOINT, { method: "POST", headers: { "Content-Type": "application/json", "X-Source": "snc-day1-manual" }, body: JSON.stringify(payload) }).then(function(r){ if(!r.ok) throw new Error("服务器返回状态 " + r.status); return r.text().catch(function(){ return ""; }); }).then(function(){ setBusy(false); elStatus.textContent = "提交成功,时间 " + fmtTime(new Date()) + "。"; toast("提交成功。提交时间 " + fmtTime(new Date()) + "。"); }).catch(function(err){ setBusy(false); elStatus.textContent = "在线提交失败:" + err.message; toast("在线提交失败(" + err.message + ")。请改用「导出提交文件」,把下载的 HTML 交给组长。", 6800); }); } /* ---------------- 事件绑定 ---------------- */ document.addEventListener("input", function(e){ var t = e.target; if(t && t.tagName === "TEXTAREA") autosize(t, false); scheduleSave(); }, true); document.addEventListener("change", function(){ scheduleSave(); }, true); window.addEventListener("beforeprint", function(){ document.querySelectorAll("textarea.write").forEach(function(t){ autosize(t, true); }); }); btnPdf.addEventListener("click", function(){ exportPdf(); }); btnSubmit.addEventListener("click", submitOnline); btnExport.addEventListener("click", function(){ exportSubmissionFile(); }); btnClear.addEventListener("click", function(){ clearAll(); }); /* ---------------- 自检钩子(URL 含 #snc-test 时自动运行) ---------------- */ window.__snc = { fields: function(){ return fields; }, groups: function(){ return radioGroups; }, collectData: collectData, exportPdf: exportPdf, exportSubmissionFile: exportSubmissionFile, clearAll: function(){ return clearAll({confirmed:true, silent:true}); }, getCover: getCover, saveDraftNow: function(){ saveDraft(true); }, prepareExport: prepareExport, finishExport: finishExport, autosize: function(el){ return autosize(el, true); } }; function runSelfTest(){ window.__sncStage = "start"; window.__sncErrors = []; window.addEventListener("error", function(e){ window.__sncErrors.push((e.message||"")+" @ "+(e.filename||"")+":"+(e.lineno||"")); }); window.addEventListener("unhandledrejection", function(e){ window.__sncErrors.push("REJ: "+(e.reason && (e.reason.message||e.reason) || "")); }); var results = []; var T = function(name, cond, extra){ results.push({ name: name, pass: !!cond, extra: extra == null ? "" : String(extra) }); return !!cond; }; var testStart = Date.now(); /* 1. 工具栏渲染与字段索引 */ T("工具栏存在", !!toolbar && toolbar.offsetHeight > 0, "height=" + (toolbar ? toolbar.offsetHeight : -1)); T("页面 section 数为 35", pages.length === 35, "sections=" + pages.length); T("字段索引建立", fields.length > 100 && radioGroups.length > 10, "fields=" + fields.length + " groups=" + radioGroups.length); T("textarea 计数与手册一致(177)", document.querySelectorAll("textarea.write").length === 177, "ta=" + document.querySelectorAll("textarea.write").length); /* 2. 模拟填写 */ var coverInputs = document.querySelectorAll(".cover .meta input.fill"); coverInputs[0].value = "测试学员张三"; coverInputs[1].value = "第三组"; coverInputs[2].value = "SNC-003"; var tas = document.querySelectorAll("textarea.write"); for(var i=0;i<12;i++){ tas[i].value = "这是自动测试填写的内容,第 " + (i+1) + " 段。\n第二行文字用于验证换行撑开。"; } var pre1 = document.querySelectorAll('input[name="pre1"]'); pre1[1].checked = true; var mc1 = document.querySelectorAll('input[name="mc1"]'); mc1[0].checked = true; fields.forEach(function(el){ if(el.tagName==="TEXTAREA") autosize(el, false); }); var done = countFilled(); T("进度计数随填写增加", done >= 15, "filled=" + done + "/" + totalCount()); T("封面取值正确", getCover().姓名 === "测试学员张三", getCover().姓名); /* 3. 草稿保存与恢复 */ saveDraft(true); var raw = localStorage.getItem(DRAFT_KEY); T("草稿已写入 localStorage", !!raw, "bytes=" + (raw ? raw.length : 0)); var parsed = JSON.parse(raw); T("草稿包含姓名", parsed.v[coverInputs[0].id] === "测试学员张三", "key=" + coverInputs[0].id); T("草稿包含 radio 选择", parsed.r["pre1"] === 1 && parsed.r["mc1"] === 0, "pre1=" + parsed.r["pre1"] + " mc1=" + parsed.r["mc1"]); /* 清空再恢复 */ fields.forEach(function(el){ el.value = ""; }); document.querySelectorAll('input[type=radio]').forEach(function(r){ r.checked = false; }); var restored = restoreDraft(); T("草稿恢复成功", restored && getCover().姓名 === "测试学员张三" && pre1[1].checked, "name=" + getCover().姓名 + " pre1=" + pre1[1].checked); window.__sncStage = "before-solidify"; var marks = prepareExport(); T("radio 固化标记生成", marks.length === document.querySelectorAll('input[type=radio]').length, "marks=" + marks.length); T("选中标记为 ●", marks.some(function(m){ return m.textContent === "●"; }), "onMarks=" + marks.filter(function(m){ return m.textContent==="●"||m.textContent==="☑"; }).length); T("未选中标记为 ○", marks.some(function(m){ return m.textContent === "○"; })); T("导出态 body class 已加", document.body.classList.contains("snc-exporting")); T("工具栏在导出态隐藏", getComputedStyle(toolbar).display === "none", getComputedStyle(toolbar).display); var grown = tas[0].offsetHeight > 60; T("填写 textarea 高度已撑开", grown, "h=" + tas[0].offsetHeight); finishExport(marks); T("固化标记已移除", document.querySelectorAll(".snc-mark").length === 0, "left=" + document.querySelectorAll(".snc-mark").length); T("导出态 body class 已移除", !document.body.classList.contains("snc-exporting")); window.__sncStage = "before-collect"; var data = collectData(); T("collectData 含封面信息", data.姓名 === "测试学员张三" && data.组别 === "第三组"); T("collectData 含 35 页", data.pages.length === 35, "pages=" + data.pages.length); T("前测答案按题号归集", data.pages.some(function(p){ return p.填写项.some(function(it){ return it.id === "radio_pre1" && it.选择 === "B"; }); })); window.__sncStage = "before-submission"; var sub = exportSubmissionFile({ test: true }); T("提交文件 HTML 生成", sub.ok && sub.bytes > 3000, "bytes=" + sub.bytes + " file=" + sub.fileName); T("提交文件含学员姓名", sub.html.indexOf("测试学员张三") >= 0); T("提交文件含未填写标注", sub.html.indexOf("(未填写)") >= 0); T("提交文件名规则正确", /SNC2026_Day1手册提交_测试学员张三_\d{8}\.html/.test(sub.fileName), sub.fileName); window.__sncStage = "before-pdf"; setBusy(true, "self-test pdf"); exportPdf({ test: true }).then(function(pdf){ setBusy(false); T("PDF 导出函数返回", !!pdf, JSON.stringify(pdf).slice(0,200)); T("PDF 页数 > 35", pdf.ok && pdf.pages >= 35, "pages=" + (pdf && pdf.pages)); T("PDF 文件 > 100KB", pdf.ok && pdf.bytes > 100*1024, "bytes=" + (pdf && pdf.bytes)); T("PDF 文件名规则正确", pdf.ok && /SNC2026_Day1学员手册_测试学员张三_\d{8}\.pdf/.test(pdf.fileName), pdf.fileName); T("PDF 后 DOM 已恢复(无固化标记)", document.querySelectorAll(".snc-mark").length === 0); T("PDF 后导出态已退出", !document.body.classList.contains("snc-exporting")); finishTest(); }).catch(function(e){ T("PDF 导出无异常", false, e && e.message); finishTest(); }); window.__sncStage = "finished"; function finishTest(){ var passN = results.filter(function(r){ return r.pass; }).length; var summary = { total: results.length, pass: passN, fail: results.length - passN, ms: Date.now() - testStart, results: results }; window.__sncTest = summary; var line = results.map(function(r){ return (r.pass?"PASS":"FAIL") + ":" + r.name + (r.pass ? "" : "(" + r.extra + ")"); }).join(" || "); document.title = "SNC_TEST " + passN + "/" + results.length + (summary.fail ? " HASFAIL " : " ALLPASS ") + line; } } /* ---------------- 初始化 ---------------- */ function init(){ indexFields(); restoreDraft(); updateProgress(); elStatus.dataset.ready = "1"; if(/snc-test/.test(location.hash)){ setTimeout(runSelfTest, 60); } } if(document.readyState === "loading"){ document.addEventListener("DOMContentLoaded", init); }else{ init(); } })();