《C++程序的结构课程实验二.docx》由会员分享,可在线阅读,更多相关《C++程序的结构课程实验二.docx(5页珍藏版)》请在第一文库网上搜索。
1、实验二一 .实验目的1 .观察程序运行中变量的作用域、生存期和可见性;2 .学习类的静态成员的使用;3 .学习多文件结构在C+程序中的使用;4 .学习类的友元函数和友元类的定义和使用。二 .实验内容1运行程序,观察运行结果2 .编写一个程序,设计一个类Trig,给定三角形的三边长x、y、z,包含一个友元函数计算两个三角形面积之和。3 .定义类XYZ涵数h(X*),满足:类X有私有成员izY的成员函数g(X*)是X的友元函数,实现对X的成员i加1;类Z是类X的友元类,其成员函数f(X*)实现对X的的成员i加5;函数h(X*)是X的友元函数,实现对X的成员i加10。三.实验代码#inc1udeus
2、ingnamespacestd;c1assSamp1e(private:intx;staticinty;pub1ic:Samp1e(inta);voidprint(););Samp1e:Samp1e(inta)x=a;y=x+;)voidSamp1e:print()(cout=x,zy=yend1;)intSamp1e:y=25;intmain()(Samp1es1(5);Samp1es2(10);s1.print();s2.print();)E:2.5binDebug2.5.exex=6,y=10x=11,y=10Processreturned0executiontine:0.385sPre
3、ssanykeytocontinue.1.#inc1ude#inc1udeusingnamespacestd;c1assTrig(doub1exzz;doub1earea()(doub1ed=(x+y+z)2;returnsqrt(d*(d-x)*(d-y)*(d-z);)pub1ic:Trigfintazintbzintc)(x=a;y=b;z=c;)intistrig()(if(x+yz&x+zy&y+zx)return1;e1sereturn0;)frienddoub1etwoarea(TrigzTrig););doub1etwoarea(Trigt1,Trigt2)(returnt1.
4、area()+t2.area();)intmain()(TrigtI(3,4,5),t2(6,8,10);if(t1.jstrig()&t2.istrig()cout,twostrang1esarea:twoarea(t1,t2)end1;e1secoutitisnotastrang1eend1;returnO;*,E:2.5binDebug2.5.exeItVIOstrang1e*sarea:30Processreturned0eecutiontime:0.317sPressanykeytocontinue.#inc1udeusingnamespacestd;c1assX;c1assYpub
5、1ic:intg(X&a);;c1assZpub1ic:intf(X&a);;c1assXpub1ic:friendintY:g(X&a);friendinth(X&a);friendc1assZ;voidset();private:inti;;voidX:set()inta;cina;i=a;inth(X&a)a.i=a.i+10;returna.i;intY:g(X&a)a.i=a.i+1;returna.i;intZ:f(X&a)a.i=a.i+5;returna.i;intmain()Xx1;Yyi;Zz1;cout,p1easeinti:;x1.set();cout,i=i+1=y1.g(x1)end1;cout,i=i+5=z1.f(x1)end1;couti=i+10=h(x1)end1;E:2.5binDebug2.5.exep1easeinti:20i=i+1=21i=i+5=26i=i+10=36Processreturned0eecutiontine:2.044sPressanykeytocontinue.