【Qt\C++】Qt实现简易单词背诵程序

本文详细介绍了如何通过Qt开发一个包含单词分级、数据导入、多种背诵和识别方式的单词背诵程序,包括数据结构设计、文件操作和用户界面交互的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是一个通过Qt实现的单词背诵程序,我将通过几个步骤带你程序实现逻辑

设计思路:

1、按单词的难易程度可将单词进行分级,如1-9级;背诵单词,如遇见不认识的情况需知道中文解释,根据以上信息,我们将设计一个数据结构,如“英文”、“中文”、“等级
2、根据以上信息,我们可以设计出单词背诵程序的数据存储内容,这里我们采用文本文件进行存储,如“red 红色 1
3、导入数据,并进行分级处理
4、设计背诵方式,如“背诵中文”、“背诵英文”、“随机背诵中文”、“随机背诵英文”
5、设计识别方式,如“认识”、“不认识”;当点击不认识时,需弹出相对应的中文或者英文

头文件定义:

#include <QWidget>

//单词数据结构体
struct Word
{
   
    QString en;
    QString cn;
    int level;
};

namespace Ui {
   
class Recite;
}

class Recite : public QWidget
{
   
    Q_OBJECT

    //背诵类型
    enum ReciteType
    {
   
        //顺序背诵英文
        LEVELEN,
        //顺序背诵中文
        LEVELCN,
        //随机背诵英文
        RANDEN,
        //随机背诵中文
        RANDCN
    };

public:
    explicit Recite(QWidget *parent = 0);
    ~Recite();
private slots:
    void on_btn_importWord_clicked();

    void on_btn_levelEn_clicked();

    void on_btn_levelCn_clicked();

    void on_btn_randCn_clicked();

    void on_btn_randEn_clicked();

    void on_btn_know_clicked();

    void on_btn_unknown_clicked();

    void on_btn_next_clicked();

private:
    //生成不重复的随机数表
    QList<int> genRadNum(int num);

    void knowOrNext();

private:
    Ui::Recite *ui;
    //根据分级后的单词
    QList<QList<Word>> m_levelword;
    //所有单词
    QList<Word> m_allWord;
    //背诵类型
    ReciteType m_type;
    //不重复的随机数表
    QList<int> m_randList;
    //当前单词索引
    int m_index;
    //当前等级
    int m_level;
};

导入单词数据

void Recite::on_btn_importWord_clicked()
{
   
    QString path = QFileDialog::getOpenFileName(this, "请选择单词文本", "", "*.txt");
    if (path.isEmpty())
        return;
    //清空保存单次的容器
    for (int i = 0; i < m_levelword.size(); ++i)
        m_levelword[i].clear();
    m_levelword.clear();
    ui->comboBox_level->clear();
    QFile file(path);
    if (!file.open(QFile::ReadOnly))
    {
   
        QMessageBox::information(this, "提示", "打开单词文本文件失败!");
        return;
    }
    //利用set来保证级数的唯一性
    QSet<int> level;
    int maxLevel = -1;
    //读取文件
    while (!file
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值