大连海事大学C语言与Windows程序设计道课后题答案.docx

上传人:b****5 文档编号:6017289 上传时间:2023-01-03 格式:DOCX 页数:13 大小:17.06KB
下载 相关 举报
大连海事大学C语言与Windows程序设计道课后题答案.docx_第1页
第1页 / 共13页
大连海事大学C语言与Windows程序设计道课后题答案.docx_第2页
第2页 / 共13页
大连海事大学C语言与Windows程序设计道课后题答案.docx_第3页
第3页 / 共13页
大连海事大学C语言与Windows程序设计道课后题答案.docx_第4页
第4页 / 共13页
大连海事大学C语言与Windows程序设计道课后题答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

大连海事大学C语言与Windows程序设计道课后题答案.docx

《大连海事大学C语言与Windows程序设计道课后题答案.docx》由会员分享,可在线阅读,更多相关《大连海事大学C语言与Windows程序设计道课后题答案.docx(13页珍藏版)》请在冰豆网上搜索。

大连海事大学C语言与Windows程序设计道课后题答案.docx

大连海事大学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<calarea()<

#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<calarea()<

}

}

17

/17

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1