C语言做的单词背诵测试器

单词学习测试器

一个用C语言实现的单词学习测试程序,支持从文件加载单词库、随机测试、错题本等功能。

功能特点

  • 📚 文件加载:从文本文件加载英文-英文单词库
  • 🎲 随机测试:随机抽取单词进行测试
  • 📊 统计功能:记录测试次数、正确率等统计信息
  • 📝 错题本:自动保存错误次数多的单词
  • 💾 数据持久化:测试数据自动保存到文件

编译和运行

简单GCC指令(推荐)

bash 复制代码
# 编译程序
gcc word_test.c -o word_test.exe

# 运行程序
word_test.exe

其他编译选项

bash 复制代码
# 带警告标志
gcc -Wall -Wextra -std=c99 word_test.c -o word_test.exe

# 带优化
gcc -O2 word_test.c -o word_test.exe

文件说明

  • word_test.c - 主程序源代码
  • word_library.txt - 单词库文件(程序会自动创建示例)
  • wrong_words.txt - 错题本文件(程序自动生成)

单词库文件格式

单词库文件 word_library.txt 的格式如下:

复制代码
hello greeting
world earth
computer machine
programming coding

每行一个单词,英文单词和含义用空格分隔。

程序功能

1. 开始随机测试

  • 输入要测试的单词数量
  • 程序随机抽取单词进行测试
  • 显示单词和含义,然后询问回忆准确性
  • 自动记录错误次数

2. 查看统计信息

  • 显示总单词数、测试次数、正确次数
  • 计算并显示正确率
  • 显示错误次数最多的单词

3. 查看错题本

  • 显示所有错误过的单词
  • 按错误次数从高到低排序
  • 帮助重点复习薄弱单词

C语言知识点

本程序涉及以下C语言知识点:

文件操作

  • fopen() - 打开文件
  • fscanf() - 格式化读取
  • fprintf() - 格式化写入
  • fclose() - 关闭文件

随机数生成

  • srand() - 设置随机数种子
  • rand() - 生成随机数
  • time() - 获取当前时间作为种子

字符串处理

  • strcpy() - 字符串复制
  • strcmp() - 字符串比较
  • strstr() - 字符串查找
  • strcspn() - 查找字符位置

内存管理

  • malloc() - 动态内存分配
  • free() - 释放内存

结构体

  • 定义和使用结构体
  • 结构体数组

使用示例

  1. 首次运行程序会自动创建示例单词库
  2. 选择"开始随机测试",输入测试数量(如5)
  3. 记住显示的单词含义
  4. 选择回忆准确性等级(1-3)
  5. 查看测试结果和正确率
  6. 在错题本中查看错误过的单词
  7. 退出程序时数据会自动保存

注意事项

  • 程序使用自评方式判断准确性(1-3分制)
  • 错题本数据会在程序退出时自动保存
  • 可以手动编辑 word_library.txt 添加更多单词
  • 程序兼容Windows和Linux系统

扩展建议

  • 添加单词发音功能
  • 支持多种测试模式(英文到英文、含义到单词)
  • 添加学习进度跟踪
  • 支持导入/导出单词库
  • 添加图形用户界面
相关推荐
Bug终结者_7 分钟前
别只会写 Java 了!LangChain4J 带你弯道超车 AI 赛道
后端·langchain·ai编程
Oneslide13 分钟前
MySQL性能排查实战:大量Sleep空闲连接导致数据库写入缓慢解决方案
后端
CHANG_THE_WORLD42 分钟前
用 C++20 打造一个实用的十六进制对比工具
c语言
计算机安禾1 小时前
【数据结构与算法】第42篇:并查集(Disjoint Set Union)
c语言·数据结构·c++·算法·链表·排序算法·深度优先
码界奇点1 小时前
基于Spring Boot的前后端分离商城系统设计与实现
java·spring boot·后端·java-ee·毕业设计·源代码管理
fox_lht1 小时前
7.3.结构体-方法
开发语言·后端·rust
掘金者阿豪1 小时前
一个权限配置错误引发的“血案”:数据库访问控制手记
后端
消失的旧时光-19432 小时前
Spring Boot 接口设计进阶:POST / PUT / DELETE 的本质区别与工程实践
spring boot·后端
StackNoOverflow2 小时前
Spring Cloud的注册中心和配置中心(Nacos)
后端·spring cloud
Paper_Love2 小时前
user_adc_read.c
c语言