一种简单的英文词典排版系统C语言文档格式.doc

上传人:wj 文档编号:1507998 上传时间:2023-04-30 格式:DOC 页数:16 大小:102KB
下载 相关 举报
一种简单的英文词典排版系统C语言文档格式.doc_第1页
第1页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第2页
第2页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第3页
第3页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第4页
第4页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第5页
第5页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第6页
第6页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第7页
第7页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第8页
第8页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第9页
第9页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第10页
第10页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第11页
第11页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第12页
第12页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第13页
第13页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第14页
第14页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第15页
第15页 / 共16页
一种简单的英文词典排版系统C语言文档格式.doc_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

一种简单的英文词典排版系统C语言文档格式.doc

《一种简单的英文词典排版系统C语言文档格式.doc》由会员分享,可在线阅读,更多相关《一种简单的英文词典排版系统C语言文档格式.doc(16页珍藏版)》请在冰点文库上搜索。

一种简单的英文词典排版系统C语言文档格式.doc

”(不包括引号),那么将视为选项a

intb(intcount);

---完成选项b的作用--接收新单词;

voidc(char*pt[],intcount);

---完成选项c的作用--通过指针对数组排序,实际数组元素位置未改变;

intcheck(chararr[],intcount);

---对输入的单词进行分辨,若输入nihao,将视为单词ni,并且提示并剔除重复的单词;

voidstorage(char*pt[],intcount);

---在程序结束之前重新排序存储数组中的单词到文件中。

1题目要求

1.能输入和显示打入的单词

2.能分辨出单词

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

4.能按A—Z的顺序排版

5.能将运行结果以文本形式存储

6.具有添加新单词并重新排版的能力

7.数据结构采用指针数组或二维数组。

以回车键或者空格键作为单词输入结束标志,对重复的单词自动排除可选第一张提到的查找方法,数据结构可采用指针和数组

2需求分析

运行结果以文本形式存储,因而要提供文件的输入输出操作;

通过查找操作检查重复单词;

提供排序操作系统实现按A—Z的顺序排版;

提供插入操作添加新单词并重新排版。

另外通过键盘式菜单实现功能选择。

3总体设计

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

其中单词录入模块要完成输入单词、检查是否重复、排序操作。

文件存储模块把存放单词的数组中的数据写入文件。

单词浏览模块完成英文词典的输出,即文件的输出操作。

系统功能模块图:

单词浏览

删除单词

添加单词

单词存储

单词排序

单词录入

4详细设计

1.主函数

【流程图】

显示一系列的功能选项

输入n,判断n是否是1—9

根据n的值调用各功能模块函数

N

Y

【程序】

stdio.h"

#defineCOLS32

int 

n;

 

//****n全局变量*****// 

char 

word[N][20];

voidmenu()//***主界面***//

{

intn,w;

//*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*//

do

{

puts("

\t\t********************MENU********************\n\n"

);

\t\t\tWelcometodj'

sprogram!

\n\n"

\t\t\t\t1.Addnewword."

\t\t\t\t2.Browseallthewords."

puts("

\t\t\t\t3.Searchtheword."

\t\t\t\t4.Sortthewords."

\t\t\t\t5.OrderbyA-z."

\t\t\t\t6.Exit!

"

\n\n\t\t****************************************\n"

printf("

Choiceyournumber(1-6):

[]\b\b"

scanf("

%d"

&

n);

if(n<

1||n>

6)//*对选择的数字作判断*//

{

w=1;

getchar();

}

elsew=0;

}while(w==1);

switch(n)

case1:

add();

break;

//*追加模块*//

case2:

browse();

//*浏览模块*//

case3:

search();

//*查找模块*//

case4:

sort();

//*分类模块*//

case5:

order();

//*排序模块*//

case6:

exit(0);

//*退出*//

}

}

voidmain()//********主函数*********//

menu();

2.公共函数

intload()//*加载函数*//

inti,count;

intstart;

char*pt[ROWS];

charch,len;

charinput;

if((fp=fopen("

words.txt"

"

a+"

))==NULL)//*以输出打开方式,在此前的记录被覆盖*//

\nCannotopenfile!

\n"

returnNULL;

for(i=0;

!

feof(fp);

i++)

fscanf(fp,"

%s"

word[i]);

fclose(fp);

returni+1;

//*返回记录个数*//

voidsave(intn)//*保存函数,保存n个记录*//

FILE*fp;

inti;

exit(0);

i<

fprintf(fp,"

3.各功能模块设计

1)分类模块

voidsort()

inti,j,k;

charc[20];

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

for(j=0;

j<

n-i-1;

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);

Successful!

^_^.\n"

\nNow?

1.browseall2.back"

k);

if(k==1)

browse();

elseif(k==2)

menu();

2)排序模块

用选择法排序

保存

返回主菜单

voidorder()//*排序模块*//

inta[N],i,j,t;

structwords;

n=load();

N;

for(i=0;

N-1;

for(j=i+i;

j++)

if(a[i]>

a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

for(j=0;

printf("

%3d"

a[i]);

3)修改模块

输入要修改的单词

是否找到此单词记录

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

Y N

显示找到的单词,调用修改函数

提示没有找到

询问用户是

否继续修改

Y

返回主菜单

Y

voidmodify(inta)//*修改模块*//

printf("

Enterthenewword:

scanf("

c);

strcpy(word[a],c);

save(n);

4)删除模块

显示所有记录,让用户看哪个需要删除

输入需要删除的单词

显示找到的记录调用删除函数

询问用户是否继续删除

voiddel(inta)//*删除模块*//

intx,i,y;

Areyousuretodeletethisword?

\n\t1).sure2).noandbackmenu[]\b\b"

x);

//*输入要修改的单词*//

if(x==1)

for(i=a;

n-1;

i++)//*查找要修改的单词*//

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

save(n-1);

^_^.\nNow?

1).onemore2).backmenu"

y);

if(y==1)

search();

elseif(x==2)

elseif(x==2)

menu();

5)追加模块

询问用户是否继续追加单词

保存追加的单词

输入用户要追加的的单词

调用加载函数n=load();

并计算可以记录个数n

voidadd()//*追加模块*//

inti,x,w1,w2,w;

else

Enterthenewword!

//*输入要追加的单词*//

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

break;

if(i<

n)

do

{

printf("

Thewordhasalreadyexit!

\n\nWhatdoyouwanttodo?

\n\t1).enteronemore2).backmenu[]\b\b"

scanf("

if(x<

1||x>

2)

w1=1;

else

w1=0;

}while(w1==1);

else

w2=1;

strcpy(word[i],c);

save(n+1);

printf("

^_^.Nowchoosewhatyouwilldonext?

\n\t1).addanother2).backmenu[]\b\b"

w2=1;

w2=0;

}while(w2==1);

switch(x)

case1:

case2:

menu();

6)浏览(全部)模块

回到分类模块

用户进行选项

显示所有单词记录

voidbrowse()//*浏览(全部)模块*//

inti,w;

if((n=load())==0)//*加载记录*//

%s/n"

word[i]);

puts("

^_^.Now1.backmenu2.sort"

w);

if(w==1)

elseif(w==2)

sort();

7)查找模块

是否找到该单词记录

输入需要查找的单词

让用户选择1).查找另一个2).返回

询问用户是否继续查找

显示找到的记录

Y N

voidsearch()//*查找模块*//

inti,x,y;

charvs[20];

if((n=load())==0)//*加载记录*//

printf("

exit(0);

Enterthewordwhatyouwanttosearch!

scanf("

vs);

//*输入要查找的单词*//

for(i=0;

i++)//*查找要修改的单词*//

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

^_^.\nThewordis:

%s\n"

//*找到需要修改的单词*//

Whatwouldyouliketodowiththeword?

\n\t1).modify2).delrte3).nothing[]\b\b"

if(y==1)

modify(i);

else

{del(i);

if(i==n)

HOHO!

Sorry........Notfound~~~"

Now.....1).onemore2).back3).exit"

switch(x)

{case1:

case2:

case3:

5运行结果(附带抓图)

主菜单

输入新单词

退出

6总结

通过这次的C语言程序设计实习,我收获了很多。

以前的学习是为了应付考试,而此次的实习是将所学的知识运用到实际当中。

该次实习中,我独立完成了这道题。

这道题看似繁琐,但思路清晰,就很简单了,指导书中有关文件的题目大同小异,一通则百通。

只要讲各功能模块融会贯通并加以适当调整即可,但前提是必须对指导书里的立体熟练掌握。

一年的大学生活让我对计算机理论知识有了一定的了解,但实践出真知,只有吧理论与实践相结合,才能更好地为社会服务。

同时也让我了解到了自己的不足,我会继续努力,完善自我。

对于学校的精心安排和指导老师的用心辅导非常感谢!

16

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2