C语言课程设计实验报告文档格式.docx
《C语言课程设计实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计实验报告文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
![C语言课程设计实验报告文档格式.docx](https://file1.bdocx.com/fileroot1/2023-2/2/d7e40e5f-7d87-411f-a491-e4f64e42c713/d7e40e5f-7d87-411f-a491-e4f64e42c7131.gif)
详细设计
实验前的分析及设计思想。
2·
程序流程。
3·
具体程序及解析。
4·
测试结果。
四·
设计总结
1·
认识错误及纠正。
对C语言的认识。
课程设计的目的
使自己进一步理解和掌握课堂上所学的各种内容,以及它们在程序中的使用方法。
使自己掌握软件设计的基本内容和设计方法,并培养自己进行规范化软件设计的能力。
使自己掌握使用各种计算机资料和有关参考资料,提高自己进行课程设计的基本能力。
实验内容
实验一:
统计字符出现的频率
文件conf.txt中保存了很多字母,如:
akdsjfkasdfjaksfjdaksdfjaskldjfaieakjdkfkadsjfiwejfkasdjf
运行程序,计算这个文件中各个字母出现的频率,频率=出现的次数/总字母数。
将频率存储在文件rate.txt中。
格式为:
a:
3.2%
k:
3.8%
……
2·
实验二:
文字替换
在文件content.txt中有一些内容。
编写程序,输入字符串1和字符串2,能将content.txt中
字符串1替换成字符串2,保存为newContent.txt。
详细设计
1》实验一:
分析:
a·
怎么统计字符串长度及各字符的数目。
b·
怎么区分字母的大小写与非字母的区分。
C·
取出文件和存放文件。
2·
设计思想:
第一步:
为统计字符的数目而引用string函数;
第二步:
构造两个分别存放26个字母(一个大写、一个小写)的数组,和两个足够大的数组用于存放从文件取出来的字符(即字母)。
第三步:
读出文件的字符串,记长度以及把分开的大小写字母分别存放已构建的数组中。
第四步:
用循环统计字母出现的个数,并分别求它们的频率。
第五步:
将其运行后的结果放进指定的文件中。
2》实验二:
怎么替换原有文件中的字符串。
在文件中怎么找出要替换的字符串。
替换后怎么将其替换后的字符串放进文件中。
打开文件,将字符串取出来。
用循环找出要替换的字符串,将其前面的字符串放进指定的文件中。
将替换成的字符串放进指定的文件中。
再将要替换后的字符串放进文件中。
第五步:
关闭文件。
实验一:
引用string函数,以计算字符串长度。
程序流程图:
开始
打开文件并读出字符串。
结束
建立足够大的数组存放大写字母。
建立足够大的数组存放小写字母。
源代码及解析:
#include<
stdio.h>
string.h>
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("
\\rate.txt"
w"
while(!
feof(fp1))
{
fgets(s,100,fp1);
k=strlen(s);
for(i=0;
i<
k;
i++)
{if(s[i]>
='
a'
&
s[i]<
z'
)
{a[j++]=s[i];
}/*把小写字母放到a数组中*/
elseif(s[i]>
A'
Z'
{m[e++]=s[i];
}/*把大写字母放到m数组中*/
}
}
printf("
%s\n"
a);
m);
n1=strlen(a);
n2=strlen(m);
printf("
%d%d"
n1,n2);
(n1+n2);
for(j=0;
j<
26;
j++)
if(a[i]==b[j])
count1[j]++;
//给字母排序并计算个数。
rate[j]=100*count1[j]/(n1+n2);
//计算小写字母频率并放入文件中。
if(rate[j]!
=0)
fprintf(fp2,"
%c:
%0.1f%%%\n"
b[j],rate[j]);
for(e=0;
e<
e++)
if(m[i]==c[e])
count2[e]++;
//printf("
%s"
count[1]);
rate[e]=100*count2[e]/(n1+n2);
//计算大写字母频率并放入文件中。
if(rate[e]!
c[e],rate[e]);
}fclose(fp1);
fclose(fp2);
测试结果:
源文件:
实验二:
主要流程模块
写入新的字符串。
输入要替换的字符。
文本关闭模块。
输入被替换的字符。
文本打开模块。
源
代码及解析:
main()
{inti,k1,k2,k,flag,j,n;
chars[100],a[50],b[50];
FILE*fp1,*fp2;
c:
\\content.txt"
\\newContent.txt"
a"
请输入要替换的字符串:
"
scanf("
k1=strlen(a);
请输入替换后的新字符串:
b);
while(fscanf(fp1,"
s)!
=EOF)/*用fscanf读fp指向的文件,要读的内容是一个字符串%s,
把字符串读到s数组指向的空间里,如果读成功,fscanf返回成功读取的字符的个数,
如果失败,返回EOF。
*/
if(s[i]==a[0])
{n=i;
flag=1;
for(j=1;
k1;
if(s[++i]!
=a[j]){flag=0;
break;
}/*寻找与a数组相同的字符串*/
if(flag==1)/*找到后要进行的循环*/
n;
%c"
s[i]);
for(i=n+k1;
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语言课程设计案例精编》(第二版)吴启武刘勇王俊峰薛欣;