英文字典设计c语言代码,一种简单的英文词典排版系统

《一种简单的英文词典排版系统》由会员分享,可在线阅读,更多相关《一种简单的英文词典排版系统(20页珍藏版)》请在人人文库网上搜索。

1、中国地质大学(武汉)C语言课程设计论文学 院:工程学院 专 业:勘察技术与工程 题 目:一种简单的英文词典排版系统 班 级:54073 姓 名: 学 号: 2009年1月一种简单的英文词典排版系统摘 要在英文词典排版当中,人工统计的速度很慢,且容易出现差错。本英文词典排版系统的自动化加速了排版工作,提高工作效率本程序主要采用对零散的单词进行自动读取,然后按单词首字母顺序讲单词保存到文档,这样的结构化非常便于程序后续的排版工作。排版具体过程涉及到自动排除重复单词与添加新单词并重新排版等问题,将于正问中详细介绍。本程序实现了所有设计要求。关键词:英文词典排版系统,结构体,排版,单词目 录 中文摘要。

2、主要符号表1 题目要求11.1.12 需求分析3 总体设计4 详细设计4.1主函数4.2各功能模块设计5运行结果(附带抓图)6总结参考文献致谢主要符号表#include stdlib.h 为exit()函数提供原型; #include string.h字符串处理函数原型; #include ctype.h字符处理函数原型; #define ROWS 256 #define COLS 32定义“字典”的大小:可存放256个单词,每个单词的长度不超过31 static FILE *fp;定义文件指针:内部链接,文件作用域; static char aROWSCOLS;定义数组:内部链接,文件作用域。

3、;该数组的作用是将文件的内容复制进来,并加以处理。因为处理数组比处理文件方便。 char get_option(void);接收用户的选项,防止误操作。若输入“a;”(不包括引号),那么将视为选项a int b(int count);完成选项b的作用接收新单词; void c(char *pt, int count);完成选项c的作用通过指针对数组排序,实际数组元素位置未改变; int check(char arr, int count);对输入的单词进行分辨,若输入 ni hao ,将视为单词 ni ,并且提示并剔除重复的单词; void storage(char *pt, int coun。

4、t);在程序结束之前重新排序存储数组中的单词到文件中。1 题目要求1 能输入和显示打入的单词2 能分辨出单词3 对重复的单词和已经输入的单词能自动排除4 能按AZ的顺序排版5 能将运行结果以文本形式存储6 具有添加新单词并重新排版的能力7 数据结构采用指针数组或二维数组。以回车键或者空格键作为单词输入结束标志,对重复的单词自动排除可选第一张提到的查找方法,数据结构可采用指针和数组2 需求分析运行结果以文本形式存储,因而要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作系统实现按AZ的顺序排版;提供插入操作添加新单词并重新排版。另外通过键盘式菜单实现功能选择。3 总体设计整个系统呗。

5、设计为单词录入模块、文件存储模块和单词浏览模块。其中单词录入模块要完成输入单词、检查是否重复、排序操作。文件存储模块把存放单词的数组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作。系统功能模块图:一种简单的英文词典排版系统添加单词单词存储删除单词单词排序单词浏览单词录入4 详细设计1.主函数 【流程图】显示一系列的功能选项根据n的值调用各功能模块函数输入n,判断n是否是19NY【程序】#include stdio.h #include stdlib.h #include string.h #include ctype.h #define ROWS 256 #define C。

6、OLS 32 static FILE *fp; static char aROWSCOLS; char get_option(void); int b(int count); void c(char *pt, int count); int check(char arr, int count); void storage(char *pt, int count);intn;/*n全局变量*/charwordN20;void menu()/*主界面*/int n,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/doputs(tt*MENU*nn);puts(ttt。

7、Welcome to djs program!nn);puts(tttt 1.Add new word.);puts(tttt 2.Browse all the words.);puts(tttt 3.Search the word.);puts(tttt 4.Sort the words.);puts(tttt 5.Order by A-z.);puts(tttt 6.Exit!);puts(nntt*n);printf(Choice your number(1-6): bb);scanf(%d,&n);if(n6)/*对选择的数字作判断*/w=1;getchar();else w=0;wh。

8、ile(w=1);switch(n)case 1:add();break;/*追加模块*/case 2:browse();break;/*浏览模块*/case 3:search();break;/*查找模块*/case 4:sort();break;/*分类模块*/case 5:order();break;/*排序模块*/case 6:exit(0);/*退出*/void main() /*主函数*/menu();2.公共函数【程序】int load()/*加载函数*/int i,count; int start; char *ptROWS; char ch, len; char input;。

9、if(fp=fopen(words.txt,a+)=NULL)/*以输出打开方式,在此前的记录被覆盖*/printf(nCannot open file!n);return NULL;for(i=0;!feof(fp);i+)fscanf(fp,%s,&wordi);fclose(fp);return i+1;/*返回记录个数*/void save(int n)/*保存函数,保存n个记录*/FILE *fp;int i;if(fp=fopen(words.txt,a+)=NULL)/*以输出打开方式,在此前的记录被覆盖*/printf(nCannot open file!n);exit(0);。

10、for(i=0;i0)strcmp(c,wordj);strcmp(wordj,wordj+1);strcmp(wordj+1,c);save(n);printf(Successful!_.n);printf(nNow? 1.browse all 2.back);scanf(%d,&k);if(k=1)browse();else if(k=2)menu();2)排序模块【流程图】返回主菜单保 存用选择法排序【程序】void order() /*排序模块*/int aN,i,j,t;struct words;n=load();for(i=0;iaj)t=ai;ai=aj;aj=t;for(j=0。

11、;j2)w1=1;elsew1=0;while(w1=1);elsew2=1;strcpy(wordi,c);save(n+1);printf(Successful!_.Now choose what you will do next?nt1).add another 2).back menu bb);doscanf(%d,&x);if(x2)w2=1;elsew2=0;while(w2=1);switch(x)case 1:add();break;case 2:menu();break;6)浏览(全部)模块返回主菜单回到分类模块用户进行选项显示所有单词记录【流程图】【程序】void brow。

12、se() /*浏览(全部)模块*/int i,w;if(n=load()=0) /*加载记录*/printf(nCannot open file!n);exit(0);for(i=0;in-1;i+)printf(%s/n,wordi);puts(Successful!_.Now 1.back menu 2.sort);scanf(%d,&w);if(w=1)menu();else if(w=2)sort();7)查找模块是否找到该单词记录输入需要查找的单词【流程图】YN返回主菜单让用户选择1).查找另一个2).返回询问用户是否继续查找提示没有找到显示找到的记录YN【程序】void searc。

13、h() /*查找模块*/int i,x,y;char vs20;if(n=load()=0) /*加载记录*/printf(nCannot open file!n);exit(0);printf(Enter the word what you want to search!);scanf(%s,vs); /*输入要查找的单词*/for(i=0;in;i+) /*查找要修改的单词*/if(strcmp(wordi,vs)=0)printf(Successful!_.nThe word is:%sn,wordi);/*找到需要修改的单词*/printf(What would you like to。

14、 do with the word?nt1).modify 2).delrte 3).nothing bb);scanf(%d,&y);if(y=1)modify(i);elsedel(i);if(i=n)printf(HOHO!Sorry.Not found);printf(Now.1).one more 2).back 3).exit);scanf(%d,&x);switch(x) case 1:search();break;case 2:menu();break;case 3:exit(0); 5 运行结果(附带抓图)输入单词显示打入的单词能分辨出单词并对重复的单词和已经输入的单词能自动。

15、排除按AZ的顺序排版添加新单词并重新排版退出将运行结果以文本形式(word.txt)存储6 总结通过这次的C语言程序设计实习,我收获了很多。以前的学习是为了应付考试,而此次的实习是将所学的知识运用到实际当中。该次实习中,我独立完成了这道题。这道题看似繁琐,但思路清晰,就很简单了,指导书中有关文件的题目大同小异,一通则百通。只要讲各功能模块融会贯通并加以适当调整即可,但前提是必须对指导书里的立体熟练掌握。一年的大学生活让我对计算机理论知识有了一定的了解,但实践出真知,只有吧理论与实践相结合,才能更好地为社会服务。同时也让我了解到了自己的不足,我会继续努力,完善自我。对于学校的精心安排和指导老师的用心辅导非常感谢。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值