资源简介
这是一个包含六级词库的英语小词典,适用于数据结构课设和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
............此处省略89个文件信息
- 上一篇:音频采集并且adpcm编码再网络发送
- 下一篇:水表指针识别数字图像处理C语言
相关资源
- C++读取 excel 完整程序源代码
- 各个软件公司+面试题+笔试题+c++有答
- C++生成二维码并保存成BMP图片
- More Effective C++.pdf 高清 目录
- 使用C++进行图像的DCT变换
- VC++实现记事本的各种功能
- Microsoft Visual C++ Build Tools 2017
- 简易PC虚拟串口示波器VC++整个工程源
- 数据结构算法实现及解析—配合严蔚
- C++黑白棋游戏完全代码
- 数据结构与算法C语言描述英文版
- c++编写的爬虫程序
- 《易学C ++ 》中文版PDF格式
- Effective Modern C++ MOBI版本 KINDLE可用
- 完成端口IOCP性能测试程序c++版本 64位
- JPEG编码之DCT与量化C++
- C++ Primer 中文完整PDF清晰非扫描(第四
- 牛客校招面试题附答案与解析c++篇.
- 卫星坐标计算程序C++
- C++图书管理系统MFC
- 图书管理系统C++MFC
- C++实现吃豆子人小游戏windows控制台
- visual c++14.0
- traceroute在windows下的c++实现源代码
- WindowsAPI参考大全forCC++(chm)
- 物流配送管理系统
- c++经典编程200例
- vs+mssql实现医药管理信息系统实验报告
- vc++MFC画彩色五角星
- 通过smart获取硬盘序列号等信息的C+
评论
共有 条评论