// 存储各难度题目的正确答案
const correctAnswers = {
medium: {
mq1: 'C',
mq2: 'D',
mq3: 'AC',
mq4: 'D',
mq5: 'D'
},
easy: {
eq1: 'D',
eq2: 'D',
eq3: 'C',
eq4: 'B',
eq5: 'A'
},
hard: {
hq1: 'D',
hq2: 'C',
hq3: ['A', 'C'],
hq4: ['C', 'D'],
hq5: ['A', 'C']
}
};
// 所有试题数据
const quizQuestions = [
// 中等难度题目
{
id: 'mq1',
difficulty: 'medium',
number: 1,
points: 20,
text: '2024年4月25日神舟十八号载人飞船成功与空间站对接。对接前的运动简化如下:空间站在轨道Ⅰ上匀速圆周运动,速度大小为飞船在椭圆轨道Ⅱ上运动,近地点B点离地的高度是200km,远地点A点离地的高度是356km,飞船经过A点的速度大小为
,经过B点的速度大小为
。已知轨道Ⅰ、轨道Ⅱ在A点相切,地球半径为6400km,下列说法正确是( )
',
options: [
{ id: 'mq1-a', label: 'A', text: '在轨道Ⅱ上经过A的速度等于在轨道Ⅰ上经过A的速度,即
' },
{ id: 'mq1-b', label: 'B', text: '在轨道Ⅱ上经过A的向心加速度小于在轨道Ⅰ上经过A的向心加速度' },
{ id: 'mq1-c', label: 'C', text: '在轨道Ⅱ上经过B的速度有可能大于
' },
{ id: 'mq1-d', label: 'D', text: '在轨道Ⅱ上从B点运动到A点的时间大约为
' }
],
explanation: '正确答案:C
解析:A.根据得
可知在轨道
上经过A的速度小于在轨道I上经过A的速度,即
故A错误;' +
'B.根据
得
可知在轨道Ⅱ上经过A的向心加速度等于在轨道I上经过A的向心加速度,故B错误;' +
'C.第一宇宙速度是近地卫星的环绕速度,也是最大的圆周运动的环绕速度,但轨道Ⅱ为椭圆轨道,发射速度小于第二宇宙速度即可,所以在轨道工上经过B的速度可能大于7.9
,故C正确;' +
'D.根据开普勒第三定律得
其中
,
,解得
又
则
轨道Ⅱ上从B点运动到A点的时间
代入数据解得
故D错误。' +
'故答案为:C。'
},
{
id: 'mq2',
difficulty: 'medium',
number: 2,
points: 20,
text: '《天问》是屈原笔下的不朽诗篇,而"天问"行星探索系列代表着中国人对深空物理研究的不懈追求。如下图所示,半径均为R的两球形行星A、B的密度之比为
,A、B各有一个近地卫星C、D,其绕行周期分别为:
、
。站在行星表面的宇航员从距A行星表面高为h处以
水平抛出一物体a,从距B行星表面高为2h处以
水平抛出另一物体b。下列说法正确的是( )
',
options: [
{ id: 'mq2-a', label: 'A', text: 'C、D绕A、B运行的速度之比为
' },
{ id: 'mq2-b', label: 'B', text: 'B、D绕A、B运行的周期满足
' },
{ id: 'mq2-c', label: 'C', text: '由于不知道a与b的质量,所以无法求出二者落地时速度之比' },
{ id: 'mq2-d', label: 'D', text: 'A、B两物体从抛出到落地的位移之比为
' }
],
explanation: '正确答案:D
解析:由于两个行星半径相等则体积相等,根据密度公式可以得出星球A和B的质量之比为根据引力提供向心力可以得出两个近地卫星的周期的表达式为
所以两个近地卫星的周期之比为
:1,根据线速度的表达式为
则可以得出两个近地卫星的线速度之比为1:
' +
'根据引力形成重力可以得出
则两个抛出物体的重力加速度之比为为:1:2,根据位移公式
可以求出运动的时间之比为:1:1;则根据水平方向的位移公式可以求出运动的水平位移之比为1:2;则合位移之比为1:2;根据速度公式可以求出落地竖直方向的速度之比为1:1,则根据速度的合成
未知分速度的关系不能求出合速度的比值,所以ABC错误,D对;正确答案为D。'
},
{
id: 'mq3',
difficulty: 'medium',
number: 3,
points: 20,
text: '登天揽月,奔月取壤,嫦娥五号完成了中国航天史上的一次壮举。2020年12月17日,嫦娥五号轨道器与返回器在距离地球5000公里处实施分离,轨道器启程飞往日地拉格朗日点
,如图1所示,返回器独自携带月壤样品返回地球,如图2所示,图中A、C、E三点均在大气层边缘,返回器从A到E无动力作用,下列说法正确的是( )
',
options: [
{ id: 'mq3-a', label: 'A', text: '图1中,轨道器在
点所受的太阳的引力大于地球对其的引力' },
{ id: 'mq3-b', label: 'B', text: '图1中,轨道器在
点处于平衡状态' },
{ id: 'mq3-c', label: 'C', text: '图2中,返回器通过A点时的动能等于其通过C点时的动能' },
{ id: 'mq3-d', label: 'D', text: '图2中,返回器在A、C、E三点处的加速度相同' }
],
explanation: '正确答案:AC
解析:AB.该轨道器在L点环绕太阳做圆周运动时,该轨道器受到地球和太阳的引力的合力指向太阳,因此该轨道器所受的太阳的引力大于地球对其的引力,处于不平衡状态,A符合题意,B不符合题意;' +
'C.A点到C点过程,万有引力做功为0,但空气阻力做负功,故C点时的动能小于A点时的动能故,C符合题意正确;D. 返回器在A、C、E三点处的轨道高度相同根据可知,加速度大小相同,但方向不同,D不符合题意。故答案为:A。'
},
{
id: 'mq4',
difficulty: 'medium',
number: 4,
points: 20,
text: '如图所示,嫦娥五号探测器由轨道器、返回器、着陆器和上升器等多个部分组成。探测器完成对月球表面的取样任务后,样品将由上升器携带升空进入环月轨道,与环月轨道上做匀速圆周运动的轨道器、返回器组合体(简称"组合体")对接。为了安全,上升器与组合体对接时,必须具有相同的速度。已知上升器(含样品)的质量为m,月球的半径为R,月球表面的"重力加速度"为g,组合体到月球表面的高度为h。取上升器与月球相距无穷远时引力势能为零,上升器与月球球心距离r时,引力势能为
,G为引力常量。M为月球的质量(未知),不计月球自转的影响。下列说法正确的是( )
',
options: [
{ id: 'mq4-a', label: 'A', text: '月球的质量
' },
{ id: 'mq4-b', label: 'B', text: '组合体在环月轨道上做圆周运动的速度v的大小为
' },
{ id: 'mq4-c', label: 'C', text: '上升器与组合体成功对接时上升器的能量为
' },
{ id: 'mq4-d', label: 'D', text: '上升器从月球表面升空并与组合体成功对接至少需要的能量为
' }
],
explanation: '正确答案:D
解析:A.设月球表面有一物体,质量为,根据万有引力等于重力可得
解得月球质量
不符合题意;' +
'B.组合体在环月轨道上距地面高h处做圆周运动,设组合体的质量为
,由万有引力提供向心力,可得
解得组合体在环月轨道上做圆周运动的速度的大小为
B不符合题意;' +
'C.上升器与组合体成功对接时与组合器具有相同的速度,所以对接上升器的动能为
引力势能为
故上升器与组合体成功对接时上升器的能量为
C不符合题意;' +
'D.上升器从月球表面升空并与组合体成功对接至少需要的能量为成功对接时的能量与初始能量的差值,即为
D符合题意。故答案为:D。'
},
{
id: 'mq5',
difficulty: 'medium',
number: 5,
points: 20,
text: '北斗三号由30颗卫星组成。由24颗较低的中圆地球轨道卫星、3颗较高的地球同步轨道卫星和3颗较高的倾斜地球同步轨道卫星组成,如图所示。关于运动的卫星以下说法正确的是( )
',
options: [
{ id: 'mq5-a', label: 'A', text: '所有卫星运行速度大于
' },
{ id: 'mq5-b', label: 'B', text: '同步轨道卫星运动速度比中圆地球轨道卫星速度大' },
{ id: 'mq5-c', label: 'C', text: '所有地球同步轨道卫星运动的动能相等' },
{ id: 'mq5-d', label: 'D', text: '同步轨道卫星周期比中圆地球轨道卫星周期大' }
],
explanation: '正确答案:D
解析:A.卫星运行速度小于第一宇宙速度,A错误;B.根据卫星运动向心力公式可得r越大速度越小,故同步轨道卫星运动速度比中圆地球轨道卫星速度小,B错误;' +
'C.卫星动能与质量有关,同轨道速率相等,质量未知无法比较,C错误;D.根据卫星运动向心力公式
可知r越大周期越大,故同步轨道卫星周期比中圆地球轨道卫星周期大,D正确;故答案为:D。'
},
// 简单难度题目
{
id: 'eq1',
difficulty: 'easy',
number: 6,
points: 20,
text: '下列有关万有引力的说法中,正确的是( )',
options: [
{ id: 'eq1-a', label: 'A', text: '物体落到地面上,说明地球对物体有引力,物体对地球没有引力' },
{ id: 'eq1-b', label: 'B', text: '
中的G是比例常数,牛顿亲自测出了这个常数' },
{ id: 'eq1-c', label: 'C', text: '地球围绕太阳做圆周运动是因为地球受到太阳的引力和向心力的作用' },
{ id: 'eq1-d', label: 'D', text: '地面上自由下落的苹果和天空中运行的月亮,受到的都是地球的引力' }
],
explanation: '正确答案:D
解析:A、根据牛顿第三定律,地球对物体有引力,物体对地球也有引力,且等大反向,故A错误;B、万有引力常量是卡文迪什的扭秤实验测出的,故B错误;C、地球围绕太阳做圆周运动是因为受到太阳的引力,向心力是一个效果力,不是真实存在的力,故C错误;D、下落的苹果和天空中的月亮受到的力都是同一种力,都是地球的引力。故D正确。故答案为:D。'
},
{
id: 'eq2',
difficulty: 'easy',
number: 7,
points: 20,
text: '关于万有引力及其计算公式,下列说法正确的是( )',
options: [
{ id: 'eq2-a', label: 'A', text: '万有引力只存在于质量很大的两个物体之间' },
{ id: 'eq2-b', label: 'B', text: '根据公式知,
趋近于0时,
趋近于无穷大' },
{ id: 'eq2-c', label: 'C', text: '相距较远的两物体质量均增大为原来的2倍,它们之间的万有引力也会增加到原来的2倍' },
{ id: 'eq2-d', label: 'D', text: '地球半径为
,将一物体从地面发射至离地面高度为
处时,物体所受万有引力减小到原来的一半,则
' }
],
explanation: '正确答案:D
解析:A.万有引力存在任何两个物体之间,计算公式适用于质量很大的物体,A不符合题意;B.对于表达式而言,当两物体间距离r趋近于零时,表达式不适用,故万有引力F不会趋近于无穷大,B不符合题意;C. 相距较远的两物体质量增大到原来的两倍,由可知,万有引力增大到原来的4倍,C不符合题意;D. 若万有引力减小到原来一半,即半径为原来的
倍,则高度
D符合题意。故答案为:D。'
},
{
id: 'eq3',
difficulty: 'easy',
number: 8,
points: 20,
text: '假设在地球周围有质量相等的A、B两颗地球卫星,已知地球半径为R,卫星A距地面高度为R,卫星B距地面高度为2R,卫星B受到地球的万有引力大小为F,则卫星A受到地球的万有引力大小为( )',
options: [
{ id: 'eq3-a', label: 'A', text: '
' },
{ id: 'eq3-b', label: 'B', text: '
' },
{ id: 'eq3-c', label: 'C', text: '
' },
{ id: 'eq3-d', label: 'D', text: '4F' }
],
explanation: '正确答案:C
解析:B卫星距地心为3R,根据万有引力的表达式,可知受到的万有引力为;A卫星距地心为2R,受到的万有引力为
,则有
;A,B,D不符合题意;C符合题意.故答案为:C'
},
{
id: 'eq4',
difficulty: 'easy',
number: 9,
points: 20,
text: '质量为
的人造地球卫星在地面上空高
处绕地球做匀速圆周运动。地球质量为
,半径为
,引力常量为
,则卫星的向心力为( )',
options: [
{ id: 'eq4-a', label: 'A', text: '
' },
{ id: 'eq4-b', label: 'B', text: '
' },
{ id: 'eq4-c', label: 'C', text: '
' },
{ id: 'eq4-d', label: 'D', text: '
' }
],
explanation: '正确答案:B
解析:根据万有引力提供向心力可得,卫星的向心力为B符合题意,ACD不符合题意。故答案为:B。'
},
{
id: 'eq5',
difficulty: 'easy',
number: 10,
points: 20,
text: '观察"神舟十号"在圆轨道上的运动,发现每经过时间2t通过的弧长为L,该弧长对应的圆心角为θ(弧度),如图所示,已知引力常量为G,由此可推导出地球的质量为( )
',
options: [
{ id: 'eq5-a', label: 'A', text: '
' },
{ id: 'eq5-b', label: 'B', text: '
' },
{ id: 'eq5-c', label: 'C', text: '
' },
{ id: 'eq5-d', label: 'D', text: '
' }
],
explanation: '正确答案:A
解析:根据弧长和半径的关系,可得轨道半径为根据万有引力提供向心力有
联立解的,地球的质量
所以A正确,BCD错误;故选A。'
},
// 高级难度题目
{
id: 'hq1',
difficulty: 'hard',
number: 11,
points: 20,
text: '我国首颗超百Gbps容量高通量地球静止轨道通信卫星中星26号卫星,于北京时间2023年2月23日在西昌卫星发射中心成功发射,该卫星主要用于为固定端及车、船、机载终端提供高速宽带接入服务。如图,某时刻中星26与椭圆轨道侦察卫星恰好位于C、D两点,两星轨道相交于A、B两点,C、D连线过地心,D点为远地点,两卫星运行周期都为T。下列说法正确的是( )
',
options: [
{ id: 'hq1-a', label: 'A', text: '中星26与侦察卫星可能在A点或B点相遇' },
{ id: 'hq1-b', label: 'B', text: '侦查卫星从D点运动到A点过程中机械能增大' },
{ id: 'hq1-c', label: 'C', text: '中星26在C点线速度
与侦察卫星在D点线速度
相等' },
{ id: 'hq1-d', label: 'D', text: '相等时间内中星26与地球的连线扫过的面积大于侦察卫星与地球的连线扫过的面积' }
],
explanation: '正确答案:D
解析:A.中星26与侦察卫星周期相同,并且当中星26在下半周运动时,卫星在上半周运动,故不可能相遇,故A错误;B.侦察卫星在D到A点过程中只有引力做功故机械能不变,故B错误;C.开普勒第二定律可知,在近地点速度大于远地点速度故中星26在C点线速度大于侦察卫星在D点线速度
, 故C错误;D.中星26与侦察卫星的周期相同,由开普勒第三定律
中星26轨道半径等于侦察卫星的半长轴,运动一个周期中星26是一个圆,而侦察卫星是一个椭圆,由于圆的面积大于椭圆的面积,故相等时间内中星26与地球的连线扫过的面积大于侦察卫星与地球的连线扫过的面积,故D正确;故答案为:D。'
},
{
id: 'hq2',
difficulty: 'hard',
number: 12,
points: 20,
text: '在高空运行的同步卫星功能失效后,往往会被送到同步轨道上空几百公里处的"墓地轨道",以免影响其他在轨卫星并节省轨道资源。如图甲所示,我国"实践21号"卫星在地球同步轨道"捕获"已失效的"北斗二号G~2~"卫星后,成功将其送入"墓地轨道"。已知转移轨道与同步轨道、墓地轨道分别相切于P、Q点,"北斗二号G~2~"卫星在P点进入转移轨道,从Q点进入墓地轨道,则( )
',
options: [
{ id: 'hq2-a', label: 'A', text: '卫星在同步轨道上运行时会经过河南上空' },
{ id: 'hq2-b', label: 'B', text: '不同国家发射的同步卫星轨道高度不同' },
{ id: 'hq2-c', label: 'C', text: '卫星在转移轨道上经过P点的速度大于在同步轨道上经过P点的速度' },
{ id: 'hq2-d', label: 'D', text: '卫星在转移轨道上经过Q点的加速度小于在墓地轨道上经过Q点的加速度' }
],
explanation: '正确答案:C
解析:A.同步卫星在赤道上空,所以不会经过河南上空,故A错误;B.不同国家发射的同步卫星周期都相同,故发射的同步卫星轨道的高度相同,故B错误;C.卫星要从同步轨道转移到转移轨道,得在p点速度增大才能到转移轨道,故转移轨道经过P点的速度大于同步轨道上的P点的速度,故C正确;D.都在Q点到地心的距离相同,所以向心力的大小相同,故在转移轨道和墓地轨道在Q点的加速度大小相同,故D错误;故答案为:C。'
},
{
id: 'hq3',
difficulty: 'hard',
number: 13,
points: 20,
text: '在星球M上将一轻弹簧竖直固定在水平桌面上,把物体P轻放在弹簧上端,P由静止向下运动,物体的加速度a与弹簧的压缩量x间的关系如图中实线所示。在另一星球N上用完全相同的弹簧,改用物体Q完成同样的过程,其a--x关系如图中虚线所示,假设两星球均为质量均匀分布的球体。已知星球M的半径是星球N的3倍,则( )',
options: [
{ id: 'hq3-a', label: 'A', text: 'M与N的密度相等' },
{ id: 'hq3-b', label: 'B', text: 'Q的质量是P的3倍' },
{ id: 'hq3-c', label: 'C', text: 'Q下落过程中的最大动能是P的4倍' },
{ id: 'hq3-d', label: 'D', text: 'Q下落过程中弹簧的最大压缩量是P的4倍' }
],
explanation: '正确答案:AC
解析:把物体P轻放在弹簧上端,一开始,弹簧尚未变形,物体仅受重力作用,由图像可知这时物体P的加速度为3a~0~,根据牛顿第二定律知:,同理
。由万有引力公式知:
,故A正确;' +
'当物体的加速度为零时,物体受力平衡,这时
,
故B错误。' +
'起初,物体P做加速度逐渐减小的加速运动,当物体的加速度为零时,速度最大,动能最大,因物体运动整个过程只受到弹力和重力作用,故机械能守恒,设初始状态机械能为零,对P:
,
故
,故C正确。' +
'当速度为零时,弹簧的压缩量最大,由机械能守恒知:对P:
对Q:
,故
,故D错。故AC正确,BD错误。故答案为:AC'
},
{
id: 'hq4',
difficulty: 'hard',
number: 14,
points: 20,
text: '关于如图a、图b、图c、图d所示的四种情况,下列说法中不正确的是( )
',
options: [
{ id: 'hq4-a', label: 'A', text: '图a中,火车以大于规定速度经过外轨高于内轨的弯道时,火车对外轨有压力' },
{ id: 'hq4-b', label: 'B', text: '图b中,英国科学家卡文迪什利用了扭秤实验成功地测出了引力常量' },
{ id: 'hq4-c', label: 'C', text: '图c中,牛顿根据第谷的观测数据提出了关于行星运动的三大定律' },
{ id: 'hq4-d', label: 'D', text: '图d中,小球通过轻杆在竖直面内做圆周运动,通过最高点的最小速度为
' }
],
explanation: '正确答案:CD
解析:A.图a中,火车以大于规定速度经过外轨高于内轨的弯道时,火车重力和轨道对火车的支持力的合力不足以提供向心力,此时外轨对火车有压力,从而提供一部分向心力,根据牛顿第三定律可知火车对外轨有压力,A正确,不符合题意;' +
'B.图b中,英国科学家卡文迪什利用了扭秤实验成功地测出了引力常量,B正确,不符合题意;C.图c中,开普勒根据第谷的观测数据提出了关于行星运动的三大定律,C错误,符合题意;D.图d中,小球通过轻杆在竖直面内做圆周运动,由于轻杆对小球可以有竖直向上支持力的作用,所以小球通过最高点时向心力可以为零,即最小速度为零,D错误,符合题意。故答案为:CD。'
},
{
id: 'hq5',
difficulty: 'hard',
number: 15,
points: 20,
text: '年
月
日,神舟十二号载人飞船与空间站天和核心舱在轨运行
' +
'天后成功实施分离,三名航天员在踏上回家之路前,完成了绕飞和径向交会对接试验,经过两小时的绕飞和三次姿态调整后,神舟十二号飞船来到节点舱的径向对接口正下方,从相距
向相距
靠近,飞船与核心舱的轨道半径分别为
和
,运行周期分别为
和
,下列说法正确的是( )
',
options: [
{ id: 'hq5-a', label: 'A', text: '飞船靠近天和核心舱过程中,向心加速度逐渐增大' },
{ id: 'hq5-b', label: 'B', text: '飞船靠近天和核心舱过程中,所在轨道处的重力加速度逐渐增大' },
{ id: 'hq5-c', label: 'C', text: '交会对接试验过程中,飞船发动机需要提供飞船向前和指向核心舱的作用力' },
{ id: 'hq5-d', label: 'D', text: '交会对接试验过程中应满足
' }
],
explanation: '正确答案:AC
解析:A.交会对接试验过程中,神舟十二号飞船与天和核心舱径向交会对接,角速度大小相同,保持不变,飞船轨道半径逐渐增大,向心加速度逐渐增大,A正确;' +
'B.根据
可得
飞船靠近天和核心舱过程中
增大,所以所在轨道处的重力加速度逐渐减小,B错误;' +
'C.交会对接试验过程中,飞船做离心运动的同时做加速运动,所以发动机需要提供飞船向前和指向核心舱的作用力,C正确;D.交会对接试验过程中,
,D错误。' +
'故选AC'
}
];
// 跟踪测验状态
const quizState = {
currentDifficulty: 'medium', // 初始难度
completedDifficulties: [],
scores: {}
};
// DOM元素
const submitBtn = document.getElementById('submit-btn');
const nextBtn = document.getElementById('next-btn');
const navigationSection = document.getElementById('navigation');
const navigationMessage = document.getElementById('navigation-message');
const result = document.getElementById('result');
const scoreValue = document.getElementById('score-value');
const correctCount = document.getElementById('correct-count');
const incorrectCount = document.getElementById('incorrect-count');
const difficultyIndicator = document.querySelector('.difficulty-indicator');
const questionSection = document.querySelector('.question-section');
// 获取难度名称
function getDifficultyName(difficulty) {
const names = {
easy: '简单',
medium: '中等',
hard: '高级'
};
return names[difficulty] || difficulty;
}
// 等待DOM加载完成
document.addEventListener('DOMContentLoaded', function() {
// 渲染题目
renderQuestions();
// 录音按钮事件绑定
const startRecordBtn = document.getElementById('startRecordBtn');
const stopRecordBtn = document.getElementById('stopRecordBtn');
const recordingIndicator = document.getElementById('recordingIndicator');
if (startRecordBtn && stopRecordBtn && recordingIndicator) {
startRecordBtn.addEventListener('click', function() {
recordingIndicator.style.display = 'flex';
startRecordBtn.style.display = 'none';
stopRecordBtn.style.display = 'flex';
console.log('开始录音...');
});
stopRecordBtn.addEventListener('click', function() {
recordingIndicator.style.display = 'none';
stopRecordBtn.style.display = 'none';
startRecordBtn.style.display = 'flex';
console.log('停止录音...');
});
} else {
console.error('录音相关DOM元素未找到');
}
// 提交按钮事件
submitBtn.addEventListener('click', function() {
const currentAnswers = correctAnswers[quizState.currentDifficulty];
const totalQuestions = Object.keys(currentAnswers).length;
let score = 0;
let correct = 0;
let incorrect = 0;
// 检查所有问题的答案
for (const [questionName, correctOptions] of Object.entries(currentAnswers)) {
// 获取用户选择的所有选项
const selectedOptions = Array.from(document.querySelectorAll(`input[name="${questionName}"]:checked`))
.map(checkbox => checkbox.value);
const questionNumber = questionName.substring(2); // 从mq1提取1
const explanationElement = document.querySelector(`[data-difficulty="${quizState.currentDifficulty}"][data-question="${questionNumber}"] .question-explanation`);
// 显示解析
explanationElement.style.display = 'block';
if (selectedOptions.length > 0) {
// 标记用户选择的选项
let allCorrect = true;
// 标记用户选择的每个选项
document.querySelectorAll(`input[name="${questionName}"]:checked`).forEach(checkbox => {
const userAnswer = checkbox.value;
if (correctOptions.includes(userAnswer)) {
checkbox.closest('.option').style.backgroundColor = '#e8f5e9';
checkbox.closest('.option').style.borderColor = '#4caf50';
} else {
checkbox.closest('.option').style.backgroundColor = '#ffebee';
checkbox.closest('.option').style.borderColor = '#c62828';
allCorrect = false;
}
});
// 标记用户未选择但正确的选项
document.querySelectorAll(`input[name="${questionName}"]`).forEach(checkbox => {
if (correctOptions.includes(checkbox.value) && !checkbox.checked) {
checkbox.closest('.option').style.backgroundColor = '#e3f2fd';
checkbox.closest('.option').style.borderColor = '#2196f3';
allCorrect = false;
}
});
// 判断是否全对
if (allCorrect && selectedOptions.length === correctOptions.length) {
score += 20; // 每题20分
correct++;
} else {
incorrect++;
}
} else {
// 未答题
incorrect++;
const questionElement = document.querySelector(`[data-difficulty="${quizState.currentDifficulty}"][data-question="${questionNumber}"]`);
questionElement.style.border = '2px solid #ff9800';
// 显示所有正确答案
document.querySelectorAll(`input[name="${questionName}"]`).forEach(checkbox => {
if (correctOptions.includes(checkbox.value)) {
checkbox.closest('.option').style.backgroundColor = '#e3f2fd';
checkbox.closest('.option').style.borderColor = '#2196f3';
}
});
}
}
// 保存当前难度得分
quizState.scores[quizState.currentDifficulty] = {
score: score,
correct: correct,
incorrect: incorrect
};
quizState.completedDifficulties.push(quizState.currentDifficulty);
// 显示当前难度结果
scoreValue.textContent = score;
correctCount.textContent = correct;
incorrectCount.textContent = incorrect;
result.style.display = 'block';
// 隐藏提交按钮
submitBtn.style.display = 'none';
// 根据当前难度和得分决定下一步
if (quizState.currentDifficulty === 'medium') {
if (correct < 3) {
// 中等难度答对少于3题,推荐简单难度
showNavigation('您在中等难度题目中表现不佳,建议先完成简单难度题目来巩固基础。', 'easy');
} else {
// 中等难度答对3题及以上,推荐高级难度
showNavigation('恭喜您完成中等难度题目!接下来挑战高级难度题目吧。', 'hard');
}
} else {
// 简单或高级难度完成后,显示最终结果
showFinalResult();
}
});
// 开始下一组题目
nextBtn.addEventListener('click', function() {
const nextDifficulty = navigationSection.dataset.nextDifficulty;
if (!nextDifficulty) return;
// 更新当前难度
quizState.currentDifficulty = nextDifficulty;
// 隐藏导航和结果
navigationSection.style.display = 'none';
result.style.display = 'none';
// 显示提交按钮
submitBtn.style.display = 'inline-block';
// 更新难度指示器
difficultyIndicator.textContent = `当前难度:${getDifficultyName(nextDifficulty)}`;
difficultyIndicator.className = `difficulty-indicator difficulty-${nextDifficulty}`;
// 隐藏所有题目
document.querySelectorAll('.question').forEach(question => {
question.classList.add('hidden');
});
// 显示下一组题目
document.querySelectorAll(`[data-difficulty="${nextDifficulty}"]`).forEach(question => {
question.classList.remove('hidden');
});
// 滚动到页面顶部
window.scrollTo(0, 0);
});
});
// 显示导航信息
function showNavigation(message, nextDifficulty) {
navigationMessage.textContent = message;
navigationSection.dataset.nextDifficulty = nextDifficulty;
navigationSection.style.display = 'block';
}
// 显示最终结果
function showFinalResult() {
// 计算总分
let totalScore = 0;
let totalCorrect = 0;
let totalIncorrect = 0;
for (const difficulty of quizState.completedDifficulties) {
totalScore += quizState.scores[difficulty].score;
totalCorrect += quizState.scores[difficulty].correct;
totalIncorrect += quizState.scores[difficulty].incorrect;
}
// 更新结果显示
scoreValue.textContent = totalScore;
correctCount.textContent = totalCorrect;
incorrectCount.textContent = totalIncorrect;
result.style.display = 'block';
// 显示完成信息
navigationMessage.textContent = '恭喜您完成所有推荐题目!';
navigationSection.style.display = 'block';
document.getElementById('next-btn').style.display = 'none';
}
// 渲染题目函数
function renderQuestions() {
// 清空题目区域
questionSection.innerHTML = '';
// 按难度分组题目
const questionsByDifficulty = {};
quizQuestions.forEach(question => {
if (!questionsByDifficulty[question.difficulty]) {
questionsByDifficulty[question.difficulty] = [];
}
questionsByDifficulty[question.difficulty].push(question);
});
// 为每个难度创建题目
Object.keys(questionsByDifficulty).forEach(difficulty => {
questionsByDifficulty[difficulty].forEach((question, index) => {
// 创建题目元素
const questionElement = document.createElement('div');
questionElement.className = 'question';
questionElement.dataset.difficulty = question.difficulty;
questionElement.dataset.question = question.number;
// 如果不是中等难度,添加隐藏类
if (question.difficulty !== 'medium') {
questionElement.classList.add('hidden');
}
// 创建题目HTML结构
let optionsHTML = '';
question.options.forEach(option => {
optionsHTML += `
${question.text}