您好,欢迎访问三七文档
1.有一个圆环,其中小院半径为2.5,大圆半径为7。编程定义一个circle类,含有私有变量半径r,能够初始化r,计算圆面积。主函数中通过定义2个对象(大圆和小圆)来计算出圆环的面积。#includeiostream.hclasscircle{private:floatr;public:voidSetR(floatr0){r=r0;}floatarea(){return3.14*r*r;}};voidmain(){circleB,S;B.SetR(7);S.SetR(2.5);cout圆环的面积为:B.area()-S.area()endl;}2.设计一个学生类stud,除了包括no(学号)、name(姓名)和deg(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有一个构造函数,一个普通成员函数disp()和一个静态成员函数avg(),用于计算平均分。本程序实现,已有若干个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。#includestdio.h#includestring.h#defineN3classStud{intno;charname[10];intdeg;staticintnum;staticintsum;public:voidsetdata(intn,charna[],intd){no=n;deg=d;strcpy(name,na);sum+=d;num++;}staticdoubleavg(){returnsum/num;}voiddisp(){printf(%-5d%-8s%3d\n,no,name,deg);}};intStud::sum=0;intStud::num=0;voidmain(){Studst[N];inti,n,d;charna[10];for(i=0;iN;i++){printf(输入学号姓名成绩:);scanf(%d%s%d,&n,na,&d);st[i].setdata(n,na,d);}printf(输出数据\n);printf(学号姓名成绩\n);for(i=0;iN;i++)st[i].disp();printf(平均分=%g\n\n,Stud::avg());}3.设有以下关于点point类的定义,请在此基础上派生出一个正方形square类,用以描述正方形左上角的位置、边长、能够计算正方形的面积。#includeiostream.hclassPoint{public:voidsetxy(intx0,inty0){x=x0;y=y0;}intgetx(){returnx;}intgety(){returny;}private:intx,y;};classSquare:publicPoint{public:voidset_Square(inta,intb,intc){setxy(a,b);length=c;}intget_area(){return(length*length);}intget_length(){returnlength;}voidprint();private:intlength;};voidSquare::print(){couttheareais:get_area()endl;coutthelengthis:get_length()endl;}intmain(){Squareb;b.set_Square(1,1,9);b.print();return0;}4.引用作为函数参数,实现在子函数中交换形参的值,同时实现主调函数实参值,并输出交换结果。#includeiostream.hvoidSwap(int&a,int&b);voidmain(){intx(5),y(10);cout”x=”x’’y=’’yendl;Swap(x,y)cout”x=”x’’y=’’yendl;}voidSwap(int&a,int&b){Intt;t=a;a=b;b=t;}5.定义一个钟表类,要求定义带参数的构造函数,同时定义时间设置函数和时间显示函数。#includeiostream.hclassClock{public:voidSetTime(intNewH,intNewM,intNewS);voidShowTime();private:intHour,Minute,Second;};voidClock::SetTime(intNewH,intNewM,intNewS){Hour=NewH;Minute=NewM;Second=NewS;}voidClock::ShowTime(){coutHour:Minute:Secondendl;}voidmain(){Clockc;c.SetTime(10,17,15);c.ShowTime();}6.C++编程实现打印小九九乘法口诀,要求按顺序逐行输出。#includeiostream.hvoidmain(){inti,j;for(i=1;i=9;i++){for(j=1;j=i;j++)coutjxi=j*i;coutendl;}}7.编写一个程序,定义一个职工类,输入3个职工的编号和姓名,然后显示出来。#includeiostream.h#includestring.hclassEmployee{private:intid;charname[10];intage;public:voidSetEmployee(inti,char*s,intg);voidShowEmployee();};voidEmployee::SetEmployee(inti,char*s,intg){id=i;strcpy(name,s);age=g;}voidEmployee::ShowEmployee(){cout编号:idendl;cout姓名:nameendl;}voidmain(){Employees1;s1.SetEmployee(20091234,张三,18);s1.ShowEmployee();Employees2;s2.SetEmployee(20094321,李四,19);s2.ShowEmployee();Employees3;s3.SetEmployee(20092134,刘五,20);s3.ShowEmployee();}8.设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生的,要求输出一个圆桌的高度,面积和颜色等数据。#includeiostream.h#includestring.hclasscircle{doubleradius;public:circle(doubler){radius=r;}doublegetarea(){returnradius*radius*3.14;}};classtable{doubleheight;public:table(doubleh){height=h;}doublegetheight(){returnheight;}};classroundtable:publictable,publiccircle{char*color;public:roundtable(doubleh,doubler,charc[]):circle(r),table(h){color=newchar[strlen(c+1)];strcpy(color,c);}char*getcolor(){returncolor;}};voidmain(){roundtablert(0.8,1.2,黑色);cout圆桌属性数据:endl;cout高度:rt.getheight()米endl;cout面积rt.getarea()平方米endl;cout颜色:rt.getcolor()endl;}
本文标题:C++上机练习题
链接地址:https://www.777doc.com/doc-7027668 .html