C语言课程设计一种简单的英文词典排版系统的实现.doc
《C语言课程设计一种简单的英文词典排版系统的实现.doc》由会员分享,可在线阅读,更多相关《C语言课程设计一种简单的英文词典排版系统的实现.doc(20页珍藏版)》请在三一办公上搜索。
1、目 录课程设计评语2目 录31课程论文题目42程序设计思路43功能模块图54数据结构设计55算法设计66程序代码137程序运行结果228编程中遇到的困难及解决方法259总结心得及良好建议2610致谢261课程论文题目 一种简单的英文词典排版系统的实现【要求】(1)能输入和现实打入的单词(2)能分辨出单词(3)对重复的单词和已经输入的单词能自动排除(4)能按AZ的顺序排版(5)能将运行结果以文本形式储存(6)具有添加新单词蹦重新排版的能力提示(1)需求分析:运行结果以文本形式储存,因而要提供文件的输入输出操作;通过查找操作检查重复单词;提供排序操作现实按AZ的顺序排版;提供插入操作添加新单词并重
2、新排版。另外通过键盘式菜单实现功能选择。(2)总体设计:整个系统被设计为单词录入模块,文件存储模块和单词浏览模块。其中单词录入模块要完成输入单词,检查是否重复,排序操作。文件存储模块把存放单词的数组中的数据写入文件。单词浏览模块完成英文词典的输出,即文件的输出操作。(3)数据结构采用指针数组或二维数组。以【Enter】键或者空格键作为单词输入结束标志,对重复的单词自动排除可选用查找方法,数据结构可采用指针和数组。2程序设计思路整个系统被设计为单词录入模块,文件存储模块和单词浏览四个模块。其中单词录入模块要完成输入单词,检查是否重复,排序操作。文件存储模块把存放单词的词组中的数据写入文件。单词浏
3、览模块完成英文词典的输出,即文件的输出操作。这四个模块是整体的设计思路,设计核心,整个程序的设计都将围绕这四个模块进行,各个模块都相互衔接,所以需要在设计好各个部分地同时,还要把握好各个部分的连接。3功能模块图(英文词典排版系统单词录入文件存储单词浏览 4数据结构设计数据结构采用指针数组或二维数组:char* dictionaryN; 或 char dictionaryN20。其中N是宏定义#define N 256 (表示单词个数)(1)单词录入模块 输入一个单词,存放在一个临时字符数组中,以空格或回车表示单词的结束(这也是默认操作),然后换行输出刚刚输入的单词。采用插入排序算法的思想把该单
4、词插入单词数组中,不同的是如果两个单词相同则不插入。(2)文件存储模块 采用fwrite或fprintf把单词数组输入到文件中。(3)单词浏览模块采用fread或fscanf把单词从文件中读出,然后输出。 5算法设计1.主函数 【流程图】 显示一系列的功能选项输入n,判断n是否是19NY根据n的值调用各功能模块函数【程序】#include stdio.h #include stdlib.h #include string.h #include ctype.h #define ROWS 256 #define COLS 32 static FILE *fp; static char aROWSC
5、OLS; 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(tttWelcome to djs program!nn);puts(tttt 1.Add
6、 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;while(w=1);switch(n)case 1:add();break;/*追加模
7、块*/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)/*以输出打开方式,
8、在此前的记录被覆盖*/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;in;i+)fprintf(fp,%s,&wordi);fclos
9、e(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;in;i+)for(j=0;j0)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();
10、用选择法排序2)排序模块【流程图】【程序】 保 存void order() /*排序模块*/int aN,i,j,t; 返回主菜单struct words;n=load();for(i=0;iN;i+)for(i=0;iN-1;i+)for(j=i+i;jaj)t=ai;ai=aj;aj=t;for(j=0;jN;j+)printf(%3d,ai);3)修改模块【流程图】显示所有记录,让用户看哪个要修改输入要修改的单词是否找到此单词记录YN显示找到的单词,调用修改函数提示没有找到询问用户是否继续修改Y返回主菜单Y【程序】void modify(int a) /*修改模块*/char c20;p
11、rintf(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)fo
12、r(i=a;in-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;i
13、f(n=load()=0)exit(0);elseputs(Enter the new word!n);scanf(%s,c); /*输入要追加的单词*/for(i=0;in;i+)if(strcmp(wordi,c)=0)break;if(in)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(x2)w1=1;elsew1=0;while(w1=1);elsew2=1;strcpy(word
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 一种 简单 英文 词典 排版系统 实现

链接地址:https://www.31ppt.com/p-4192171.html