lcomvye 2 months ago
parent db3be7eadb
commit d73f2fde1e

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,325 @@
/*!
* Bootstrap Reboot v4.6.2 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
[tabindex="-1"]:focus:not(:focus-visible) {
outline: 0 !important;
}
hr {
box-sizing: content-box;
height: 0;
overflow: visible;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0;
margin-bottom: 0.5rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
border-bottom: 0;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: .5rem;
margin-left: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 80%;
}
sub,
sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -.25em;
}
sup {
top: -.5em;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
}
a:hover {
color: #0056b3;
text-decoration: underline;
}
a:not([href]):not([class]) {
color: inherit;
text-decoration: none;
}
a:not([href]):not([class]):hover {
color: inherit;
text-decoration: none;
}
pre,
code,
kbd,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
}
pre {
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
-ms-overflow-style: scrollbar;
}
figure {
margin: 0 0 1rem;
}
img {
vertical-align: middle;
border-style: none;
}
svg {
overflow: hidden;
vertical-align: middle;
}
table {
border-collapse: collapse;
}
caption {
padding-top: 0.75rem;
padding-bottom: 0.75rem;
color: #6c757d;
text-align: left;
caption-side: bottom;
}
th {
text-align: inherit;
text-align: -webkit-match-parent;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
button {
border-radius: 0;
}
button:focus:not(:focus-visible) {
outline: 0;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
input {
overflow: visible;
}
button,
select {
text-transform: none;
}
[role="button"] {
cursor: pointer;
}
select {
word-wrap: normal;
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
cursor: pointer;
}
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
padding: 0;
border-style: none;
}
input[type="radio"],
input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}
textarea {
overflow: auto;
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
display: block;
width: 100%;
max-width: 100%;
padding: 0;
margin-bottom: .5rem;
font-size: 1.5rem;
line-height: inherit;
color: inherit;
white-space: normal;
}
progress {
vertical-align: baseline;
}
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
[type="search"] {
outline-offset: -2px;
-webkit-appearance: none;
}
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
summary {
display: list-item;
cursor: pointer;
}
template {
display: none;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.css.map */

File diff suppressed because one or more lines are too long

@ -0,0 +1,8 @@
/*!
* Bootstrap Reboot v4.6.2 (https://getbootstrap.com/)
* Copyright 2011-2022 The Bootstrap Authors
* Copyright 2011-2022 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,227 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>被点名学生</title>
<link href="static/plugins/bootstrap-4.6.2/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
font-family: Arial, sans-serif;
display: flex;
justify-content: space-between;
align-items: flex-start;
margin: 20px;
}
.left-section {
text-align: left;
width: 40%;
}
.right-section {
text-align: left;
width: 55%;
}
p {
font-size: 18px;
font-family: 'Georgia', serif;
color: #333;
margin-bottom: 10px;
}
label {
display: inline-block;
margin-right: 20px;
font-size: 16px;
font-family: Arial, sans-serif;
color: #555;
}
input[type="radio"] {
margin-right: 5px;
}
.hidden {
display: none;
}
.circle {
text-align: center;
font-size: 24px;
border-radius: 50%;
border: 2px solid black;
width: 200px;
height: 200px;
display: inline-block;
line-height: 200px;
margin-bottom: 20px;
}
h1 {
color: #4CAF50;
}
button[type="submit"] {
font-size: 16px;
font-family: 'Helvetica Neue', sans-serif;
color: white;
background-color: #007BFF;
border: none;
border-radius: 5px;
padding: 10px 20px;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
button[type="submit"]:hover {
background-color: #0056b3;
}
.circle {
font-size: 48px;
border-radius: 50%;
border: 5px solid #4CAF50;
width: 200px;
height: 200px;
display: inline-block;
line-height: 200px;
margin: 20px auto;
background-color: #ADD8E6;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}
</style>
</head>
<body>
<div class="left-section">
<h1>被点名学生:</h1>
<div class="circle">
<strong>{{ student.name }}</strong>
</div>
</div>
<div class="right-section">
<form action="/record_attendance" method="post">
<input type="hidden" name="student_id" value="{{ student.id }}">
<div id="attendance_section">
<p>是否在场:</p>
<label>
<input type="radio" name="is_present" value="yes">
</label>
<label>
<input type="radio" name="is_present" value="no">
</label><br><br>
</div>
{% if student.has_shield > 0 %}
<div id="shield_section" class="hidden">
<p>你拥有智慧护盾,是否选择使用(剩余护盾数: {{ student.has_shield }}</p>
<label>
<input type="radio" name="use_shield" value="yes">
</label>
<label>
<input type="radio" name="use_shield" value="no">
</label><br><br>
</div>
{% endif %}
<div id="answer_question_section" class="hidden">
<p>是否让他回答问题:</p>
<label>
<input type="radio" name="answer_question" value="yes">
</label>
<label>
<input type="radio" name="answer_question" value="no">
</label><br><br>
</div>
<div id="repeat_question_section" class="hidden">
<p>是否能够重复问题:</p>
<label>
<input type="radio" name="repeat_question" value="yes">
</label>
<label>
<input type="radio" name="repeat_question" value="no">
</label><br><br>
</div>
<div id="score_section" class="hidden">
<label>请给出评分0.5 - 3</label>
<input type="number" name="score" min="0.5" max="3" step="0.1"><br><br>
</div>
<button type="submit">提交</button>
</form>
<a href="/" class="btn btn-primary" style="margin-top:500px ">返回首页</a>
<script>
const isPresentRadios = document.getElementsByName('is_present');
const useShieldRadios = document.getElementsByName('use_shield');
const answerQuestionSection = document.getElementById('answer_question_section');
const repeatQuestionSection = document.getElementById('repeat_question_section');
const scoreSection = document.getElementById('score_section');
const shieldSection = document.getElementById('shield_section');
for (const radio of isPresentRadios) {
radio.addEventListener('change', function () {
if (this.value === 'yes') {
if (shieldSection) {
shieldSection.classList.remove('hidden');
} else {
answerQuestionSection.classList.remove('hidden');
}
} else {
answerQuestionSection.classList.add('hidden');
repeatQuestionSection.classList.add('hidden');
scoreSection.classList.add('hidden');
}
});
}
if (useShieldRadios) {
for (const radio of useShieldRadios) {
radio.addEventListener('change', function () {
if (this.value === 'yes') {
answerQuestionSection.classList.add('hidden');
repeatQuestionSection.classList.add('hidden');
scoreSection.classList.add('hidden');
} else {
answerQuestionSection.classList.remove('hidden');
}
});
}
}
document.getElementsByName('answer_question').forEach((radio) => {
radio.addEventListener('change', function () {
if (this.value === 'yes') {
repeatQuestionSection.classList.remove('hidden');
} else {
repeatQuestionSection.classList.add('hidden');
scoreSection.classList.add('hidden');
}
});
});
document.getElementsByName('repeat_question').forEach((radio) => {
radio.addEventListener('change', function () {
if (this.value === 'yes') {
scoreSection.classList.remove('hidden');
} else {
scoreSection.classList.add('hidden');
}
});
});
</script>
</div>
</body>
</html>

@ -0,0 +1,137 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>课程点名系统</title>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="static/plugins/bootstrap-4.6.2/css/bootstrap.min.css">
<style>
body {
margin: 0;
}
.header {
background-color: #343a40;
height: 60px;
display: flex;
justify-content: space-between;
align-items: center;
}
.header-links a {
font-size: 30px;
color: #fff;
text-decoration: none;
padding: 0 80px;
transition: color 0.3s ease;
}
.header-links a:hover {
color: #ffcc00;
}
.left-side h2 {
margin-top: 0;
}
h1 {
font-family: 'Arial', sans-serif;
font-size: 2.5em;
color: #4a90e2;
text-align: center;
padding: 20px;
border: 2px solid #4a90e2;
border-radius: 10px;
background-color: #f0f8ff;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}
.left-side h1 +.list-group {
margin-top: 50px;
}
.about-contact-links {
font-size: 20px;
margin-top: 200px;
}
.about-contact-links a {
color: black;
text-decoration: none;
font-weight: 300; /* 使用较轻的字体粗细 */
font-family: 'Lato', sans-serif; /* 使用 Lato 字体,比较细 */
transition: color 0.3s ease;
</style>
</head>
<body>
<div class="header">
<div class="container">
<div class="header-links">
<a href="">首页</a>
<a href="/cmes">课程信息</a>
<a href="/back">用户反馈</a>
<a href="/help">帮助中心</a>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-md-3 left-side" style="margin-top: 50px;">
<h1>课程点名系统</h1>
<div class="list-group">
<a href="/mes" class="list-group-item d-flex justify-content-between align-items-center">
<span><i class="fas fa-user"></i> 个人信息</span>
</a>
<a href="/myclass" class="list-group-item d-flex justify-content-between align-items-center">
<span><i class="fas fa-users"></i> 我的班级</span>
</a>
<a href="/rank" class="list-group-item d-flex justify-content-between align-items-center">
<span><i class="fas fa-chart-bar"></i> 积分排行</span>
</a>
</div>
<a href="/start_call" class="btn btn-primary btn-block mt-3">开始点名</a>
<img src="static/image/welcom.jpg" alt="Small Image" style="width: 340px; height: 200px; margin-top: 10px;">
<div class="about-contact-links" style="margin-top: 10px">
<a href="/us">关于我们</a><br>
<a href="/cus">联系我们</a>
</div>
</div>
<div class="col-md-9 right-side">
<div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
<li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
</ol>
<div class="carousel-inner">
<a href="https://www.educoder.net/paths/qlpvrn3u" class="carousel-item active">
<img src="static/image/image1.jpg" width="300" height="650" class="d-block w-100" alt="Image 1">
</a>
<a href="https://www.fzu.edu.cn/" class="carousel-item">
<img src="static/image/image2.jpg" width="300" height="650" class="d-block w-100" alt="Image 2">
</a>
</div>
<a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div>
</div>
</div>
<!-- Bootstrap JS -->
<script src="static/jquery-3.7.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="static/plugins/bootstrap-4.6.2/js/bootstrap.bundle.min.js"></script>
</body>
</html>

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我的班级</title>
<link href="static/plugins/bootstrap-4.6.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-4">
<h1 class="text-center">我的班级</h1>
<table class="table table-striped mt-4">
<thead>
<tr>
<th>ID</th>
<th>姓名</th>
</tr>
</thead>
<tbody>
{% if students %}
{% for student in students %}
<tr>
<td>{{ student['id'] }}</td>
<td>{{ student['name'] }}</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="2" class="text-center">没有找到任何学生数据。</td>
</tr>
{% endif %}
</tbody>
</table>
<a href="/" class="btn btn-primary">返回首页</a>
</div>
</body>
</html>

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>积分排名</title>
<link href="static/plugins/bootstrap-4.6.2/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container mt-4">
<h1 class="text-center">学生积分排名</h1>
<table class="table table-striped mt-4">
<thead>
<tr>
<th>姓名</th>
<th>积分</th>
</tr>
</thead>
<tbody>
{% if students %}
{% for student in students %}
<tr>
<td>{{ student['name'] }}</td>
<td>{{ student['points'] }}</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan="2" class="text-center">没有找到任何学生数据。</td>
</tr>
{% endif %}
</tbody>
</table>
<a href="/" class="btn btn-primary">返回首页</a>
</div>
</body>
</html>

@ -0,0 +1,83 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>个人信息页面</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 20px;
background-color: #f4f4f4;
}
.container {
max-width: 600px;
margin: auto;
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
text-align: center;
color: #333;
}
.section {
margin-bottom: 20px;
}
.section h2 {
color: #555;
}
.contact {
background: #e7f3fe;
padding: 10px;
border-left: 5px solid #2196F3;
}
</style>
</head>
<body>
<div class="container">
<h1>张伟</h1>
<div class="section">
<h2>职位</h2>
<p>计算机科学教师</p>
</div>
<div class="section">
<h2>教育背景</h2>
<ul>
<li>硕士学位,计算机科学,清华大学</li>
<li>本科,软件工程,福州大学</li>
</ul>
</div>
<div class="section">
<h2>工作经历</h2>
<ul>
<li>计算机科学教师福州大学2015年至今</li>
<li>软件开发工程师华为技术有限公司2010-2015年</li>
</ul>
</div>
<div class="section">
<h2>研究兴趣</h2>
<ul>
<li>人工智能</li>
<li>数据结构与算法</li>
<li>教学方法与教育技术</li>
</ul>
</div>
<div class="section contact">
<h2>联系方式</h2>
<p>邮箱: zhangwei@example.com</p>
<p>电话: 138-XXXX-XXXX</p>
</div>
<div class="section">
<h2>个人爱好</h2>
<ul>
<li>编程</li>
<li>阅读科技类书籍</li>
<li>游泳</li>
</ul>
</div>
</div>
</body>
</html>

@ -0,0 +1,104 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>关于我们</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
header {
background-color: #f5f5f5;
padding: 10px;
display: flex;
justify-content: space-between;
align-items: center;
}
header a {
text-decoration: none;
color: #333;
}
main {
padding: 20px;
}
h1 {
font-size: 24px;
margin-bottom: 10px;
}
p {
margin-bottom: 15px;
}
.team-member {
display: flex;
align-items: center;
margin-bottom: 20px;
}
.team-member img {
width: 80px;
height: 80px;
border-radius: 50%;
margin-right: 15px;
}
.contact-info {
margin-top: 20px;
}
.contact-info a {
text-decoration: none;
color: #007bff;
margin-right: 10px;
}
footer {
background-color: #f5f5f5;
padding: 10px;
text-align: center;
}
</style>
</head>
<body>
<main>
<h1>关于我们</h1>
<p>我们致力于为教育领域提供高效、便捷的点名系统,帮助教师更好地管理课堂,提高教学效率。</p>
<h2>团队成员</h2>
<div class="team-member">
<div>
<h3>wss</h3>
<p>原型设计前端开发</p>
</div>
</div>
<div class="team-member">
<div>
<h3>qyc</h3>
<p>后端开发</p>
</div>
</div>
<h2>产品介绍</h2>
<p>我们的点名系统具有以下特点:</p>
<ul>
<li>简单易用,教师和学生都能快速上手。</li>
<li>提供详细的点名记录和统计分析,帮助教师更好地了解学生的出勤情况。</li>
</ul>
</main>
<footer>
Copyright © 2024 [天灰灰会不会]. All rights reserved.
</footer>
</body>
</html>

@ -0,0 +1,99 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>帮助中心</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
header {
background-color: #f5f5f5;
padding: 10px;
display: flex;
justify-content: space-between;
align-items: center;
}
header a {
text-decoration: none;
color: #333;
}
main {
padding: 20px;
}
.faq-category {
margin-bottom: 20px;
}
.faq-category h2 {
font-size: 18px;
margin-bottom: 10px;
}
.faq-question {
cursor: pointer;
padding: 5px 0;
border-bottom: 1px dashed #ddd;
}
.faq-answer {
display: none;
padding: 10px 0;
}
.contact-us {
margin-top: 20px;
font-size: 14px;
}
</style>
</head>
<body>
<header>
<a href="#">返回首页</a>
<input type="text" placeholder="搜索帮助中心">
</header>
<main>
<div class="faq-category">
<h2>点名操作</h2>
<div class="faq-question">如何开始点名?</div>
<div class="faq-answer">点击点名页面上的“开始点名”按钮即可开始点名操作。</div>
<div class="faq-question">点名结果如何查看?</div>
<div class="faq-answer">点名结束后,系统会在页面上显示点名结果,您也可以在个人中心的点名历史中查看。</div>
</div>
<div class="faq-category">
<h2>账号问题</h2>
<div class="faq-question">如何注册账号?</div>
<div class="faq-answer">在首页点击“注册”按钮,填写相关信息即可注册账号。</div>
<div class="faq-question">忘记密码怎么办?</div>
<div class="faq-answer">点击登录页面上的“忘记密码”链接,按照提示进行操作即可重置密码。</div>
</div>
<div class="contact-us">
<p>如果您还有其他问题,请联系我们:</p>
<p>客服邮箱1111111@qq.com</p>
</div>
</main>
<script>
const faqQuestions = document.querySelectorAll('.faq-question');
faqQuestions.forEach(question => {
question.addEventListener('click', () => {
const answer = question.nextElementSibling;
if (answer.style.display === 'none') {
answer.style.display = 'block';
} else {
answer.style.display = 'none';
}
});
});
</script>
</body>
</html>

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>联系我们</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
main {
padding: 20px;
}
h1 {
font-size: 24px;
margin-bottom: 10px;
}
p {
margin-bottom: 15px;
}
.feedback-form {
margin-top: 20px;
}
.feedback-form label {
display: block;
margin-bottom: 5px;
}
.feedback-form input[type="text"],
.feedback-form textarea {
width: 100%;
padding: 5px;
margin-bottom: 10px;
}
.feedback-form input[type="submit"] {
background-color: #007bff;
color: #fff;
padding: 10px 15px;
border: none;
cursor: pointer;
}
</style>
</head>
<body>
<main>
<form class="feedback-form" action="/submit_feedback" method="POST">
<label for="feedback-subject">反馈主题:</label>
<input type="text" id="feedback-subject" name="subject" required>
<label for="feedback-content">反馈内容:</label>
<textarea id="feedback-content" name="content" required></textarea>
<input type="submit" value="提交反馈">
</form>
</main>
</body>
</html>

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>联系我们</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
main {
padding: 20px;
}
h1 {
font-size: 24px;
margin-bottom: 10px;
}
p {
margin-bottom: 15px;
}
.feedback-form {
margin-top: 20px;
}
.feedback-form label {
display: block;
margin-bottom: 5px;
}
.feedback-form input[type="text"],
.feedback-form textarea {
width: 100%;
padding: 5px;
margin-bottom: 10px;
}
.feedback-form input[type="submit"] {
background-color: #007bff;
color: #fff;
padding: 10px 15px;
border: none;
cursor: pointer;
}
</style>
</head>
<body>
<main>
<h1>联系我们</h1>
<p>联系电话1885201314</p>
<p>电子邮箱111111111.com</p>
<p>办公地址:福州市 鼓楼区 幸福路 99 号</p>
</main>
</body>
</html>

@ -0,0 +1,116 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>软件工程课程信息</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
header {
background-color: #f5f5f5;
padding: 10px;
display: flex;
justify-content: space-between;
align-items: center;
}
header a {
text-decoration: none;
color: #333;
}
main {
padding: 20px;
}
h1 {
font-size: 24px;
margin-bottom: 10px;
}
p {
margin-bottom: 15px;
}
ul {
list-style-type: disc;
margin-left: 20px;
margin-bottom: 15px;
}
table {
border-collapse: collapse;
width: 100%;
margin-bottom: 15px;
}
th,
td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
.rating {
display: flex;
align-items: center;
margin-bottom: 15px;
}
.rating-star {
font-size: 20px;
color: #ffd700;
}
.rating-text {
margin-left: 10px;
}
footer {
background-color: #f5f5f5;
padding: 10px;
text-align: center;
}
</style>
</head>
<body>
<main>
<h1>软件工程</h1>
<p>本课程旨在介绍软件工程的基本概念、方法和技术,培养学生的软件开发能力和团队协作精神。</p>
<h2>课程详情</h2>
<ul>
<li>课程大纲:
<ul>
<li>软件工程概述</li>
<li>需求分析</li>
<li>软件设计</li>
<li>软件实现</li>
<li>软件测试</li>
<li>软件维护</li>
</ul>
</li>
<li>教学方法:讲授、实践、小组项目相结合。</li>
<li>考核方式考试50%、作业30%、项目20%)。</li>
</ul>
<h2>课程资源</h2>
<ul>
<li>教材:《软件工程》,出版社:机械工业出版社。</li>
<li>参考书籍:
<ul>
<li>《软件需求》作者Karl E. Wiegers出版社机械工业出版社。</li>
<li>《设计模式可复用的面向对象软件元素》作者Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides出版社机械工业出版社。</li>
</ul>
</li>
<li>实验与项目:课程包含多个实验和一个小组项目,实验环境为 Windows 或 Linux 操作系统,开发工具为 Visual Studio Code 或 Eclipse。项目要求学生团队合作开发一个小型软件系统并提交项目报告和代码。</li>
</ul>
</body>
</html>
Loading…
Cancel
Save