C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx

上传人:b****8 文档编号:29779946 上传时间:2023-07-26 格式:DOCX 页数:24 大小:125.19KB
下载 相关 举报
C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx_第1页
第1页 / 共24页
C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx_第2页
第2页 / 共24页
C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx_第3页
第3页 / 共24页
C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx_第4页
第4页 / 共24页
C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx

《C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx》由会员分享,可在线阅读,更多相关《C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx(24页珍藏版)》请在冰豆网上搜索。

C语言程序课程设计实验报告用一个字符数组保存一个英文句子.docx

C语言程序课程设计实验报告用一个字符数组保存一个英文句子

河南城建学院

《高级语言程序设计》课程设计报告

 

设计题目:

用一个字符数组保存一个英文句子

专业:

计算机科学与技术

班级:

    

设计人员:

        

指导教师:

  

 

计算机科学与工程学院

2015年06月25日

一、课程设计题目

13.用一个字符数组保存一个英文句子。

二、设计要求

1)删除该英文句子中的前导空格,后导空格,并删除句子中多余的空格(单词之间只留一个空格);

2)统计该句子中,单词出现的频率;

3)查找并替换某个单词。

三、程序介绍

1.去除字符组中间空格。

voidzhongjian(chara[])

{

inti,j,k;/*定义整形变量i,j,k。

i,j作为函数内循环的控制变量。

定义k用于字符组长度存放。

*/

k=strlen(a);/*将字符组a的长度存放于k中。

(字符组a即待处理的字符组)*/

for(i=0;i

*/

if(a[i]!

=''

i++;/*条件控制,若当前字符不为空格,跳到下一位再进行循环。

*/

elseif(a[i]=='')

if(a[i+1]=='')/*当连续出现两个空格,需要去除一个空格*/

{

k=k-1;/*字符串总长度减一。

*/

for(j=i;j

a[j]=a[j+1];/*从第一个空格开始,后续所有字符前提一位,即去除第一个空格。

*/

a[k]='\0';/*去除空格后字符组长度减一,原字符组最后一位需要变为\0。

*/

continue;/*去除空格后,继续从该位检测,直至不符合该循环条件。

*/

}

else

i++;/*若不是连续两个空格,则跳到下个字符再进行循环。

*/

printf("%s\n",a);/*输出处理后的字符组。

*/

}

2.导入及导出函数

voiddaoru()

{

FILE*p;/*定义一个指针函数,用于指向需要打开的文件。

*/

charb[30];/*定义一个字符型组,用于存放导入文件地址。

*/

system("cls");/*清屏,使界面更美观。

*/

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

printf("∷∷\n");

printf("∷请输入要打开的文件名∷\n");

printf("∷∷\n");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

scanf("%s",b);/*得到导入文件名,存放在b里*/

p=fopen(b,"r");/*将导入文件以只读方式打开*/

if(p==NULL)

{

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

printf("∷文件不存在!

请重新输入文件名!

∷\n");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

system("pause");

daoru();/*若文件打开出错,则提示打不开,然后重新运行导入函数*/

}

else

fgets(a,1000,p);/*在p所指向的文件(即导入文件)中读入一个最长为999字符的字符串,并在最后加一个’\0’字符,然后存放于字符组a中*/

}

 

voiddaochu()

{

intb;/*定义整形变量b,用于选择操作*/

FILE*p2;/*定义一个指向文件的指针变量*/

charc[30];/*定义一个字符型组,用于存放导出文件地址*/

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※请输入要保存到哪个文件?

※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

scanf("%s",c);/*得到导出文件名,存放在c里*/

p2=fopen(c,"w+");/*将导出文件以读写方式打开*/

fputs(a,p2);/*将a里的字符串存放在p2指向的地址里*/

fclose(p2);/*关闭文件,防止数据丢失*/

printf("导出成功!

文件保存在%s\n回到主界面

(1)?

退出程序

(2)?

\n",buf);

fflush(stdin);/*用于清除输入缓存防止下次用scanf输入时出现错误*/

scanf("%d",&b);

if(b==1)

zhujiemian();

elseif(b==2)

tuichu();/*根据用户输入进行跳转*/

}

四、算法流程图

1.算法图

 

2.算法说明

此程序通过函数实现了对文章的处理,,每个环节都可以用函数进行实现,使用者可以用函数实现对文章的输入、导入以及去除空格,统计,保存等各种操作的实现。

五、程序设计过程中遇到的问题及解决过程

1.函数比较长,经常出现没有定义就使用一个变量,比较容易发现及修改。

2.问题解决不彻底,例如去空格,最开始能去除,可是去除不完全,最后有重新整理想法,编写程序。

3.写的快就会出现函数字符写错,例如printf写成prntf,也很容易发现。

4.系统库里的函数理解不清晰,使用起来系统报错。

最后熟悉了就没有这样的我问题了。

5.最开始考虑问题不全面,就会出现子函数单独运行没问题,放在一起就出问题,最后合在一起时一点点改动。

六、运行截图

1.欢迎界面

 

2.主界面

 

3.输入文章

 

4.导入文章

 

5.处理选择界面

 

6.统计界面

 

7.替换界面

 

8.导出文章

 

9.退出程序

 

七、参考文献

【1】谭浩强,《C语言程序设计》(第四版)[M],清华大学出版社,2008年

八、源程序

#include

#include

#include

#include

#include

voidsan();

voider();

voidyi();/*欢迎界面子函数*/

voidzhujiemian();/*主界面函数*/

voidshuru();/*输入文章函数*/

voiddaoru();/*导入文章函数*/

voidqiandao(chara[]);/*去除前导空格函数*/

voidhoudao(chara[]);/*去除后导空格函数*/

voidzhongjian(chara[]);/*去除中间多余空格函数*/

voidtongji(chara[]);/*统计单词频率函数*/

voidtihuan(chara[]);/*替换单词函数*/

voiddaochu();/*导出函数*/

voidxuanze();/*选择及跳转函数*/

voidtuichu();/*退出界面函数*/

chara[999];/*用于文章存储字符组*/

charbuf[200];/*用于存储文章导出路径*/

intmain()

{

inth;

getcwd(buf,sizeof(buf));

system("color0a");

for(h=4;h>0;h--)

{

system("cls");

if(h==4)

{

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

printf("\t\t★★★★★★★★★★\n");

printf("\t\t★★★★★★\n");

printf("\t\t★★★★★★★\n");

printf("\t\t★欢迎★使用★\n");

printf("\t\t★★★\n");

printf("\t\t★★★★\n");

printf("\t\t★★★★\n");

printf("\t\t★★\n");

printf("\t\t加载中....\n");

Sleep(1000);

}

elseif(h==3)

san();

elseif(h==2)

er();

else

yi();

Sleep(700);

}

zhujiemian();

return0;

}

voidsan()

{

system("cls");

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

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

}

voider()

{

system("cls");

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

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\3\3\3\3\3\3\3\3\n");

}

voidyi()

{

system("cls");

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

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\n");

printf("\t\t\t\t\3\3\3\3\3\3\n");

}

voidzhujiemian()

{

intb;

system("cls");

printf("\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\3\3\3计科\3一班\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\3\3\3\3金\3航\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3张勇\3乐乐\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\3\3\3\3\n");

printf("\3\3\3\3\3\3\3\n");

printf("\3\3\3\n");

printf("\3\n");

printf("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

printf("◆1.输入文章◆\n");

printf("◆2.导入文章◆\n");

printf("◆3.退出程序◆\n");

printf("◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");

scanf("%d",&b);

switch(b)

{

case

(1):

shuru();qiandao(a);houdao(a);zhongjian(a);xuanze();break;

case

(2):

daoru();qiandao(a);houdao(a);zhongjian(a);xuanze();break;

case(3):

tuichu();

}

}

voidshuru()

{

system("cls");

printf("⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙\n");

printf("⊙⊙\n");

printf("⊙请输入文章:

⊙\n");

printf("⊙⊙\n");

printf("⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙\n");

fflush(stdin);

gets(a);

}

voidxuanze()

{

intx;

system("cls");

printf("⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙\n");

printf("⊙处理后文章⊙\n");

printf("⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙⊙\n");

printf("\n");

printf("%s\n",a);

printf("\n");

printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");

printf("〓1.返回主菜单〓\n");

printf("〓2.统计〓\n");

printf("〓3.替换〓\n");

printf("〓4.导出〓\n");

printf("〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓\n");

printf("请输入您的选择:

");

scanf("%d",&x);

switch(x)

{

case

(1):

a[0]='\0';zhujiemian();break;

case

(2):

tongji(a);break;

case(3):

tihuan(a);break;

case(4):

daochu();

}

}

voiddaoru()

{

FILE*p;

charb[30];

system("cls");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

printf("∷∷\n");

printf("∷请输入要打开的文件名∷\n");

printf("∷∷\n");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

scanf("%s",b);

p=fopen(b,"r");

if(p==NULL)

{

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

printf("∷文件不存在!

请重新输入文件名!

∷\n");

printf("∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷∷\n");

system("pause");

daoru();

}

 

else

fgets(a,1000,p);

}

voidqiandao(chara[])

{

charc;

inti,j,k=0,n;

n=strlen(a);

for(i=0;(c=a[i])!

='\0';i++)

{

if(c=='')

k=k+1;

else

break;

}

n=n-k;

for(j=0,i=k;j

{

a[j]=a[i];

}

a[n]='\0';

}

voidhoudao(chara[])

{

intj,k=0,n;

n=strlen(a);

for(j=n-1;a[j]!

='\0';j--)

{

if(a[j]=='')

k=k+1;

else

break;

}

n=n-k;

a[n]='\0';

}

voidzhongjian(chara[])

{

inti,j,k;

k=strlen(a);

for(i=0;i

if(a[i]!

='')

i++;

elseif(a[i]=='')

if(a[i+1]=='')

{

k=k-1;

for(j=i;j

a[j]=a[j+1];

a[k]='\0';

continue;

}

else

i++;

printf("%s\n",a);

}

voidtongji(chara[])

{

inti,j=0,k=0,x;

charm;

chary[30],z[30];

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※请输入需要统计的单词※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

scanf("%s",y);

for(i=0;i<(strlen(a)+1);i++)

if(a[i]!

=''&&a[i]!

=','&&a[i]!

='.'&&a[i]!

='!

'&&a[i]!

='?

'&&a[i]!

=';'&&a[i]!

='\0')

{z[j]=a[i];z[j+1]='\0';j++;}

else

{j=0;

if(strcmp(y,z)==0)

{

k=k+1;

z[0]='\0';

}

}

printf("%s这个单词出现了%d次!

\n",y,k);

system("pause");

xuanze();

}

voidtihuan(chara[])

{

inti,j=0,k=0,d,b,c;

intx;

chary[30],z[30],m[30],x1[999];

printf("请输入需要被替换的单词\n");

scanf("%s",y);

printf("\n");

printf("请输入需要替换成什么单词?

\n");

scanf("%s",m);

for(i=0;i<(strlen(a)+1);i++)

if(a[i]!

=''&&a[i]!

=','&&a[i]!

='.'&&a[i]!

='!

'&&a[i]!

='?

'&&a[i]!

=';'&&a[i]!

='\0')

{z[j]=a[i];z[j+1]='\0';j++;}

else

{j=0;

if(strcmp(y,z)==0)

{

strcpy(x1,a);

d=strlen(m)-strlen(y);

for(b=0;b<999-i;b++)

a[i+d+b]=x1[i+b];

for(c=0;c

a[i-strlen(y)+c]=m[c];

b=0;c=0;x1[0]='\0';z[0]='\0';

}

}

printf("替换后的文章为\n");

printf("%s\n",a);

system("pause");

xuanze();

}

voiddaochu()

{

intb;

FILE*p2;

charc[30];

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

printf("※请输入要保存到哪个文件?

※\n");

printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");

scanf("%s",c);

p2=fopen(c,"w+");

fputs(a,p2);

fclose(p2);

printf("导出成功!

文件保存在%s\n回到主界面

(1)?

退出程序

(2)?

\n",buf);

fflush(stdin);

scanf("%d",&b);

if(b==1)

zhujiemian();

elseif(b==2)

tuichu();

}

voidtuichu()

{

system("cls");

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

printf("\t\t       \\\\\\\|///\n");

printf("\t\t      \\\\ .-.- //\n");

printf("\t\t.      ( .@.@ )\n");

printf("\t\t+-------oOOo-----(_)-----oOOo---------+\n");

printf("\t\t|                  |\n");

printf("\t\t|  谢谢使用  |\n");

printf("\t\t|                  |\n");

printf("\t\t+---------------------Oooo--------

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

当前位置:首页 > 表格模板 > 合同协议

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

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