# 信息技术知识大赛练题系统
**Repository Path**: oyps/information-technology-knowledge-contest-practice-system
## Basic Information
- **Project Name**: 信息技术知识大赛练题系统
- **Description**: 信息技术知识大赛练题系统 - 海量题库 高效练题
- **Primary Language**: HTML/CSS
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-04-30
- **Last Updated**: 2023-03-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 2021年9月
## README
# 信息技术知识大赛练题系统
> 海量题库 高效练题
## 功能特点
* 支持在线答题
* 支持单题实时批改
* 提供以下题库
```json
["C", "计算机应用基础"],
["Z", "操作系统"],
["L", "离散数学"],
["4", "JavaScript语言"],
["J", "数据结构"],
["D", "多媒体技术"],
["Q", "知识产权"],
["5", "C#语言"],
["K", "数据库"],
["Y", "硬件系统"],
["1", "C语言"],
["6", "Python语言"],
["W", "网络"],
["H", "移动互联应用"],
["2", "C++语言"],
["R", "软件工程"],
["S", "数据表示和应用"],
["3", "Java语言"]
```
* 提供xxx
## 站点预览
* http://ouyangpeng.top/app/xxx/
## 用到的库
* Bootstrap
* jQuery.js
* clipboard.js
* hls.js
## 更新题库方法
* 首先下载最新题库Excel文件
* 将内容区所有空单元格填充为“鹏为空”
* 将所有单元格内部换行替换为“鹏换行”
* 将内容区所有内容复制,并粘贴至文本编辑器
* 清除不正常换行,保证一题一行
* 将所有制表符替换为“oypttt”
* 清除首尾无关空行和内容
* 运行aaa.php,检查各列表项是否满足分割为数组的条件,确保各行含有9项数据
* 运行data.php,将文本数据转换为json数据,并生成bank.json
* 题库就此更新完毕
## 代码片段
### Bootstrap4随机颜色
```javascript
function randcolor() {
var list = ["primary", "secondary", "success", "danger", "warning", "info", "dark"];
return list[Math.round(Math.random() * (list.length - 1))];
}
```
### hash多页面聚合
```javascript
function changePage(hash) {
window.location.hash = hash;
}
window.addEventListener("hashchange", function () {
// 获取hash值
var hash = window.location.hash;
if (hash == "#page1" || hash == "") {
$("#page1").fadeIn(500);
$("#page2").hide();
$("#page3").hide();
} else if (hash == "#page2") {
$("#page1").hide();
$("#page2").fadeIn(500);
$("#page3").hide();
} else if (hash == "#page3") {
$("#page2").hide();
$("#page1").hide();
$("#page3").fadeIn(500);
}
// 根据获取的hash做相应的操作
})
```
### 将尖括号转换为实体
```javascript
function stringToEntity(string) {
return string.replace(//g, '>').replace(/\n/g, '
')
}
```
### JavaScript分页操作
* JavaScript
```javascript
// 计算总页码
if (count < size) {
// 总项数小于单页项数
var allPage = 1
} else if (count % size == 0) {
// 不含余数
var allPage = count / size
} else {
// 含余数
var allPage = (count - num % size) / size + 1
}
var fenyeList = new Array()
if (allPage <= 6) {
fenyeList = ['上一页', page + '/' + allPage, '下一页']
} else if (page == 1) {
fenyeList = [1, 2, 3, 4, 5, '下一页', allPage]
} else if (page == 2 || page == 3) {
fenyeList = ['上一页', 1, 2, 3, 4, 5, '下一页', allPage]
} else if (page == (allPage - 2) || page == (allPage - 1)) {
fenyeList = [1, '上一页', (allPage - 4), (allPage - 3), (allPage - 2), (allPage - 1), allPage, '下一页']
} else if (page == allPage) {
fenyeList = [1, '上一页', (allPage - 4), (allPage - 3), (allPage - 2), (allPage - 1), allPage]
} else {
fenyeList = [1, '上一页', (page - 2), (page - 1), page, (page + 1), (page + 2), '下一页', allPage]
}
var fenyeHtml = ''
for (var i = 0; i < fenyeList.length; i++) {
fenyeHtml += '