使用 HTML + JavaScript 实现在线考试系统

article/2025/8/16 12:04:05

在现代的在线教育平台中,在线考试系统是不可或缺的一部分。本文将通过一个完整的示例,演示如何使用 HTML、CSS 和 JavaScript 构建一个支持多种题型的在线考试系统。

效果演示

image-20250528213340576

image-20250528213416003

image-20250528213449248

项目概述

本项目主要包含以下核心功能:

  • 支持4种常见题型:单选题、多选题、判断题、填空题
  • 答题卡导航功能
  • 实时计时器
  • 自动评分与结果反馈

页面结构与样式设计

创建 HTML 结构
<div class="container"><!-- 考试内容 --><div class="exam-container"><!-- 标题和计时器 --><div class="header"><h2>在线考试系统</h2><div class="timer">剩余时间: <span id="time">30:00</span></div></div><!-- 题目 --><div id="subject"></div><!-- 导航按钮 --><div class="navigation"><button id="prev-btn" disabled>上一题</button><button id="next-btn">下一题</button><button id="submit-btn" class="submit-btn">提交试卷</button></div><!-- 结果 --><div id="result" class="result"><h2>考试结束</h2><p>你的得分是: <span class="score" id="final-score">0</span></p><p id="result-message"></p></div></div><!-- 答题卡 --><div class="answer-sheet"><h3>答题卡</h3><div class="answer-buttons" id="answer-buttons"></div></div>
</div>
设计 CSS 样式

整体布局

body {margin: 0;padding: 0;background-color: #f5f5f5;
}
.container {display: flex;max-width: 1200px;margin: 0 auto;padding: 20px;
}
.exam-container {flex: 3;background-color: white;padding: 30px;border-radius: 10px;box-shadow: 0 0 10px rgba(0,0,0,0.1);margin-right: 20px;
}
.answer-sheet {flex: 1;background-color: white;padding: 20px;border-radius: 10px;box-shadow: 0 0 10px rgba(0,0,0,0.1);height: fit-content;position: sticky;top: 20px;
}

题目区域样式

.header {display: flex;justify-content: space-between;margin-bottom: 20px;padding-bottom: 10px;border-bottom: 1px solid #eee;
}
.timer {font-weight: bold;color: #e74c3c;
}
.question {margin-bottom: 20px;padding: 15px;background-color: #f9f9f9;border-radius: 5px;
}
.question h3 {margin-top: 0;color: #2c3e50;
}
.question-type {display: inline-block;padding: 2px 8px;background-color: #3498db;color: white;border-radius: 4px;font-size: 12px;margin-left: 10px;
}
.options {margin-left: 20px;
}
.option {margin: 10px 0;padding: 8px;cursor: pointer;border-radius: 4px;
}
.option:hover {background-color: #eee;
}
.option.selected {background-color: #3498db;color: white;
}
.option.multi-selected {background-color: #9b59b6;color: white;
}
.true-false-options {display: flex;gap: 20px;
}
.true-false-option {padding: 10px 20px;border: 1px solid #ddd;border-radius: 5px;cursor: pointer;
}
.true-false-option.selected {background-color: #3498db;color: white;border-color: #3498db;
}
.fill-blank-input {width: 100%;padding: 8px;margin-top: 10px;border: 1px solid #ddd;border-radius: 4px;font-size: 16px;
}
.navigation {display: flex;justify-content: space-between;margin-top: 30px;
}
button {padding: 10px 20px;background-color: #3498db;color: white;border: none;border-radius: 5px;cursor: pointer;font-size: 16px;
}
button:hover {background-color: #2980b9;
}
button:disabled {background-color: #95a5a6;cursor: not-allowed;
}
.submit-btn {background-color: #2ecc71;
}
.submit-btn:hover {background-color: #27ae60;
}
.result {display: none;text-align: center;padding: 20px;
}
.score {font-size: 24px;font-weight: bold;color: #2ecc71;
}

答题卡样式

.answer-sheet h3 {margin-top: 0;padding-bottom: 10px;border-bottom: 1px solid #eee;text-align: center;
}
.answer-buttons {display: grid;grid-template-columns: repeat(5, 1fr);gap: 10px;
}
.answer-btn {width: 100%;aspect-ratio: 1;border: 1px solid #ddd;border-radius: 5px;display: flex;align-items: center;justify-content: center;cursor: pointer;font-weight: bold;background-color: white;
}
.answer-btn:hover {background-color: #f0f0f0;
}
.answer-btn.current {border: 2px solid #3498db;color: #3498db;
}
.answer-btn.answered {background-color: #3498db;color: white;border-color: #3498db;
}
.answer-btn.unanswered {background-color: #f1f1f1;color: #999;
}

核心功能实现

定义基础数据
// 题型常量
const QUESTION_TYPES = {SINGLE_CHOICE: 'single-choice',MULTI_CHOICE: 'multi-choice',TRUE_FALSE: 'true-false',FILL_BLANK: 'fill-blank'
};// 考试数据
const examData = {title: "JavaScript综合测试",timeLimit: 30 * 60, // 30分钟,以秒为单位questions: [{type: QUESTION_TYPES.SINGLE_CHOICE,question: "JavaScript是什么类型的语言?",options: ["编译型", "解释型", "混合型", "标记型"],answer: 1,score: 10},{type: QUESTION_TYPES.MULTI_CHOICE,question: "以下哪些是JavaScript的数据类型?(多选)",options: ["String", "Boolean", "Number", "Float", "Object"],answer: [0, 1, 2, 4],score: 15},// ...]
};
生成答题卡
function createAnswerSheet() {answerButtonsContainer.innerHTML = '';examData.questions.forEach((_, index) => {const btn = document.createElement('button');btn.className = 'answer-btn unanswered';btn.textContent = index + 1;btn.onclick = () => jumpToQuestion(index);answerButtonsContainer.appendChild(btn);});
}
渲染不同题型
function showQuestion() {const question = examData.questions[currentQuestion];const typeLabel = getTypeLabel(question.type);let html = `<div class="question">
<h3>题目 ${currentQuestion + 1}/${examData.questions.length}: ${question.question}
<span class="question-type">${typeLabel}</span>
</h3>
<div class="options">`;// 根据题型生成不同的HTMLswitch(question.type) {case QUESTION_TYPES.SINGLE_CHOICE:html += generateSingleChoiceHTML(question);break;case QUESTION_TYPES.MULTI_CHOICE:html += generateMultiChoiceHTML(question);break;case QUESTION_TYPES.TRUE_FALSE:html += generateTrueFalseHTML(question);break;case QUESTION_TYPES.FILL_BLANK:html += generateFillBlankHTML(question);break;}html += `</div></div>`;subjectContainer.innerHTML = html;// 更新导航按钮状态prevBtn.disabled = currentQuestion === 0;nextBtn.disabled = currentQuestion === examData.questions.length - 1;// 更新答题卡updateAnswerSheet();
}
跳转到指定题目
function jumpToQuestion(index) {currentQuestion = index;showQuestion();
}
更新答题卡状态
function updateAnswerSheet() {const buttons = answerButtonsContainer.querySelectorAll('.answer-btn');buttons.forEach((btn, index) => {btn.classList.remove('current', 'answered', 'unanswered');if (index === currentQuestion) {btn.classList.add('current');}if (userAnswers[index] === null || userAnswers[index] === '' || (Array.isArray(userAnswers[index]) && userAnswers[index].length === 0) ) {btn.classList.add('unanswered');} else {btn.classList.add('answered');}});
}
监听做题事件
事件名事件
选择单选题选项selectSingleChoice
选择多选题选项toggleMultiChoice
选择判断题选项selectTrueFalse
更新填空题答案updateFillBlankAnswer
提交试卷
function submitExam() {clearInterval(timer);// 计算分数let score = 0;examData.questions.forEach((question, index) => {const userAnswer = userAnswers[index];let isCorrect = false;switch(question.type) {case QUESTION_TYPES.SINGLE_CHOICE:isCorrect = userAnswer === question.answer;break;case QUESTION_TYPES.MULTI_CHOICE:if (Array.isArray(userAnswer)) {// 检查答案数组是否完全相同const userSorted = [...userAnswer].sort();const answerSorted = [...question.answer].sort();isCorrect = JSON.stringify(userSorted) === JSON.stringify(answerSorted);}break;case QUESTION_TYPES.TRUE_FALSE:isCorrect = userAnswer === question.answer;break;case QUESTION_TYPES.FILL_BLANK:isCorrect = userAnswer && userAnswer.toString().toLowerCase() === question.answer.toLowerCase();break;}if (isCorrect) {score += question.score;}});// 显示结果document.getElementById('subject').style.display = 'none';document.querySelector('.navigation').style.display = 'none';resultDiv.style.display = 'block';finalScore.textContent = score;// 根据分数显示不同消息const totalScore = examData.questions.reduce((sum, q) => sum + q.score, 0);const percentage = (score / totalScore) * 100;if (percentage >= 80) {resultMessage.textContent = "优秀!你掌握了大部分知识点。";} else if (percentage >= 60) {resultMessage.textContent = "良好!继续努力,你可以做得更好。";} else if (percentage >= 40) {resultMessage.textContent = "及格!建议复习相关知识点。";} else {resultMessage.textContent = "不及格!需要加强学习。";}
}

扩展建议

  • 防切屏功能
  • 倒计时功能优化
  • 实现错题回顾功能
  • 添加用户登录与成绩保存功能
  • 集成后端进行数据持久化

完整代码

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>在线考试系统 - 多题型版</title><style>body {margin: 0;padding: 0;background-color: #f5f5f5;}.container {display: flex;max-width: 1200px;margin: 0 auto;padding: 20px;}.exam-container {flex: 3;background-color: white;padding: 30px;border-radius: 10px;box-shadow: 0 0 10px rgba(0,0,0,0.1);margin-right: 20px;}.answer-sheet {flex: 1;background-color: white;padding: 20px;border-radius: 10px;box-shadow: 0 0 10px rgba(0,0,0,0.1);height: fit-content;position: sticky;top: 20px;}.header {display: flex;justify-content: space-between;margin-bottom: 20px;padding-bottom: 10px;border-bottom: 1px solid #eee;}.timer {font-weight: bold;color: #e74c3c;}.question {margin-bottom: 20px;padding: 15px;background-color: #f9f9f9;border-radius: 5px;}.question h3 {margin-top: 0;color: #2c3e50;}.question-type {display: inline-block;padding: 2px 8px;background-color: #3498db;color: white;border-radius: 4px;font-size: 12px;margin-left: 10px;}.options {margin-left: 20px;}.option {margin: 10px 0;padding: 8px;cursor: pointer;border-radius: 4px;}.option:hover {background-color: #eee;}.option.selected {background-color: #3498db;color: white;}.option.multi-selected {background-color: #9b59b6;color: white;}.true-false-options {display: flex;gap: 20px;}.true-false-option {padding: 10px 20px;border: 1px solid #ddd;border-radius: 5px;cursor: pointer;}.true-false-option.selected {background-color: #3498db;color: white;border-color: #3498db;}.fill-blank-input {width: 100%;padding: 8px;margin-top: 10px;border: 1px solid #ddd;border-radius: 4px;font-size: 16px;}.navigation {display: flex;justify-content: space-between;margin-top: 30px;}button {padding: 10px 20px;background-color: #3498db;color: white;border: none;border-radius: 5px;cursor: pointer;font-size: 16px;}button:hover {background-color: #2980b9;}button:disabled {background-color: #95a5a6;cursor: not-allowed;}.submit-btn {background-color: #2ecc71;}.submit-btn:hover {background-color: #27ae60;}.result {display: none;text-align: center;padding: 20px;}.score {font-size: 24px;font-weight: bold;color: #2ecc71;}.answer-sheet h3 {margin-top: 0;padding-bottom: 10px;border-bottom: 1px solid #eee;text-align: center;}.answer-buttons {display: grid;grid-template-columns: repeat(5, 1fr);gap: 10px;}.answer-btn {width: 100%;aspect-ratio: 1;border: 1px solid #ddd;border-radius: 5px;display: flex;align-items: center;justify-content: center;cursor: pointer;font-weight: bold;background-color: white;}.answer-btn:hover {background-color: #f0f0f0;}.answer-btn.current {border: 2px solid #3498db;color: #3498db;}.answer-btn.answered {background-color: #3498db;color: white;border-color: #3498db;}.answer-btn.unanswered {background-color: #f1f1f1;color: #999;}</style>
</head>
<body>
<div class="container"><!-- 考试内容 --><div class="exam-container"><!-- 标题和计时器 --><div class="header"><h2>在线考试系统</h2><div class="timer">剩余时间: <span id="time">30:00</span></div></div><!-- 题目 --><div id="subject"></div><!-- 导航按钮 --><div class="navigation"><button id="prev-btn" disabled>上一题</button><button id="next-btn">下一题</button><button id="submit-btn" class="submit-btn">提交试卷</button></div><!-- 结果 --><div id="result" class="result"><h2>考试结束</h2><p>你的得分是: <span class="score" id="final-score">0</span></p><p id="result-message"></p></div></div><!-- 答题卡 --><div class="answer-sheet"><h3>答题卡</h3><div class="answer-buttons" id="answer-buttons"></div></div>
</div><script>// 题型常量const QUESTION_TYPES = {SINGLE_CHOICE: 'single-choice',MULTI_CHOICE: 'multi-choice',TRUE_FALSE: 'true-false',FILL_BLANK: 'fill-blank'};// 考试数据const examData = {title: "JavaScript综合测试",timeLimit: 30 * 60, // 30分钟,以秒为单位questions: [{type: QUESTION_TYPES.SINGLE_CHOICE,question: "JavaScript是什么类型的语言?",options: ["编译型", "解释型", "混合型", "标记型"],answer: 1,score: 10},{type: QUESTION_TYPES.MULTI_CHOICE,question: "以下哪些是JavaScript的数据类型?(多选)",options: ["String", "Boolean", "Number", "Float", "Object"],answer: [0, 1, 2, 4], // 多选的答案使用数组score: 15},{type: QUESTION_TYPES.TRUE_FALSE,question: "JavaScript和Java是同一种语言。",answer: false, // true或falsescore: 5},{type: QUESTION_TYPES.FILL_BLANK,question: "用于向数组末尾添加元素的方法是______。",answer: "push", // 填空题的答案score: 10},{type: QUESTION_TYPES.SINGLE_CHOICE,question: "哪个方法可以将字符串转换为整数?",options: ["parseInt()", "parseString()", "toInteger()", "stringToInt()"],answer: 0,score: 10},{type: QUESTION_TYPES.MULTI_CHOICE,question: "以下哪些是JavaScript的循环语句?(多选)",options: ["for", "while", "do...while", "repeat", "loop"],answer: [0, 1, 2],score: 15},{type: QUESTION_TYPES.TRUE_FALSE,question: "JavaScript中可以使用let和const声明变量。",answer: true,score: 5},{type: QUESTION_TYPES.FILL_BLANK,question: "用于检测变量类型的操作符是______。",answer: "typeof",score: 10}]};// 全局变量let currentQuestion = 0;let userAnswers = Array(examData.questions.length).fill(null);let timeLeft = examData.timeLimit;let timer;// DOM元素const subjectContainer = document.getElementById('subject');const prevBtn = document.getElementById('prev-btn');const nextBtn = document.getElementById('next-btn');const submitBtn = document.getElementById('submit-btn');const timeDisplay = document.getElementById('time');const resultDiv = document.getElementById('result');const finalScore = document.getElementById('final-score');const resultMessage = document.getElementById('result-message');const answerButtonsContainer = document.getElementById('answer-buttons');// 初始化考试function initExam() {createAnswerSheet();showQuestion();startTimer();}// 创建答题卡function createAnswerSheet() {answerButtonsContainer.innerHTML = '';examData.questions.forEach((_, index) => {const btn = document.createElement('button');btn.className = 'answer-btn unanswered';btn.textContent = index + 1;btn.onclick = () => jumpToQuestion(index);answerButtonsContainer.appendChild(btn);});}// 更新答题卡状态function updateAnswerSheet() {const buttons = answerButtonsContainer.querySelectorAll('.answer-btn');buttons.forEach((btn, index) => {btn.classList.remove('current', 'answered', 'unanswered');if (index === currentQuestion) {btn.classList.add('current');}if (userAnswers[index] === null || userAnswers[index] === '' || (Array.isArray(userAnswers[index]) && userAnswers[index].length === 0) ) {btn.classList.add('unanswered');} else {btn.classList.add('answered');}});}// 跳转到指定题目function jumpToQuestion(index) {currentQuestion = index;showQuestion();}// 显示当前题目function showQuestion() {const question = examData.questions[currentQuestion];const typeLabel = getTypeLabel(question.type);let html = `<div class="question"><h3>题目 ${currentQuestion + 1}/${examData.questions.length}: ${question.question}<span class="question-type">${typeLabel}</span></h3><div class="options">`;// 根据题型生成不同的HTMLswitch(question.type) {case QUESTION_TYPES.SINGLE_CHOICE:html += generateSingleChoiceHTML(question);break;case QUESTION_TYPES.MULTI_CHOICE:html += generateMultiChoiceHTML(question);break;case QUESTION_TYPES.TRUE_FALSE:html += generateTrueFalseHTML(question);break;case QUESTION_TYPES.FILL_BLANK:html += generateFillBlankHTML(question);break;}html += `</div></div>`;subjectContainer.innerHTML = html;// 更新导航按钮状态prevBtn.disabled = currentQuestion === 0;nextBtn.disabled = currentQuestion === examData.questions.length - 1;// 更新答题卡updateAnswerSheet();}// 获取题型标签function getTypeLabel(type) {switch(type) {case QUESTION_TYPES.SINGLE_CHOICE: return '单选题';case QUESTION_TYPES.MULTI_CHOICE: return '多选题';case QUESTION_TYPES.TRUE_FALSE: return '判断题';case QUESTION_TYPES.FILL_BLANK: return '填空题';default: return '';}}// 生成单选题function generateSingleChoiceHTML(question) {let html = '';question.options.forEach((option, index) => {const isSelected = userAnswers[currentQuestion] === index;html += `<div class="option ${isSelected ? 'selected' : ''}" onclick="selectSingleChoice(${index})">${String.fromCharCode(65 + index)}. ${option}</div>`;});return html;}// 生成多选题function generateMultiChoiceHTML(question) {let html = '';question.options.forEach((option, index) => {const isSelected = Array.isArray(userAnswers[currentQuestion]) && userAnswers[currentQuestion].includes(index);html += `<div class="option ${isSelected ? 'multi-selected' : ''}" onclick="toggleMultiChoice(${index})">${String.fromCharCode(65 + index)}. ${option}</div>`;});return html;}// 生成判断题function generateTrueFalseHTML(question) {const userAnswer = userAnswers[currentQuestion];return `<div class="true-false-options"><div class="true-false-option ${userAnswer === true ? 'selected' : ''}"onclick="selectTrueFalse(true)">正确</div><div class="true-false-option ${userAnswer === false ? 'selected' : ''}"onclick="selectTrueFalse(false)">错误</div></div>`;}// 生成填空题function generateFillBlankHTML(question) {const userAnswer = userAnswers[currentQuestion] || '';return `<input type="text" class="fill-blank-input"value="${userAnswer}"oninput="updateFillBlankAnswer(this.value)"placeholder="请输入答案">`;}// 选择单选题选项function selectSingleChoice(optionIndex) {userAnswers[currentQuestion] = optionIndex;showQuestion();}// 选择多选题选项function toggleMultiChoice(optionIndex) {if (!Array.isArray(userAnswers[currentQuestion])) {userAnswers[currentQuestion] = [];}const index = userAnswers[currentQuestion].indexOf(optionIndex);if (index === -1) {userAnswers[currentQuestion].push(optionIndex);} else {userAnswers[currentQuestion].splice(index, 1);}showQuestion();}// 选择判断题选项function selectTrueFalse(answer) {userAnswers[currentQuestion] = answer;showQuestion();}// 更新填空题答案function updateFillBlankAnswer(answer) {userAnswers[currentQuestion] = answer.trim();updateAnswerSheet();}// 上一题function prevQuestion() {if (currentQuestion > 0) {currentQuestion--;showQuestion();}}// 下一题function nextQuestion() {if (currentQuestion < examData.questions.length - 1) {currentQuestion++;showQuestion();}}// 开始计时器function startTimer() {updateTimerDisplay();timer = setInterval(() => {timeLeft--;updateTimerDisplay();if (timeLeft <= 0) {clearInterval(timer);submitExam();}}, 1000);}// 更新计时器显示function updateTimerDisplay() {const minutes = Math.floor(timeLeft / 60);const seconds = timeLeft % 60;timeDisplay.textContent = `${minutes}:${seconds < 10 ? '0' : ''}${seconds}`;}// 提交试卷function submitExam() {clearInterval(timer);// 计算分数let score = 0;examData.questions.forEach((question, index) => {const userAnswer = userAnswers[index];let isCorrect = false;switch(question.type) {case QUESTION_TYPES.SINGLE_CHOICE:isCorrect = userAnswer === question.answer;break;case QUESTION_TYPES.MULTI_CHOICE:if (Array.isArray(userAnswer)) {// 检查答案数组是否完全相同const userSorted = [...userAnswer].sort();const answerSorted = [...question.answer].sort();isCorrect = JSON.stringify(userSorted) === JSON.stringify(answerSorted);}break;case QUESTION_TYPES.TRUE_FALSE:isCorrect = userAnswer === question.answer;break;case QUESTION_TYPES.FILL_BLANK:isCorrect = userAnswer && userAnswer.toString().toLowerCase() === question.answer.toLowerCase();break;}if (isCorrect) {score += question.score;}});// 显示结果document.getElementById('subject').style.display = 'none';document.querySelector('.navigation').style.display = 'none';resultDiv.style.display = 'block';finalScore.textContent = score;// 根据分数显示不同消息const totalScore = examData.questions.reduce((sum, q) => sum + q.score, 0);const percentage = (score / totalScore) * 100;if (percentage >= 80) {resultMessage.textContent = "优秀!你掌握了大部分知识点。";} else if (percentage >= 60) {resultMessage.textContent = "良好!继续努力,你可以做得更好。";} else if (percentage >= 40) {resultMessage.textContent = "及格!建议复习相关知识点。";} else {resultMessage.textContent = "不及格!需要加强学习。";}}// 事件监听prevBtn.addEventListener('click', prevQuestion);nextBtn.addEventListener('click', nextQuestion);submitBtn.addEventListener('click', () => {if (confirm("确定要提交试卷吗?提交后将无法修改答案。")) {submitExam();}});// 开始考试initExam();
</script>
</body>
</html>

http://www.hkcw.cn/article/rECGEOnEHO.shtml

相关文章

福建平潭路边骆驼被指瘦成纸片 引发网友关注救助

近日,福建福州平潭路边的一只骆驼因瘦弱引起网友关注。6月1日,一位发帖网友表示,他前一天还去喂了这只骆驼。平潭流水派出所工作人员称已了解情况,会进一步调查。平潭综合实验区君山片区管理局的工作人员也表示已经收到反映,并一直在处理,已经联系上骆驼主人,对方表示会…

零跑连续3个月新势力销量第一 稳居榜首增速强劲

6月1日,各大新能源品牌公布了月销量成绩单。理想汽车交付40856辆,同比增长16.7%;小鹏交付新车33525辆,同比增长230%;小米汽车交付量超过28000台;零跑汽车交付45067台,同比增长148%。零跑汽车单月交付量为45067辆,增速超过148%,连续三个月稳居造车新势力领先地位。零跑…

陈小春演唱会现场被郑伊健感动落泪 古惑仔兄弟再同框

5月31日,陈小春在上海举办了一场生旦净末丑巡演。郑伊健作为嘉宾惊喜登场,两人合唱了《一起冲一起闯》,古惑仔兄弟再次同框的画面让不少观众激动不已,直呼“爷青回”。郑伊健还清唱了一段《友情岁月》,令陈小春感动落泪。1996年,陈小春与郑伊健因电影《古惑仔之人在江湖》…

上海迪士尼游客打架 相关部门回应 拍照打卡引发冲突

日前,上海迪士尼度假区内一对情侣和一对带孩子的夫妇发生纠纷的视频在网上引起关注。事件发生在5月31日下午,双方因拍照打卡产生口角,随后升级为肢体冲突,导致有人擦伤和扭伤,但视频中的孩子没有受伤。目前相关部门正在进一步调查处理。网上流传的视频画面显示,一名身穿格…

苹果手机 地震预警 关键时刻能救命

今天给大家分享一个重要的手机设置——苹果自带的地震预警功能。这个功能在关键时刻可以救命,建议大家赶紧学起来。苹果手机自带的地震预警功能需要 iOS 15 及以上系统支持。如果你的系统版本不够,可以先打开“设置”,点击“通用”,再点“软件更新”,把系统升级到最新版。…

医院回应医生误将腹超做成阴超 患者投诉后获道歉

5月30日,王女士因身体不适到苏州市立医院东区就诊。门诊医生给她开了腹部B超检查单,但在检查时,超声科的医生却误做了阴道B超。王女士表示,在检查过程中她感觉有冰凉的仪器触碰下体,立即询问医生这是什么项目,医生回答说是阴超。当时诊室里有两名医生,一名实习医生负责记…

白举纲谈歌手带来的影响 微笑面对淘汰

白举纲参加了《歌手2025》,在第三期演唱了《海鸥》。尽管有网友认为他唱出了释怀洒脱的感觉,但他的现场支持率仅有5.96%,在7位在线歌手中排名垫底。得知结果后,白举纲回应了这次淘汰。面对淘汰,白举纲保持微笑,并感谢《歌手2025》这个舞台给了他展示的机会。他表示虽然被…

医生团队为近300女童冻存卵巢 守护未来的希望

在这处两百多平方米的冻存库里,几个银色的液氮罐常年保持零下196摄氏度。里面封存着800多位女性的卵母细胞储备库:卵巢组织。其中将近300个来自儿童。年纪最小的只有6个月大。今年4月28日,这名半岁女婴的卵巢组织被送到这里,打破了亚洲最小冻存年龄纪录。对于身患罕见病、即…

情侣在迪士尼和1家3口扭打 当地回应 因拍照问题起冲突

5月31日,有网友发布视频称,在上海迪士尼一对情侣与一家三口发生冲突并扭打起来,此事引发了广泛关注。视频中可以看到双方在现场互相推搡,周围的人纷纷上前劝阻。据权威人士透露,事件发生在5月31日,并非在排队区域,而是在游客自由打卡拍照的地方。情侣和一家三口因拍照问…

台媒谈蔡依林彭于晏“恋情” 6年秘密恋爱疑曝光

蔡依林和彭于晏疑似复合的消息近日引起了广泛关注。据媒体报道,两人可能在2019年重新在一起,并且已经秘密恋爱六年。这一消息让不少网友感到惊喜,纷纷表示支持。目前,双方都没有对这一传闻做出回应。蔡依林则在忙着宣传她的新专辑《Pleasure》,这是她打磨六年的第十五张专…

软件锁:守护隐私,安心无忧

数字化时代&#xff0c;手机已成为我们生活中不可或缺的一部分&#xff0c;它不仅存储着我们的个人信息、照片、聊天记录等重要数据&#xff0c;还承载着我们的社交、娱乐和工作等多种功能。然而&#xff0c;这也意味着手机上的隐私信息面临着诸多泄露风险。无论是家人、朋友还…

龙舟女扒手上演极速大漂移 巾帼领航破传统

5月31日,佛山叠滘水乡的东胜赛区“S弯道”上,20支龙船队展开激烈角逐。在这场被誉为“水上F1”的漂移大战中,漖边龙船队的女扒手周黎新成为全场焦点。作为叠滘龙船漂移大赛历史上首位女性扒手,今年是她第三年征战赛场。凭借精湛的控船技术和无畏的拼搏精神,她用实际行动诠…

董卿与儿子同台朗读 温馨画面尽显母子情深

昨日,51岁的董卿陪儿子参加学校活动,母子俩同台朗读,画面温馨有爱。董卿身穿白色连衣裙,化着精致淡雅的妆容,尽显知性温柔与气质。儿子则身穿白色西装套装,与妈妈组成同色系亲子装,画面十分温馨。今年11岁的儿子长高了不少,他戴着眼镜,手里拿着台本,在台上表现得落落…

13岁淋巴瘤患儿折450颗星星送给医生 温暖医患情

六一儿童节前夕,在湖南省儿童医院血液肿瘤科的病房里,13岁的淋巴瘤患儿湘湘准备了一份特别的礼物。她亲手折了两周的450颗星星,送给了从接诊到治疗一直陪伴她的主治医生范钱秀。湘湘说:“她帮我看病,每天都来看我!希望450颗星星带给范医生温暖和好运!”这份坚定的暖心祝…

美国钢铝关税风暴波及餐桌 产业链暗涌压力增大

2025年5月30日,美国总统特朗普宣布将进口钢铁关税从25%提高到50%。这一决定在全球钢铁市场引起巨大波动。尽管中国对美直接出口钢材仅占总量的0.8%,但间接影响不容忽视:美国下游产业成本增加,全球钢价承压,中国钢企的海外订单面临连锁反应。此外,欧盟、日韩等经济体可能效…

谁把屈原包粽子里了 粽子背后的八位历史名人

端午节吃粽子是中国及东亚、东南亚许多国家的传统习俗。这一习俗流传最广的说法是为了纪念战国末年的楚国三闾大夫屈原。实际上,粽子最早被称为角黍,是北方中原一带的叫法,因为北方盛产黍米。早在春秋时代,中原诸国的王侯贵族就以菰叶包裹黍米,做成牛角状,用于祭祖。世界…

引用的莫言名言是假的 雷军赶紧删了

#雷军疑似回应余承东# 喷了,雷军把自己的微博编辑了,去掉「刚学会一句莫言名言:诋毁,本身就是一种仰望」这句心灵鸡汤了。这波小米华为汽车大乱斗,整的乐子有点大啊,感谢今天儿童节贡献的欢乐[doge]责任编辑:0882

陈妍希离婚后首次晒娃 洱海母子温馨同框

陈妍希在5月31日生日当天,晒出了与8岁儿子小星星陈睦辰在云南洱海拍摄的母子背影合照。照片中,母子身穿休闲服饰面朝洱海,小星星身高已接近母亲肩膀,侧脸轮廓被网友认为遗传了父亲陈晓的特点。她配文“愿我们都能做最好的自己,祝我生日快乐。”这是陈妍希自2025年2月18日宣…

高雄绿营最大流派倒向邱议莹 涌言会挺邱初现端倪

2026年高雄市长选举中,民进党主席赖清德承诺进行初选,这实际上排除了赖清德办公室秘书长潘孟安空降的可能性。目前已有四位绿营民代表态参选,其中包括林岱桦、赖瑞隆、许智杰和邱议莹。林岱桦因涉及诈领助理费案声势大不如前。赖瑞隆、许智杰及邱议莹均与“新潮流”或“亲新…

打工人爱上周末48小时极限出国游 性价比高出行新选择

周末出国游,对一些人来说,成为了一种新的生活方式。对于95后的Brian而言,每个月至少一次的周末出国游是他的日常。周五下班后,他会搭乘任意航班前往国外一座新城市,在那里度过两天自由行,再于周一早晨返回上海上班。例如,3月初的一个周末,由于上海天气阴冷,Brian决定去…