您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C++程序设计实践指导书9
C++程序设计实践上机指导书(第九次)专业班级学号姓名信息学院2实践成绩评价说明1)上机前充分准备实践材料,对上机内容有程序草稿。(10分)2)独立完成实践任务,对实践过程非常清晰。(30分)3)认真理解知识点,能够与理论知识相结合。(10分)4)在机房遵守上机守则,接受实践指导教师的监督与管理。(20分)5)认真填写实践指导书,写出实践小结。(10分)6)在实践中具备一定的创新思想,能够主动与指导教师探讨。(5分)7)加大实践工作量,主动完成实践指导书中的选做题目。(5分)8)掌握程序调试的方法,认真完成程序调试工作,使程序能够运行(10分)。3上机九类与对象(五)一、目的1.理解利用友元关系实现数据共享的机制2.掌握类的友元函数以及友元类的实现方法;3.学习多文件结构在C++程序中的使用。二、要求:1.在上课之前,每一个同学必须将题目、程序编写完毕,做好充分的准备。2.所有环节均由每位同学独立完成,严禁抄袭他人结果。三、步骤和内容1.测试书中P160例5-6,体会友元函数的使用2.在例5-6的基础上,设计一个类Trig,给定三角形的三个定点的坐标(平面直角坐标系)要求:a)用一个友元函数计算三角形面积。b)将友元函数存放在一个类中,并将该类修改为类Trig的友元类注:三角形的面积公式为:已知三角形三边a,b,c,则(海伦公式)(p=(a+b+c)/2)S=()()()ppapbpc3.设计一个类Sample,它有两个私有数据成员a[]和n(a中元素的个数)。请对a[]中数据进行排序,并将排序函数作为友元函数或者放在类process中。四、思考题1、友元函数和友元类的使用五、结果分析1.#includeiostream#includecmathusingnamespacestd;classPoint{public:Point(intx=0,inty=0):x(x),y(y){}intgetX(){returnx;}intgetY(){returny;}friendfloatdist(Point&p1,Point&p2);//4private:intx,y;};floatdist(Point&p1,Point&p2){doublex=p1.x-p2.x;doubley=p1.y-p2.y;returnstatic_castfloat(sqrt(x*x+y*y));}intmain(){Pointmyp1(1,1),myp2(4,5);coutThedistanceis:;coutdist(myp1,myp2)endl;return0;}2.#includeiostream#includemath.husingnamespacestd;classCpoint{public:floata1,b1;Cpoint(floati,floatj)//构造函数{a1=i;b1=j;}};classtria{private:doubleL1,L2,L3,s;public:doublearea;CpointA,B,C;//类Cpoint下的三个对象tria(floata,floatb,floatc,floatd,floate,floatf):A(a,b),B(c,d),C(e,f)//初始化列表{L1=sqrt((A.a1-B.a1)*(A.a1-B.a1)+(A.b1-B.b1)*(A.b1-B.b1));L2=sqrt((A.a1-C.a1)*(A.a1-C.a1)+(A.b1-C.b1)*(A.b1-C.b1));L3=sqrt((B.a1-C.a1)*(B.a1-C.a1)+(B.b1-C.b1)*(B.b1-C.b1));s=((L1+L2+L3)/2);area=sqrt(s*(s-L1)*(s-L2)*(s-L3));}friendvoidprint(triaD);};voidprint(triaD){coutD.areaendl;//三角形面积的输出}intmain(){triaD(4.0,2.0,3.0,4.0,5.0,6.0);cout三角形的面积为:;print(D);return0;5}3.#includeiostreamusingnamespacestd;classprocess;classSample{public:Sample(intn1){n=n1;a=newint[n];}friendprocess;voidinput(){for(inti=0;in;i++)cina[i];coutendl;}private:intn,a[];};classprocess{public:voidpaixu(Sample&s){for(intj=0;js.n-1;j++)for(inti=0;is.n-1-j;i++)if(s.a[i]s.a[i+1]){intt;t=s.a[i];s.a[i]=s.a[i+1];s.a[i+1]=t;}coutthesortednumber:endl;for(inti=0;is.n;i++)couts.a[i]'\t';coutendl;}};intmain(){intn;coutinputnnumber:endl;cinn;Samplea(n);a.input();processb;b.paixu(a);return0;}六、指导教师评阅成绩6
本文标题:C++程序设计实践指导书9
链接地址:https://www.777doc.com/doc-5347441 .html