关键词不能为空

当前您在: 主页 > 英语 >

C语言课程设计报告_一种简单的英文词典排版系统的实现

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-02 09:13
tags:

-

2021年2月2日发(作者:pandaria)


下载可编辑



















.


专业< /p>


.


整理


.














本科生课程论文封面







C


语言课程设计






本科生



本科生学号



本科生专业


< /p>







日期


:







下载可编辑




课程设计评语



对课程论文的评语


:



平时成绩:







绩:




课程论文成绩:



评阅人签名:



注:

< br>1


、无评阅人签名成绩无效;



2


、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;


< p>
.


专业


.


整理

< p>
.


下载可编辑



3


、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。







课程设计评语



.......... .................................................. ......


2






............... .................................................. ........


3


1


.课程论文题目


< br>............................................... ................


4


2


.程序设计思路


< br>............................................... ................


4


3


.功能模块图


................................................ .................


5


4


.数据结构设计


< br>............................................... ................


5


5


.算法设计



................................................. ..................


5


6


.程序代码



................................................. .................


16


7


.程序运行结果


< br>............................................... ...............


21


8


.编程中遇到的困难及解决方法


< /p>


........................................ ........


24


9


.总结心得及良好建议


< p>
............................................ ............


24


10


.致谢



.................................................. ...................


24

























.


专业< /p>


.


整理


.


下载可编辑






1


.课程论文题目



一种简单的英文词典排版系统的实现:



【要求】




1


)能输入和现实打入的单词;



(< /p>


2


)能分辨出单词;


< br>(


3


)对重复的单词和已经输入的单词能自动排除;




4


)能按


A~Z


的顺序排版;



5


)能将运行结果以文本形式储存;



6


)具有添加新单词重新排版 的能力。




[


提示


]



1


)需求分析:运行结果以文本形式储存,因而要提供文件的输 入输出操作;通


过查找操作检查重复单词;提供排序操作现实按


A~Z


的顺序排版;提供插入操作


添加新单词并重新排版。另外 通过键盘式菜单实现功能选择。




2



总体设计:


整个系统被设计为单词录 入模块,


文件存储模块和单词浏览模块。


其中单词录入模块要完 成输入单词,检查是否重复,排序操作。文件存储模块把


存放单词的数组中的数据写入文 件。单词浏览模块完成英文词典的输出,即文件


的输出操作。




3


)数据结构采用指针数组或二维数 组。以【


Enter


】键或者空格键作为单词输


入结束标志,对重复的单词自动排除可选用查找方法,数据结构可采用指针和数


组。



2


.程序设计思路


< br>在英文词典排版当中,人工统计的速度很慢,且容易出现差错。本英文词典


排版系 统的自动化加速了排版工作,提高工作效率本程序主要采用对零散的单词


进行自动读取, 然后按单词首字母顺序讲单词保存到文档,这样的结构化非常便


于程序后续的排版工作。 排版具体过程涉及到自动排除重复单词与添加新单词并


重新排版等问题,将于正问中详细 介绍。本程序实现了所有设计要求。



整个系统被设计为单词录 入模块、文件存储模块和单词浏览模块。其中单词


录入模块要完成输入单词、检查是否重 复、排序操作。文件存储模块把存放单词


的数组中的数据写入文件。单词浏览模块完成英 文词典的输出,即文件的输出操


作。



.


专业


.


整理


.


下载可编辑




3


.功能模块图



一种简单的英文词典排版系统








单词录入



单词浏览



单词排序



4


.数据结构设计


< br>数

















char*


dictionary[N];



ch ar


dictionary[N][20]


。其中

< p>
N


是宏定义


#define N 256


(表示单词个数)





1


)单词录入模块



输入一个单词,存放在一个临时字符数组中,以空格或回车表示单词的结束


(这也是默认操作)


,然后换行输出刚刚输入的单词。


采用插入排序算法的思想把


该单词插入单词数组中,不同的是如果两个单词相同则不插 入。




2


) 文件存储模块




采用


fwrite



fprintf


把单词数组输入到文件中。




3< /p>


)单词浏览模块



采用

< br>fread



fscanf


把单 词从文件中读出,然后输出。




5


.算法设计




1


)主函数



【流程图】









.


专业


.< /p>


整理


.


显示一系列的功能选项



输入


n


,判断


n


是否是


1



9


N


根据


n


的值调用各功能模块函数

< p>


下载可编辑




Y





【程序】




#include


#include


#include


#include


#define ROWS 256


#define COLS 32


static FILE *fp;


static char a[ROWS][COLS];


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

< br>全局变量


*****//




char


word[N][20];


void menu()//***


主界面


***//


{



int n,w;//*


变量


n


保存选择菜单数字,

< br>w


判断输入的数字是否在功能菜单对


应数字围

< p>
*//



do



{




puts(




puts(




puts(




puts(


puts(




puts(




puts(




puts(




puts(




printf(




scanf(




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 *pt[ROWS];



char ch, len;



char input;



if(( fp=fopen(


以输出打开方式,在此前的记


录被覆盖


*//



{




printf(




return NULL;



}



for(i=0;!feof(fp);i++)




fscanf(fp,



fclose(fp);



return i+1;//*


返回记录个数


*//


}


.


专业


.


整理


.


下载可编辑



void save(int n)//*


保存函数,保存


n


个记录


*//


{



FILE *fp;



int i;



if((fp=fopen(


以输出 打开方式,在此前的记


录被覆盖


*//



{




printf(




exit(0);



}



for(i=0;i




fprintf(fp,



fclose(fp);


}





3


)各功 能模块设计



1


)分类模块



【程序】



void sort()


{



int i,j,k;



char c[20];



if((n=load())==0)



{




printf(




exit(0);



}



for(i=0;i




for(j=0;j




if(strcmp(word[j],word[j+1])>0)




{





strcmp(c,word[j]);





strcmp(word[j],word[j+1]);





strcmp(word[j+1],c);




}




save(n);




printf(




printf(



< br>scanf(


.


专业


.


整理


.


下载可编辑





if(k==1)





browse();




else if(k==2)





menu();


}



2


)排序模块



【流程图】









用选择法排序
































返回主菜单






【程序】



void order() //*


排序模块


*//


{



int a[N],i,j,t;



struct words;



n=load();



for(i=0;i




for(i=0;i





for(j=i+i;j






if(a[i]>a[j])






{







t=a[i];







a[i]=a[j];







a[j]=t;






}






for(j=0;j







printf(


}






.


专业


.


整理


.


下载可编辑






3


)修改模块



【流程图】





显示所有记录,让用户看哪个要修改






输入要修改的单词






是否找到此单词记录





Y




显示找到的单词,


调用



修改函数



Y




Y



询问用户是




返回主菜单



否继续修改








【程序】



void modify(int a) //*


修改模块


*//


{



char c[20];



printf(



scanf(



strcpy(word[a],c);



save(n);


}








.


专业


.< /p>


整理


.


N



提示没有找到




下载可编辑






4


)删除模块



【流程图】




显示所有记录,


让用户看哪个需要删除






输入需要删除的单词






是否找到此单词记录





Y



N
















提示没有找到


















Y



N




用< /p>






返回主菜单




续删除





【程序】



void del(int a) //*


删除模块


*//


{



int x,i,y;



printf(


you


sure


to


delete


this


word?nt1).sure 2).no


and


back


menu [ ]bb



scanf(


输入要修改的单词


*//



if(x==1)



{




for(i=a;i


查找要修改的单词


*//





strcpy(word[i],word[i+1]);




save(n-1);




printf(




scanf(




if(y==1)





search();




else if(x==2)





menu();


.


专业


.


整理


.


下载可编辑




}



else if(x==2)



{




menu();



}


}



5


)追加模块



【流程图】




调用加载函数


n=load()


;并计算可

< br>


以记录个数


n





输入用户要追加的的单词






保存追加的单词






Y


询< /p>









续追加单词






N



返回主菜单





【程序】



void add() //*


追加模块


*//


{



int i,x,w1,w2,w;



char c[20];



if((n=load())==0)




exit(0);



else



{




puts(




scanf(


输入要追加的单词


*//




for(i=0;i




{





if(strcmp(word[i],c)==0)


.


专业


.


整理


.

-


-


-


-


-


-


-


-



本文更新与2021-02-02 09:13,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/598516.html

C语言课程设计报告_一种简单的英文词典排版系统的实现的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文
C语言课程设计报告_一种简单的英文词典排版系统的实现随机文章