您的位置:首页 > 其它

第2周项目2-程序的多文件组织

2016-09-08 11:00 246 查看
问题:,烟台大学计算机与控制工程学院*Allrightsreserved.*文件名称:xmu2.cbp*作   者:王婧
*完成日期:2016年9月8日
*版本号:v1.0
*
*问题描述:学习数据结构,目标就是要编制出有相当规模的程序的。将所有
的代码放在一个文件中的做法,不能适用现阶段的需求了。通过
这个项目,确认有能力用多文件组织程序。方便以后各章,我们
就某一数据结构定义算法库,并能引用算法库进行实践。
*输入描述:无
*程序输出:1.学生的学号、姓名及个人的平均分 。  
<span><spanclass="comment"> 2.各课程的平均分。</span> </span>*/
(1)头文件head.h
#include<stdio.h>#defineMaxStud50//学生人数最多为50#defineMaxCour300//学生成绩记录数最多为50*6structstud1{intno;//学号charname[10];//姓名intbno;//班号};structstud2{intno;//学号intcno;//课程编号intdeg;//分数};doublestudavg(structstud2s2[],intm,inti);doublecouravg(structstud2s2[],intm,inti);voidallavg(structstud1s1[],intn,structstud2s2[],intm);
(2)cpp源文件1定义的main函数
•main.cpp中的代码#include"tou.h"intmain(){intn=7;//学生记录人数intm=21;//学生成绩记录数structstud1s1[MaxStud]={{1,"张斌",9901},{8,"刘丽",9902},{34,"李英",9901},{20,"陈华",9902},{12,"王奇",9901},{26,"董强",9902},{5,"王萍",9901}};structstud2s2[MaxCour]=//规定课程的编号从1到6,同一学生成绩记录连续存放{{1,1,67},{1,2,98},{1,4,65},{8,1,98},{8,3,90},{8,6,67},{34,2,56},{34,4,65},{34,6,77},{20,1,68},{20,2,92},{20,3,64},{12,4,76},{12,5,75},{12,6,78},{26,1,67},{26,5,78},{26,6,62},{5,1,94},{5,2,92},{5,6,89}};allavg(s1,n,s2,m);return0;}
main.cpp中头文件只需添加一个#include“tou.h”就可以了,这个文件是是主函数。•hanshu.cpp中的代码#include"tou.h"doublestudavg(structstud2s2[],intm,inti)//求学号为i的学生的平均分{intj,n=0;//n为学号为i的学生选学课程数doublesum=0;//学号为i的学生总分for(j=0;j<m;j++)if(s2[j].no==i)//学号为i时统计{n++;sum+=s2[j].deg;}return(sum/n);}doublecouravg(structstud2s2[],intm,inti)//求编号为i的课程的平均分{intj,n=0;//n为编号为i的课程选修人数doublesum=0;//编号为i的课程总分for(j=0;j<m;j++){if(s2[j].cno==i)//课程编号为i时统计{n++;sum+=s2[j].deg;}}return(sum/n);}voidallavg(structstud1s1[],intn,structstud2s2[],intm)//求学生平均分和课程平均分{inti,j;printf("学生平均分:\n");printf("学号姓名平均分\n");i=0;while(i<n){j=s1[i].no;printf("%4d%10s%g\n",s1[i].no,s1[i].name,studavg(s2,m,j));i++;}printf("课程平均分:\n");for(i=1;i<=6;i++)printf("课程%d:%g\n",i,couravg(s2,m,i));}hanshu.cpp中是主函数中调用的各个功能函数,注意也需添加include“tou.h”头文件。
运行结果:
<imgsrc="https://img-blog.csdn.net/20160908111253302?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"alt=""/>
<p>知识点总结:</p><p>     这个项目考察了我们对多文件的应用,怎么分割一个主函数,实现多文件分工,这样组织的程序是易于管理和维护的。但是并不好操作。</p><p></p><p>学习心得:</p><p>     通过这个项目,弥补了以前对程序多文件处理这个知识点的欠缺,我想以后的学习肯定离不开多文件的应用。对我来说多文件应用有些难,今后,我要多练习这类题型。在这其中,也出现了很多错误,比如头文件的目录存放等。</p>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: