c++课程设计职工工资管理系统文档格式.docx

上传人:b****1 文档编号:13174174 上传时间:2022-10-07 格式:DOCX 页数:18 大小:198.87KB
下载 相关 举报
c++课程设计职工工资管理系统文档格式.docx_第1页
第1页 / 共18页
c++课程设计职工工资管理系统文档格式.docx_第2页
第2页 / 共18页
c++课程设计职工工资管理系统文档格式.docx_第3页
第3页 / 共18页
c++课程设计职工工资管理系统文档格式.docx_第4页
第4页 / 共18页
c++课程设计职工工资管理系统文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

c++课程设计职工工资管理系统文档格式.docx

《c++课程设计职工工资管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《c++课程设计职工工资管理系统文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

c++课程设计职工工资管理系统文档格式.docx

3.在主函数中定义类的对象c1并初始化r=2。

再调用getarea()函数输出面积

*/

#include<

iostream>

usingnamespacestd;

classpoint //定义point类

{

public:

point(){}

point(intx,inty)

{

}

voidset_x(intx)

{

this->

x=x;

intget_x()

returnx;

voidset_y(inty)

y=y;

intget_y()

returny;

private:

//私有对象xy

intx;

inty;

};

classcircle:

publicpoint //circle类公有派生point

circle(){}

circle(doubler,intx,inty):

point(x,y)

r=r;

doubleget_r()

returnr;

doublegetarea()

return(3.14*r*r);

intr;

//circle私有对象r

intmain()

circlec1(2,3,6);

cout<

<

"

r="

c1.get_r()<

endl;

cout<

"

该圆面积="

c1.getarea()<

endl;

system("

pause"

);

return0;

}

//发现问题:

定义的r好像只显示出int类型

运行结果分析:

主函数中r=2,输出圆面积12.56

2运算符重载,友元函数和this指针

定义一个计数器类counter,具备自增,自减功能(前后缀);

输入输出>

>

<

功能。

在main函数里测试该类。

1.定义counter类,私有成员数据weight,设置其成员函数(构造函数和析构函数)

2.重载自加自减运算符和<

、>

运算符。

3.在主函数中实现运算符重载。

4.友元函数需要声明。

#include<

cmath>

classcounter;

istream&

operator>

(istream&

is,counter&

a);

ostream&

operator<

(ostream&

os,counter&

classcounter//定义类counter

doubleP;

counter(){}//无参构造函数

counter(doublep):

P(p){}//带参构造函数

counteroperator++();

//重载前置++

counteroperator++(int);

//重载后置++

counteroperator--();

//重载前置--

counteroperator--(int);

//重载后置--

friendistream&

//声明友元,重载输入运算符>

friendostream&

//同上

countercounter:

:

operator++()//前置++重载实现

++P;

return*this;

operator++(int)//后置++重载实现

countera=*this;

++(*this);

returna;

operator--()//前置--重载实现

--P;

operator--(int)//后置--重载实现

--(*this);

in,counter&

a)//运算符>

重载实现

in>

a.P;

if(!

in)

cerr<

输入错误!

returnin;

out,counter&

a)//运算符<

out<

returnout;

counterc1(236),c2(632);

c1="

c1<

endl<

c2="

c2<

++c1="

++c1<

//测试

c1++="

c1++<

c2--="

c2--<

--c2="

--c2<

定义c1的值为236,c2的值为632;

此时++c1的数值为237;

c1++输出时为237,输出后为238;

此时c2--输出时为632;

--c2输出时为630,输出后为630;

3虚函数和抽象类

定义一个抽象类shape,包括公有的计算面积area函数,计算体积volume函数,输出基本信息函数printinfo(三个函数均为纯虚函数)。

从shape公有派生point类,增加私有数据成员x,y坐标,以及构造函数,析构函数。

从point公有派生circle类,增加私有数据成员半径r,以及构造函数,析构函数。

从circle公有派生cylinder类,增加私有数据成员高度h,以及构造函数,析构函数。

(在定义三个派生类的过程中,自己考虑需要重定义哪个虚函数)。

在main函数中,定义shape类的指针,指向派生类的对象,输出三类对象的基本信息,面积,体积;

(将shape指针改为引用再尝试)。

1.先定义基类shape。

设置三个纯虚函数并且声明:

声明计算面积纯虚函数area();

声明计算体积纯虚函数volume();

声明输出基本信息纯虚函数printinfo();

2.定义类point共有继承自类shape。

并且在该类中实现三个纯虚函数。

3.定义类circle共有继承自类point。

4.定义类cylinder共有继承自类circle。

5.在主函数中分别创建类point的对象a,circle的对象b,cylinder的对象c,并初始化;

6.在主函数中分别定义shape类的指针和引用,调用printinfo()函数。

#definePi3.141516

classshape

virtualdoublearea()=0;

//三个纯虚函数:

面积,体积,基本输出

virtualdoublevolume()=0;

virtualvoidprintinfo()=0;

classpoint:

publicshape //shape派生的point类;

点并没有体积面积,所以只写printinfo函数

point(doublex,doubley)

voidprintinfo()

cout<

x="

<

x<

y="

y<

~point(){}

doublex;

doubley;

publicpoint //同理;

circle类(圆)需重写两个虚函数;

circle(doubler,doublex,doubley):

doublearea()

returnPi*r*r;

point:

printinfo();

半径为"

r<

圆的面积是"

area()<

~circle(){}

doubler;

classcylinder:

publiccircle //圆柱,同理,不多说

cylinder(){}

cylinder(doubleh,doublex,doubley,doubler):

circle(x,y,r)

h

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

当前位置:首页 > 工程科技 > 电力水利

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

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