简单毛概刷题网页制作 2.0(拖欠近一年版)

news2024/11/23 13:11:47

原因是大概一年之前学校的毛概期末刷题网站突然崩了,但是一直没有修复。当时眼看着复习时间逐渐被压缩,自己啥也做不了,遂自学前端完成毛概刷题网页一枚。

最早的毛概刷题网站仅仅是 1.0 版本(传送门),功能非常不齐全,只有最基本的选择判断题顺序做题的功能,自己用着也不是很爽。

当时就做出来了后来的 2.0,3.0 版本,包含其他功能,当时说是要更新的。

但是

期末嘛

忙嘛

忘记发了

看到有读者在文末评论才反应过来,忘记更新了,现在补上

文章目录

  • 效果图
  • 代码
    • 目录
    • get_Q_2.0.js
    • jquery.js
    • Q_data.js
    • style.css
    • TF_data.js
    • TF.js
    • 铖铖的公主.html
  • project文件分享(可直接食用)

效果图

话不多说效果图奉上~

功能主要有:

顺序、乱序选择判断

在这里插入图片描述
根据用户需求,我将毛概题库分为了选择和判断两部分,分别记忆。

在刷题的时候,我发现自己会有意无意地记住题目的顺序,从而推断出答案——这并不意味着我掌握了知识。因此,我想到乱序刷题。

测试结果显示

当然,除了乱序刷题,统计也非常重要。参考其他网页的设计,我在底部加入了统计面板,当鼠标悬浮至该位置时,面板出现并显示已完成题目数和有效准确率。

在这里插入图片描述

代码

目录

命名方式奇奇怪怪,不是啥好习惯~

在这里插入图片描述

get_Q_2.0.js遍历数据集生成题目。

get_TF_2.0.js判断ABCD是不是选对了,没什么用,能实现的功能都被TF.js平替了。

jquery.js为开源的 jquery 代码,网上一抓一大把就不放了。

Q_data.js为选择题数据,json格式。=>直接写死成这样,就不用 Ajax 了,直接点开 html 文件就能看。

style.css为布局文件,毛概题库的布局信息都在这里。

TF_data.js为判断题数据,json格式。=>直接写死成这样,就不用 Ajax 了,直接点开 html 文件就能看。

TF.js里面包括判断单选是否正确的代码。

铖铖的公主.html唯一的 html 文件,有点像C里面的 main 函数

get_Q_2.0.js

主要是几个可能会用到的函数

  • get_Q:生成选择题问题
  • get_TF:生成判断题问题
  • shuffle:是否打乱了输出
function get_Q(data, luan){	
    if(luan){
        data = shuffle(data);
    }
    if(data.length>0){   //项目列表
        var listInfo="";
        $.each(data,function(){
            listInfo+=
            '<div class="question" id="s'+this.no+'">'+
                '<p class="wen">'+
                    this.number+'&emsp;'+this.question+
                '</p>'+
                '<div class="answer">'+
                    '<button type="button" id="'+'c0k'+this.answer+'s'+this.no+ '"class="A">' + this.A + '</button>' +
                    '<button type="button" id="'+'c1k'+this.answer+'s'+this.no+ '"class="B">' + this.B + '</button>' +
                    '<button type="button" id="'+'c2k'+this.answer+'s'+this.no+ '"class="C">' + this.C + '</button>' +
                    '<button type="button" id="'+'c3k'+this.answer+'s'+this.no+ '"class="D">' + this.D + '</button>' +
                '</div>'+
            '</div>';
        });
        $("#Select")[0].innerHTML=listInfo;	
    }
}

function get_TF(data, luan){	
    if(luan){
        data = shuffle(data);
    }			         
    if(data.length>0){   //项目列表
        var listInfo="";
        $.each(data,function(){
            listInfo+=
            '<div class="question" id="s'+this.no+'">'+
                '<p class="wen">'+
                    this.number+'&emsp;'+this.question+
                '</p>'+
                '<div class="answer">'+
                    '<button type="button" id="'+'c0k'+this.answer+'s'+this.no+ '"class="A">' + this.T + '</button>' +
                    '<button type="button" id="'+'c1k'+this.answer+'s'+this.no+ '"class="B">' + this.F + '</button>' +
                '</div>'+
            '</div>';
        });
        $("#Select")[0].innerHTML=listInfo;
    }
}

function shuffle(arr) {
    var len = arr.length;
    for (var i = 0; i < len - 1; i++) {
        var index = parseInt(Math.random() * (len - i));
        var temp = arr[index];
        arr[index] = arr[len - i - 1];
        arr[len - i - 1] = temp;
    }
    return arr;
}

jquery.js

开源的,网上一抓一大把,不放正文占篇幅了,可以去文末的网盘文件里拿。

Q_data.js

这个是数据集,也不放正文占篇幅了,可以去文末的网盘文件里拿。

style.css

布局文件,包括按钮的样式和动画、选项状态、悬浮状态栏等等


.button {
    color: white;
    padding: 5px 50px;
    position: relative;
    column-count: 4;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 20px;
    font-family: "miaowu";
	margin-top: 20px;
    border-radius: 5px;
    -webkit-transition-duration: 0.4s; /* Safari */
    transition-duration: 0.4s;
    box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
}
/* .button1{
	margin-left:20%;
}
.button2{
	margin-right:20%;
} */
.button{
	background-color: #383838;
}
.button:hover {
    background-color: #fdcdac;
    color: white;
    box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19);
}
.button:active {
    background-color: #f1e2cc;
    box-shadow: 0 5px #666;
    transform: translateY(1px);
	color: #383838;
}
#Select{
    margin-top: 20px;
    margin-left: 2%;
    margin-right: 2%;
}
#Select .question{
    border: 1px solid #383838;
}
#Select .wen{
    font-size: 20px;
    padding: 2%;
    margin: 0;
}
#Select .A,
#Select .B,
#Select .C,
#Select .D{
    font-size: 18px;
    text-decoration: none;
    color: black;
    width: 100%;
    text-align: center;
}
.true1{
    background-color: aquamarine;
}
.false1{
    background-color: #db9187;
}
#done{
    left: 0;
	position: fixed;
	bottom: 0;
	width: 100%;
	z-index: 100;
}
#TorF{
    padding: 0;
    margin: 0;
    text-align: center;
    background-color: pink;
    width: 98%;
    height: 10%;
    position: fixed;
    left: 1%;
    bottom: 0;
    opacity: 0;
    transition: all 1s;
}
#TorF:hover{
    opacity: 1;
    transition: all 1s;
}

TF_data.js

这个是数据集,也不放正文占篇幅了,可以去文末的网盘文件里拿。

TF.js

用于判断选项是否正确,写的比较糙,直接暴力判断了。

很low的一种写法,用来判断ABCD是不是被click了,并且判断是不是正确答案。

判断之后修改准确率面板。

$(document).on("click",".A",function(){ //通过document绑定对应的事件
    id = $(this).attr('id')
    no = id.substr(5);
    key = id.substr(3,1);
    c = id.substr(1,1);
    for (i = 0; i < 4; i++) { 
        $('#c'+i+'k'+key+'s'+no).removeClass('true1');
        $('#c'+i+'k'+key+'s'+no).removeClass('false1');
    }
    if(key==c)
        $("#"+id).addClass('true1');
    else{
        $("#"+id).addClass('false1');
        $('#c'+key+'k'+key+'s'+no).addClass('true1');
    }
    $("#s"+no).addClass('done');
    $("#TorF")[0].innerHTML='<p>完成:'+document.getElementsByClassName('done').length+'/'+document.getElementsByClassName('question').length+'&emsp;&emsp;&emsp;&emsp;'+'正确:'+(document.getElementsByClassName('done').length-document.getElementsByClassName('false1').length)+'/'+document.getElementsByClassName('done').length+'</p>'	
});
$(document).on("click",".B",function(){ //通过document绑定对应的事件
    id = $(this).attr('id')
    no = id.substr(5);
    key = id.substr(3,1);
    c = id.substr(1,1);
    for (i = 0; i < 4; i++) { 
        $('#c'+i+'k'+key+'s'+no).removeClass('true1');
        $('#c'+i+'k'+key+'s'+no).removeClass('false1');
    }
    if(key==c)
        $("#"+id).addClass('true1');
    else{
        $("#"+id).addClass('false1');
        $('#c'+key+'k'+key+'s'+no).addClass('true1');
        console.log('#c'+c+'k'+key+'s'+no)
    }
    $("#s"+no).addClass('done');
    $("#TorF")[0].innerHTML='<p>完成:'+document.getElementsByClassName('done').length+'/'+document.getElementsByClassName('question').length+'&emsp;&emsp;&emsp;&emsp;'+'正确:'+(document.getElementsByClassName('done').length-document.getElementsByClassName('false1').length)+'/'+document.getElementsByClassName('done').length+'</p>'	
});
$(document).on("click",".C",function(){ //通过document绑定对应的事件
    id = $(this).attr('id')
    no = id.substr(5);
    key = id.substr(3,1);
    c = id.substr(1,1);
    for (i = 0; i < 4; i++) { 
        $('#c'+i+'k'+key+'s'+no).removeClass('true1');
        $('#c'+i+'k'+key+'s'+no).removeClass('false1');
    }
    if(key==c)
        $("#"+id).addClass('true1');
    else{
        $("#"+id).addClass('false1');
        $('#c'+key+'k'+key+'s'+no).addClass('true1');
    }
    $("#s"+no).addClass('done');
    $("#TorF")[0].innerHTML='<p>完成:'+document.getElementsByClassName('done').length+'/'+document.getElementsByClassName('question').length+'&emsp;&emsp;&emsp;&emsp;'+'正确:'+(document.getElementsByClassName('done').length-document.getElementsByClassName('false1').length)+'/'+document.getElementsByClassName('done').length+'</p>'	
});
$(document).on("click",".D",function(){ //通过document绑定对应的事件
    id = $(this).attr('id')
    no = id.substr(5);
    key = id.substr(3,1);
    c = id.substr(1,1);
    for (i = 0; i < 4; i++) { 
        $('#c'+i+'k'+key+'s'+no).removeClass('true1');
        $('#c'+i+'k'+key+'s'+no).removeClass('false1');
    }
    if(key==c)
        $("#"+id).addClass('true1');
    else{
        $("#"+id).addClass('false1');
        $('#c'+key+'k'+key+'s'+no).addClass('true1');
    }
    $("#s"+no).addClass('done');
    $("#TorF")[0].innerHTML='<p>完成:'+document.getElementsByClassName('done').length+'/'+document.getElementsByClassName('question').length+'&emsp;&emsp;&emsp;&emsp;'+'正确:'+(document.getElementsByClassName('done').length-document.getElementsByClassName('false1').length)+'/'+document.getElementsByClassName('done').length+'</p>'	
});

铖铖的公主.html

平平无奇 html 文件一枚~

搭建了网页的骨架

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="style.css" rel="stylesheet" type="text/css">
    <script src="jquery.js" type="text/javascript"></script>
    <script src="Q_data.js"></script>
    <script src="TF_data.js"></script>
    <script src="get_Q_2.0.js" type="text/javascript"></script> 
    <script src="TF.js" type="text/javascript"></script> 
    <title>铖铖的公主</title>
</head>
<body>
    <div style="width:100%">
        <button class = "button button1" onclick="get_Q(Q_data,0);">顺序选择</button>
        <button class = "button button2" onclick="get_TF(TF_data,0);">顺序判断</button>
        <button class = "button button1" onclick="get_Q(Q_data,1);">乱序选择</button>
        <button class = "button button2" onclick="get_TF(TF_data,1);">乱序判断</button>
    </div>
    <div id="Select">

    </div>
    <div id="TorF">
        
    </div>
    <div style="height: 100px;width: 100%;">
        <!-- <p style="font-size:100px;text-align:auto;">aaa</p> -->
    </div>
    <!-- <button class = "button button1" οnclick="window.open('../index.html')">提交</button> -->

</body>
</html>

project文件分享(可直接食用)

记得一键三连噢~~

后期也做出了其他版本的网页(传送门)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/479622.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel技能之对齐,你可能都没想到

Excel表格&#xff0c;既然要做得漂漂亮亮&#xff0c;一定离不开对齐。拍照需要美颜&#xff0c;表格需要对齐。 内容全部挤到一边去。 有些靠左&#xff0c;有些靠右。 加上空格&#xff0c;感觉对齐。如果数据特别多&#xff0c;又逃不过加班的命运。 实在是混乱不堪。审美…

Linux常用命令——iostat命令

在线Linux命令查询工具 iostat 监视系统输入输出设备和CPU的使用情况 补充说明 iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况&#xff0c;同时也会汇报出CPU使用情况。同vmstat一样&#xff0c;iostat也有一个弱点&#xff0c;就…

Linux安装MongoDB数据库,并内网穿透远程连接

文章目录 前言1. 配置Mongodb源2. 安装MongoDB3. 局域网连接测试4. 安装cpolar内网穿透5. 配置公网访问地址6. 公网远程连接7. 固定连接公网地址8. 使用固定地址连接 转载自Cpolar Lisa文章&#xff1a;Linux服务器安装部署MongoDB数据库 - 无公网IP远程连接「内网穿透」 前言 …

Qt中QDebug的使用

QDebug类为调试信息(debugging information)提供输出流。它的声明在<QDebug>中&#xff0c;实现在Core模块中。将调试或跟踪信息(debugging or tracing information)写出到device, file, string or console时都会使用QDebug。 此类的成员函数参考&#xff1a;https://doc…

C语言—指针的进阶

指针的进阶 字符指针指针数组数组指针数组指针的定义区分&数组名以及数组名数组指针的使用 数组参数、指针参数一维数组传参二维数组传参一级指针传参二级指针传参 函数指针函数指针数组指向函数指针数组的指针回调函数指针和数组相关笔试题和面试题指针笔试题 指针的相关概…

C++ Boost.Reflection库(现在是Boost.PFR)的下载、安装、使用详细教程

这里写目录标题 一、Boost.Reflection简介二、Boost.Reflection&#xff08;现在是Boost.PFR&#xff09;库的下载和安装2.1、下载编译Boost2.2、使用Boost.Reflection&#xff08;现在是Boost.PFR&#xff09; 小结 一、Boost.Reflection简介 ​ Boost.Reflection&#xff0…

【C++】-关于类和对象的默认成员函数(中)-构造函数和析构函数

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点…

Cadence(2):向导制作PCB封装

前提&#xff1a;软件版本 焊盘设计 &#xff1a;Pad Designer16.6PCB设计 &#xff1a;PCB Editor16.6 文章目录 LQFP64向导封装制作封装信息SMD焊盘制作添加焊盘库到PCB Editor新建工程LQFP64向导制作流程后续处理修改栅格大小。贴加1脚标识修改丝印线 总结 LQFP64向导封装制…

获取代码量(针对Pycharm IDEA)

Statistic 这是个一劳永逸&#xff0c;获取代码量的方法。 Beginning!&#xff08;安装到使用可能都不需要5分钟&#xff09; 附上Statistic的官网下载URL&#xff1a;Statistic - IntelliJ IDEs Plugin | Marketplacehttps://plugins.jetbrains.com/plugin/4509-statistic/v…

clion + opencv环境搭建

clion是一个jetbrains提供的c开发环境&#xff0c;和idea,pycharm等开发工具类似&#xff0c;界面有很多相似的地方。 clion内置了一个mingw的编译环境&#xff0c;自带了gcc,g等命令&#xff0c;安装完clion之后&#xff0c;我们新建项目&#xff0c;它会使用内置的mingw环境。…

在KylinV10上使用DTS进行mysql8迁移至DM8

前言&#xff1a; MySQL 到 DM 的移植主要有以下几个方面的工作&#xff1a; 1&#xff0e;分析待移植系统&#xff0c;确定移植对象。2&#xff0e;通过数据迁移工具 DTS 完成常规数据库对象及数据的迁移。3&#xff0e;通过人工完成 MSQL 的移植。4&#xff0e;移植完成后对移…

从设计到产品

从设计到产品 最近上的一些课的笔记&#xff0c;从 0 开始设计项目的角度去看产品。 设计系统 设计系统(design system) 不是 系统设计(system design)&#xff0c;前者更偏向于 UI/UX 设计部分&#xff0c;后者更偏向于实现部分。 个人觉得&#xff0c;前端开发与 UI/UX 设…

使用 ESP32 设计智能手表 – 第 1 部分制作表盘

相关设计资料下载ESP32 智能手表带心率、指南针设计资料(包含Arduino源码+原理图+Gerber+3D文件).zip 人们可以使用智能手表轻松快速地访问消息、警报、健康信息和其他高级信息。虽然智能手表作为独立设备在形式上是革命性的,但当与人们携带的其他设备(例如智能手机或平板…

作为一个大学生你应该知道的事情

作为一个大学生你应该知道的事情 大学生毕业去向 今天&#xff0c;我们不写技术&#xff0c;来谈一谈大学生的毕业现状&#xff1a; 以下内容为本人的一些观点和看法&#xff0c;仅限于沟通交流。 大学生毕业去向 大学生的毕业去向大致可以分为&#xff1a;就业、自由职业、慢…

Python之常用设计模式

1、 设计模式 2、接口 interface.py #! /usr/bin/env python # -*- coding: utf-8 -*- # Date: 2018/12/1# class Payment: # def pay(self, money): # raise NotImplementedErrorfrom abc import ABCMeta, abstractmethod# 接口 # class Payment(metaclassABCMet…

低频量化之 可转债 配债数据及策略 - 全网独家

目录 历史文章可转债配债数据 待发转债&#xff08;进展统计&#xff09;待发转债&#xff08;行业统计&#xff09;待发转债&#xff08;5证监会通过&#xff0c;PE排序&#xff09;待发转债&#xff08;5证监会通过&#xff0c;安全垫排序&#xff09;待发转债&#xff08;5证…

JVM--一文精通

调整JVM堆内存 在确定JVM堆内存大小时&#xff0c;需要考虑以下因素&#xff1a; 应用程序的内存需求。操作系统和其他应用程序所需的内存。JVM的运行参数和GC算法。 根据通常的经验&#xff0c;可以将JVM最大堆内存设置为操作系统可用内存的约70%。也就是说&#xff0c;在1…

Kube-OVN组件

文章目录 介绍ovn架构kube-ovn架构kube-ovn数据流向软件版本及注意事项高可用部署安装kube-ovn运维查看Pod日志组件监控kubectl ko插件 网络相关 介绍 kube-ovn是基于ovn开发的。https://man7.org/linux/man-pages/man7/ovn-architecture.7.html ovn架构 组件说明&#xff1a…

PySide6/PyQT多线程之 信号与槽 / (Signal Slot)的高效利用

前言 PySide6/PyQT信号槽是一种事件处理方式&#xff0c;允许程序中的对象发送和接收信号。 在 PySide6/PyQT 精进的过程中&#xff0c;一定躲不开 信号和槽 这座大山&#xff0c;这是一个比较有意思的知识点&#xff1a; 初接触的看不懂&#xff0c;觉得复杂&#xff1b;看得…

【Linux】win10远程控制Linux服务器 - 内网穿透实现公网远程

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 前言 视频教程 1. ubuntu安装XRDP 2.局域网测试连接 3. Ubuntu安装cpolar内网穿透 4.cpolar公网地址测试访问 5.固定域名公网地址 [TOC] 转载自远程穿透文章&#xff1a;Wi…