c++背单词软件.docx

上传人:小飞机 文档编号:3153814 上传时间:2023-03-11 格式:DOCX 页数:6 大小:38.21KB
返回 下载 相关 举报
c++背单词软件.docx_第1页
第1页 / 共6页
c++背单词软件.docx_第2页
第2页 / 共6页
c++背单词软件.docx_第3页
第3页 / 共6页
c++背单词软件.docx_第4页
第4页 / 共6页
c++背单词软件.docx_第5页
第5页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《c++背单词软件.docx》由会员分享,可在线阅读,更多相关《c++背单词软件.docx(6页珍藏版)》请在三一办公上搜索。

1、c+背单词软件实习报告 一、需求分析 题目:背单词程序 要求:程序使用词汇表文件,其中每个词条由单词和解释两部分组成,编程完成:用户输入一个单词,程序将给出单词的词性和中文意思。 建立一个词汇表测试用词汇表名为新东方红宝书.txt,用c语言文件操作打开该文件,并将文件读入命名为dictionaryDICTSIZE的数组内。读入数据存储于dictionaryDICTSIZE所分配的地址空间内,以8字节表示一个信息。 二、程序设计 数据类型定义: Int a,b; 作为是否继续判断的依据 char *buf;要输入的单词 int index;哈西表查找到的字符的地址值 void DoWord;把单

2、词赋给数组 int MakeDict;打开单词文件 int SearchWordByHash;哈西查找 int GetValueByWord;算出哈西函数值 三,设计思路 从文件中读入一个字符,在文件中进行哈西查找,运用哈西查找可以提高效率。 程序流程图 输入一个单词 打开新东方红宝书.txt文件,将其内容读入dictionaryDICTSIZE内 是 哈西查找 找不到找到显示查找不到 显示单词词性及中文意思 选择是否继续 否 退出 四、使用说明 按照程序提示说明输入一个英文单词,按回车键,程序将在文件中进行查找,找到单词是将显示出单词的词性及中文意思。 注:因为单词文件中单词数量有限因此,当

3、查找不到这个单词时程序将提示用户单词无法找到。 当查找结束后,程序将询问用户是否继续查找,若继续请按1退出请按2。 五、测试结果 六、其他 源代码注释: #include #include #include #define BUFFER_SIZE 100 #define DICTSIZE 8000 #define WORDLEN 100 void DoWord(char* word,int num); int MakeDict(char *filename,int num); int SearchWordByHash(char *word,int num); int GetValueByWor

4、d(char *word,int num); struct Dword char dataWORDLEN; char meanWORDLEN; dictionaryDICTSIZE; int DictNum, Ret; FILE *fout; void main printf(欢迎光临学生字典,请输入您想查找的单词n); printf(我将把您想查找的英文单词的词性和中文意思告诉您n); int a = 1; while (a != 0) /输入0退出,其它任意键继续 char *buf; /定义一个指针指向要查找的单词 char str10; int index; buf = str; sc

5、anf(%s, buf); /输入要查找的单词 printf(%s ,buf); MakeDict(新东方红宝书.txt,DictNum); index=SearchWordByHash(buf,DictNum); if( -1 = index ) printf(单词表中没有这个单词n); else printf(这个单词的意思是:%s ,dictionaryindex.mean); printf(继续查找请按1,退出请按0n); int b; scanf(%d, &b); a = b; /确定a的值 void DoWord(char* word,int num) /把单词赋给数组 int i

6、,f=0,k1=0,k2=0,worlen,tn; char ctempWORDLEN; worlen=strlen(word); for(i=0;iworlen;i+) / ctemp = word if(wordi!= ) ctempi=wordi; else break; ctempi=0; tn=GetValueByWord(ctemp,num); if(dictionarytn.data0!=0) for(tn=0;tnnum;tn+) if(dictionarytn.data0=0) break; f=0; for(i=0;iworlen;i+) if(wordi!= &f=0)

7、dictionarytn.datak1=wordi; k1+; if(wordi!= &f=1) dictionarytn.meank2=wordi; k2+; if(wordi= &wordi+1!= ) f=1; dictionarytn.datak1=0; dictionarytn.meank2=0; int MakeDict(char *filename,int k) /打开单词文件 char twordWORDLEN; k=0; memset(dictionary,0,sizeof(dictionary); / 内存数组中所有元素置0表示没有当前位置存放单词 if(fout=fope

8、n(filename,r)=NULL) printf(Open the dictionary failedn); return 0; else while(fgets(tword,WORDLEN,fout)!=NULL) k+; rewind(fout); while(fgets(tword,WORDLEN,fout)!=NULL) DoWord(tword,k); fclose(fout); DictNum = k; return 1; int SearchWordByHash(char *word,int num) /哈西查找 int temp; temp=GetValueByWord(word,num); if(!strcmp(dictionarytemp.data,word) return temp; else for(temp=0;temp= 0 ; i-) if(wordi - a 0) continue; Ret += (wordi - a) * step; step += 10; Ret = Ret % num; return Ret;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号