最新多态练习题.docx
- 文档编号:992563
- 上传时间:2022-10-15
- 格式:DOCX
- 页数:12
- 大小:18.68KB
最新多态练习题.docx
《最新多态练习题.docx》由会员分享,可在线阅读,更多相关《最新多态练习题.docx(12页珍藏版)》请在冰豆网上搜索。
最新多态练习题
1、生成表示学生的类XS,提供成员函数dispXM()、dispXB()和dispNL()分别用来显示姓名、性别和年龄,并将他们全部定义为纯虚函数;生成CZS类表示初中生,包含数据成员xm、xb和nl表示学生的姓名、性别和年龄,提供成员函数dispXM()、dispXB()和dispNL()分别用来显示姓名、性别和年龄;再生成类GZS表示高中生和类DXS表示大学生,同样包含相同含义的数据成员xm、xb和nl,也包括成员函数dispXM()、dispXB()和dispNL()。
要求:
(1)设计和实现基本类XS
(2)设计和实现派生类CZS,GZS和DXS
(3)分别生成CZS、GZS、DXS类对象
(4)将CZS、GZS、DXS类对象的指针赋给指针赋给XS类的指针变量。
(5)分别用XS类的指针和引用访问dispXM()、dispXB()和dispNL()函数。
(6)观察程序结果。
#include
#include
usingnamespacestd;
classXS{
public:
virtualvoiddispXM()=0;
virtualvoiddispXB()=0;
virtualvoiddispNL()=0;
};
classCZS:
publicXS{
public:
CZS(char*m="张三",intb=1,intn=14);
voiddispXM();
voiddispXB();
voiddispNL();
protected:
charxm[9];
intxb,nl;
};
CZS:
:
CZS(char*m,intb,intn)
{
strcpy(xm,m);
xb=b,nl=n;
}
voidCZS:
:
dispXM()
{
cout<<"name:
"< } voidCZS: : dispXB() { if(xb==1) cout<<"Man"< if(xb==0) cout<<"Woman"< } voidCZS: : dispNL() { cout<<"age: "< } classGZS: publicXS{ public: GZS(char*m="张三",intb=1,intn=17); voiddispXM(); voiddispXB(); voiddispNL(); protected: charxm[9]; intxb,nl; }; GZS: : GZS(char*m,intb,intn) { strcpy(xm,m); xb=b,nl=n; } voidGZS: : dispXM() { cout<<"name: "< } voidGZS: : dispXB() { if(xb==1) cout<<"Man"< if(xb==0) cout<<"Woman"< } voidGZS: : dispNL() { cout<<"age: "< } classDXS: publicXS{ public: DXS(char*m="张三",intb=1,intn=20); voiddispXM(); voiddispXB(); voiddispNL(); protected: charxm[9]; intxb,nl; }; DXS: : DXS(char*m,intb,intn) { strcpy(xm,m); xb=b,nl=n; } voidDXS: : dispXM() { cout<<"name: "< } voidDXS: : dispXB() { if(xb==1) cout<<"Man"< if(xb==0) cout<<"Woman"< } voidDXS: : dispNL() { cout<<"age: "< } voiddisplayP(XS*p) { p->dispXM(); p->dispXB(); p->dispNL(); } voiddisplayR(XS&p) { p.dispXM(); p.dispXB(); p.dispNL(); } voidmain() { CZSczs("赵一",1,12); GZSgzs("钱二",0,15); DXSdxs("孙三",1,18); XS*p;//定义抽象基类的指针变量p p=&czs;//将初中生对象czs的地址赋给p displayP(p); p=&gzs;//将高中生对象czs的地址赋给p displayP(p); p=&dxs;//将大学生对象czs的地址赋给p displayP(p); cout<<"\n----------------------------------------\n"; XS&r1=czs;//定义抽象基类的引用变量r1为czs的别名 displayR(r1); XS&r2=gzs;//定义抽象基类的引用变量r2为czs的别名 displayR(r2); XS&r3=dxs;//定义抽象基类的引用变量r3为czs的别名 displayR(r3); cout<<"\n----------------------------------------\n"; } 为此,装潢美观,亮丽,富有个性化的店面环境,能引起消费者的注意,从而刺激顾客的消费欲望。 这些问题在今后经营中我们将慎重考虑的。 2003年,上海市人均GDP按户籍人口计算就达到46700元,是1995年的2.5倍;居民家庭人均月可支配收入为14867元,是1995年的2.1倍。 收入不断增加的同时,居民的消费支出也在增加。 2003年上海居民人均消费支出为11040元,其中服务性消费支出为3369元,是1995年的3.6倍。 2、某小型公司主要有3类人员: 经理、兼职技术人员、兼职销售员。 这些人员分别具有以下属性。 经理: 姓名、编号、固定工资、当月薪水、计算月薪、显示信息 兼职技术人员: 姓名、编号、工作小时、每小时工资额、当月薪水、计算月薪、显示信息; (五)DIY手工艺品的“价格弹性化”兼职销售员: 姓名、编号、销售额、销售额提成、当月薪水、计算月薪、显示信息 除了“漂亮女生”形成的价格,优惠等条件的威胁外,还有“碧芝”的物品的新颖性,创意的独特性等,我们必须充分预见到。 要求: 人员编号基数为1000,每输入一个人员信息编号顺序加1 月薪计算办法是经理固定月薪8000元;兼职技术人员按100元/小时领取月薪;兼职推销员按当月销售额的4%提成。 根绝题目要求,设计一个基类employee,然后派生出technician(兼职技术人员)类、manager(经理)类和salesman(兼职销售员)类。 十字绣□编制类□银饰制品类□串珠首饰类□部分成员函数设置为虚函数 世界上的每一个国家和民族都有自己的饰品文化,将这些饰品汇集到一起再进行新的组合,便可以无穷繁衍下去,满足每一个人不同的个性需求。 将“<<”和“>>”运算符 1、荣晓华、孙喜林《消费者行为学》东北财经大学出版社2003年2月#include #include #include #include usingnamespacestd; constintMaxr=100; classEmployee//职工类 { inttag;//删除标记 intno;//职工编号 charname[20]; charzw[20];//职工姓名 intsalary;//职工工资 public: Employee(){} char*getname(){returnname;}//获取名字 intgettag(){returntag;}//获取标记 intgetno(){returnno;}//获取编号 intgetsalary(){returnsalary;} voidsetzw(charq[])//设置名字 { strcpy(zw,q); } voidsetname(charna[])//设置名字 { strcpy(name,na); } voidgetsalary(intsa){salary=sa;} voiddelna(){tag=1;}//删除 voidaddemp(intn,intsa,char*na,char*q)//增加 { tag=0; no=n; salary=sa; strcpy(name,na); strcpy(zw,q); } voiddisp()//显示职工信息 { cout<<"│"< cout<<"├—————┼—————┼—————┼—————┤"< } }; classDatabase//职工数据类 { inttop; Employeeread[Maxr]; public: Database()//将职工信息从employee.txt读取到read[]中 {Employees; top=-1; fstreamfile("employee.txt",ios: : in); while (1) { file.read((char*)&s,sizeof(s)); if(! file)break; top++; read[top]=s; } file.close(); } voidclear()//删除所有 { top=-1; } intaddemp(intn,intsa,char*na,char*q)//增加职工 { Employee*p=query(n); if(p==NULL) { top++; read[top].addemp(n,sa,na,q); return1; } return0; } Employee*query(intempid) { for(inti=0;i<=top;i++) if(read[i].getno()==empid&&read[i].gettag()==0) return&read[i]; returnNULL; } Employee*query1(charempna[20]) { for(inti=0;i<=top;i++) if((read[i].getname()==
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 练习题