转专业资格判断: 外专业的学生转入软件工程专业,要求加权平均成绩在85分以上,且无挂科。请实现:学生输入姓名和各科成绩,点击按钮之后判断是否符合转专业要求。假设课程数量为5门。加权平均成绩的计算为:计算每一门“成绩*学分”,并累加,再除以课程数。1.在界面设置一个按钮,并使用事件监听的方式为该按钮编写响应事件,实现基础功能。2.要求新增2个div,使用双向绑定数据的方式分别记录成功之后和不成功的关键信息
时间: 2024-04-07 07:28:31 浏览: 48
好的,我已经了解了您的问题。这是一个简单的前端页面交互问题,需要使用 HTML、CSS 和 JavaScript 实现。以下是示例代码实现:
HTML 代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>转专业资格判断</title>
<meta charset="utf-8">
<style type="text/css">
.container {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 50px;
}
input {
margin-bottom: 10px;
}
#result {
margin-top: 20px;
}
.success {
color: green;
font-weight: bold;
}
.fail {
color: red;
font-weight: bold;
}
</style>
</head>
<body>
<div class="container">
<h1>转专业资格判断</h1>
<label>姓名:</label>
<input type="text" id="name">
<label>课程1成绩:</label>
<input type="number" id="grade1" min="0" max="100">
<label>学分1:</label>
<input type="number" id="credit1" min="0" max="10">
<label>课程2成绩:</label>
<input type="number" id="grade2" min="0" max="100">
<label>学分2:</label>
<input type="number" id="credit2" min="0" max="10">
<label>课程3成绩:</label>
<input type="number" id="grade3" min="0" max="100">
<label>学分3:</label>
<input type="number" id="credit3" min="0" max="10">
<label>课程4成绩:</label>
<input type="number" id="grade4" min="0" max="100">
<label>学分4:</label>
<input type="number" id="credit4" min="0" max="10">
<label>课程5成绩:</label>
<input type="number" id="grade5" min="0" max="100">
<label>学分5:</label>
<input type="number" id="credit5" min="0" max="10">
<button id="submit">提交</button>
<div id="result">
<div id="success" class="success" style="display: none;"></div>
<div id="fail" class="fail" style="display: none;"></div>
</div>
</div>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
```
CSS 代码:
```css
.container {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 50px;
}
input {
margin-bottom: 10px;
}
#result {
margin-top: 20px;
}
.success {
color: green;
font-weight: bold;
}
.fail {
color: red;
font-weight: bold;
}
```
JavaScript 代码:
```javascript
// 获取元素
const nameInput = document.getElementById('name');
const gradeInputs = document.querySelectorAll('input[type="number"]');
const submitBtn = document.getElementById('submit');
const successDiv = document.getElementById('success');
const failDiv = document.getElementById('fail');
// 绑定事件
submitBtn.addEventListener('click', function() {
// 获取学生姓名和各科成绩
const name = nameInput.value;
const grades = [];
const credits = [];
for (let i = 0; i < gradeInputs.length; i += 2) {
grades.push(Number(gradeInputs[i].value));
credits.push(Number(gradeInputs[i + 1].value));
}
// 计算加权平均成绩
let sum = 0;
let creditSum = 0;
for (let i = 0; i < grades.length; i++) {
sum += grades[i] * credits[i];
creditSum += credits[i];
}
const average = sum / creditSum;
// 判断是否符合转专业要求
if (average >= 85 && !grades.includes(0)) {
successDiv.innerText = `${name}符合转专业要求!加权平均成绩为${average.toFixed(2)}分。`;
successDiv.style.display = 'block';
failDiv.style.display = 'none';
} else {
failDiv.innerText = `${name}不符合转专业要求。`;
failDiv.style.display = 'block';
successDiv.style.display = 'none';
}
});
```
实现效果如下:
![转专业资格判断](https://i.imgur.com/nGxUeF7.png)
其中,双向绑定数据的方式是使用 JavaScript 修改 div 元素的 innerText 属性。如果符合转专业要求,则设置成功的 div 显示并显示符合要求的信息,不成功则设置失败的 div 显示并显示不符合要求的信息。
阅读全文