面向对象的程序设计实验报告Word下载.docx

上传人:b****2 文档编号:5823397 上传时间:2023-05-05 格式:DOCX 页数:19 大小:131.71KB
下载 相关 举报
面向对象的程序设计实验报告Word下载.docx_第1页
第1页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第2页
第2页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第3页
第3页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第4页
第4页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第5页
第5页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第6页
第6页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第7页
第7页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第8页
第8页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第9页
第9页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第10页
第10页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第11页
第11页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第12页
第12页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第13页
第13页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第14页
第14页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第15页
第15页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第16页
第16页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第17页
第17页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第18页
第18页 / 共19页
面向对象的程序设计实验报告Word下载.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

面向对象的程序设计实验报告Word下载.docx

《面向对象的程序设计实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《面向对象的程序设计实验报告Word下载.docx(19页珍藏版)》请在冰点文库上搜索。

面向对象的程序设计实验报告Word下载.docx

Point();

Point(int);

~Point(){cout<

<

"

Point类的析构函数被调用\n"

;

}

Point(Point&

p)

{cout<

Point的拷贝构造函数\n"

private:

intj;

};

classCircle{

Circle();

Circle(int,int,int);

~Circle(){cout<

Circle类的析构函数被调用\n"

Circle(Circle&

c)

Circle的拷贝构造函数\n"

inti;

Pointp;

Circle:

:

Circle()

i=0;

cout<

Circle类的默认构造函数被调用\n"

Circle(inti1,intj1,intk1):

p(k1)

i=i1;

Circle类的带参数的构造函数被调用\n"

Point:

Point()

{intk;

k=0;

Point类的默认构造函数被调用\n"

Point(intk1)

k=k1;

Point类的带参数的构造函数被调用\n"

voidmain()

使用组合类调用\n"

CircleC1;

CircleC2(1,2,3);

CircleC3=C2;

派生类实现

Point(){cout<

Point类的默认的构造函数\n"

i1=0;

Point(inti)

Point类的带参数构造函数\n"

i1=i;

Point类的拷贝构造函数\n"

i1=p.i1;

Point类的析构函数\n"

inti1;

classCircle:

publicPoint

Circle(){cout<

Circle类的默认的构造函数\n"

i2=0;

Circle(int,int);

c);

Circle类的析构函数\n"

inti2;

Circle(intp1,intp2):

Point(p1)

Circle类的带参数构造函数\n"

i2=p2;

Circle(Circle&

c):

Point(c)

Circle类的拷贝构造函数\n"

i2=c.i2;

{cout<

使用派生类调用\n"

Circlec1;

Circlec2(1,2);

Circlec3=c2;

组合类模板

Circle的拷贝构造函数被调用\n"

template<

classT>

classStack

Stack();

Stack(Stack&

);

~Stack();

Tn;

Stack<

T>

Stack(){cout<

类模板的默认构造函数\n"

Stack(Stack&

s){n=s.n;

~Stack(){cout<

类模板的析构函数\n"

使用组合类模板调用\n"

派生类模板

~类模板的析构函数\n"

使用派生类模板\n"

总结

上机操作中,熟悉书中知识,复习巩固组合类、派生类以及类模板的使用和实现;

掌握在不同的实现方法中,如何设计相应的构造函数和拷贝构造函数,进一步理解程序调用它们及析构函数的执行顺序,掌握组合类和派生类。

另外进一步掌握和理解类模板的技术及其实现方法。

在上机操作中需要不断进行思考和调试,耐心改正代码错误,进一步完善代码。

题目2:

人员信息管理系统

本设计题目的任务是设计一个人员信息管理系统,并使用虚函数实现多态性,完成显示不同人员信息的任务。

设计employee类,用来存储雇员的编号,级别,月薪等信息,能够对其进行操作和显示。

以employee为基类派生出technician类,表示兼职技术人员,以及manager类,表示经理,以及salesman类,表示兼职推销员。

利用manage类和salesman类派生出salesmanager类,表示销售经理。

注意使用虚基类。

进一步使用虚函数和抽象类改进上面的程序。

本设计题目的目的是让学生进一步理解和掌握C++中类的继承,虚基类,多态性,虚函数以及抽象类技术及实现方法。

代码

classemployee

protected:

charname[20];

intempNo;

floatsalary;

employee(char*cp="

intno=1001);

employee(employee&

voidsetname(char*cp);

voidsetempNo(intno);

voidsetsalary(floatsa);

char*getname();

intgetempNo();

floatgetsalary();

virtualfloatpay(){return0;

employee:

employee(char*cp,intno)

inti=0;

while(*cp)

{

name[i]=*cp;

i++;

cp++;

}

name[i]='

\0'

empNo=no;

employee(employee&

em)

while(em.name[i])

name[i]=em.name[i];

empNo=em.empNo;

salary=em.salary;

voidemployee:

setname(char*cp)

setempNo(intno)

setsalary(floatsa)

salary=sa;

char*employee:

getname()

returnname;

intemployee:

getempNo()

returnempNo;

floatemployee:

getsalary()

returnsalary;

classmanager:

publicemployee

manager(char*,int,int);

voidsetproductNum(intn)

{productNum=n;

intgetproductNum()

{returnproductNum;

floatpay();

private:

intproductNum;

staticfloatproper;

floatmanager:

proper=20;

manager:

manager(char*name,intno,intpronum)

:

employee(name,no)

productNum=pronum;

pay()

salary=productNum*proper*0.2;

classtechnician:

publicvirtualemployee

technician(char*,int,float);

voidsethours(floath)

{workHours=h;

floatgethours()

{returnworkHours;

floatworkHours;

staticfloatpayperhour;

floattechnician:

payperhour=40;

technician:

technician(char*name,intno,floathours)

workHours=hours;

salary=workHours*payperhour;

classsalesman:

salesman(char*,int,float);

voidsetmonthlysales(intnum)

{monthlysales=num;

intgetmonthlysales()

{returnmonthlysales;

floatmonthlysales;

staticfloatpercent;

floatsalesman:

percent=0.5;

salesman:

salesman(char*name,intn,floatsn)

employee(name,n)

monthlysales=sn;

salary=monthlysales*percent;

classsalesmanager:

publicvirtualemployee

salesmanager(char*,int,float);

voidsetsales(intm)

{sales=m;

intgetsales()

{returnsales;

floatsales;

floatsalesmanager:

salesmanager:

salesmanager(char*name,intno,floatsm)

sales=sm;

salary=sales*percent+5000;

floatCalculateSalary(employee*emptr)

floatsalary=emptr->

pay();

managerw1("

张三"

1001,1000);

techniciant1("

李四"

1002,200);

salesmans1("

王五"

1003,10000);

salesmanagerz1("

桂六"

1004,2000);

工人"

w1.getname()<

的月薪为"

CalculateSalary(&

w1)<

元\n"

科研人员"

t1.getname()<

t1)<

销售人员"

s1.getname()<

s1)<

销售经理"

z1.getname()<

z1)<

写代码出现很多错误,同学之间互相合作请教可以顺利解决难题,并且将知识融会贯通,写的代码很粗糙,可以改进,比如可以单一的选择看一个人的业绩也可以全部显示,总之学习C编程方面还需要很多的努力

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2