文字查找 c语言 课程设计 报告.docx

上传人:b****3 文档编号:4897404 上传时间:2022-12-11 格式:DOCX 页数:11 大小:30.61KB
下载 相关 举报
文字查找 c语言 课程设计 报告.docx_第1页
第1页 / 共11页
文字查找 c语言 课程设计 报告.docx_第2页
第2页 / 共11页
文字查找 c语言 课程设计 报告.docx_第3页
第3页 / 共11页
文字查找 c语言 课程设计 报告.docx_第4页
第4页 / 共11页
文字查找 c语言 课程设计 报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

文字查找 c语言 课程设计 报告.docx

《文字查找 c语言 课程设计 报告.docx》由会员分享,可在线阅读,更多相关《文字查找 c语言 课程设计 报告.docx(11页珍藏版)》请在冰豆网上搜索。

文字查找 c语言 课程设计 报告.docx

文字查找c语言课程设计报告

沈阳航空工业学院

课程设计

学号200604021108

班级6402104

姓名田帅

指导教师刘成

2007年9月16日

沈阳航空工业学院

课程设计任务书

院系:

电子工程系专业:

电子信息工程班级:

6402104

学号:

200604021108题目:

文字查找

一、课程设计时间

2007年9月10日至2007年9月14日,共计1周,20学时。

二、课程设计内容

用C语言编写软件完成以下任务:

在文本文件中查找用户所指定的英文单词,并确定此单词在文件中出现的次数。

用户应该先产生文本文件(文件名为myfile.txt),然后才可以进行单词查找。

三、课程设计要求

1.程序质量:

✧贯彻结构化的程序设计思想。

✧用户界面友好,功能明确,操作方便。

✧用户界面中的菜单至少应包括“生成文件”、“输入单词并查找”、“显示文件全部内容”、“退出”4项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2.课程设计说明书:

课程结束后,上交课程设计说明书和源程序。

课程设计说明书的格式和内容参见提供的模板。

四、指导教师和学生签字

指导教师:

________学生签名:

________

五、成绩:

六、教师评语:

 

目录

一、需求分析1

二、程序流程图2

三、核心技术的实现说明及相应程序段6

四、个人总结12

五、参考文献12

六、源程序12

 

一、需求分析

经过对程序设计题目的分析可知,整个程序的设计实现大致分为四个步骤,其中每一步骤对应一个函数,其的功能分别是:

生成源文件(creat),输入文件内容(input),输入单词并查找(search),显示原文(show)。

1、生成源文件其功能是在D盘中生成一个名为myfile.txt的文本文件;

2、输入文件功能是把原文输入到文本文件中;

3、输入单词并查找输入一个单词,并在已生成的文本文件中查找,确定单词出现的次数后输出;

4、显示原文把文本文件中的内容输出到屏幕上;

除上面的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。

每次输入的文件都保存在d:

\\myfile.txt中,并且覆盖上一次输入的内容。

二、程序流程图

1、程序总体结构图

图1程序总体结构图

2、具体功能框图

(1)生成文件函数creat

图2生成文件函数

(2)输入文件内容函数input

图3输入文件内容函数

(3)单词查找函数search

图4单词查找函数

 

(4)显示全文函数show

图5显示全文函数

三、核心技术的实现说明及相应程序段

本程序主要由五个自定义函数和一个主函数组成,其中主函数调用菜单函数显示菜单,用switch结构的调用其他函数来实现要求的所有功能。

在这些函数当中,输入文件内容函数、单词查找函数和显示全文函数是程序中较为核心的部分,下面分别对其进行说明。

1、输入文件内容函数

输入文件函数,用只写的方式打开已经生成的d盘myfile.txt文件,根据提示,从键盘输入原文件的内容,以“#”结束。

说明:

每次输入的文本内容都回覆盖上一次输入的内容。

因此,myfile.txt文件中的内容为最后一次输入的文件内容为准。

具体程序如下:

voidinput()

{

FILE*fp;/*定义文件指针*/

charch,myfile;

if((fp=fopen("d:

\\myfile.txt","w"))==NULL)/*打开文件*/

{printf("cannotopenfile\n");/*错误提示*/

exit(0);}

printf("Pleaseinputthefile,endwith'#'\n");/*输入提示:

*/

ch=getchar();

ch=getchar();/*录入内容*/

while(ch!

='#')

{fputc(ch,fp);putchar(ch);/*循环输入到myfile.txt中*/

ch=getchar();

}

printf("\n");

fclose(fp);/*关闭文件*/

}

2、单词查找函数

该函数的核心内容是查找用户所指定的英文单词,并确定此单词在文件中出现的次数。

首先从键盘输入一个字符串,存在字符数组str中。

打开已经生成的d:

\\myfile.txt文件,用循环一次,读取一个字符的方式把文本文件中的字符一个一个的读入字符变量c中,并判断字符的ASCII码来确定字符是否为字母,是就循环输入到字符串b[j]中,直至c不为字母时,把字符串结束标志’\0’赋值给b[j],然后,用字符串比较函数strcmp()把字符串b和str比较,如果相同,scount做自增运算;如果不相同,则继续循环,直至遇到文件的结束标志后跳出循环,并输出scount的值,scount的值就是输入的单词str在myfile.txt中出现的次数。

具体程序如下:

voidsearch()

{

FILE*fp;

intflag,j=0,scount=0;/*定义变量*/

charb[30];/*定义字符数组用于存放文件中的单词*/

charc;

charstr[81];

printf("Pleaseentertheword:

");

scanf("%s",str);/*输入所需查找的单词*/

if((fp=fopen("d:

\\myfile.txt","rb"))==NULL)/*打开文件*/

{printf("Cannotopenthwfile!

");

return;

}

while((c=fgetc(fp))!

=EOF)/*循环读入文件中的字符*/

{

if((c>=65&&c<=90)||(c>=97&&c<=122))/*判断字符是否为字母的语句*/

{flag=0;

if(flag==0)

{

b[j]=c;/*把字母赋值到b中*/

j++;continue;}}

else

b[j]='\0';/*把字符串结束标志赋值给b[j]*/

if(strcmp(str,b)==0)/*字符串b和str进行比较*/

scount++;/*scount自增运算*/

j=0;/*j归零,用于下一次循环*/

flag=1;

}

printf("thereare%dwordsinthefile.",scount);/*输出scount的值*/

printf("\n");

}

3、显示全文内容函数

对于显示全文内容函数,采用while循环,把文件中的字符一个一个的依次输出。

具体程序段如下:

voidshow()

{

FILE*fp;

charch;

if((fp=fopen("d:

\\myfile.txt","r"))==NULL)/*打开文件*/

{printf("Cannotopenthefile!

\n");

exit(0);

}printf("***********************************************\n");

while((ch=fgetc(fp))!

=EOF)/*循环输出文件内容*/

printf("%c",ch);

printf("\n***********************************************\n");

fclose(fp);/*关闭文件*/

}

四、个人总结

在这一周的课程设计过程中,我了解了如何把我们在课堂上所学习的知识运用到实际中去。

虽然也遇到了不少的困难,在老师和同学的帮助下解决了。

在这次课程设计的过程中,我也学习到了很多新的知识。

对于这次的课程设计的任务,大致完成了,也基本都实现了任务书中的要求。

五、参考文献

1谭浩强.C程序设计.北京:

清华大学出版社,2005

2刘成等.C语言程序设计实验指导与习题集.北京:

中国铁道出版社,2006

六、源程序

#include

#include

#include

voidmenu()/*菜单函数*/

{printf("**************************search**************************");

printf("\n1creatthefile");

printf("\n2inputthefile");

printf("\n3inputthewordandsearch");

printf("\n4showall");

printf("\n5exit");

}

intcreat()/*生成文件函数*/

{

FILE*fp;

charch;

if((fp=fopen("d:

\\myfile.txt","w"))==NULL)/*d盘建立myfile.txt的文本文档*/

{

printf("Cannotopenthefile!

\n");/*错误提示*/

exit(0);

}

printf("\n");

while((ch=getchar())!

='\n')

fputc(ch,fp);

}

voidinput()/*输入文件内容函数*/

{

FILE*fp;

charch,myfile;

if((fp=fopen("d:

\\myfile.txt","w"))==NULL)/*打开文件*/

{printf("cannotopenfile\n");

exit(0);}

printf("Pleaseinputthefile,endwith'#'\n");/*输入提示语句,输入内容以”#”结束*/

ch=getchar();

ch=getchar();

while(ch!

='#')

{fputc(ch,fp);putchar(ch);/*循环录入*/

ch=getchar();

}

printf("\n");

fclose(fp);/*关闭文件*/

}

voidsearch()/*单词查找函数*/

{

FILE*fp;

intflag,j=0,scount=0;/*定义变量*/

charb[30];/*定义字符数组用于存放文件中的单词*/

charc;

charstr[81];

printf("Pleaseentertheword:

");

scanf("%s",str);/*输入所需查找的单词*/

if((fp=fopen("d:

\\myfile.txt","rb"))==NULL)/*打开文件*/

{printf("Cannotopenthwfile!

");

return;

}

while((c=fgetc(fp))!

=EOF)/*循环读入文件中的字符*/

{

if((c>=65&&c<=90)||(c>=97&&c<=122))/*判断字符是否为字母的语句*/

{flag=0;

if(flag==0)

{

b[j]=c;/*把字母赋值到b中*/

j++;continue;}}

else

b[j]='\0';/*把字符串结束标志赋值给b[j]*/

if(strcmp(str,b)==0)/*字符串b和str进行比较*/

scount++;/*scount自增运算*/

j=0;/*j归零,用于下一次循环*/

flag=1;

}

printf("thereare%dwordsinthefile.",scount);/*输出scount的值*/

printf("\n");

}

voidshow()

{

FILE*fp;

charch;

if((fp=fopen("d:

\\myfile.txt","r"))==NULL)/*打开文件*/

{printf("Cannotopenthefile!

\n");

exit(0);

}printf("***********************************************\n");

while((ch=fgetc(fp))!

=EOF)/*循环输出文件内容*/

printf("%c",ch);

printf("\n***********************************************\n");

fclose(fp);/*关闭文件*/

}

voidmain()

{

intn;

while

(1)/*无限循环菜单*/

{

menu();/*调用菜单函数*/

printf("\npleasechoosethenumber,pressenter:

");

scanf("%d",&n);

switch(n)

{case1:

creat();break;/*调用文件生成函数*/

case2:

input();break;/*调用输入文件内容函数*/

case3:

search();break;/*调用单词查找函数*/

case4:

show();break;/*调用显示全文内容函数*/

case5:

exit(0);/*退出,跳出循环*/

default:

printf("error!

\n");

}

}

}

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1