经典C++程序Word格式.docx

上传人:b****5 文档编号:16480953 上传时间:2022-11-24 格式:DOCX 页数:37 大小:24.41KB
下载 相关 举报
经典C++程序Word格式.docx_第1页
第1页 / 共37页
经典C++程序Word格式.docx_第2页
第2页 / 共37页
经典C++程序Word格式.docx_第3页
第3页 / 共37页
经典C++程序Word格式.docx_第4页
第4页 / 共37页
经典C++程序Word格式.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

经典C++程序Word格式.docx

《经典C++程序Word格式.docx》由会员分享,可在线阅读,更多相关《经典C++程序Word格式.docx(37页珍藏版)》请在冰豆网上搜索。

经典C++程序Word格式.docx

,2000);

Employeee2("

zhang"

3000);

Employeee3("

hong"

2500);

e3.print();

2.由父类图形派生矩形、圆形、三角形三个子类,父类中声明了求面积的函数,在各子类中重写各自的构造函数、面积函数,但面积函数要保持相同的函数名,即达到面积函数的多态.分别声明对象进行检验.

Shape.h

classshape

shape(void);

~shape(void);

voidgetArea();

classrectangle:

publicshape

rectangle(inti,intj);

voidgetRec();

intx,y;

intarea;

classcircle:

circle(inti);

voidgetCir();

intr;

doublearea;

classtriangle:

publicshape//等边三角形

triangle(inti);

voidgetTri();

inta;

Shape0.cpp

shape.h"

rectangle:

rectangle(inti,intj)

x=i;

y=j;

}

voidrectangle:

getRec()

rectangle'

slength="

x<

rectangle'

swidth="

y<

getArea()

area=x*y;

sarea="

area<

circle:

circle(inti)

r=i;

voidcircle:

getCir()

circle'

sradius="

r<

area=3.14*r*r;

triangle:

triangle(inti)

a=i;

voidtriangle:

getTri()

triangle'

a<

area=0.433*a*a;

Shape.cpp

shape:

shape(void)

~shape(void)

rectanglerec(4,5);

rec.getRec();

rec.getArea();

circlecir(6);

cir.getCir();

cir.getArea();

triangletri(3);

tri.getTri();

tri.getArea();

3.对象数组,以学生成绩为例

Classstu.h

classclassstu

classstu(void);

~classstu(void);

voidset(inti,char*a,floats);

voidprint();

//private:

intid;

floatscore;

Classstu.cpp

classstu.h"

classstu:

classstu(void)

~classstu(void)

voidclassstu:

set(inti,char*c,floats)

id=i;

strcpy_s(name,c);

score=s;

print()

学号:

id<

姓名:

name<

成绩:

score<

Main.cpp

classstustu[4];

stu[0].set(1,"

aa"

33);

stu[1].set(2,"

bb"

32);

stu[2].set(3,"

cc"

48);

stu[3].set(4,"

dd"

25);

stu[0].print();

stu[1].print();

stu[2].print();

stu[3].print();

for(inti=0;

i<

3;

i++)

if(stu[i].score>

stu[i+1].score)

stu[i+1]=stu[i];

cout<

thehighestis"

stu[3].score<

//8.5拷贝构造函数与赋值运算符(=)有何联系与区别?

#include<

stdafx.h"

classPoint

intm_x,m_y;

Point(intx=0,inty=0)

m_x=x;

m_y=y;

Point(Point&

obj)

m_x=obj.m_x;

m_y=obj.m_y;

voidprint()

m_x<

"

m_y<

Pointa(2,3);

//调用一般构造函数

Pointb(a);

//调用拷贝构造函数

Pointc=a;

//等价于c(a),调用拷贝构造函数,创建对象并赋值

Pointd;

//调用一般构造函数

d=a;

//使用赋值运算符,不重建创建对象

a.print();

b.print();

c.print();

d.print();

//8.6能否给对象数组赋初值

Point(intx=0,inty=0){m_x=x;

m_y=y;

Pointarr[2]={Point(1,1),Point(2,2)};

//能给对象数组赋初值

for(inti=0;

2;

arr[i].print();

//8.15分析程序的输出结果,构造函数与析构函数

classA

A();

A(inti,intj);

~A();

voidSet(inti,intj)

{a=i;

b=j;

inta,b;

A:

A()

a=0;

b=0;

Defaultconstructorcalled."

A(inti,intj)

{

a=i;

Constructora="

b="

b<

~A()

Destructorcalled.a="

Starting1..."

Aa[3];

i<

i++)

a[i].Set(2*i+1,(i+1)*2);

Ending1..."

Starting2..."

Ab[3]={A(7,8),A(9,10),A(11,12)};

Ending2..."

/*

//输出结果

Starting1...

Defaultconstructorcalled.

Ending1...

Starting2...

Constructora=7,b=8

Constructora=9,b=10

Constructora=11,b=12

Ending2...

Destructorcalled.a=11,b=12

Destructorcalled.a=9,b=10

Destructorcalled.a=7,b=28

Destructorcalled.a=5,b=6

Destructorcalled.a=3,b=4

Destructorcalled.a=1,b=2

*/

//8.17创建一个Triangle类,这个类将直角三角形的底边长度和高作为私有成员。

类中包含设置

//这些值的构造函数。

两个成员函数:

hypot()返回直角三角形斜边的长度,area()返回三角形的面积。

cmath>

classTriangle

Triangle(floatL,floatH)

Length=L;

Hight=H;

floathypot()

{returnsqrt(Length*Length+Hight*Hight);

floatarea()

{returnLength*Hight/2;

floatLength;

floatHight;

Trianglet(3,4);

t.hypot()<

t.area()<

//8.18定义一个Circle类,包含数据成员Radius(半径)和计算周长和面积的成员函数,并构

//造Circle的对象进行测试。

constfloatPI=3.14159;

classCircle

Circle(floatr)

{

radius=r;

floatperimeter()

return2*PI*radius;

returnPI*radius*radius;

floatradius;

Circlec1(3.);

c1.perimeter()<

c1.area()<

自己编的:

classcircle

circle(intr)

rad=r;

doublearea()

return3.14*rad*rad;

intrad;

circlec

(1);

c.area()<

//8.20设计一个用于人事管理的Person(人员)组合类。

人员属性为:

number(编号)、sex(性别),

//birthday(出生日期)、id(身份证号)等。

其中“出生日期”定义为一个“日期”类内嵌对象。

//用成员函数实现对人员信息的录入和显示。

要求具有构造函数、析构函数、拷贝构造函数、内

//联成员函数、带缺省形式参数值的成员函数。

cstring>

classDate

Date(inty=1900,intm=1,intd=1)

year=y;

month=m;

day=d;

voidOutput()

year<

/"

month<

day<

intyear;

intmonth;

intday;

classPerson

Person(Dated=Date(1993,1,1),intn=0,char*s="

NoName"

boolb=0):

birthday(d)

number=n;

name=newchar[strlen(s)+1];

if(name!

=NULL)

strcpy(name,s);

sex=b;

Person(Person&

p)

number=p.number;

name=newchar[strlen(p.name)+1];

strcpy(name,p.name);

sex=p.sex;

birthday=p.birthday;

~Person()

delete[]name;

name=NULL;

voidInput();

number="

number;

cout<

name="

name;

sex="

sex;

birthday="

;

birthday.Output();

intnumber;

char*name;

boolsex;

Datebirthday;

voidPerson:

Input()

Pleaseinputthenumber:

cin>

>

Pleaseinputthename:

Pleaseinputthesex:

(0or1)"

Pleaseinputthebirthday(year/month/day):

inty,m,d;

y>

m>

d;

birthday=Date(y,m,d);

Personp1;

Personp2(p1);

p1.Input();

p1.Output();

p2.Output();

Personp3(Date(1998,12,12),1,"

zhangsan"

1);

p3.Output();

数组和指针

1.已知一个数组a[10],并在其中保存了下列数据:

6、12、34、56、78、89、90、409、800、2300

要求:

(1)从键盘上任意输入一个数,并将该数插入到数组的合适位置。

(要求:

用指针完成)。

(2)打印出插入前和插入后的数组内容。

inta[10]={6,12,34,56,78,89,90,409,800,2300};

intb,c;

请输入一个数:

b;

请输入想插入的位置(数组的哪个元素-9)"

c;

intd[11];

int*pa=a;

int*pb=d;

for(intj=0;

j<

j++)//对数组b赋值

*pb++=*pa++;

pb=d;

*(pb+c)=b;

for(intk=c+1;

k<

11;

k++)

*(pb+k)=a[k-1];

插入前的数组是:

//输出数组

for(intm=0;

m<

10;

m++)

a[m]<

插入后的数组是:

*(pb+i)<

用指针实现字符串顺序交换

chars[]="

abcdefghijklmnopqrstuvwxyz"

charch,*t=&

s[strlen(s)-1];

for(inti=0;

(strlen(s)-1)/2;

ch=s[i];

s[i]=*(t-i);

*(t-i)=ch;

for(intk=0;

strlen(s);

k++)//可以直接写成:

s;

s[k];

//省略

普通转换,调换字符串顺序

chars[10]="

student"

t;

inti=0,j=strlen(s)-1;

while(i<

j)

t=s[i];

s[i]=s[j];

s[j]=t;

i++;

j--;

s<

将十进制转换成其他进制(小于十进制)

intn,b,a[20];

n>

0;

a[i]=n%b;

n/=b;

for(intj=i-1;

j>

=0;

j--)

a[j];

运算符?

iostream.h>

classA{

A():

a(0){}

A&

operator++()

a++;

return*this;

}

Aoperator++(int)

Atemp(*this);

a++;

returntemp;

voiddisplay(){cout<

protected:

inta;

voidmain(){

Aa;

(++a).display();

a++.display();

二维数组转换为一维数组

longsum_array(intarray[],intelements)

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

当前位置:首页 > 工程科技 > 兵器核科学

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

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