【python】python标准化考试系统[单项选择题 简易版](源码)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


【python】python标准化考试系统[单项选择题 简易版](源码)【独一无二】


目录

  • 【python】python标准化考试系统[单项选择题 简易版](源码)【独一无二】
  • 一、设计要求
  • 二、功能展示
    • 2.1.添加试题
    • 2.2.开始考试 + 计算成绩
    • 2.3. 退出系统
  • 3. 代码分析
      • 1. 加载试题库(`load_questions` 函数)
      • 2. 保存新试题(`save_question` 函数)
      • 3. 录入试题(`add_question` 函数)
      • 4. 抽取试题(`extract_questions` 函数)
      • 5. 管理考试和自动判卷(`administer_test` 函数)
      • 6. 主函数(`main` 函数)


一、设计要求

功能要求:
(1)用文件保存试题库(每个试题包括题干,4 个备选答案,标准答案)
(2)试题录入:可随时增加试题到试题库中
(3)试题抽取:每次从试题库中可以随机抽出 N道题(N 由键盘输入)
(4)答题:用户可实现输入自己的答案
(5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 简考 ” 获取。👈👈👈


二、功能展示

2.1.添加试题

在这里插入图片描述

2.2.开始考试 + 计算成绩

在这里插入图片描述

2.3. 退出系统

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 简考 ” 获取。👈👈👈


3. 代码分析

1. 加载试题库(load_questions 函数)

这个模块负责从一个文本文件中读取试题。每道题目的数据结构为题干、四个选项以及一个正确答案,这些信息通过竖线(|)分隔开,并存储在列表中。该函数返回一个包含所有试题的列表,每个试题本身也是一个列表。

def load_questions(filename):
    questions = []
    with open(filename, 'r', encoding='utf-8') as file:
        for line in file:
            # 代码略....
    return questions

2. 保存新试题(save_question 函数)

此函数将新录入的试题追加到试题库文件中。接收一个试题的列表(包括题干和四个选项及正确答案)并将其转换为字符串格式存入文件。

def save_question(filename, question):
    with open(filename, 'a', encoding='utf-8') as file:
        file.write('|'.join(question) + '\n')

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 简考 ” 获取。👈👈👈

3. 录入试题(add_question 函数)

这个模块允许用户通过命令行界面输入新的试题,包括题干、四个选项和一个正确答案。录入完成后,调用 save_question 函数将新试题保存到文件中。

def add_question(filename):
    stem = input("请输入题干: ")
     # 代码略....
      # 代码略....
    if answer in ['A', 'B', 'C', 'D']:
        save_question(filename, [stem] + options + [answer])
    else:
        print("无效的答案,必须是 A、B、C、D 中的一个。")

4. 抽取试题(extract_questions 函数)

当用户想要进行测试时,此函数从加载的试题库中随机选取指定数量的试题。使用 random.sample 确保每次抽取的试题都是随机且不重复的。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 简考 ” 获取。👈👈👈

def extract_questions(questions, n):
    return random.sample(questions, min(n, len(questions)))

5. 管理考试和自动判卷(administer_test 函数)

用户答题的主要交互界面。显示每个问题及其选项,并允许用户输入答案,然后与标准答案比较以计算分数。

def administer_test(questions):
    score = 0
    for question in questions:
         # 代码略....
    return score

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 简考 ” 获取。👈👈👈

6. 主函数(main 函数)

主函数组织以上所有模块,提供一个菜单驱动的命令行界面,用户可以选择录入试题、开始考试或退出程序。根据用户的选择,调用相应的函数。

def main():
    filename = 'questions.txt'
    questions = load_questions(filename)
    while True:
        print("\n1. 添加试题\n2. 开始考试\n3. 退出")
        choice = input("请选择一个操作: ")
        if choice == '1':
             # 代码略....
        elif choice == '2':
             # 代码略....

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 简考 ” 获取。👈👈👈

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker挂载数据卷-以nginx为例

目录 一、什么是数据卷 二、数据卷的作用 三、如何挂载数据卷 1、创建nginx容器挂载数据卷 2、查看数据卷 3、查看数据卷详情 4、尝试在宿主机修改数据卷 5、查看容器内对应的数据卷目录 6、 访问nginx查看效果 ​​​​​​​一、什么是数据卷 挂载数据卷本质上就是实…

基于springboot实现公司日常考勤系统项目【项目源码+论文说明】

基于springboot实现公司日常考勤系统演示 摘要 目前社会当中主要特征就是对于信息的传播比较快和信息内容的安全问题,原本进行办公的类型都耗费了很多的资源、传播的速度也是相对较慢、准确性不高等许多的不足。这个系统就是运用计算机软件来完成对于企业当中出勤率…

Unity3D初级实战项目之方块跑酷

目录 初始化项目开发环境初始化项目屏幕自适应 游戏UI界面元素布局开始界面UI角色选择(商城)界面UI游戏界面UI 地图生成算法之菱形布局Resources资源加载代码生成地图菱形布局 地图生成算法之墙壁边界菱形地图双排布局地图瓷砖颜色美化墙壁边界生成 地图…

git提交错了?别慌,直接删除提交记录

为什么要删除提交历史 前几天产品提了个很扯淡的需求,我在代码了进行了吐槽.... 要命的是我不下心进行了代码提交: 我们的远程仓库大家都能看见的 这要是被其他人发现就惨了!当务之急,我必须立刻马上删除这一条提交记录&#xff…

菜鸡学习netty源码(一)——ServerBootStrap启动

1.概述 对于初学者而然,写一个netty本地进行测试的Server端和Client端,我们最先接触到的类就是ServerBootstrap和Bootstrap。这两个类都有一个公共的父类就是AbstractBootstrap. 那既然 ServerBootstrap和Bootstrap都有一个公共的分类,那就证明它们两个肯定有很多公共的职…

EMP.DLL是什么东西?游戏提示EMP.DLL文件缺失怎么解决

emp.dll文件是Windows操作系统中的一种动态链接库文件,它被设计为可以被多个程序共享使用的模块化文件。这种设计旨在提高系统效率,减少内存消耗,并简化软件的维护和更新。DLL文件通常包含了一系列相关的函数和变量,这些函数和变量…

全景剖析阿里云容器网络数据链路(七):Terway DataPath V2(Terway≥1.8.0)

作者:余凯 前言 近几年,企业基础设施云原生化的趋势越来越强烈,从最开始的IaaS化到现在的微服务化,客户的颗粒度精细化和可观测性的需求更加强烈。容器网络为了满足客户更高性能和更高的密度,也一直在高速的发展和演…

qt学习篇---界面按键关联(信号和槽)

目录 1.qt基础 2.做一个界面 创建project UI界面设计 信号和槽 1.控件改名字 2.什么是信号和槽 3.怎么关联信号和槽 自动关联 手动关联 1.qt基础 qt可移植性强,不久会用到MCU。很有意义学习 2.做一个界面 创建project 不要中文路径 选择QWidget .pro文件…

ASP.NET实验室预约系统的设计

摘 要 实验室预约系统的设计主要是基于B/S模型,在Windows系统下,运用ASP.NET平台和SQLServer2000数据库实现实验室预约功能。该设计主要实现了实验室的预约和管理功能。预约功能包括老师对实验室信息、实验项目和实验预约情况的查询以及对实验室的预约…

LeetCode 69—— x 的平方根

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 二分查找法,对于整数 i ∈ [ 0 , x ] i \in [0,x] i∈[0,x],我们判断 i 2 i^2 i2 和 x x x 的关系,然后找到最后一个平方小于等于 x x x …

向量语义学

书籍:Vector Semantics 作者:Andrs Kornai 出版:Springer Singapore 书籍下载-《向量语义学》本书通过提出一个以线性多面体术语表达的形式理论来弥合这一差距,该理论将字向量和概念结构进行了概括,将每个词典定义视…

45. UE5 RPG 使用元属性(Meta Attributes)以及使用Set by Caller修改伤害

在RPG游戏中,我们是不会直接修改生命值的属性,是因为在修改角色属性时,需要获取角色的属性并进行复杂的计算,所以,我们正常情况下使用元属性(Meta Attributes)作为计算的中间的媒。在服务器上先…

前端-React项目初始化

大家好我是苏麟 , 今天聊聊前端依赖 Ant Desgin Pro 快速初始化项目 . Ant Desgin Pro 官网 : 开始使用 - Ant Design Pro 初始化项目 找到文档->快速上手 脚手架命令 : # 使用 npm npm i ant-design/pro-cli -g创建项目命令 : pro create 项目名称 选择简单还是全量 : …

Python | Leetcode Python题解之第64题最小路径和

题目: 题解: class Solution:def minPathSum(self, grid: List[List[int]]) -> int:if not grid or not grid[0]:return 0rows, columns len(grid), len(grid[0])dp [[0] * columns for _ in range(rows)]dp[0][0] grid[0][0]for i in range(1, r…

五大开放式耳机推荐,选对耳机让运动更带感!

看似精彩的户外运动经历背后,其实是枯燥的体能运动和训练,以及独自长途和长时间旅行伴随的孤独感,而排解这些不良情绪的最佳方式就是音乐。如果你希望在运动、舒适、安全和音质之间获得一个最佳平衡,那相比入耳式耳机,…

71.网络游戏逆向分析与漏洞攻防-角色与怪物信息的更新-分析并利用角色与怪物创建的数据包

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 现在的代码都是依据数据包来写的,如果看不懂代码,就说明没看懂数据包…

『项目整理』易CAR通项目说明文档-我的第一款APP

『项目整理』易CAR通项目说明文档-我的第一款APP 项目介绍功能介绍技术栈介绍实现效果如何运行备注 项目介绍 易CAR通项目是我的第一个Android项目。是一款结合了AR技术的模仿懂车帝的看车软件。因为是初学,所示实现的效果差强人意,很多的功能界面只实现…

文件批量高效管理,批量将PDF类型文件移动到指定文件夹里,实现文件高效管理

文件的管理与整理成为了我们生活中不可或缺的一部分。面对堆积如山的PDF文件,你是否也曾感到手足无措、焦头烂额?现在,有了我们的批量文件管理工具,PDF文件的管理将变得前所未有的高效与简单! 首先,我们要…

对于Servlet项目无法显示css样式

有可能你在过滤器中拦截了.css文件,并且你设置了响应格式导致的,就比如我的项目如下图所示 删除servletResponse.setContentType("text/html; charsetUTF-8");即可

Android C++ 开发调试 LLDB 工具的使用

文章目录 调试环境准备基础命令Breakpoint CommandsWatchpoint CommandsExamining VariablesEvaluating ExpressionsExamining Thread StateExecutable and Shared Library Query Commands 参考: Android 中在进行 NDK 开发的时候,我们经常需要进行 C 代…