资源简介

这是一个包含六级词库的英语小词典,适用于数据结构课设和C++课设,里面使用了折半查找,kmp匹配,队列,栈等一些算法和数据结构,使用Qt5.8开发,带有界面,里面的注释详细,代码规范,喜欢的朋友就下载一下吧

资源截图

代码片段和文件信息

#include “HalfFindWord.h“
#include “Word.h“
#include 
#include 
#include 
#include 
#include 

using namespace std;


HalfFindWord::HalfFindWord()
{
memset(fileName ‘\0‘ sizeof(fileName));

//生成26个字母,用于下面的
for (int i = 65 j = 0; i <= 106; i++ j++)
{
alphabet[j] = i;
}

//初始化,表示没有使用,使用的时候要先判断是不是在26以内
findNum = 50;
}


HalfFindWord::~HalfFindWord()
{
}

/*
*函数根据flag的不同选择调用不同的函数
*例如flag是FINDWORD的时候,选择调用的是直接查找单词
*当flag是FINDFILE的时候, 选择的是查找单词的所在文件
*/
int HalfFindWord::find(char *needToFindWord int flag)
{
if (flag == FINDWORD)
{
/*
*先找文件的位置
*然后找单词
*/
if (findFile(needToFindWord))
{
initFileName(findNum);
findWord(needToFindWord);
            return true;
}

}

//找文件
else if (flag == FINDFILE)
{
if (findFile(needToFindWord))
{
initFileName(findNum);
            return true;
}

}

}

/*
*采用折半查抄的方法
*找到字母开头对应的字母对应的文件
*/
int HalfFindWord::findFile(char *needFindWord)
{
int start = 0;
int end = 25;
int middle = (start + end) / 2;

while (1)
{
if (start > end)
{
return false;
break;
}
else if (ChangToBig(needFindWord[0]) == alphabet[middle])
{
findNum = alphabet[middle];
break;
}
else if (ChangToBig(needFindWord[0]) < alphabet[middle])
{
end = middle - 1;
}
else if(ChangToBig(needFindWord[0]) > alphabet[middle])
{
start = middle + 1;
}
middle = (start + end) / 2;
}
return true;
}

/*
*先使用折半查找找到文件
*然后使用折半查找的思想找到该文件中的单词
*匹配的时候使用是朴素匹配算法
*/
int HalfFindWord::findWord(char *needToFindWord)
{
//用来存字典中有多少的单词
int count = 0;
ifstream file;
file.open(fileName);

if (!file)
{
cout << “打开文件失败!“ << endl;
        //halfFindWord.setWord(“打开文件失败“);
        halfFindWord.setFind(NOTFIND);
        return 0;
        //exit(1);
}
file >> count;
file.close();
int start end middle;

start = 1;
end = count;
middle = (start + end) / 2;

//大小是根据Word里面的数据的大小定的
char tempWordChineseSentence[SIZEOFWORD + SIZEOFCHINESE + SIZEOFSENTENCE];
char tempWord[SIZEOFWORD];
char tempChinese[SIZEOFCHINESE];
char tempSentence[SIZEOFSENTENCE];
//标志性变量表示用来调用数组中的第几个子母
int num;
//标志性变量,用来表示是否对比到不同的字母
int flag;
while (1)
{
num = 0;
memset(tempWord ‘\0‘ sizeof(tempWord));
memset(tempChinese ‘\0‘ sizeof(tempChinese));
memset(tempSentence ‘\0‘ sizeof(tempSentence));
memset(tempWordChineseSentence ‘\0‘ sizeof(tempWordChineseSentence));

ifstream file(fileName);
if (!file)
{
cout << “打开文件失败!“ << endl;
            exit(1);
}
file.getline(tempWordChineseSentence sizeof(tempWordChineseSentence));
memset(tempWordChineseSentence ‘\0‘ sizeof(tempWordChineseSentence));
file.seekg((abs(middle - 1)) * (sizeof(char) * (SIZEOFWORD + SIZEOFCHINESE + SIZEOFSENTENCE) - 3) ios::cur);

file.getline(tempWordChineseSentence sizeof(tempWordChineseSentence));
//把从文

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-07-01 20:59  Dictionary1_0\
     文件        1756  2017-06-15 09:14  Dictionary1_0\Dictionary1_0.pro
     文件       23972  2017-07-01 20:59  Dictionary1_0\Dictionary1_0.pro.user
     文件        9478  2017-06-21 13:32  Dictionary1_0\HalfFindWord.cpp
     文件        1479  2017-06-13 08:41  Dictionary1_0\HalfFindWord.h
     文件         416  2017-06-20 21:07  Dictionary1_0\happyday.cpp
     文件         342  2017-06-03 11:33  Dictionary1_0\happyday.h
     文件        1301  2017-06-03 12:47  Dictionary1_0\happyday.ui
     文件        8198  2017-06-21 13:33  Dictionary1_0\kmpsearch.cpp
     文件         830  2017-06-16 13:58  Dictionary1_0\kmpsearch.h
     文件         313  2017-06-12 09:22  Dictionary1_0\main.cpp
     文件       10150  2017-06-21 09:45  Dictionary1_0\mainwindow.cpp
     文件        1476  2017-06-15 08:54  Dictionary1_0\mainwindow.h
     文件        9981  2017-06-16 09:39  Dictionary1_0\mainwindow.ui
     文件        3161  2017-06-21 14:01  Dictionary1_0\myqueue.cpp
     文件         388  2017-06-21 14:01  Dictionary1_0\myqueue.h
     文件        2921  2017-06-21 09:45  Dictionary1_0\mystack.cpp
     文件         673  2017-06-21 14:01  Dictionary1_0\mystack.h
     文件        1059  2017-06-15 10:08  Dictionary1_0\photo.qrc
     目录           0  2017-06-15 10:08  Dictionary1_0\photo\
     文件        2405  2017-06-12 09:34  Dictionary1_0\photo\close.png
     文件       11522  2017-05-24 17:03  Dictionary1_0\photo\EnglishToChinese.png
     文件        3995  2017-05-23 22:19  Dictionary1_0\photo\file.png
     文件        6913  2017-05-24 16:38  Dictionary1_0\photo\flag.png
     文件        7063  2017-05-24 16:40  Dictionary1_0\photo\flag2.png
     文件       10572  2017-05-24 16:41  Dictionary1_0\photo\flag3.png
     文件        5727  2017-05-22 19:57  Dictionary1_0\photo\hamburger.png
     文件      721020  2017-06-03 11:46  Dictionary1_0\photo\happy.png
     文件        4175  2017-06-11 18:21  Dictionary1_0\photo\hello.png
     文件        5180  2017-05-23 21:20  Dictionary1_0\photo\magnifyingGlass.png
     文件        4502  2017-05-29 13:29  Dictionary1_0\photo\previous.png
............此处省略88个文件信息

评论

共有 条评论