C++程序设计习题精编版.docx
- 文档编号:6706325
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:36
- 大小:162.63KB
C++程序设计习题精编版.docx
《C++程序设计习题精编版.docx》由会员分享,可在线阅读,更多相关《C++程序设计习题精编版.docx(36页珍藏版)》请在冰豆网上搜索。
C++程序设计习题精编版
C++程序设计
练习题
学院:
计算机学院
专业班级:
物联网1002
学号:
*************
*******
第八章
1.下面是一个类的测试程序,试设计出能是用如下测试程序的类.
Intmain()
{
Testx;
x.initx(30,20);
x.printx();
return0;
}
解:
#include
usingnamespacestd;
classTest//类的开始
{
public:
voidinitx(inti,intj);
voidprintx();
private:
intx,y;
};
voidTest:
:
initx(inti,intj)
{
x=i;
y=j;
}
voidTest:
:
printx()
{
cout< }//类的结束 intmain()//测试函数 { Testx; x.initx(30,20); x.printx(); return0; } 得到的测试结果: 4.定义并实现一个矩形类Crectangle。 该类包含了下列成员函数。 Crectangle(): 累的构造函数,根据需要可以定义多个构造函数 SetTop(),SetLeft(): 设置矩形的左上角坐标 SetLength(),SetWidth(): 设置矩形的长和宽 Perimeter(): 求矩形的周长 Area(): 求矩形的面积 GetWidth(): 返回矩形的宽度 Getlength(): 返回矩形的长度 IsSquare(): 判断矩形是否为正方形 Move(): 将矩形从一个位置移动到另一个位置 Size(): 改变矩形的大小 Where(): 返回矩形的左上角的坐标 PrintRectangle(): 输出矩形的四个顶点的坐标 数据成员 inttop,left; intlength,width; 解: #include usingnamespacestd; classCrectangle//类的开始 { inttop,left; intlength,width; public: Crectangle(intt=0,intl=0,intlen=1,intw=1) { top=t;left=l; if(len>0)length=len; elselength=0; if(w>0)width=w; elsewidth=0; } voidSetTop(intt) { top=t; } voidSetLeft(intl) { left=l; } voidSetLength(intlen) { length=len; } voidSetWidth(intw) { width=w; } intPerimeter() { return2*(width+length); } intArea() { returnwidth*length; } intGetWidth() { returnwidth; } intGetLength() { returnlength; } intIsSquare() { if(width==length) { cout<<"该矩形是正方形"< return1; } else { cout<<"该矩形不是正方形"< return0; } } voidMove(intx,inty) { left+=x; top+=y; } voidSize(intl,intw) { length=l; width=w; } voidPrintRectangle() { cout<<"左上方的点为: ("< cout<<"右上方的点为: ("< cout<<"左下方的点为: ("< cout<<"右下方的点为: ("< } };//类的结束 intmain() { Crectanglea(1,1,5,5); a.PrintRectangle(); a.SetTop (2); a.SetLeft(3); a.SetLength(4); a.SetWidth(5); a.IsSquare(); cout<<"周长为: "< cout<<"面积为: "< a.PrintRectangle(); cout<<"用getwidth等函数得到的值为: "< cout<<"长为: "< cout<<"宽为: "< return0; } 得到的测试结果: 6.某次歌手大赛中,有JudgeNum个评委给选手打分,参加比赛的选手有PlayerNum 名,现为比赛积分编写一个CompetitionResult类,类的定义如下: (定义略) (1)写出所有的成员函数和实现代码。 (2)编写main()函数对该类进行测试。 在函数体中,定义了一个competitionResult类的对象数组r[PlauerNum],他的每个元素记录了每个选手的所有信息,个评委的打分通过键盘的输入,在屏幕上应有提示信息进行交互式操作,比赛结果按选手得分从高到底排列输出。 解: (1)CompetitionResult: : CompetitionResult() { num=0;strcpy(name,""); for(inti=0;i score[i]=0.0; average=0; } CompetitionResult: : CompetitionResult(shortn,char*ps) { num=n;strcpy(name,ps); for(inti=0;i score[i]=0.0; average=0; } floatCompetitionResult: : MaxScore() {intmax=score[0]; for(inti=0;i if(max returnmax; } floatCompetitionResult: : MinScore() {intmin=score[0]; for(inti=0;i if(min>score[i])min=score[i]; returnmin; } voidCompetitionResult: : SetAvg() {inti;floatsum=0.0; for(i=0;i sum+=score[i]; sum=sum-MaxScore()-MinScore(); average=sum/(JudgeNum-2); } floatCompetitionResult: : GetAvg() {returnaverage; } shortCompetitionResult: : GetNo(inti){returnnum;} voidCompetitionResult: : SetNo(inti){num=i;} charCompetitionResult: : *GetName(){returnname;} floatCompetitionResult: : GetScore(intj){returnscore[j];} voidCompetitionResult: : Setscore(intk,floatav){score[k]=av;} voidSort(CompetitionResult*pr,intn) { inti,j,k; CompetitionResulttemp; for(i=0;i { k=i; for(j=i+1;j if((pr[j].average)>(pr[k].average)) k=j; if(k! =j) { temp=pr[i]; pr[i]=pr[k]; pr[k]=temp; } } } (2) intmain() { CompetitionResultplayer[PlayerNum]={CompetitionResult(1,"one"), CompetitionResult(2,"two"),CompetitionResult(3,"there"), CompetitionResult(4,"four"),CompetitionResult(5,"five"), CompetitionResult(6,"six"),CompetitionResult(7,"seven"), CompetitionResult(8,"eight"),CompetitionResult(9,"nine"), CompetitionResult(10,"ten")}; floata;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 习题 精编