From 5f53bd8f94be6b9ee0db731838a5dd890f66b1b7 Mon Sep 17 00:00:00 2001 From: chenshuainan Date: Mon, 28 Sep 2026 20:12:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- analyze_ctrl.txt | 76 + .../reports/problems/problems-report.html | 2 +- assets/mock/class_exercises_edit.json | 183 +++ lib/core/api/auth/api.dart | 12 +- .../api/conquerPackage/captureList/model.dart | 3 + .../conquerPackage/classExercises/api.dart | 107 ++ .../conquerPackage/classExercises/model.dart | 127 ++ lib/core/components/audio_player_card.dart | 58 +- lib/core/components/media_pause_scope.dart | 50 + lib/core/components/rich_text_content.dart | 185 ++- lib/core/components/upload.dart | 365 +++- lib/core/components/video_player_view.dart | 23 +- lib/core/network/dio_client.dart | 39 +- lib/core/router/app_router.dart | 16 + lib/core/services/image_file_header.dart | 10 + lib/core/services/image_file_header_io.dart | 118 ++ lib/core/services/image_file_header_web.dart | 25 + lib/core/services/image_processor.dart | 64 + lib/core/services/picker_service.dart | 8 +- lib/core/utils/question/exam_answer_card.dart | 303 ++++ .../question/extract_media_from_stem.dart | 150 ++ lib/core/utils/question/formula.dart | 10 + lib/core/utils/question/js_regex.dart | 139 ++ .../utils/question/question_constant.dart | 99 ++ lib/core/utils/question/question_parser.dart | 150 ++ .../utils/question/question_parser_base.dart | 913 ++++++++++ .../question_parser_non_standard.dart | 204 +++ .../question/question_parser_standard.dart | 337 ++++ lib/core/utils/question/tag_color.dart | 92 ++ .../conquerPackage/captureList/index.dart | 26 +- .../classExercises/class_exercises_page.dart | 1463 +++++++++++++++++ .../controllers/exercise_collect.dart | 83 + .../controllers/exercise_load.dart | 172 ++ .../controllers/exercise_navigation.dart | 418 +++++ .../controllers/exercise_session.dart | 136 ++ .../controllers/exercise_sort.dart | 194 +++ .../controllers/exercise_submit.dart | 816 +++++++++ .../controllers/exercise_timing.dart | 171 ++ .../controllers/exercise_timing_handlers.dart | 123 ++ .../exercise_question_view.dart | 998 +++++++++++ .../models/question_data_adapter.dart | 171 ++ .../classExercises/models/question_model.dart | 267 +++ .../widgets/answer_card_popup.dart | 462 ++++++ .../classExercises/widgets/answer_view.dart | 244 +++ .../widgets/compound_question_panel.dart | 1242 ++++++++++++++ .../classExercises/widgets/conquer_popup.dart | 252 +++ .../widgets/exercise_confirm_box.dart | 136 ++ .../widgets/exercise_styles.dart | 336 ++++ .../widgets/feedback_popup.dart | 280 ++++ .../classExercises/widgets/obj_options.dart | 278 ++++ .../classExercises/widgets/pause_popup.dart | 227 +++ .../widgets/question_plan_countdown.dart | 132 ++ .../conquerPackage/report/report_page.dart | 885 ++++++++++ .../report/widgets/conquer_poster_popup.dart | 665 ++++++++ .../report/widgets/guide_modal.dart | 168 ++ .../report/widgets/semicircle_progress.dart | 166 ++ .../transitionPage/transition_page.dart | 598 +++---- lib/features/task/task_page.dart | 2 +- pubspec.yaml | 1 + tool/tmp_parse_check.dart | 42 + 60 files changed, 14624 insertions(+), 398 deletions(-) create mode 100644 analyze_ctrl.txt create mode 100644 assets/mock/class_exercises_edit.json create mode 100644 lib/core/api/conquerPackage/classExercises/api.dart create mode 100644 lib/core/api/conquerPackage/classExercises/model.dart create mode 100644 lib/core/components/media_pause_scope.dart create mode 100644 lib/core/services/image_file_header.dart create mode 100644 lib/core/services/image_file_header_io.dart create mode 100644 lib/core/services/image_file_header_web.dart create mode 100644 lib/core/utils/question/exam_answer_card.dart create mode 100644 lib/core/utils/question/extract_media_from_stem.dart create mode 100644 lib/core/utils/question/formula.dart create mode 100644 lib/core/utils/question/js_regex.dart create mode 100644 lib/core/utils/question/question_constant.dart create mode 100644 lib/core/utils/question/question_parser.dart create mode 100644 lib/core/utils/question/question_parser_base.dart create mode 100644 lib/core/utils/question/question_parser_non_standard.dart create mode 100644 lib/core/utils/question/question_parser_standard.dart create mode 100644 lib/core/utils/question/tag_color.dart create mode 100644 lib/features/conquerPackage/classExercises/class_exercises_page.dart create mode 100644 lib/features/conquerPackage/classExercises/controllers/exercise_collect.dart create mode 100644 lib/features/conquerPackage/classExercises/controllers/exercise_load.dart create mode 100644 lib/features/conquerPackage/classExercises/controllers/exercise_navigation.dart create mode 100644 lib/features/conquerPackage/classExercises/controllers/exercise_session.dart create mode 100644 lib/features/conquerPackage/classExercises/controllers/exercise_sort.dart create mode 100644 lib/features/conquerPackage/classExercises/controllers/exercise_submit.dart create mode 100644 lib/features/conquerPackage/classExercises/controllers/exercise_timing.dart create mode 100644 lib/features/conquerPackage/classExercises/controllers/exercise_timing_handlers.dart create mode 100644 lib/features/conquerPackage/classExercises/exercise_question_view.dart create mode 100644 lib/features/conquerPackage/classExercises/models/question_data_adapter.dart create mode 100644 lib/features/conquerPackage/classExercises/models/question_model.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/answer_card_popup.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/answer_view.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/compound_question_panel.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/conquer_popup.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/exercise_confirm_box.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/exercise_styles.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/feedback_popup.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/obj_options.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/pause_popup.dart create mode 100644 lib/features/conquerPackage/classExercises/widgets/question_plan_countdown.dart create mode 100644 lib/features/conquerPackage/report/report_page.dart create mode 100644 lib/features/conquerPackage/report/widgets/conquer_poster_popup.dart create mode 100644 lib/features/conquerPackage/report/widgets/guide_modal.dart create mode 100644 lib/features/conquerPackage/report/widgets/semicircle_progress.dart create mode 100644 tool/tmp_parse_check.dart diff --git a/analyze_ctrl.txt b/analyze_ctrl.txt new file mode 100644 index 0000000..ac00337 --- /dev/null +++ b/analyze_ctrl.txt @@ -0,0 +1,76 @@ +Resolving dependencies... +Downloading packages... + _fe_analyzer_shared 96.0.0 (108.0.0 available) + analyzer 10.2.0 (14.4.0 available) + archive 4.2.0 (4.3.0 available) + build 4.0.7 (4.0.11 available) + build_runner 2.15.1 (2.16.1 available) + cached_network_image 3.4.1 (4.0.2 available) + cached_network_image_platform_interface 4.1.1 (5.0.2 available) + cached_network_image_web 1.3.1 (2.0.2 available) + camera_android_camerax 0.7.4+7 (0.7.5 available) + camera_avfoundation 0.10.3 (0.11.0 available) + camera_platform_interface 2.13.1 (2.14.0 available) + camera_web 0.3.5+5 (0.3.5+6 available) + chewie 1.14.0 (1.17.2 available) + clock 1.1.2 (1.1.3 available) + code_assets 1.2.1 (2.1.0 available) + cross_file 0.3.5+5 (0.4.0 available) + dart_style 3.1.7 (3.1.13 available) + dbus 0.7.15 (0.8.0 available) + equatable 2.1.0 (3.0.0 available) + flutter_cache_manager 3.4.2 (3.4.5 available) + flutter_local_notifications 22.3.0 (22.3.1 available) + flutter_secure_storage 10.3.1 (11.2.0 available) + flutter_secure_storage_darwin 0.3.2 (0.4.3 available) + flutter_secure_storage_linux 3.0.2 (3.0.3 available) + flutter_secure_storage_platform_interface 2.0.3 (2.1.1 available) + flutter_widget_from_html_core 0.17.3 (0.17.4 available) + go_router 17.5.0 (18.0.1 available) + hooks 2.0.2 (2.2.0 available) + image 4.9.2 (4.10.1 available) + image_picker_android 0.8.13+22 (0.8.13+23 available) + image_picker_ios 0.8.13+7 (0.8.13+8 available) + internet_connection_checker_plus 3.1.1 (3.1.2 available) + matcher 0.12.19 (0.12.20 available) + material_color_utilities 0.13.0 (0.13.1 available) + meta 1.18.0 (1.19.0 available) + nm 0.5.0 (0.6.0 available) + objective_c 9.5.0 (9.6.0 available) + octo_image 2.1.0 (2.1.1 available) + package_config 2.2.0 (3.0.0 available) + package_info_plus 10.0.0 (10.2.1 available) + permission_handler 11.4.0 (13.0.2 available) + permission_handler_android 12.1.0 (14.1.0 available) + permission_handler_apple 9.6.1 (9.6.2 available) + platform 3.1.6 (3.2.0 available) + record_use 0.6.0 (1.1.1 available) + share_plus 13.2.0 (13.3.0 available) + source_gen 4.2.4 (4.3.0 available) + sqflite 2.4.3 (2.4.4 available) + sqflite_android 2.4.3 (2.4.4 available) + sqflite_common 2.5.11 (2.5.13 available) + sqflite_darwin 2.4.3+1 (2.4.4 available) + sqflite_platform_interface 2.4.1 (2.4.2 available) + stack_trace 1.12.1 (1.12.2 available) + synchronized 3.4.1+2 (3.4.2 available) + test_api 0.7.11 (0.7.14 available) + vector_math 2.2.0 (2.4.3 available) + wakelock_plus 1.6.0 (1.8.0 available) + webdriver 3.1.0 (3.2.0 available) + wechat_assets_picker 9.8.0 (10.1.3 available) +Got dependencies! +59 packages have newer versions incompatible with dependency constraints. +Try `flutter pub outdated` for more information. +Analyzing controllers... + + info - The import of 'package:new_learn/core/utils/question/question_parser_base.dart' is unnecessary because all of the used elements are also provided by the import of 'package:new_learn/core/utils/question/question_parser.dart'. Try removing the import directive - lib\features\conquerpackage\classexercises\controllers\exercise_load.dart:16:8 - unnecessary_import + info - The import of 'package:new_learn/core/utils/question/question_parser_base.dart' is unnecessary because all of the used elements are also provided by the import of 'package:new_learn/core/utils/question/question_parser.dart'. Try removing the import directive - lib\features\conquerpackage\classexercises\controllers\exercise_submit.dart:23:8 - unnecessary_import + +flutter : 2 issues found. (ran in 3.2s) +At line:15 char:2543 ++ ... pp_Flutter; flutter analyze lib/features/conquerPackage/classExercise ... ++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + CategoryInfo : NotSpecified: (2 issues found. (ran in 3.2s):String) [], RemoteException + + FullyQualifiedErrorId : NativeCommandError + diff --git a/android/build/reports/problems/problems-report.html b/android/build/reports/problems/problems-report.html index 2743973..4dcacad 100644 --- a/android/build/reports/problems/problems-report.html +++ b/android/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/assets/mock/class_exercises_edit.json b/assets/mock/class_exercises_edit.json new file mode 100644 index 0000000..06778d7 --- /dev/null +++ b/assets/mock/class_exercises_edit.json @@ -0,0 +1,183 @@ +[{"id":"3395139052553926","questionId":"3386370619293766","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"


听下面1段对话,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。对话读2遍。

1. 听前训练(本题无需听音频)\n“Where is the woman going with her children?”题干中的疑问词Where是在询问什么信息?

A. 人物B. 地点C. 方式


2. Where is the woman going with her children?

A. Japan.B. Canada.C. Australia.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":718.7429999999999,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"自创题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386370619801669","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“Where is the woman going with her children?”题干中的疑问词Where是在询问什么信息?

A. 人物B. 地点C. 方式
","correctAnswer":"
B
","userAnswer":"B","score":5.0,"userScore":5.0,"answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553928"},{"childQuestionId":"3386370621538373","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. Where is the woman going with her children?

A. Japan.B. Canada.C. Australia.
","correctAnswer":"
A
","userAnswer":"A","score":5.0,"userScore":5.0,"answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553930"}],"indexes":[],"notes":[]},{"id":"3395139052553932","questionId":"3386370111438918","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听下面1段对话,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。对话读2遍。


1. 听前训练(本题无需听音频)\n“What did Captain Brown usually wear inside the space station?”题干中的疑问词What是在询问什么信息?

A. 原因或目的B. 地点或场景C. 事物或内容


2. What did Captain Brown usually wear inside the space station?

A. Shorts and a T-shirt.B. A spacesuit.C. A coat and trousers.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":0.0,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"人教版必修三教材改编题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386370111979589","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“What did Captain Brown usually wear inside the space station?”题干中的疑问词What是在询问什么信息?

A. 原因或目的B. 地点或场景C. 事物或内容
","correctAnswer":"
C
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553934"},{"childQuestionId":"3386370113880133","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. What did Captain Brown usually wear inside the space station?

A. Shorts and a T-shirt.B. A spacesuit.C. A coat and trousers.
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553936"}],"indexes":[],"notes":[]},{"id":"3395139052553938","questionId":"3386368593657926","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听下面1段对话,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。对话读2遍。

1. 听前训练(本题无需听音频)\n“Where is Miss Jones probably now?”题干中的疑问词Where是在询问什么信息?

A. 人物B. 地点C. 方式


2. Where is Miss Jones probably now?

A. In the bank.B. In the office.C. In the travel agency.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":0.0,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"自创题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386368594182213","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“Where is Miss Jones probably now?”题干中的疑问词Where是在询问什么信息?

A. 人物B. 地点C. 方式
","correctAnswer":"
B
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553940"},{"childQuestionId":"3386368595820613","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. Where is Miss Jones probably now?

A. In the bank.B. In the office.C. In the travel agency.
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553942"}],"indexes":[],"notes":[]},{"id":"3395139052553944","questionId":"3386369097728070","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听下面1段对话,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。对话读2遍。


1. 听前训练(本题无需听音频)\n“Who is the guest today?”题干中的疑问词Who是在询问什么信息?

A. 地点B. 人物C. 时间


2. Who is the guest today?

A. Steve Fox.B. Captain Brown.C. Max.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":0.0,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"人教版必修三教材改编题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386369098252357","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“Who is the guest today?”题干中的疑问词Who是在询问什么信息?

A. 地点B. 人物C. 时间
","correctAnswer":"
B
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553946"},{"childQuestionId":"3386369100120133","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. Who is the guest today?

A. Steve Fox.B. Captain Brown.C. Max.
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553948"}],"indexes":[],"notes":[]},{"id":"3395139052553950","questionId":"3386370366013446","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听下面1段对话,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。对话读2遍。

1. 听前训练(本题无需听音频)\n“How did the astronauts wash themselves in space?”题干中的疑问词How是在询问什么信息?

A. 方式B. 原因C. 地点


2. How did the astronauts wash themselves in space?

A. By taking a shower.B. By using a soapy towel.C. By washing with floating water.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":0.0,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"人教版必修三教材改编题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386370366750725","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“How did the astronauts wash themselves in space?”题干中的疑问词How是在询问什么信息?

A. 方式B. 原因C. 地点
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553952"},{"childQuestionId":"3386370369781765","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. How did the astronauts wash themselves in space?

A. By taking a shower.B. By using a soapy towel.C. By washing with floating water.
","correctAnswer":"
B
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553954"}],"indexes":[],"notes":[]},{"id":"3395139052553956","questionId":"3386370874605574","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"


听下面1段对话,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。对话读2遍。


1. 听前训练(本题无需听音频)\n“Who broke the pen?”题干中的疑问词Who是在询问什么信息?

A. 人物B. 地点C. 原因

2.Who broke the pen?

A. The man's mother.B. The woman.C. The man.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":0.0,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"自创题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386370875359237","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“Who broke the pen?”题干中的疑问词Who是在询问什么信息?

A. 人物B. 地点C. 原因
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553958"},{"childQuestionId":"3386370878177285","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

2.Who broke the pen?

A. The man's mother.B. The woman.C. The man.
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553960"}],"indexes":[],"notes":[]},{"id":"3395139052553962","questionId":"3386369351237638","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听下面1段独白,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。独白读2遍。

1. 听前训练(本题无需听音频)\n“Where did Chen Liyan find the plastic bag?”题干中的疑问词Where是在询问什么信息?

A. 人物B. 地点C. 时间


2. Where did Chen Liyan find the plastic bag?

A. At a hospital.B. At a police station.C. At Taiyuan Railway Station.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":0.0,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"人教版必修三教材改编题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386369351991301","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“Where did Chen Liyan find the plastic bag?”题干中的疑问词Where是在询问什么信息?

A. 人物B. 地点C. 时间
","correctAnswer":"
B
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553964"},{"childQuestionId":"3386369354448901","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. Where did Chen Liyan find the plastic bag?

A. At a hospital.B. At a police station.C. At Taiyuan Railway Station.
","correctAnswer":"
C
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553966"}],"indexes":[],"notes":[]},{"id":"3395139052553968","questionId":"3386368845627462","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听下面1段对话,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。对话读2遍。


1. 听前训练(本题无需听音频)\n“When will the play be performed?”题干中的疑问词When是在询问什么信息?

A. 时间B. 地点C. 人物


2. When will the play be performed?

A. On October 15th.B. On October 16th.C. On October 17th.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":0.0,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"自创题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386368846151749","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“When will the play be performed?”题干中的疑问词When是在询问什么信息?

A. 时间B. 地点C. 人物
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553970"},{"childQuestionId":"3386368847675461","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. When will the play be performed?

A. On October 15th.B. On October 16th.C. On October 17th.
","correctAnswer":"
B
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553972"}],"indexes":[],"notes":[]},{"id":"3395139052553974","questionId":"3386369858633734","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听下面1段独白,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。独白读2遍。


1. 听前训练(本题无需听音频)\n“When did the boy and his family open their presents?”题干中的疑问词When是在询问什么信息?

A. 时间B. 地点C. 人物


2. When did the boy and his family open their presents?

A. During dinner.B. After dinner.C. On Christmas morning.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":0.0,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"人教版必修三教材改编题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386369859403781","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“When did the boy and his family open their presents?”题干中的疑问词When是在询问什么信息?

A. 时间B. 地点C. 人物
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553976"},{"childQuestionId":"3386369861959685","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. When did the boy and his family open their presents?

A. During dinner.B. After dinner.C. On Christmas morning.
","correctAnswer":"
C
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553978"}],"indexes":[],"notes":[]},{"id":"3395139052553980","questionId":"3386369606221894","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听下面1段对话,回答以下2个小题,从题中所给的A、B、C三个选项中选出最佳选项。对话读2遍。


1. 听前训练(本题无需听音频)\n“Why did the girl ask Li Mei to change her dress?”题干中的疑问词Why是在询问什么信息?

A. 人物B. 地点C. 原因


2. Why did the girl ask Li Mei to change her dress?

A. It was too thick for the hot weather.B. Its colour was not bright enough.C. It was too old for the festival.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":0.0,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"人教版必修三教材改编题","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3386369606746181","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. 听前训练(本题无需听音频)\n“Why did the girl ask Li Mei to change her dress?”题干中的疑问词Why是在询问什么信息?

A. 人物B. 地点C. 原因
","correctAnswer":"
C
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052553982"},{"childQuestionId":"3386369608433733","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. Why did the girl ask Li Mei to change her dress?

A. It was too thick for the hot weather.B. Its colour was not bright enough.C. It was too old for the festival.
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3395139052570309"}],"indexes":[],"notes":[]},{"id":"1628832686055622","questionId":"806664578842694","questionTypeId":"805449231827078","questionTypeName":"七选五","isObjective":true,"isSelect":true,"stemIsLatex":false,"isUploadNotes":false,"stem":"

In my ninth-grade writing class last year     1     , I met a cowboy who saved his town, a strict father who demanded his son earn s     2     traight A’s, and a modern-day Juliet who died of heartbreak after her parents rejected the love of her young life. More than onc     3     e, I found myself wondering just how my students, who’d cr     4     eated these people, knew their subjects so well.    But things were different for their first essay, which was about the question: “Why is writing important?” Most of the essays filled less than one page, and     5     few contained a sentence that could be interpreted as a thesis (论点) statement. I was shocked. Then I realized that the problem was the question itself. They could have written pages on the necessity of computers, but writing, in and of itself, simply didn’t strike them as important. This would have to change.    As a new unit started, I asked everyone to write a persuasive piece on a health-related topic of their choice. This time they found the exercise much more interesting. For the next two assignments, a personal-narrative unit followed by a creative-writing workshop, I only required that the piece meet the specifications of its genre (体裁) and that it contain a thesis. The results were staggering. The students took on diverse topics and turned in stories, 10 to 20 pages each, with characters that broadened my view and touched my heart.    I walked into class believing that writing is important as a means of communication. However, my students demonstrated something more important to me. When the final bell rang in June, I walked away with a yearbook full of messages about writing’s most powerful significance — the ability to connect people, to put us in another’s skin, to teach us what it means to be human.\nWho are the people mentioned at the beginning of paragraph 。

A. Ninth graders. 
B. Students’ parents. 
C. Modern writers. 
D. Fictional characters. 
E. Fictional characters. 
F. Fictional characters. 
G. Fictional characters. 


","correctAnswer":"
A
B
C
D
E
","userAnswer":"","answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"
贾岛初赴举在京师,一日于驴上得句云:“鸟宿池边树,僧敲月下门。”又欲“推”字,炼之未定,于驴上吟哦,引手作推敲之势,观者讶之。
","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":8,"planTimeSecond":0,"isWrongCollect":true,"wrongCollectId":1628837019566278,"isCollect":false,"collectId":null,"hasChild":false,"hasIndex":true,"childs":[],"indexes":[{"index":1,"userAnswer":"A","answerStatus":10},{"index":2,"userAnswer":"A","answerStatus":11},{"index":3,"userAnswer":"A","answerStatus":11},{"index":4,"userAnswer":"A","answerStatus":11},{"index":5,"userAnswer":"A","answerStatus":11}],"notes":[]},{"id":"1628832686055634","questionId":"806664527253574","questionTypeId":"792171174588486","questionTypeName":"阅读理解","isObjective":true,"isSelect":false,"stemIsLatex":false,"isUploadNotes":false,"stem":"

In my ninth-grade writing class last year, I met a cowboy who saved his town, a strict father who demanded his son earn straight A’s, and a modern-day Juliet who died of heartbreak after her parents rejected the love of her young life. More than once, I found myself wondering just how my students, who’d created these people, knew their subjects so well.\nBut things were different for their first essay, which was about the question: “Why is writing important?” Most of the essays filled less than one page, and few contained a sentence that could be interpreted as a thesis (论点) statement. I was shocked. Then I realized that the problem was the question itself. They could have written pages on the necessity of computers, but writing, in and of itself, simply didn’t strike them as important. This would have to change.\nAs a new unit started, I asked everyone to write a persuasive piece on a health-related topic of their choice. This time they found the exercise much more interesting. For the next two assignments, a personal-narrative unit followed by a creative-writing workshop, I only required that the piece meet the specifications of its genre (体裁) and that it contain a thesis. The results were staggering. The students took on diverse topics and turned in stories, 10 to 20 pages each, with characters that broadened my view and touched my heart.\nI walked into class believing that writing is important as a means of communication. However, my students demonstrated something more important to me. When the final bell rang in June, I walked away with a yearbook full of messages about writing’s most powerful significance — the ability to connect people, to put us in another’s skin, to teach us what it means to be human.

【请输入第1小题题目内容】

Who are the people mentioned at the beginning of paragraph 1?

A. Ninth graders. B. Students’ parents. C. Modern writers. D. Fictional characters.
【请输入第2小题题目内容】

Why did the students perform poorly in writing their first essay?

A. They were not given enough time. B. They had a very limited vocabulary. C. They misunderstood the question. D. They had little interest in the topic.
【请输入第3小题题目内容】

What does the underlined word “staggering” in paragraph 3 mean?

A. Mixed. B. Amazing. C. Similar. D. Disturbing.
【请输入第4小题题目内容】

What does the author’s experience show?

A. Teaching is learning. B. Still waters run deep. C. Knowledge is power. D. Practice makes perfect.


","correctAnswer":"","userAnswer":"","answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":5,"planTimeSecond":0,"isWrongCollect":true,"wrongCollectId":1628837019566280,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"childs":[{"childQuestionId":"806664527265864","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
【请输入第1小题题目内容】

Who are the people mentioned at the beginning of paragraph 1?

A. Ninth graders. B. Students’ parents. C. Modern writers. D. Fictional characters.
","correctAnswer":"
D
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

细节理解题。根据第一句 “In my ninth-grade writing class last year,...” 和最后一句 “... how my students, who’d created these people...” 可知,people是作文中创作出来的人物。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055636"},{"childQuestionId":"806664527265873","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
【请输入第2小题题目内容】

Why did the students perform poorly in writing their first essay?

A. They were not given enough time. B. They had a very limited vocabulary. C. They misunderstood the question. D. They had little interest in the topic.
","correctAnswer":"
D
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

推理判断题。从 “Then I realized that the problem was the question itself.” 和 “but writing, in and of itself, simply didn’t strike them as important.” 可知,话题本身不能引起学生的重视。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055638"},{"childQuestionId":"806664527265882","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
【请输入第3小题题目内容】

What does the underlined word “staggering” in paragraph 3 mean?

A. Mixed. B. Amazing. C. Similar. D. Disturbing.
","correctAnswer":"
B
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

词义猜测题。根据 “The results were staggering.” 推测结果是什么样的,再根据后面“The students took on diverse topics and turned in stories, ... , touched my heart.”可知,这次的作文是作者满意的。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055640"},{"childQuestionId":"806664527265891","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
【请输入第4小题题目内容】

What does the author’s experience show?

A. Teaching is learning. B. Still waters run deep. C. Knowledge is power. D. Practice makes perfect.
","correctAnswer":"
A
","userAnswer":"A","answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"

主旨大意题。文章内容主要围绕教学实践中对 “writing” 的认知转变展开,描述调整教学策略后,学生写作成果的显著改善,体现教学相长中对 “沟通与共情” 的共同认知。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055642"}],"indexes":[],"notes":[]},{"id":"1628832686055644","questionId":"806636319580230","questionTypeId":"12357397088370693","questionTypeName":"完型填空","isObjective":true,"isSelect":false,"stemIsLatex":false,"isUploadNotes":false,"stem":"

阅读下面短文,从每题所给的A,B,C,D四个选项中选出可以填入空白处的最佳选项。\nOn Oct. 11, hundreds of runners competed in a cross - country race in Minnesota. Melanie Bailey should have       1      the course earlier than she did. Her       2      came because she was carrying a       3      across the finish line.\nAs reported by a local newspaper, Bailey was more than two - thirds of the way through her       4      when a runner in front of her began crying in pain. She       5      to help her fellow runner, Danielle Lenoue. Bailey took her arm to see if she could walk forward with       6     . She couldn’t. Bailey then       7      to let Lenoue climb onto her back and carried her all the way to the finish line, then another 300 feet to where Lenoue could get       8      attention.\nOnce there, Lenoue was       9      and later taken to a hospital, where she learned that she had serious injuries in one of her knees. She would have struggled with extreme       10      to make it to that aid checkpoint without Bailey’s help.\nAs for Bailey, she is more       11      about why her act is considered a big       12     . “She was just crying. I couldn’t       13      her,” Bailey told the reporter. “I feel like I was just doing the right thing.”\nAlthough the two young women were strangers before the       14     , they’ve since become friends. Neither won the race, but the       15      of human kindness won the day.

A. designed B. followed C. changed D. Finished
A. delay B. chance C. trouble D. excuse
A. judge B. volunteer C. classmate D. competitor
A. race B. school C. town D. training
A. agreed B. returned C. stopped D. promised
A. courage B. aid C. patience D. advice
A. went away B. stood up C. stepped aside D. bent down
A. medical B. public C. constant D. equal
A. interrupted B. assessed C. identified D. appreciated
A. hunger B. pain C. cold D. tiredness
A. worried B. ashamed C. confused D. discouraged
A. game B. problem C. lesson D. deal
A. leave B. cure C. bother D. understand
A. ride B. test C. meet D. show
A. secret B. display C. benefit D. exchange


","correctAnswer":"","userAnswer":"","answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":22,"planTimeSecond":0,"isWrongCollect":true,"wrongCollectId":1628837019566282,"isCollect":true,"collectId":1627954765308037,"hasChild":true,"hasIndex":false,"childs":[{"childQuestionId":"806636319600709","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. designed B. followed C. changed D. Finished
","correctAnswer":"
D
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

逻辑关系与上下文推理:should have done(虚拟语气)表示“本应该做某事但实际未成”。“the course”指赛程。后文其“延迟(delay)”的原因就是没有更早“完成”比赛。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055646"},{"childQuestionId":"806636319662151","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. delay B. chance C. trouble D. excuse
","correctAnswer":"
A
","userAnswer":"A","answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"

上下文复现:前句“earlier than she did”(比她实际完成得早)已暗示“延误”。后文“because she was carrying...”直接解释了“延误”的原因。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055648"},{"childQuestionId":"806636319662160","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. judge B. volunteer C. classmate D. competitor
","correctAnswer":"
D
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

上下文复现:上文“hundreds of runners competed”中的“competed”是解题关键。“competitor”是其同根词,指“竞争者、对手”。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055650"},{"childQuestionId":"806636319662169","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. race B. school C. town D. training
","correctAnswer":"
A
","userAnswer":"A","answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"

上下文复现:文章首句“...competed in a cross-country race”已点明事件。此处“through her race”是原词复现,指在她的比赛过程中。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055652"},{"childQuestionId":"806636319662178","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. agreed B. returned C. stopped D. promised
","correctAnswer":"
C
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

逻辑关系与上下文推理:看到他人哭泣疼痛,自然先“停下(stopped)”脚步去查看并提供帮助。“stopped to help”表示“停下来去帮助”。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055654"},{"childQuestionId":"806636319662187","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. courage B. aid C. patience D. advice
","correctAnswer":"
B
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

上下文复现:前句“to help”已表明目的是提供“帮助”。此处“with aid”是“帮助(help)”的同义复现,指在她的帮助下行走。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055656"},{"childQuestionId":"806636319662196","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. went away B. stood up C. stepped aside D. bent down
","correctAnswer":"
D
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

逻辑关系与上下文推理:要让别人爬到背上,自己必须先“弯下腰(bent down)”。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055658"},{"childQuestionId":"806636319662205","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. medical B. public C. constant D. equal
","correctAnswer":"
A
","userAnswer":"A","answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"

逻辑关系与上下文推理:前文提到 runner “crying in pain”(因疼痛哭泣),且后被送往医院,可知需要的是“医疗救助(medical attention)”。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055660"},{"childQuestionId":"806636319666251","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. interrupted B. assessed C. identified D. appreciated
","correctAnswer":"
B
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

逻辑关系与上下文推理:送到医疗点后,正常的程序是先“检查、评估(assessed)”伤情,根据情况再决定后续处理(如送医)。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055662"},{"childQuestionId":"806636319666260","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. hunger B. pain C. cold D. tiredness
","correctAnswer":"
B
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

上下文复现:前文多次提及“crying in pain”、“serious injuries”,疼痛(pain)是贯穿伤者状态的主线。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055664"},{"childQuestionId":"806636319666269","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. worried B. ashamed C. confused D. discouraged
","correctAnswer":"
C
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

逻辑关系与上下文推理:后文Bailey的直接引语“I feel like I was just doing the right thing”体现她认为这是很自然的事,因此她对人们认为其行为是件“大事(a big deal)”感到“困惑(confused)”。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055666"},{"childQuestionId":"806636319666278","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. game B. problem C. lesson D. deal
","correctAnswer":"
D
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

词义辨析与固定搭配:a big deal是固定短语,意为“重要的事”、“了不起的事”,与前文她的困惑相呼应。

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055668"},{"childQuestionId":"806636319666287","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. leave B. cure C. bother D. understand
","correctAnswer":"
A
","userAnswer":"A","answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"

逻辑关系与上下文推理:Bailey说“She was just crying. I couldn't ___ her.” 面对他人的痛苦和哭泣,根据其善良的本性,最合理的解释是“我不能离开她(leave her)”

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055670"},{"childQuestionId":"806636319666296","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. ride B. test C. meet D. show
","correctAnswer":"
C
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

词义辨析与固定搭配:meet常见意为“遇见”,但在体育赛事语境中,可指“比赛、运动会”(如 sports meet)。此处“before the meet”即“在那场比赛之前”

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055672"},{"childQuestionId":"806636319670342","questionTypeId":"0","questionTypeName":"","isObjective":true,"stemIsLatex":false,"stem":"
A. secret B. display C. benefit D. exchange
","correctAnswer":"
B
","userAnswer":"A","answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"

词义辨析与固定搭配:文章主旨是颂扬这种善举的“展现”(display)本身,而非其带来的“秘密”(secret)或“利益”(benefit)。“display of human kindness”指“人性善良的展现”.

","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"1628832686055674"}],"indexes":[],"notes":[]}, + { +"id": "1630968201887944", +"questionId": "1624485218476102", +"questionTypeId": "12352069399805957", +"questionTypeName": "解答题", +"isObjective": false, +"isSelect": false, +"stemIsLatex": false, +"stem": "

下列量中哪些是向量?\n悬挂物受到的拉力,压强,摩擦力,频率,加速度.

", +"correctAnswer": "
悬挂物受到的拉力、摩擦力、加速度是向量.
", +"userAnswer": "", +"answerStatus": 0, +"answerAnalysisIsLatex": false, +"answerAnalysis": "", +"answerAnalysisVideo": {}, +"answerTimeSecond": 1, +"planTimeSecond": 360, +"isWrongCollect": false, +"wrongCollectId": null, +"isCollect": false, +"collectId": null, +"hasChild": false, +"hasIndex": false, +"childs": [], +"indexes": [], +"notes": [] +} + , + { + "id": "1631580884754630", + "questionId": "1630062914486278", + "questionTypeId": "12352069399805957", + "questionTypeName": "解答题", + "isObjective": false, + "isSelect": false, + "stemIsLatex": false, + "isUploadNotes": false, + "stem": "

如图所示(可想象): 一个质量为 m=2 kgm=2kg 的物体放在水平地面上,物体与地面间的动摩擦因数为 μ=0.3μ=0.3。现对物体施加一个与水平方向成 37∘37∘ 斜向上的拉力 F=10 NF=10N。(取 g=10 m/s2g=10m/s2,sin⁡37∘=0.6sin37∘=0.6,cos⁡37∘=0.8cos37∘=0.8)

求:


【请输入第1小题题目内容】

(1)物体受到的摩擦力大小;


【请输入第2小题题目内容】

(2)物体的加速度大小。





", + "correctAnswer": "", + "userAnswer": "", + "answerStatus": 0, + "answerAnalysisIsLatex": false, + "answerAnalysis": "", + "answerAnalysisVideo": {}, + "answerTimeSecond": 0, + "planTimeSecond": 2, + "isWrongCollect": false, + "wrongCollectId": null, + "isCollect": false, + "collectId": null, + "hasChild": true, + "hasIndex": false, + "childs": [], + "indexes": [], + "notes": [] + } + , + { +"id": "1630870489718920", +"questionId": "1623132402377030", +"questionTypeId": "12352067804725253", +"questionTypeName": "填空题", +"isObjective": false, +"isSelect": false, +"stemIsLatex": false, +"stem": "

某种产品的原料提价,因而厂家决定对产品进行提价,现有三种方案:\n(1) 第一次提价 \\(p \\%\\) ,第二次提价 \\(q \\%\\) ;\n(2) 第一次提价 \\(q \\%\\) ,第二次提价 \\(p \\%\\) ;\n(3) 第一、二次提价均为 \\(\\frac{p+q}{2} \\%\\) .\n其中 \\(p\\) , \\(q\\) 是不相等的正数.三种方案中,提价最多的是方案      1     (填序号).

", +"correctAnswer": "

(3)

", +"userAnswer": "", +"answerStatus": 0, +"answerAnalysisIsLatex": false, +"answerAnalysis": "", +"answerAnalysisVideo": { +"videoName": "", +"videoUrl": "", +"videoCoverUrl": "", +"htmlId": "" +}, +"answerTimeSecond": 0, +"planTimeSecond": 0, +"isWrongCollect": false, +"wrongCollectId": null, +"isCollect": false, +"collectId": null, +"hasChild": false, +"hasIndex": true, +"childs": [], +"indexes": [ +{ +"index": 1, +"userAnswer": "[{\"ThumbnailUrl\":\"https://hx.cnzhyx.cn/AIGrading/2026-06-13/tmp_48db1f8a6c855245944c3530563e0074.png\",\"Url\":\"https://hx.cnzhyx.cn/AIGrading/2026-06-13/tmp_48db1f8a6c855245944c3530563e0074.png\",\"Type\":1}]", +"answerStatus": 10 +} +], +"notes": [] +} + ,{ +"id": "1628631605723152", +"questionId": "806614179516486", +"questionTypeId": "12352067804725253", +"questionTypeName": "填空题", +"isObjective": false, +"isSelect": false, +"stemIsLatex": false, +"isUploadNotes": false, +"stem": "

阅读下面短文,在空白处填入1个适当的单词或括号内单词的正确形式。\n I was born and raised in Cleveland, Ohio in the United States. Yet now, I live in the countryside of Zhejiang, China with my Chinese husband and his family,       1     bamboo and tea bushes (灌木) grow wild in the mountains, chickens are always free-range, and       2     (center) heating doesn’t exist.\n Nothing in my life before prepared me       3     this one-and to be sure, the first time I came here I never imagined I would ever feel comfortable in this area. But it’s amazing how you can adapt       4      learn in a new environment. Over time, I’ve found      5     (I) feeling extremely at home here. And in the process, I’ve experienced things that really surprise me at times. The “sunshine scent (香味)” of freshly sunned clothes      6      (be) one of them.\n Growing up, my family and our neighbors never used clotheslines to dry clothing. denying me the chance       7      (discover) one of the great wonders of sunshine — the sweet “sunshine scent” after sunning clothes for an entire day. The sun-dried clothes smell especially pleasant where I live, thanks to the       8      (absent) of smog and plenty of blue sky       9      (afternoon) with lots of fresh air.\n If you’ve never experienced the “sunshine scent” from a sheet or shirt       10     (leave) to sun for a day, well, you’re missing out on one of life’s wonders.


", +"correctAnswer": "

where


central


for


and


myself


is


to discover


absence


afternoons


left


", +"userAnswer": "", +"answerStatus": 0, +"answerAnalysisIsLatex": false, +"answerAnalysis": "", +"answerAnalysisVideo": { +"videoName": "", +"videoUrl": "", +"videoCoverUrl": "", +"htmlId": "" +}, +"answerTimeSecond": 0, +"planTimeSecond": 0, +"isWrongCollect": false, +"wrongCollectId": null, +"isCollect": false, +"collectId": null, +"hasChild": false, +"hasIndex": true, +"childs": [], +"indexes": [ +{ +"index": 1, +"userAnswer": "", +"answerStatus": 0 +}, +{ +"index": 2, +"userAnswer": "", +"answerStatus": 0 +}, +{ +"index": 3, +"userAnswer": "", +"answerStatus": 0 +}, +{ +"index": 4, +"userAnswer": "", +"answerStatus": 0 +}, +{ +"index": 5, +"userAnswer": "", +"answerStatus": 0 +}, +{ +"index": 6, +"userAnswer": "", +"answerStatus": 0 +}, +{ +"index": 7, +"userAnswer": "", +"answerStatus": 0 +}, +{ +"index": 8, +"userAnswer": "", +"answerStatus": 0 +}, +{ +"index": 9, +"userAnswer": "", +"answerStatus": 0 +}, +{ +"index": 10, +"userAnswer": "", +"answerStatus": 0 +} +], +"notes": [] + }, + {"id":"3329845433319568","questionId":"3327023041069254","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

我是听力

1.
A.ssB.dd
C.dffdD.df
","correctAnswer":"","userAnswer":"","score":5,"userScore":0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":762.264,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3327023042101445","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"
A.ssB.dd
C.dffdD.df
","correctAnswer":"
C
","userAnswer":"","score":5,"userScore":0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3329845433319570"}],"indexes":[],"notes":[]}, + {"id":"3329845433319568","questionId":"3327023041069254","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

我是听力

1.
A.ssB.dd
C.dffdD.df
","correctAnswer":"","userAnswer":"","score":5,"userScore":0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":762.264,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3327023042101445","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"
A.ssB.dd
C.dffdD.df
","correctAnswer":"
C
","userAnswer":"","score":5,"userScore":0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3329845433319570"}],"indexes":[],"notes":[]} + ,{"id":"3405044049118150","questionId":"3390814745051206","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听这段材料,综合信息,确定听力任务,回答下面2个小题。



1. When does the bank close at weekdays?

A. At 3 pm.B. At 4:30 pm.C. At 5 pm.

2. What does the man probably want to do?

A. Cancel a credit card.B. Open a bank account.C. Withdraw some money.
","correctAnswer":"","userAnswer":"","score":10.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":157.824,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3390814745641029","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. When does the bank close at weekdays?

A. At 3 pm.B. At 4:30 pm.C. At 5 pm.
","correctAnswer":"
C
","userAnswer":"A","score":5.0,"userScore":0.0,"answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118152"},{"childQuestionId":"3390814747639877","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

2. What does the man probably want to do?

A. Cancel a credit card.B. Open a bank account.C. Withdraw some money.
","correctAnswer":"
B
","userAnswer":"B","score":5.0,"userScore":5.0,"answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118154"}],"indexes":[],"notes":[]},{"id":"3405044049118156","questionId":"3390815258787846","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"


听这段材料,综合信息,确定听力任务,回答下面3个小题。



1. What exam is the woman worried about?

A. The chemistry exam.B. The math exam.C. The history exam.

2. What is the man poor at doing?

A. Studying for exams.B. Finishing projects.C. Reciting essays.

3. What percentage of the grade depends on the examination results?

A. 10%.B. 30%.C. 60%.
","correctAnswer":"","userAnswer":"","score":15.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":154.91099999999994,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3390815259459589","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. What exam is the woman worried about?

A. The chemistry exam.B. The math exam.C. The history exam.
","correctAnswer":"
C
","userAnswer":"A","score":5.0,"userScore":0.0,"answerStatus":11,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118158"},{"childQuestionId":"3390815262228485","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

2. What is the man poor at doing?

A. Studying for exams.B. Finishing projects.C. Reciting essays.
","correctAnswer":"
B
","userAnswer":"B","score":5.0,"userScore":5.0,"answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118160"},{"childQuestionId":"3390815264735237","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

3. What percentage of the grade depends on the examination results?

A. 10%.B. 30%.C. 60%.
","correctAnswer":"
C
","userAnswer":"C","score":5.0,"userScore":5.0,"answerStatus":10,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118162"}],"indexes":[],"notes":[]},{"id":"3405044049118164","questionId":"3390815002165318","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"


听这段材料,综合信息,确定听力任务,回答下面3个小题。


1. Why does the woman exercise?

A. To lose weight.B. To be healthy.C. To be strong.

2. What sport does the man usually do?

A. Running.B. Swimming.C. Weightlifting.

3. Where probably are the speakers?

A. In a gym.B. In an office.C. In a canteen.
","correctAnswer":"","userAnswer":"","score":15.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":150.248,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3390815002689605","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

1. Why does the woman exercise?

A. To lose weight.B. To be healthy.C. To be strong.
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118166"},{"childQuestionId":"3390815005081669","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

2. What sport does the man usually do?

A. Running.B. Swimming.C. Weightlifting.
","correctAnswer":"
C
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118168"},{"childQuestionId":"3390815006867525","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"

3. Where probably are the speakers?

A. In a gym.B. In an office.C. In a canteen.
","correctAnswer":"
B
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118170"}],"indexes":[],"notes":[]},{"id":"3405044049118172","questionId":"3390814488346630","questionTypeId":"12357387196366853","questionTypeName":"听力","questionTypeCode":"9","isObjective":true,"isSelect":false,"isUploadNotes":false,"stem":"

听3段材料,综合信息,确定听力任务,回答下面3个小题。


1. What will the speakers probably do on Saturday?

A. Go to a book sale.B. Borrow some books.C. Visit a children’s park.


2. What is the man going to do first?

A. Pick up his son.B. Attend a meeting.C. Work on a report.


3. What does the woman suggest the man do?

A. Avoid washing clothes at night.B. Get all the parts from Japan.C. Buy a new washing machine.
","correctAnswer":"","userAnswer":"","score":15.0,"userScore":0.0,"answerStatus":0,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"answerTimeSecond":40.303,"planTimeSecond":0,"isWrongCollect":false,"wrongCollectId":null,"isCollect":false,"collectId":null,"hasChild":true,"hasIndex":false,"source":"","wrongReason":"","wrongAdvice":"","childs":[{"childQuestionId":"3390814489051141","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


1. What will the speakers probably do on Saturday?

A. Go to a book sale.B. Borrow some books.C. Visit a children’s park.
","correctAnswer":"
A
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118174"},{"childQuestionId":"3390814491394053","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


2. What is the man going to do first?

A. Pick up his son.B. Attend a meeting.C. Work on a report.
","correctAnswer":"
C
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118176"},{"childQuestionId":"3390814494130181","questionTypeId":"12352055339057157","questionTypeName":"单选题","questionTypeCode":"1","isObjective":true,"stem":"


3. What does the woman suggest the man do?

A. Avoid washing clothes at night.B. Get all the parts from Japan.C. Buy a new washing machine.
","correctAnswer":"
C
","userAnswer":"","score":5.0,"userScore":0.0,"answerStatus":0,"answerAnalysisIsLatex":false,"answerAnalysis":"","answerAnalysisVideo":{"videoName":"","videoUrl":"","videoCoverUrl":"","htmlId":""},"id":"3405044049118178"}],"indexes":[],"notes":[]}] \ No newline at end of file diff --git a/lib/core/api/auth/api.dart b/lib/core/api/auth/api.dart index 08f6328..666f3c9 100644 --- a/lib/core/api/auth/api.dart +++ b/lib/core/api/auth/api.dart @@ -20,8 +20,7 @@ import 'package:new_learn/core/storage/user_storage.dart'; /// updateUserAvatar → 更改用户头像 /// /// 二、后续继续写(对齐 Vue,用到再加): -/// checkStudyPackStatus / setChangeUserOnline -/// getUserPointLevel / UpdateGuideStatus / UpdateReportStatus +/// checkStudyPackStatus / setChangeUserOnline / getUserPointLevel /// /// 三、高频坑: /// 1. 登录密码 MD5 加密(对齐 Vue stringToMd5),提交前在 Api 层完成; @@ -157,6 +156,15 @@ class UserApi { await DioClient.instance.post('/api/v1/User/ChangeShowAfterReport'); } + /// 更新攻克报告引导状态(报告页引导只出现一次,默认 false,触发后变 true) + /// → POST /api/v1/User/ChangeShowGuide + /// + /// 对齐 Vue api/user/index.ts 的 UpdateGuideStatus(), + /// 在攻克报告页 GuideModal 关闭时调用。 + static Future changeShowGuide() async { + await DioClient.instance.post('/api/v1/User/ChangeShowGuide'); + } + /// MD5 加密(UniApp stringToMd5 的等价实现) static String _md5(String text) { return md5.convert(utf8.encode(text)).toString(); diff --git a/lib/core/api/conquerPackage/captureList/model.dart b/lib/core/api/conquerPackage/captureList/model.dart index 8232622..f3f3f5b 100644 --- a/lib/core/api/conquerPackage/captureList/model.dart +++ b/lib/core/api/conquerPackage/captureList/model.dart @@ -16,6 +16,7 @@ class CourseRecord { this.accuracyRate = 0, this.status = 0, this.statusName = '', + this.overcomeTimeSecond = 0, }); final int id; // 记录 id @@ -23,6 +24,7 @@ class CourseRecord { final int accuracyRate; // 正确率(0-100) final int status; // 状态:0 未开始 / 1 进行中 / 2 成功 / 3 失败 等(按后端枚举) final String statusName; // 状态名称 + final int overcomeTimeSecond; // 攻克用时(秒) factory CourseRecord.fromJson(Map json) { return CourseRecord( @@ -31,6 +33,7 @@ class CourseRecord { accuracyRate: _parseInt(json['accuracyRate']), status: _parseInt(json['status']), statusName: json['statusName'] as String? ?? '', + overcomeTimeSecond: _parseInt(json['overcomeTimeSecond']), ); } } diff --git a/lib/core/api/conquerPackage/classExercises/api.dart b/lib/core/api/conquerPackage/classExercises/api.dart new file mode 100644 index 0000000..74e207c --- /dev/null +++ b/lib/core/api/conquerPackage/classExercises/api.dart @@ -0,0 +1,107 @@ +import 'package:new_learn/core/api/conquerPackage/classExercises/model.dart'; +import 'package:new_learn/core/network/dio_client.dart'; + +/// ============================================================ +/// 【课堂习题模块接口】 +/// +/// 对标 Vue 端 api/task/index.ts、api/userCollect/index.ts: +/// +/// GetRecordData GET /api/v1/StudyPack/GetRecord/{recordId} +/// GetListByRecordQuestion GET /api/v1/Question/GetListByRecord/{recordId} +/// QuestionRenewTime POST /api/v1/Question/RenewTime +/// PushAIGrading POST /api/v1/Question/PushAIGrading +/// RecordSubmit POST /api/v1/StudyPack/RecordSubmit +/// GetSubmitReport GET /api/v1/StudyPack/GetReport/{packId}(60s 超时) +/// AddUserCollect POST /api/v1/UserCollect/AddUserCollect +/// CancleCollect POST /api/v1/UserCollect/CancleCollect +/// Feedback POST /api/v1/Question/Feedback +/// +/// 说明: +/// - RenewTime / PushAIGrading / RecordSubmit 不脱壳,返回原始 data, +/// 由提交控制器读取 code / message / aiGradingCount / id; +/// - 异常统一抛 ApiException,交页面/控制器处理。 +/// ============================================================ +class ClassExercisesApi { + ClassExercisesApi._(); + + static final ClassExercisesApi instance = ClassExercisesApi._(); + + /// 获取学习记录信息(edit 模式 onLoad 第一步) + Future getRecordData(String recordId) async { + final data = await DioClient.instance.get( + '/api/v1/StudyPack/GetRecord/$recordId', + ); + return ClassExercisesRecord.fromJson(data); + } + + /// 根据学习记录获取题目列表 + Future getListByRecordQuestion( + String recordId, + ) async { + final data = await DioClient.instance.get( + '/api/v1/Question/GetListByRecord/$recordId', + ); + return ClassExercisesQuestionList.fromJson(data); + } + + /// 提交单题作答 / 更新作答时长 + /// body: {id, childId, courseId, userAnswer, startTime, endTime, + /// answerStatus, index?} + /// 返回原始响应(提交失败重试队列会读 requestParams/data 兜底) + Future questionRenewTime(Map body) { + return DioClient.instance.post('/api/v1/Question/RenewTime', data: body); + } + + /// 提交 AI 图片批改 + /// body: {id, childId, courseId, startTime, endTime, + /// answerImgs:[{url,thumbnailUrl}]} + Future pushAIGrading(Map body) { + return DioClient.instance.post( + '/api/v1/Question/PushAIGrading', + data: body, + ); + } + + /// 交卷 + /// body: {recordId};返回 {code,message,aiGradingCount} + Future recordSubmit(String recordId) { + return DioClient.instance.post( + '/api/v1/StudyPack/RecordSubmit', + data: {'recordId': recordId}, + ); + } + + /// 获取攻克报告(view 模式数据源,题目批改可能耗时,超时 60s) + Future getSubmitReport(String packId) async { + final data = await DioClient.instance.get( + '/api/v1/StudyPack/GetReport/$packId', + receiveTimeout: const Duration(seconds: 60), + ); + return ClassExercisesReport.fromJson(data); + } + + /// 添加收藏 / 错题本 + /// body: {type, packId, questionId, recordQuestionId} + /// 返回原始响应(成功时 res.id 为收藏记录 id) + Future addUserCollect(Map body) { + return DioClient.instance.post( + '/api/v1/UserCollect/AddUserCollect', + data: body, + ); + } + + /// 取消收藏 / 移出错题本 + /// body: {type, id} + Future cancleCollect(Map body) { + return DioClient.instance.post( + '/api/v1/UserCollect/CancleCollect', + data: body, + ); + } + + /// 题目反馈 + /// body: {id, questionId, feedbackTypes, description, images} + Future feedback(Map body) { + return DioClient.instance.post('/api/v1/Question/Feedback', data: body); + } +} diff --git a/lib/core/api/conquerPackage/classExercises/model.dart b/lib/core/api/conquerPackage/classExercises/model.dart new file mode 100644 index 0000000..33ba86b --- /dev/null +++ b/lib/core/api/conquerPackage/classExercises/model.dart @@ -0,0 +1,127 @@ +/// ============================================================ +/// 【课堂习题模块模型】接口响应壳解析 +/// +/// 对标 Vue 端: +/// api/task/index.ts → GetRecordData / GetListByRecordQuestion +/// / GetSubmitReport / RecordSubmit +/// api/question/index.ts → RenewTime / PushAIGrading / Feedback +/// +/// 说明: +/// 题目字段非常多且解析器(questionParser)会动态增删字段, +/// 题目列表统一以 `Map` 承载,业务侧再包 QuestionModel, +/// 全量保留后端原字段名,不做字段裁剪。 +/// ============================================================ +library; + +/// 从响应中取业务 payload(兼容 {code,message,data:{...}} 脱壳) +Map unwrapData(dynamic resp) { + if (resp is Map) { + final data = resp['data']; + if (data is Map) return data; + return resp; + } + return {}; +} + +/// GET StudyPack/GetRecord/{recordId} 响应 +class ClassExercisesRecord { + const ClassExercisesRecord({ + this.recordId = '', + this.name = '', + this.baseSubjectId, + this.raw = const {}, + }); + + /// 学习记录 id + final String recordId; + + /// 攻克包名称(用于 NavBar 标题:`${name}专项智能攻克`) + final String name; + + /// 学科 id(决定 iSFilllankItemUpload:0 输入框 / 1 图片作答) + final int? baseSubjectId; + + final Map raw; + + factory ClassExercisesRecord.fromJson(dynamic json) { + final data = unwrapData(json); + return ClassExercisesRecord( + recordId: + data['recordId']?.toString() ?? data['id']?.toString() ?? '', + name: data['name']?.toString() ?? '', + baseSubjectId: + int.tryParse('${data['baseSubjectId'] ?? ''}'), + raw: data, + ); + } +} + +/// GET Question/GetListByRecord/{recordId} 响应 +class ClassExercisesQuestionList { + const ClassExercisesQuestionList({ + this.items = const [], + this.raw = const {}, + }); + + /// 原始题目列表(字段全量保留,交给 parseQuestionData 处理) + final List> items; + + final Map raw; + + factory ClassExercisesQuestionList.fromJson(dynamic json) { + final data = unwrapData(json); + final rawList = data['questions'] ?? data['list'] ?? data['data']; + final list = >[]; + if (rawList is List) { + for (final item in rawList) { + if (item is Map) { + list.add(Map.from(item)); + } + } + } + return ClassExercisesQuestionList(items: list, raw: data); + } +} + +/// GET StudyPack/GetReport/{packId} 响应(view 模式数据源) +class ClassExercisesReport { + const ClassExercisesReport({ + this.id = '', + this.name = '', + this.baseSubjectId, + this.questions = const [], + this.raw = const {}, + }); + + /// 报告/记录 id(view 模式下作为 recordId 使用) + final String id; + + final String name; + + final int? baseSubjectId; + + /// 报告内题目列表(字段全量保留) + final List> questions; + + final Map raw; + + factory ClassExercisesReport.fromJson(dynamic json) { + final data = unwrapData(json); + final rawList = data['questions']; + final list = >[]; + if (rawList is List) { + for (final item in rawList) { + if (item is Map) { + list.add(Map.from(item)); + } + } + } + return ClassExercisesReport( + id: data['id']?.toString() ?? data['recordId']?.toString() ?? '', + name: data['name']?.toString() ?? '', + baseSubjectId: int.tryParse('${data['baseSubjectId'] ?? ''}'), + questions: list, + raw: data, + ); + } +} diff --git a/lib/core/components/audio_player_card.dart b/lib/core/components/audio_player_card.dart index e37c10d..aa25b8c 100644 --- a/lib/core/components/audio_player_card.dart +++ b/lib/core/components/audio_player_card.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:just_audio/just_audio.dart'; +import 'media_pause_scope.dart'; /// ============================================================ /// 【AudioPlayerCard】通用音频播放控制条(在线音频) @@ -43,7 +44,7 @@ import 'package:just_audio/just_audio.dart'; /// 不支持(返回 200 全量)→ ExoPlayer 无法字节定位,只能从头重新 /// 下载,表现就是"点中间段位置被重置回起点"(且第二次打开有系统 /// 缓存时会看似正常,极易误判)。验收新音频源: -/// curl -s -D - -o NUL -H "Range: bytes=0-1023" 看状态码。 +/// curl -s -D - -o NUL -H "Range: bytes=0-1023" `` 看状态码。 /// ============================================================ class AudioPlayerCard extends StatefulWidget { const AudioPlayerCard({ @@ -88,10 +89,14 @@ class AudioPlayerCard extends StatefulWidget { } class AudioPlayerCardState extends State - with WidgetsBindingObserver { + with WidgetsBindingObserver + implements MediaPausable { /// 底层播放器(just_audio) final AudioPlayer _player = AudioPlayer(); + /// 所属媒体暂停作用域(随挂载位置自动注册/注销) + MediaPauseRegistry? _pauseScope; + /// 是否正在加载(setUrl 未完成) bool _loading = true; @@ -115,15 +120,29 @@ class AudioPlayerCardState extends State _initPlayer(); } + @override + void didChangeDependencies() { + super.didChangeDependencies(); + // 自动挂到最近的 MediaPauseScope(含 fwfh 富文本内部的播放器) + final scope = MediaPauseScope.of(context); + if (scope != _pauseScope) { + _pauseScope?.unregister(this); + _pauseScope = scope; + _pauseScope?.register(this); + } + } + @override void dispose() { + _pauseScope?.unregister(this); WidgetsBinding.instance.removeObserver(this); // 必须释放播放器,否则音频解码资源泄漏 _player.dispose(); super.dispose(); } - /// 暂停播放(外部通过 GlobalKey 调用,用于切页时暂停音频) + /// 暂停播放(切页时由 MediaPauseRegistry 统一调用) + @override void pause() { _player.pause(); } @@ -403,19 +422,11 @@ class AudioPlayerCardState extends State ); } - /// 标题区:标题 + 地址/缓冲提示小字 + /// 标题区:标题 + 缓冲提示小字(不展示音频源地址) Widget _buildTitle({required bool buffering, required int percent}) { - // 小字:缓冲中显示百分比,否则显示源地址 - final String subText; - if (buffering) { - subText = '缓冲中 $percent%...'; - } else if (widget.asset != null) { - subText = widget.asset!; - } else { - subText = widget.url ?? ''; - } return Column( crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, children: [ Text( widget.title ?? (widget.asset != null ? '本地音频' : '音频'), @@ -427,16 +438,19 @@ class AudioPlayerCardState extends State color: Color(0xFF333333), ), ), - const SizedBox(height: 2), - Text( - subText, - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 11, - color: buffering ? const Color(0xFFF59E0B) : const Color(0xFF999999), + // 仅缓冲中展示百分比小字,不展示播放链接 URL + if (buffering) ...[ + const SizedBox(height: 2), + Text( + '缓冲中 $percent%...', + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 11, + color: Color(0xFFF59E0B), + ), ), - ), + ], ], ); } diff --git a/lib/core/components/media_pause_scope.dart b/lib/core/components/media_pause_scope.dart new file mode 100644 index 0000000..e106f4a --- /dev/null +++ b/lib/core/components/media_pause_scope.dart @@ -0,0 +1,50 @@ +import 'package:flutter/widgets.dart'; + +/// 可被外部暂停的媒体(音频/视频播放器 State 实现) +abstract class MediaPausable { + void pause(); +} + +/// 媒体暂停注册表:播放器挂载时注册、卸载时注销, +/// 暂停时直接遍历注册表,不再运行时递归 visitChildElements, +/// 避免在 build/翻页动画/element 停用阶段遍历 element 树 +/// 导致的生命周期断言(RenderViewport 收到 RenderErrorBox 等连锁报错)。 +class MediaPauseRegistry { + final Set _items = {}; + + void register(MediaPausable item) => _items.add(item); + + void unregister(MediaPausable item) => _items.remove(item); + + /// 暂停注册表里的全部媒体。 + /// 复制一份再遍历,防止 pause 触发的异步卸载修改集合。 + void pauseAll() { + for (final item in _items.toList(growable: false)) { + item.pause(); + } + } +} + +/// 媒体暂停作用域:包裹需要统一暂停媒体的区域(如单个题目页/子题页)。 +/// 子树中的 AudioPlayerCard/VideoPlayerView 会自动注册到最近的作用域。 +class MediaPauseScope extends InheritedWidget { + final MediaPauseRegistry registry; + + const MediaPauseScope({ + super.key, + required this.registry, + required super.child, + }); + + /// 查找最近的作用域注册表;不存在返回 null(不建立依赖关系)。 + static MediaPauseRegistry? of(BuildContext context) { + final widget = context + .getElementForInheritedWidgetOfExactType() + ?.widget; + return widget is MediaPauseScope ? widget.registry : null; + } + + @override + bool updateShouldNotify(MediaPauseScope oldWidget) => + registry != oldWidget.registry; +} diff --git a/lib/core/components/rich_text_content.dart b/lib/core/components/rich_text_content.dart index d7f7b7e..fcb7fd2 100644 --- a/lib/core/components/rich_text_content.dart +++ b/lib/core/components/rich_text_content.dart @@ -22,6 +22,8 @@ import 'package:new_learn/core/components/video_player_view.dart'; /// customStylesBuilder ← 自定义标签样式(如把 .answer 高亮) /// customWidgetBuilder ← 自定义元素替换(把任意标签换成业务 widget) /// renderMode ← 渲染模式(默认 column;列表预览可用 listView) +/// debugImage ← 是否打印 img 解析日志 +/// assumeRpx ← HTML 里的 width/height 是否按 rpx 处理 /// /// 三、内置扩展点(本组件已经帮你处理的): /// 1.