一种简单的英文词典排版系统_第1页
一种简单的英文词典排版系统_第2页
一种简单的英文词典排版系统_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一种简单的英文词典排版系统中文摘要I主要符号表IV1题目要求11.112需求分析3总体设计4详细设计4.1主函数4.2各功能模块设计5.运行结果(附带抓图)6总结参考文献致谢主要符号表#include"stdlib.h"为exit()函数提供原型;#include"string.h"字符串处理函数原型;#include"ctype.h"字符处理函数原型;#defineROWS256#defineCOLS32定义字典”的大小:可存放256个单词,每个单词的长度不超过31staticFILE*fp;定义文件指针:内部链接,文件作用域;st

2、aticcharaROWSCOLS;定义数组:内部链接,文件作用域;该数组的作用是将文件的内容复制进来,并加以处理。因为处理数组比处理文件方便。charget_option(void);接收用户的选项,防止误操作。若输入“a;(不包括引号),那么将视为选项aintb(intcount);完成选项b的作用接收新单词;voidc(char*pt,intcount);完成选项c的作用通过指针对数组排序,实际数组元素位置未改变;intcheck(chararr,intcount);对输入的单词进行分辨,若输入nihao,将视为单词ni,并且提示并剔除重复的单词;voidstorage(char*pt,

3、intcount);在程序结束之前重新排序存储数组中的单词到文件中。1题目要求能输入和显示打入的单词1. 能分辨出单词文档来源为:从网络收集整理.word版本可编辑欢迎下载支持3对重复的单词和已经输入的单词能自动排除4能按AZ的顺序排版5能将运行结果以文本形式存储6.具有添加新单词并重新排版的能力7数据结构采用指针数组或二维数组。以回车键或者空格键作为单词输入结束标志,对重复的单词自动排除可选第一张提到的查找方法,数据结构可采用指针和数组2需求分析运行结果以文本形式存储,因而要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作系统实现按AZ的顺序排版;提供插入操作添加新单词并重新排

4、版。另外通过键盘式菜单实现功能选择。3总体设计整个系统呗设计为单词录入模块、文件存储模块和单词浏览模块。其中单词录入模块要完成输入单词、检查是否重复、排序操作。文件存储模块把存放单词的数组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作。系统功能模块图:11一种简单的英文词典排版系统r114单详录入设计单词浏览单词排序删除单词单词存储添加单词1.主函数N【流程图】【程序】#include"stdio.h"#include"stdlib.h"#include"string.h"#include"ctype.h

5、"#defineROWS256#defineCOLS32staticFILE*fp;staticcharaROWSCOLS;charget_option(void);intb(intcount);voidc(char*pt,intcount);intcheck(chararr,intcount);voidstorage(char*pt,intcount);intn;/*n全局变量*/charwordN20;voidmenu()/*主界面*/*/intn,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内doputs("tt*MENU*puts(&q

6、uot;tttWelcometodj'sprogram!nn");puts("tttt1.Addnewword.");puts("tttt2.Browseallthewords.");puts("tttt3.Searchtheword.");puts("tttt4.Sortthewords.");puts("tttt5.OrderbyA-z.");puts("tttt6.Exit!");puts("nnttputs("nntt*n&quo

7、t;);printf("Choiceyournumber(1-6):bb");scanf("%d",&n);if(n<1|n>6)/*对选择的数字作判断*/w=1;getchar();elsew=0;while(w=1);switch(n)case1:add();break;/*追加模块*/case2:browse();break;/*浏览模块*/case3:search();break;/*查找模块*/case4:sort();break;/*分类模块*/case5:order();break;/*排序模块*/case6:exit(

8、0);/*退出*/voidmain()menu();2.公共函数【程序】voidmain()menu();2.公共函数【程序】/*主函数*/intload()/*加载函数*/inti,count;intstart;char*ptROWS;charch,len;charinput;if(fp=fopen("words.txt","a+")=NULL)/*以输出打开方式,在此前的记录被覆盖printf("nCannotopenfile!n");returnNULL;for(i=0;!feof(fp);i+)fscanf(fp,"

9、%s",&wordi);fclose(fp);returni+1;/*返回记录个数*/voidsave(intn)/*保存函数,保存n个记录*/FILE*fp;inti;if(fp=fopen("words.txt","a+")=NULL)/*以输出打开方式,在此前的记录被覆盖printf("nCannotopenfile!n");exit(0);for(i=0;i<n;i+)fprintf(fp,"%s",&wordi);fclose(fp);3.各功能模块设计1)分类模块【程序】

10、voidsort()inti,j,k;charc20;if(n=load()=0)printf("nCannotopenfile!n");exit(0);for(i=0;i<n;i+)for(j=0;j<n-i-1;j+);if(strcmp(wordj,wordj+1)>0)*/*/*/strcmp(c,wordj);strcmp(wordj,wordj+1);strcmp(wordj+1,c);save(n);printf("SuccessfulL_A.n");printf("nNow?scanf("%d&quo

11、t;,&k);if(k=1)browse();elseif(k=2)menu();2)排序模块【流程图】【程序】voidorder()/*排序模块intaN,i,j,t;structwords;n=load();for(i=0;i<N;i+)for(i=0;i<N-1;i+)1.browseall2.back");用选择法排序1r保存1返回主菜单for(j=i+i;j<N;j+)if(ai>aj)t=ai;ai=aj;aj=t;for(j=0;j<N;j+)printf("%3d",ai);3)修改模块【流程图】printf(

12、"Enterthenewword:");scanf("%s",c);strcpy(worda,c);save(n);4)删除模块【流程图】显示所有记录,让用户看哪个需要删除提示没有找到vo输入需要删除的单词【程序】返回主菜单显示找到的记录调用删除函数是否找到此单词记录iddel(int询冋/用删除模否继续删除intx,i,y;printf("Areyousuretodeletethisword?nt1).surescanf("%d",&x);/*输入要修改的单词*/if(x=1)for(i=a;i<n-1;i+

13、)2).noandbackmenubb");/*查找要修改的单词*/strcpy(wordi,wordi+1);save(n_1);printf("Successful!A_A.nNow?1).onemore2).backmenu");scanf("%d",&y);if(y=1)search();elseif(x=2)menu();elseif(x=2)menu();5)追加模块【流程图】charc20;if(n=load()=0)exit(0);elseputs("Enterthenewword!n");scanf

14、("%s",c);/*输入要追加的单词*/for(i=0;i<n;i+)if(strcmp(wordi,c)=0)break;if(i<n)w=1;doprintf("Thewordhasalreadyexit!n");bb");2).backprintf("nnWhatdoyouwanttodo?nt1).enteronemore2).backmenuscanf("%d",&x);if(x<1|x>2)w1=1;elsew1=0;while(w1=1);elsew2=1;strcp

15、y(wordi,c);save(n+1);printf("SuccessfulL_A.Nowchoosewhatyouwilldonext?nt1).addanothermenubb");doscanf("%d",&x);if(x<1|x>2)w2=1;elsew2=0;while(w2=1);switch(x)case1:add();break;case2:menu();break;6)浏览(全部)模块【流程图】printf("%s/n",wordi);puts("SuccessfulL_A.Now1.

16、backmenu2.sort");scanf("%d",&w);if(w=1)menu();elseif(w=2)sort();printf("nCannotopenfile!'n");exit(0);printf("Enterthewordwhatyouwanttosearch!");scanf("%s",vs);/*输入要查找的单词*/for(i=0;i<n;i+)/*查找要修改的单词*/if(strcmp(wordi,vs)=0)printf("SuccessfulL

17、_A.nThewordis:%sn",wordi);*找到需要修改的单词*/printf("Whatwouldyouliketodowiththeword?nt1).modify2).delrte3).nothingbb");scanf("%d",&y);if(y=1)modify(i);elsedel(i);if(i=n)printf("HOHO!SorryNotfound");printf("Now.1).onemore2).back3).exit");scanf("%d"

18、,&x);switch(x)case1:search();break;case2:menu();break;case3:exit(0);5运行结果(附带抓图)主菜单输入新单词退出licroE«ftVisnalStudioConllSDev98inDebnTHLB.exeClioiceyournunber<l-&>-11Entei*thenewvfor-dthet'eSuccessful?.Now1choosewlha±youuilldonext?1).addanother*玄meniu2atfafWWSMFKimKiKMSM1mtWEWW;MfENU肚KWKM:J<KKKKICM:1CKXKWKIOCUeleonetodj*spiogran!1.Addnewword.2Browse-allthewor-ds3Searchtheword«4<Sortthewords.5«Orderbyft-z.6.Exit!貝:MKUKUXJtKJ431KUX貝*刊XJtXMXJtChoiceirournumber<16>

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论