欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    一种简单的英文词典排版系统——C语言(共16页).doc

    • 资源ID:5346176       资源大小:102.50KB        全文页数:16页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    一种简单的英文词典排版系统——C语言(共16页).doc

    精选优质文档-倾情为你奉上一种简单的英文词典排版系统目 录中文摘要主要符号表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;定义数组:内部链接,文件作用域;该数组的作用是将文件的内容复制进来,并加以处理。因为处理数组比处理文件方便。 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 count);在程序结束之前重新排序存储数组中的单词到文件中。1 题目要求1 能输入和显示打入的单词2 能分辨出单词3 对重复的单词和已经输入的单词能自动排除4 能按AZ的顺序排版5 能将运行结果以文本形式存储6 具有添加新单词并重新排版的能力7 数据结构采用指针数组或二维数组。以回车键或者空格键作为单词输入结束标志,对重复的单词自动排除可选第一张提到的查找方法,数据结构可采用指针和数组2 需求分析运行结果以文本形式存储,因而要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作系统实现按AZ的顺序排版;提供插入操作添加新单词并重新排版。另外通过键盘式菜单实现功能选择。3 总体设计整个系统呗设计为单词录入模块、文件存储模块和单词浏览模块。其中单词录入模块要完成输入单词、检查是否重复、排序操作。文件存储模块把存放单词的数组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作。系统功能模块图:一种简单的英文词典排版系统 单词浏览删除单词添加单词单词存储单词排序单词录入4 详细设计1.主函数 【流程图】显示一系列的功能选项 输入n,判断n是否是19根据n的值调用各功能模块函数NY【程序】#include "stdio.h" #include "stdlib.h" #include "string.h" #include "ctype.h" #define ROWS 256 #define COLS 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);int n;    /*n全局变量*/  char wordN20;void menu()/*主界面*/int n,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/doputs("tt*MENU*nn");puts("tttWelcome to dj's 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(n<1|n>6)/*对选择的数字作判断*/w=1;getchar();else w=0;while(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;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);for(i=0;i<n;i+)fprintf(fp,"%s",&wordi);fclose(fp);3.各功能模块设计1)分类模块【程序】void sort()int i,j,k;char c20;if(n=load()=0)printf("nCannot open file!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("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;i<N;i+)for(i=0;i<N-1;i+)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)修改模块【流程图】输入要修改的单词是否找到此单词记录显示所有记录,让用户看哪个要修改YN显示找到的单词,调用修改函数提示没有找到询问用户是否继续修改Y返回主菜单Y【程序】void modify(int a) /*修改模块*/char c20;printf("Enter the new word:");scanf("%s",c);strcpy(worda,c);save(n);4)删除模块【流程图】显示所有记录,让用户看哪个需要删除输入需要删除的单词是否找到此单词记录YN提示没有找到显示找到的记录 调 用 删 除 函 数询问用户是否继续删除返回主菜单YN【程序】void del(int a) /*删除模块*/int x,i,y;printf("Are you sure to delete this word?nt1).sure 2).no and back menu bb");scanf("%d",&x); /*输入要修改的单词*/if(x=1)for(i=a;i<n-1;i+) /*查找要修改的单词*/strcpy(wordi,wordi+1);save(n-1);printf("Successful!_.nNow? 1).one more 2).back menu");scanf("%d",&y);if(y=1)search();else if(x=2)menu();else if(x=2)menu();5)追加模块询问用户是否继续追加单词保存追加的单词输入用户要追加的的单词调用加载函数n=load();并计算可以记录个数n【流程图】返回主菜单YN【程序】void add() /*追加模块*/int i,x,w1,w2,w;char c20;if(n=load()=0)exit(0);elseputs("Enter the new word!n");scanf("%s",c); /*输入要追加的单词*/for(i=0;i<n;i+)if(strcmp(wordi,c)=0)break;if(i<n)w=1;doprintf("The word has already exit!n");printf("nnWhat do you want to do?nt1).enter one more 2).back menu bb");scanf("%d",&x);if(x<1|x>2)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(x<1|x>2)w2=1;elsew2=0;while(w2=1);switch(x)case 1:add();break;case 2:menu();break;6)浏览(全部)模块返回主菜单回到分类模块用户进行选项显示所有单词记录【流程图】【程序】void browse() /*浏览(全部)模块*/int i,w;if(n=load()=0) /*加载记录*/printf("nCannot open file!n");exit(0);for(i=0;i<n-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 search() /*查找模块*/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;i<n;i+) /*查找要修改的单词*/if(strcmp(wordi,vs)=0)printf("Successful!_.nThe word is:%sn",wordi);/*找到需要修改的单词*/printf("What would you like to 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 运行结果(附带抓图)主菜单输入新单词退出6总结 通过这次的C语言程序设计实习,我收获了很多。以前的学习是为了应付考试,而此次的实习是将所学的知识运用到实际当中。 该次实习中,我独立完成了这道题。这道题看似繁琐,但思路清晰,就很简单了,指导书中有关文件的题目大同小异,一通则百通。只要讲各功能模块融会贯通并加以适当调整即可,但前提是必须对指导书里的立体熟练掌握。 一年的大学生活让我对计算机理论知识有了一定的了解,但实践出真知,只有吧理论与实践相结合,才能更好地为社会服务。同时也让我了解到了自己的不足,我会继续努力,完善自我。对于学校的精心安排和指导老师的用心辅导非常感谢!专心-专注-专业

    注意事项

    本文(一种简单的英文词典排版系统——C语言(共16页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开