一、设计要求
功能要求:
(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': # 代码略....
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “ 简考 ” 获取。👈👈👈