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