关键词不能为空

当前您在: 主页 > 英语 >

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语言课程设计报告_一种简单的英文词典排版系统的实现的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

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