最新C语言课程设计完整版.doc

上传人:laozhun 文档编号:2385414 上传时间:2023-02-17 格式:DOC 页数:20 大小:257.50KB
返回 下载 相关 举报
最新C语言课程设计完整版.doc_第1页
第1页 / 共20页
最新C语言课程设计完整版.doc_第2页
第2页 / 共20页
最新C语言课程设计完整版.doc_第3页
第3页 / 共20页
最新C语言课程设计完整版.doc_第4页
第4页 / 共20页
最新C语言课程设计完整版.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《最新C语言课程设计完整版.doc》由会员分享,可在线阅读,更多相关《最新C语言课程设计完整版.doc(20页珍藏版)》请在三一办公上搜索。

1、中南大学信息院*班计算机类课程实验报告课程名称:计算机c语言编程设计 班 级: 姓 名: 学 号: 完成日期: 目 录一第一题 1.1 需求分析 011.2概要设计 01 1.3 详细设计 021.4 测试结果 05二第二题2.1 需求分析 082.2概要设计 082.3 详细设计 082.4 测试结果 12三课程设计总结3.1课程设计过程遇到的问题 143.2课程设计的收获 143.3对C语言这门课程的认识和思考 14四 参考文献 14五.附录一(第一题带注释的源程序) 14附录二(第二题带注释的源程序) 17 一.第一题 1.1需求分析程序设计的任务:文件数据的处理两个文件:data1.t

2、xt和data2.txt,两个文件中都有很多数字,用空格隔开。data1.txt中有0 1 2 3 4 5 6 7,data2.txt中有2 3 4 5 6 7 8 9运行程序,计算这两个文件中数字的交集,并且排好序,存放在jiao.txt中;计算这两个文件中数字的并集,并且排好序,存放在bing.txt中。(1)输入的形式和输入值的范围:整型数据,一维数组;范围09;(2)输出的形式:整型数据,一维数组(3)程序所能达到的功能:运行程序计算data1.txt(其中有0 1 2 3 4 5 6 7),data2.txt(其中有2 3 4 5 6 7 8 9)这两个文件中数字的交集,并且排好序,

3、存放在jiao.txt中;计算这两个文件中数字的并集,并且排好序,存放在bing.txt中。(4)测试数据: jiao.txt中数据为2 3 4 5 6 7 ;bing.txt中数据为0 1 2 3 4 5 6 7 8 9 1.2 概要设计 (1)int i=0,j=0,k=0,m=0,count=0,temp;定义六个整型变量并给i j k m count赋初值0 int a10,b10,c20,d10;定义四个一维数组分别含有10 10 20 10个元素FILE *pf0,*pf1,*pf2,*pf3;定义四个文件指针 (2)主程序的流程:定义整型变量,数组;打开data1.txt和dat

4、a2.txt;对数据进行排序处理;将交集和并集分别存入jiao.txt和bing.txt并输出;结束程序。开始*fp1,*fp2,*fp3,*fp4;1.3 详细设计 inti=0,j=0,k=0,m=0,count=0,temp;int a10,b10,c20,d10 /*定义变量数组文件指针*/int i=0,j=0,k=0,m=0,count=0,temp;int a10,b10,c20,d10;(fp0=fopen(data1.txt,r)=NULLFILE *pf0,*pf1,*pf2,*pf3; N printf(cann open this file!n) Y Y !feof(p

5、f0) N /*打开data1.txt*/ fscanf(pf0,%d,&ai)if(pf0=fopen(data1.txt,r)=NULL) Y printf(Cannot open this file!n); i+;getchar();exit(0);while(!feof(pf0)(fp1=fopen(data2.txt,r)=NULL fscanf(pf0,%d,&ai); N i+; Yprintf(cann open this file!n) /*打开data2.txt*/if(pf1=fopen(data2.txt,r)=NULL)i=0;printf(Cannot open t

6、his file!n);getchar(); exit(0); N!feof(pf1) i=0; Yfscanf(pf1,%d,&bi)while(!feof(pf1)fscanf(pf1,%d,&bi);i+;i+;i=0ai!=-1 for(i=0;ai!=-1;i+) ck+=ai;/*把a数组中元素的值 Y ck+=ai 赋给c数组*/for(i=0;bi!=-1;i+)i+ count=0; for(j=0;aj!=-1;j+)i=0 if(aj!=bi)bi!=-1 count+; if(aj=bi) Ycount=0 dm+=bi; /*把交集赋给d*/j=0 aj!=-1 if

7、(count=8)ck+=bi; N Yaj!=bi N Count+ aj=bi Ndm+=bi j+count=8 ck+=bi Yi+i=0;/*排序*/ikfor(i=0;ik;i+)j=i;for(j=i;jk;j+)jk if(cjci) temp=ci;cjci ci=cj; cj=temp; N temp=ci ci=cj; cj=temp; Yj+i+for(i=0;im;i+)i=0for(j=i;jm;j+)imif(djdi) N Yj=itemp=di;di=dj; jmdj=temp;d jdi Ntemp=di di=dj; dj=temp; Yj+i+print

8、f(并集:n);pf2=fopen(bing.txt,w)=NULLprintf(并集:n);if(pf2=fopen(bing.txt,w)=NULL)/*打开bing.txt*/ Yprintf(Cannot open this file!n);printf(Cannot open this file!n); getchar();exit(0);i=0for(i=0;ik;i+) /*输出并集*/fprintf(pf2,%d,ci); ikprintf(%d,ci);i+printf(n); Yfprintf(pf2,%d,ci); printf(%d,ci); printf(交集:n);

9、 if(pf3=fopen(jiao.txt,w)=NULL) /*打开jiao.txt*/printf(n); printf(交集:n);printf(Cannot open this file!n);getchar();exit(0);pf3=fopen(jiao.txt,w)=NULLfor(i=0;im;i+) /*输出交集*/ fprintf(pf3,%d,di);printf(%d,di);printf(Cannot open this file!n);printf(n); Yreturn 0;i=0 for(i=0;im;i+) Ni+fprintf(pf3,%d,di);pri

10、ntf(%d,di); Yprintf(n);1.4 测试结果结束(1)当data1.txt(0 1 2 3 4 5 6 7)data2.txt(2 3 4 5 6 7 8 9) 并集为0 1 2 3 4 5 6 7 8 9 存放在bing.txt中交集为2 3 4 5 6 7 存放在jiao.txt中(2)当data1.txt(45 78 85 48 63 21 47 86) data2.txt(45 78 84 49 63 21 46 83)并集为21 45 46 47 48 49 63 78 83 84 85 86存放在jiao.txt中交集为21 45 63 78存放在bing.txt

11、中(3)当data1.txt(35 38 85 98 73 21 40 80) data2.txt(34 37 84 97 72 20 39 79)并集为20 21 34 35 37 38 39 40 72 73 79 80 84 85 97 98 存放在bing.txt中此时交集为空集二.第二题2.1需求分析程序设计任务:统计字符出现的频率文件conf.txt中保存了很多字母,如: akdsjfkasdfjaksfjdaksdfjaskldjfaieakjdkfkadsjfiwejfkasdjf运行程序,计算这个文件中各个字母出现的频率,频率=出现的次数/总字母数。将频率存储在文件rate.

12、txt中。格式为:a:3.2%k:3.8%(1)输入的形式:整型变量一维数组(2)输出的形式:实数形式 (3)程序所能达到的功能:akdsjfkasdfjaksfjdaksdfjaskldjfaieakjdkfkadsjfiwejfkasdjf运行程序,计算这个文件中各个字母出现的频率,将频率存储在文件rate.txt中。(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。2.2概要设计(1)int i=0,j=0,k=0,count=0,num26;定义四个整型变量和一个一维数组并给i j k count赋初值0 float rate;定义一个单精度实型变量char s1

13、00;定义一个字符数组FILE *pf0,*pf1;定义两个文件指针(2)主程序的流程:定义整型变量,数组,单精度实型变量,文件指针;打开conf.txt;将结果存入rate.txt并输出;结束程序。开始2.3 详细设计 *fp0,*fp1;int i=0,j=0,k=0,count=0,num26; float rate; char s100; /*定义变量数组文件指针*/i=0i26numi=0 i+ Yi=0i26 N Ynumi=0 i+ (fp0=fopen(conf.txt,r)=NULL N /*打开conf.txt*/ Yprintf(cann open this file!n

14、)i=0!feof(pf0)si+=getc(pf0)k=isi= 0printf(conf:n); printf(%s,s); printf(n)j=97j=122 Ni=0 Y /*for循环*/iksi=j N Ynumj-a+j+i+pf1=fopen(rate.txt,w)=NULL N Y printf(cann open this file!n) /*打开rate.txt*/i=0i26 Nrate=(float)numi Yprintf(%c:%.1f%n,a+i,rate/k);fprintf(pf1,%c:%.1f%n,a+i,rate/k)printf(n)i+结束2.4

15、 测试结果(1)conf.txt: akdsjfkasdfjaksfjdaksdfjaskldjfaieakjdkfkadsjfiwejfkasdjf a:0.2% b:0.0% c:0.0% d:0.1% e:0.0% f:0.2%g:0.0% h:0.0% i:0.0% j:0.2% k:0.2% l:0.0% m:0.0% n:0.0% o:0.0% p:0.0% q:0.0% r:0.0% s:0.1% t:0.0% u:0.0% v:0.0% w:0.0% x:0.0% y:0.0% z:0.0% (2)conf.txtabcdefgabca:0.2% b:0.2% c:0.2% d

16、:0.1% e:0.1% f:0.1% g:0.1% h:0.0% i:0.0% j:0.0% k:0.0% l:0.0% m:0.0% n:0.0% o:0.0% p:0.0% q:0.0% r:0.0%s:0.0% t:0.0% u:0.0% v:0.0% w:0.0% x:0.0%y:0.0% z:0.0%三课程设计总结3.1课程设计过程遇到的问题在C语言课程设计中,从开始构思到最终完成的过程中出现了很多问题,如开始的设计时没有什么思路,完全不知从哪里下手,后来渐渐地有了些思路后发现有些程序不合适,于是一改再改,等到出现了基本的雏形,在运行调试运行过程中又出现了诸多错误,有些错误当时可以

17、立即解决,但有的根本找不不出错因,经过请教同学和询问学长,终于把错误找到,此外在课程设计过程中需要用到没有学到的新知识,于是又拿起相关资料恶补,在应用相关软件时也出现了种种的问题,不知如何操作,无从下手。3.2课程设计的收获从刚开始对课程设计的一无所知到现在完成设计任务经历了诸多困难,刚开始时发现自己根本无从下手,找不到头绪,随着渐渐进入了角色,发现在课程设计过程中自己知识应用能力不知不觉的得到了提升,同时学到了平时教学中没有讲到的新知识,开阔了眼界,增强对C语言学习的热情,此外也发现了平时学习的不足,发现自己对以前所学过的知识理解得不够深刻,只是浮于表面,并没有深层次掌握,这次课程设计为以后

18、的学习方式指明了方向。3.3对C语言这门课程的认识和思考 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言, C语言这门课增加了自己对计算机语言的理解,让自己掌握了基本的程序设计语言,同时提升了学习能力,应用知识能力和创新思维能力,虽然学习C语言这门课程时间并不是很久,但通过这一阶段的学习,深深地被C语言所吸引,它是指导学习其他语言的基础,通过对C语言的学习,增强我们对信息技术快速发展时代的适应力。四 参考文献C语言程序设计 李丽娟 马淑萍主编 中国铁道出版社C程序设计 谭浩强主编 清华大学出

19、版社五附录附录一(第一题带注释的源程序)#includeint main()/*定义变量数组文件指针*/int i=0,j=0,k=0,m=0,count=0,temp;int a10,b10,c20,d10;FILE *pf0,*pf1,*pf2,*pf3; /*打开data1.txt*/if(pf0=fopen(data1.txt,r)=NULL)printf(Cannot open this file!n);getchar();exit(0);while(!feof(pf0)fscanf(pf0,%d,&ai);i+; /*打开data2.txt*/if(pf1=fopen(data2.

20、txt,r)=NULL)printf(Cannot open this file!n);getchar();exit(0);i=0;while(!feof(pf1)fscanf(pf1,%d,&bi);i+;for(i=0;ai!=-1;i+)ck+=ai; /*把a数组中元素的值赋给c数组*/for(i=0;bi!=-1;i+) count=0; for(j=0;aj!=-1;j+) if(aj!=bi) count+; if(aj=bi) dm+=bi; /*把交集赋给d*/ if(count=8)ck+=bi;/*排序*/for(i=0;ik;i+)for(j=i;jk;j+) if(c

21、jci) temp=ci; ci=cj; cj=temp; for(i=0;im;i+)for(j=i;jm;j+)if(djdi)temp=di;di=dj;dj=temp;printf(data1:n);for(i=0;ai!=-1;i+)printf(%d,ai);printf(n);printf(data2:n);for(i=0;bi!=-1;i+)printf(%d,bi);printf(n);printf(并集:n); if(pf2=fopen(bing.txt,w)=NULL) /*打开bing.txt*/printf(Cannot open this file!n);getch

22、ar();exit(0);for(i=0;ik;i+) /*输出并集*/fprintf(pf2,%d,ci);printf(%d,ci);printf(n);printf(交集:n); if(pf3=fopen(jiao.txt,w)=NULL) /*打开jiao.txt*/printf(Cannot open this file!n);getchar();exit(0);for(i=0;im;i+) /*输出交集*/ fprintf(pf3,%d,di);printf(%d,di);printf(n);return 0; 附录二(第二题带注释的源程序)#include#includeint

23、main() /*定义变量,数组,文件指针*/ int i=0,j=0,k=0,count=0,num26; float rate; char s100; FILE *pf0,*pf1; for(i=0;i26;i+) numi=0; for(i=0;i100;i+) si=0; /*打开conf.txt*/ if(pf0=fopen(conf.txt,r)=NULL) printf(Cannot open this file!n);getchar(); exit(0); i=0; while(!feof(pf0) si+=getc(pf0); /*从指定文件中读入字符赋给数组s100*/ k

24、=i; si= 0; printf(conf:n); printf(%s,s); /*输出s*/ printf(n); /*换行*/ for(j=97;j=122;j+) /*for循环*/ for(i=0;ik;i+)if(si=j)numj-a+; if(pf1=fopen(rate.txt,w)=NULL) /*打开rate.txt*/printf(Cannot open this file!n);getchar();exit(0);for(i=0;i26;i+)rate=(float)numi;printf(%c:%.1f%n,a+i,rate/k); /*输出rate*/fprintf(pf1,%c:%.1f%n,a+i,rate/k); printf(n); return 0;

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号