C语言课程设计实验报告.docx
- 文档编号:9211442
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:14
- 大小:212.59KB
C语言课程设计实验报告.docx
《C语言课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《C语言课程设计实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
C语言课程设计实验报告
C语言课程设计
实验报告
姓名:
高峰
学号:
0909120614
指导教师:
郭克华
专业:
电气信息类
班级:
1206班
2013年1月4号
目录
一·课程设计的目的
二·实验内容
1·实验一
2·实验二
三·详细设计
1·实验前的分析及设计思想。
2·程序流程。
3·具体程序及解析。
4·测试结果。
四·设计总结
1·认识错误及纠正。
2·对C语言的认识。
一·课程设计的目的
1·使自己进一步理解和掌握课堂上所学的各种内容,以及它们在程序中的使用方法。
2·使自己掌握软件设计的基本内容和设计方法,并培养自己进行规范化软件设计的能力。
3·使自己掌握使用各种计算机资料和有关参考资料,提高自己进行课程设计的基本能力。
二·实验内容
1·实验一:
统计字符出现的频率
文件conf.txt中保存了很多字母,如:
akdsjfkasdfjaksfjdaksdfjaskldjfaieakjdkfkadsjfiwejfkasdjf
运行程序,计算这个文件中各个字母出现的频率,频率=出现的次数/总字母数。
将频率存储在文件rate.txt中。
格式为:
a:
3.2%
k:
3.8%
……
2·实验二:
文字替换
在文件content.txt中有一些内容。
编写程序,输入字符串1和字符串2,能将content.txt中
字符串1替换成字符串2,保存为newContent.txt。
三·详细设计
1·实验前的分析及设计思想。
1》实验一:
1·分析:
a·怎么统计字符串长度及各字符的数目。
b·怎么区分字母的大小写与非字母的区分。
C·取出文件和存放文件。
2·设计思想:
第一步:
为统计字符的数目而引用string函数;
第二步:
构造两个分别存放26个字母(一个大写、一个小写)的数组,和两个足够大的数组用于存放从文件取出来的字符(即字母)。
第三步:
读出文件的字符串,记长度以及把分开的大小写字母分别存放已构建的数组中。
第四步:
用循环统计字母出现的个数,并分别求它们的频率。
第五步:
将其运行后的结果放进指定的文件中。
2》实验二:
1·分析:
a·怎么替换原有文件中的字符串。
b·在文件中怎么找出要替换的字符串。
C·替换后怎么将其替换后的字符串放进文件中。
2·设计思想:
第一步:
打开文件,将字符串取出来。
第二步:
用循环找出要替换的字符串,将其前面的字符串放进指定的文件中。
第三步:
将替换成的字符串放进指定的文件中。
第四步:
再将要替换后的字符串放进文件中。
第五步:
关闭文件。
实验一:
引用string函数,以计算字符串长度。
程序流程图:
开始
打开文件并读出字符串。
结束
关闭文件。
建立足够大的数组存放大写字母。
建立足够大的数组存放小写字母。
源代码及解析:
#include
#include
main(){
FILE*fp1,*fp2;
inti,j=0,n1,n2,k,e=0;
floatcount1[26]={0},count2[26]={0};
floatrate[26]={0};
chara[100000],s[101],m[100000];
charb[27]="abcdefghijklmnopqrstuvwxyz";
charc[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
fp1=fopen("e:
\\conf.txt","r");
fp2=fopen("e:
\\rate.txt","w");
while(!
feof(fp1))
{
fgets(s,100,fp1);
k=strlen(s);
for(i=0;i {if(s[i]>='a'&&s[i]<='z') {a[j++]=s[i];}/*把小写字母放到a数组中*/ elseif(s[i]>='A'&&s[i]<='Z') {m[e++]=s[i];}/*把大写字母放到m数组中*/ } } printf("%s\n",a); printf("%s\n",m); n1=strlen(a); n2=strlen(m); printf("%d%d",n1,n2); for(i=0;i<(n1+n2);i++) for(j=0;j<26;j++) if(a[i]==b[j]) count1[j]++;//给字母排序并计算个数。 for(j=0;j<26;j++) { rate[j]=100*count1[j]/(n1+n2);//计算小写字母频率并放入文件中。 if(rate[j]! =0) fprintf(fp2,"%c: %0.1f%%%\n",b[j],rate[j]); } for(i=0;i<(n1+n2);i++) for(e=0;e<26;e++) if(m[i]==c[e]) count2[e]++;//printf("%s",count[1]);//给字母排序并计算个数。 for(e=0;e<26;e++) { rate[e]=100*count2[e]/(n1+n2);//计算大写字母频率并放入文件中。 if(rate[e]! =0) fprintf(fp2,"%c: %0.1f%%%\n",c[e],rate[e]); }fclose(fp1);fclose(fp2); } 测试结果: 源文件: 实验二: 程序流程图: 主要流程模块 写入新的字符串。 输入要替换的字符。 文本关闭模块。 输入被替换的字符。 文本打开模块。 源 代码及解析: #include #include main() {inti,k1,k2,k,flag,j,n; chars[100],a[50],b[50]; FILE*fp1,*fp2; fp1=fopen("c: \\content.txt","r"); fp2=fopen("c: \\newContent.txt","a"); printf("请输入要替换的字符串: "); scanf("%s",a); k1=strlen(a); printf("请输入替换后的新字符串: "); scanf("%s",b); while(fscanf(fp1,"%s",s)! =EOF)/*用fscanf读fp指向的文件,要读的内容是一个字符串%s, 把字符串读到s数组指向的空间里,如果读成功,fscanf返回成功读取的字符的个数, 如果失败,返回EOF。 */ { k=strlen(s); for(i=0;i { if(s[i]==a[0]) {n=i; flag=1; for(j=1;j if(s[++i]! =a[j]){flag=0;break;}/*寻找与a数组相同的字符串*/ if(flag==1)/*找到后要进行的循环*/ { for(i=0;i fprintf(fp2,"%c",s[i]); fprintf(fp2,"%s",b); for(i=n+k1;i fprintf(fp2,"%c",s[i]); } } } fprintf(fp2,"\n");/*换行*/ }fclose(fp1); fclose(fp2);} 测试结果: 四: 设计总结 1》认识错误及纠正: 1.首先不知道怎样打开文件,然后通过查资料才基本了解怎样打开文件。 2.不知道数组的读写函数,通过看书和请教同学算是可以用了。 3.不了解一些数组的运用,然后很多运用到数组的程序不懂编,幸好同学指导了一下,还算勉强懂运用了。 4.重返文件函数一点也不懂,然而这在编程中运用很大,所以很难下手编程,后来请教同学后,算是可以模仿一点啦。 但是很多还不是很深刻的了解,希望假期好好读书,把它理解透,并灵活运用。 2》对C语言的认识: C语言并非是“difficult”的,只要你能理清思路,掌握它的精髓,那么自学C语言是一件非常容易又其乐无穷的事。 C语言的优点很多: 1.兼备高级语言与低级语言的优点,属于一种中间语言。 2.它是一种结构化程序设计语言,非常适合结构化程序设计。 3.有较丰富的数据类型、运算符以及函数供以选用。 4.直接与内存打交道,使修改、编辑其他程序与文档变得轻松、简单。 因此,要想学好C语言,首先要有缜密的思维,对于任何程序来说,不是说看懂了就行啦,要明白一个程序的算法,这个算法的来源是什么,这样对自己在以后的程序设计中会有很多的帮助。 附注: 1.《C语言程序设计》(第二版)李丽娟,马淑萍; 2.《C程序设计》(第四版)谭浩强; 3.《C程序设计思想与方法》尹宝林; 4.《C语言课程设计案例精编》(第二版)吴启武刘勇王俊峰薛欣;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 实验 报告