版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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);getchar();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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿基米德原理
- 掘进工安全生产岗位责任制
- 岗位职责班组管理规章制度
- 客户答谢会讲义
- 人教部编版四年级语文上册第8课《蝴蝶的家》精美课件
- 【寒假阅读提升】四年级下册语文试题-现代文阅读(一)-人教部编版(含答案解析)
- 2024年成都客运资格证技巧
- 2024年银川客运从业资格证考题
- 2024年新疆客运考试模拟题及答案详解解析
- 2024年武汉道路旅客运输资格证从业考试
- 建筑工程技术专业《装配式建筑》课程标准
- 好的六堡茶知识讲座
- 火车站物流园区建设项目物有所值评价报告
- 《养老护理员》-课件为老年人布置睡眠环境
- 职业生涯规划医学生
- 医学课件指骨骨折
- 拜占庭历史与文化智慧树知到期末考试答案2024年
- 反应釜验证方案样本
- S2-旋挖桩机安装拆卸专项方案
- 二年级下册语文课件-作文指导:13-通知(23张PPT) 部编版
- 普通高中物理课程标准解读
评论
0/150
提交评论