您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 华科C++第八次上机答案
第八次C++上机实验第一部分题目:定义一个圆类Circle,有数据成员半径(double),设计计算圆的面积和周长的成员函数,写出主函数测试编写的类。-------------------------------------------------------*/#includeiostreamusingnamespacestd;constdoublePI=3.1415926;/**********Program**********/classCircle{doubleR;public:Circle(){R=0.0;};Circle(doublet){R=t;};~Circle(){};voidsetR(doublet){R=t;}doublegetArea(){return(PI*R*R);}doublegetPerimeter(){return(2*PI*R);}};/**********End**********/intmain(){Circlec1(5),c2;coutc1.getArea()endl;coutc1.getPerimeter()endl;c2.setR(10);coutc2.getArea()endl;coutc2.getPerimeter()endl;return0;}定义一个立方体类Box,有数据成员边长(double),设计计算立方体的体积和表面积的成员函数,写出主函数测试编写的类。-------------------------------------------------------*/#includeiostreamusingnamespacestd;/**********Program**********/classBox{doubles;public:Box(){s=0;}Box(doublet){s=t;}setS(doublet){s=t;}doublegetVolume(){returns*s*s;}doublegetSurfacearea(){return6*s*s;}};/**********End**********/intmain(){Boxb1(2),b2;coutb1.getVolume()endl;coutb1.getSurfacearea()endl;b2.setS(4);coutb2.getVolume()endl;coutb2.getSurfacearea()endl;return0;}定义一个日期类Date,包含年、月、日三个数据成员(int),定义带有3个参数的构造函数,以及一个求日期是当年的第几天的成员函数和输出日期的成员函数,日期的显示格式为年/月/日。编写主函数进行测试。(每年各月天数分别为31,28,31,30,31,30,31,31,30,31,30,31,闰年2月为29天,闰年的条件year%4==0&&year%100!=0)||year%400==0))-------------------------------------------------------*/#includeiostreamusingnamespacestd;/**********Program**********/classDate{intyear,month,day;public:voidshow();Date(inta,intb,intc){year=a;month=b;day=c;}Date(){year=0;month=0;day=0;}voidSetD(inta,intb,intc){year=a;month=b;day=c;}intdayy(){intmonthm[12]={31,29,31,30,31,30,31,31,30,31,30,31};intp=0,s=0;for(;pmonth-1;p++)s=s+monthm[p];if(month=2)returns+day;elseif((year%4==0&&year%100!=0)||year%400==0)returns+day;elsereturns+day-1;}intgetDay(){returndayy();}};/**********End**********/voidDate::show(){coutyear/month/dayendl;}intmain(){Dated1(2009,2,1),d2;//d1为2009年2月1日d1.show();coutd1.getDay()endl;d2.SetD(2012,3,1);//d2为2012年3月1日d2.show();coutd2.getDay()endl;return0;}第二部分题目:编写一个程序,采用一个类求n!,并输出n!的值。。输出结果见图:样张.JPG-------------------------------------------------------*/#includeiostream#includecmathusingnamespacestd;/**********Program**********/classfac{intq,p;public:fac(intt){q=t;}intgetn(){inty=1;ints=1;for(;yq+1;y++)s=s*y;p=s;returnq;}voidshow();};/**********End**********/voidfac::show(){cout阶乘为:pendl;}voidmain(){intn;cout请输入一个整数:;cinn;faca(n);couta.getn()endl;a.show();}题目:定义计数器类Counter。要求具有以下成员:计数器值:value;可进行增值计数的函数:add();可进行减值计数的函数:sub();可获取计数值的函数:get()。输出结果见图:样张.JPG-------------------------------------------------------*/#includeiostreamusingnamespacestd;/**********Program**********/classCounter{doublevalue;public:Counter(){value=0;}voidadd(){value++;}voidsub(){value--;}intget(){returnvalue;}};/**********End**********/voidmain(){intadd=10,sub=7;Countercalc;for(inti=1;i=add;i++)calc.add();for(i=1;i=sub;i++)calc.sub();cout0+add-sub=calc.get()endl;}题目:定义一个描述二维坐标系中点对象的类Point,它具有下述成员函数:(1)doubler();//计算极坐标的极半径(2)doubletheta();//计算极坐标的极角(3)doubledistance(Point&p);//计算与点p的距离输出结果见图:样张.JPG-------------------------------------------------------*/#includeiostream#includecmathusingnamespacestd;/**********Program**********/classPoint{doublex,y;public:Point(doublea,doubleb){x=a;y=b;}doubler(){returnsqrt(x*x+y*y);}doubletheta(){returnatan2(y,x);}doubledistance(Point&p){returnsqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));}};/**********End**********/voidmain(){PointA(5,5),B(1,1);cout极半径为A.r(),极角为A.theta()endl;coutAB两点间距离为A.distance(B)endl;}题目:定义一个点类Point,包括x坐标和y坐标(int)。定义一个CRect类,代表一个矩形,要求CRect类中有代表矩形的左上角坐标(x1,y1)和右下角坐标(x2,y2)点类的对象,要求CRect类中有两个成员函数RectHeight()和RectWidth(),通过这两个函数能得到矩形的高和宽。(高和宽必须为非负数)输出结果见样张.JPG-------------------------------------------------------*/#includeiostream#includecmathusingnamespacestd;/**********Program**********/classPoint{public:intx,y;Point(inta=0,intb=0){x=a;y=b;}voidsetP(intc,intd){x=c;y=d;}};classCRect{intx1,y1,x2,y2;public:CRect(Pointp1,Pointp2){x1=p1.x;y1=p1.y;x2=p2.x;y2=p2.y;}CRect(){x1=0;y1=0;x2=0;y2=0;}voidSetR(Pointp3,Pointp4){x1=p3.x;y1=p3.y;x2=p4.x;y2=p4.y;}intRectHeight(){if((x2-x1)*(x2-x1)(y1-y2)*(y1-y2))returnsqrt((x2-x1)*(x2-x1));elsereturnsqrt((y1-y2)*(y1-y2));}intRectWidth(){if((x2-x1)*(x2-x1)(y1-y2)*(y1-y2))returnsqrt((y1-y2)*(y1-y2));elsereturnsqrt((x2-x1)*(x2-x1));}};/**********End**********/intmain(){Pointp1(1,9),p2(8,5),p3,p4;//p1-左上角坐标1-x坐标9-y坐标p2-右下角坐标8-x坐标5-y坐标CRectcr(p1,p2),cr1;coutcr.RectHeight()endl;//输出矩形高度coutcr.RectWidth()endl;//输出矩形宽度p3.setP(1,1);//改变p坐标p4.setP(3,5);//改变p4坐标cr1.SetR(p3,p4);//p3-左上角坐标p4-右下角坐标coutcr1.RectHeight()endl;coutcr1.RectWidth()endl;return0;}第三部分:1、范例:编写一个函数,其原型为:voidIndex(inta[],intn,int&sub),其功能是,在大小为n的数组a中,查找某个数sub,若找到,将其下标存放在sub中,若没找到,将-1存放在sub中,在主调函数中通过判断值来判断数组中是否有该数。在这里,sub是引用类型的参数,但起返回值的作用。#includeiostreamusingnamespacestd;constintm=5;voidIndex(inta[],intn,int&sub);intmain(){intb[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,5
本文标题:华科C++第八次上机答案
链接地址:https://www.777doc.com/doc-2592195 .html