大连海事大学C语言与Windows程序设计道课后题答案.docx
- 文档编号:6017289
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:13
- 大小:17.06KB
大连海事大学C语言与Windows程序设计道课后题答案.docx
《大连海事大学C语言与Windows程序设计道课后题答案.docx》由会员分享,可在线阅读,更多相关《大连海事大学C语言与Windows程序设计道课后题答案.docx(13页珍藏版)》请在冰豆网上搜索。
大连海事大学C语言与Windows程序设计道课后题答案
大连海事大学C语言与Windows程序设计6道课后题答案
1.
(1)设计具有以下功能的程序:
从键盘上输入10个非负整数,统计并输出最大数和最小数,当输入负数时结束输入。
#include
voidmain()
{
inta,max=-1,min=32767,num=1;
cout< < do{ cin>>a; if(a<0)break;//输入负数结束输入 if(a>max)max=a; if(a num++; }while(a>=0&&num<=10); if(max>=0) cout< else cout< ; } 1. (2)编程序实现求和: S=1-1/3+1/5-1/7+……+1/n。 要求: n17 /1 值在程序运行时从键盘输入。 #include voidmain() { inti,n,sign=1; floatsum=0.0; 牰湩晴尨请输入n: ); scanf(%d,&n); for(i=1;i<=n;i+=2) { sum+=sign*(1.0/i); sign=-sign; } printf(\ sum=%f\n,sum); } 2.设计具有以下功能的程序: 从键盘输入10个整数,然后排序。 (要求: 利用函数调用实现并以数组作为函数的参数) 3.编写几何点(二维平面上)的类Point,包括位置属性(二维坐标x,y), 成员函数包括: 点的位置获取函数GetX()和GetY(), 17 /2 点的位置设置函数SetX()和SetY(), 点的位置移动函数MoveTo() 点的信息打印函数Display()。 voidmain(){Pointp(100,100); p.Display(); p.MoveTo(200,200); cout< p.Display();} 程序输出结果如下: X: 100Y: 100X: moving…after Y: 200200 #include classPoint { private: intX; intY; public: Point(intX,intY) { this->X=X; this->Y=Y; 17 /3 } Point() { this->X=0; this->Y=0; } ~Point(){} intGetX() { returnthis->X; } intGetY() { returnthis->Y; } voidSetX(intX) { this->X=X; } voidSetY(intY) { this->Y=Y; 17 /4 } voidMoveTo(intX,intY) { SetX(X); SetY(Y); } voidDisplay() { cout< < cout< < } }; 4.编写几何图形圆的类Circle,包括两个属性: 圆心(用上题O。 Point类实现)和半径R中的 成员函数包括: ()圆心位置获取函数GetO ()GetR半径获取函数 ()半径位置设置函数SetR ()圆的位置移动函数MoveTo ()SetR圆的半径设置函数 ()Display圆的信息打印函数 17 /5 voidmain(){Pointp(100,100);Pointp2(200,200); Circlec(p,100);c.Display(); c.MoveTo(p2);cout< c.SetR(200);cout< altering r< Circle: (100,100),100aftermovingCircle: (200,200),100 afteralteringrCircle: (200,200),200 #include classPoint { private: intX; intY; public: Point(intX,intY) { this->X=X; this->Y=Y; } Point() { 17 /6 this->X=0; this->Y=0; } ~Point(){} intGetX() { returnthis->X; } intGetY() { returnthis->Y; } voidSetX(intX) { this->X=X; } voidSetY(intY) { this->Y=Y; } voidMoveTo(intX,intY) { 17 /7 SetX(X); SetY(Y); } /*voidDisplay() { cout< < cout< < } */ }; ///////////////////////// classCircle { private: PointO; intR; public: Circle(Point&p,intR) { O.MoveTo(p.GetX(),p.GetY()); this->R=R; } 17 /8 ~Circle(){} PointGetO() { returnthis->O; } intGetR() { returnthis->R; } voidMoveTo(Point&p) { O.MoveTo(p.GetX(),p.GetY()); } voidSetR(intR) { this->R=R; } voidDisplay() { cout< (< } 17 /9 }; voidmain() { Pointp(100,100); Pointp2(200,200); Circlec(p,100); c.Display(); c.MoveTo(p2); cout< c.Display(); c.SetR(200); cout< c.Display(); } 5.编写一个有关日期(年、月、日)和时间(时、分、秒)的程序。 该程序建立三个类,其中一个是日期的类Date,一个是时间的类Time,另一个是日期和时间类TimeDate,它是前面两个类为基类的派生类。 17 /10 voidmain() { TimeDatedate1,date2(1998,8,12,12,45,10); date1.SetDate(1998,8,7); date1.SetTime(10,30,45); cout< ; date1.GetDT(); cout< ; date1.GetDate(); cout< ; date1.GetTime(); cout< ; date2.GetDT(); } #include classDate { 17 /11 public: Date(){} Date(inty,intm,intd){SetDate(y,m,d);} voidSetDate(inty,intm,intd) { Year=y; Month=m; Day=d; } voidGetDate() { cout< } protected: intYear,Month,Day; }; classTime { public: Time(){} Time(inth,intm,ints){SetTime(h,m,s);} voidSetTime(inth,intm,ints) 17 /12 { Hours=h; Minutes=m; Seconds=s; } voidGetTime() { cout< < < } protected: intHours,Minutes,Seconds; }; classTimeDate: publicDate,publicTime { public: TimeDate(){} TimeDate(inty,intmo,intd,inth,intmi,int s): Date(y,mo,d),Time(h,mi,s){} voidGetDT() { cout< < /13 tes<<: < } }; voidmain() { TimeDatedate1,date2(1998,8,12,12,45,10); date1.SetDate(1998,8,7); date1.SetTime(10,30,45); cout< ; date1.GetDT(); cout< ; date1.GetDate(); cout< ; date1.GetTime(); cout< ; date2.GetDT(); } 6.生成一个Object抽象类,在其中声明doubleCalArea()为纯虚函数,从Object派生出: Rect类(其中包含成员变量Pointtopleft,Pointbottomright。 其中Point为其子对象)、 17 /14 Circle类(其中包含成员变量Pointcc,doubleradius),实现如下功能 void main(){Object *obj[2];obj[0]=new Rect(Point(0,0),Point(100,200));obj[1]=new Circle(Point(100,200),100.0);inti;for(i=0;i<2;i++) {cout< #include #include #definepi3.1416 classPoint{ public: Point(inta,intb) { x=a; y=b; } intx; inty; }; classObject{ public: virtualdoublecalarea()=0; 17 /15 }; classRect: publicObject{ Pointtopleft; Pointbottomright; public: Rect(Pointp1,Pointp2): topleft(p1),bottomright(p2){} doublecalarea(){ returnfabs((topleft.x-bottomright.x)*(topleft.y-bottomright.y)); } }; classCircle: publicObject{ Pointcc; doubleradius; public: Circle(Pointp,doubler): cc(p),radius(r){} doublecalarea(){ returnpi*radius*radius; } }; voidmain() 17 /16 { Object*obj[2]; obj[0]=newRect(Point(0,0),Point(100,200)); obj[1]=newCircle(Point(100,200),100.0); inti; for(i=0;i<2;i++){ cout< } } 17 /17
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大连 海事 大学 语言 Windows 程序设计 课后 答案