西安交大C++随堂练习13.docx
- 文档编号:24647092
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:29
- 大小:277.02KB
西安交大C++随堂练习13.docx
《西安交大C++随堂练习13.docx》由会员分享,可在线阅读,更多相关《西安交大C++随堂练习13.docx(29页珍藏版)》请在冰豆网上搜索。
西安交大C++随堂练习13
西安交通大学实验报告
一.实验目的
本次实验是为了锻炼对新学的语句、新符号的应用,提高我们活学活用语句的水平。
本次实验主要内容是继承的概念、基类和派生类的区别,三种继承方法的应用,多重继承等等。
二.实验内容
(-)实验题目一:
设计一个Person类和其派生类教师teacher,新增的属性有专业、职称和主讲课程,并为这些属性定义相应的方法。
1.程序源代码
#include
usingnamespacestd;
classPerson
{
protected:
charname[20];
charsex[5];
intage;
public:
voidset(chara[20],charb[5],intc){strcpy(name,a);strcpy(sex,b);age=c;}
voidshow();
};
voidPerson:
:
show()
{
cout< } classteacher: publicPerson { private: charzhuanye[10]; charzhicheng[10]; charkecheng[20]; public: voidset(chara[20],charb[5],intc,chard[10],chare[10],charf[20]){strcpy(name,a);strcpy(sex,b);age=c;strcpy(zhuanye,d);strcpy(zhicheng,e);strcpy(kecheng,f);} voidshow(); }; voidteacher: : show() { cout< } intmain() { Persona; teacherb; a.set("王越","男",35); b.set("刘怡","女",25,"音乐","讲师","音乐鉴赏”); cout<<"姓名"<<"\t"<<"性别"<<"\t"<<"年龄"<<"\t"<<"专业"<<"\t"<<"职称"<<"\t"<<"教授课程"< a.show(); b.show(); return0; } 2.实验结果 (二)实验题目二: 设计一个汽车类vehicle,包含数据成员。 小车类car是它的私有子类,其中包括载人数。 卡车是私有子类包括载人数和载重量。 每个类都有相关数据的输出方法。 1.程序源代码 #include usingnamespacestd; classvehicle { protected: intwheels; floatweight; public: voidset(inta,floatb){wheels=a;weight=b;} voidshow(); }; voidvehicle: : show() { cout< } classcar: publicvehicle { private: intpassenger_load; public: voidset1(inta,floatb,intc){set(a,b);passenger_load=c;} voidshow(); }; voidcar: : show() { cout< } classtruck: publicvehicle { private: intpassenger_load; floatpayload; public: voidset2(inta,floatb,intc,floatd){set(a,b);passenger_load=c;payload=d;} voidshow(); }; voidtruck: : show() { cout< } intmain() { vehiclea; carb; truckc; a.set(4,2); b.set1(6,15,2); c.set2(8,20,56,8); cout<<"车轮数"<<"\t"<<"车重(吨)"<<"\t"<<"载人数"<<"\t"<<"载重量(吨)"< a.show(); b.show(); c.show(); return0; } 2.实验结果 (三)实验题目三: 研究生类既有学生类的特征,又有教师类的特征,试通过多重继承说明一个研究生类,包括设置学生和教师的相关属性以及显示学生和教师的相关属性等功能。 1.程序源代码 #include usingnamespacestd; classxuesheng { protected: charzhuanye[20]; private: charname[20]; charsex[5]; intage; public: voidset(chara[20],charb[20],charc[5],intd){strcpy(zhuanye,a);strcpy(name,b);strcpy(sex,c);age=d;} voidshow(); }; voidxuesheng: : show() { cout< } classjiaoshi { protected: chargongzi[20]; private: charname[20]; charsex[5]; intage; public: voidset(chara[20],charb[20],charc[5],intd){strcpy(gongzi,a);strcpy(name,b);strcpy(sex,c);age=d;} voidshow(); }; voidjiaoshi: : show() { cout< } classyanjiusheng: publicxuesheng,publicjiaoshi { private: charname[20]; charsex[5]; intage; charnianji[10]; public: voidset(chara[20],charb[20],charc[5],intd,chare[10],charf[20]){strcpy(gongzi,a);strcpy(name,b);strcpy(sex,c);age=d;strcpy(nianji,e);strcpy(zhuanye,f);} voidshow(); }; voidyanjiusheng: : show() { cout< } intmain() { xueshenga; jiaoshib; yanjiushengc; a.set("能动","张伟","男",21); b.set("5000","李成","女",40); c.set("1500","王艺","女",25,"研二","材料"); cout<<"姓名"<<"\t"<<"性别"<<"\t"<<"年龄"<<"\t"<<"专业"<<"\t"<<"工资"<<"\t"<<"年级"< a.show(); b.show(); c.show(); return0; } 2.实验结果 (四)实验题目四: 用继承的方法描述下列类: 商品类、家电类、电视类。 自己设计其属性和方法,编写主函数对各类事物的特征和功能进行模拟。 1.程序源代码 #include #include usingnamespacestd; classshang { private: doubleprice; charhao[20]; charming[20]; public: shang(doubleprice,charhao[],charming[]) { this->price=price; strcpy(this->hao,hao); strcpy(this->ming,ming); } voidshow() { cout<<"商品名: "< "< "< } }; classjia: publicshang { private: intdianya; public: jia(doubleprice,charhao[],charming[],intdianya): shang(price,hao,ming) { this->dianya=dianya; } voidshow() { shang: : show(); cout<<""<<"电压: "< } }; classds: publicjia { private: intchicun; public: ds(doubleprice,charhao[],charming[],intdianya,intchicun): jia(price,hao,ming,dianya) { this->chicun=chicun; } voidshow() { jia: : show(); cout<<""<<"屏幕大小: "< } }; intmain() { doubleprice; charhao[20]; charming[20]; cout<<"请输入商品的信息(商品名,型号,价格): "; cin>>ming>>hao>>price; shangaaa(price,hao,ming); cout<<"商品的信息为: "; aaa.show(); intdianya; cout< cout<<"请输入家电的电源电压: "; cin>>dianya; jiabbb(price,hao,ming,dianya); cout<<"家电的信息为: "; bbb.show(); intchicun; cout< cout<<"请输入电视的屏幕尺寸: "; cin>>chicun; dsccc(price,hao,ming,dianya,chicun); cout<<"电视的信息为: "; ccc.show(); return0; } 2.实验结果 (五)实验题目五: 定义一个一元三次方程类,类中至少包含构造函数、求根函数、输出方程根的函数,相加函数,输出方程函数等5个函数,并编写主函数测试各成员函数。 提示: ①两个一元三次方程对应相加仍然是一个一元三次方程。 ②求根方法采用迭代方法,迭代公式为: Xn+1=Xn-F(Xn)/F’(Xn),结束迭代的条件|F(Xn+1)|<10-7与|Xn+1-Xn|<10-7。 ③一元三次方程的一般形式如下: dX3+cX2+bX+a=0。 将一元三次方程类作为基类,派生出一元四次方程类,派生类的成员函数与基类相同,大致也有5个函数,编写主函数加以测试。 1.程序源代码 #include #include usingnamespacestd; classsan { private: inta; intb; intc; intd; public: san(inta,intb,intc,intd) { this->a=a; this->b=b; this->c=c; this->d=d; } voidgen(); voidshow1(); voidjia(san&k); voidshow2(); }; voidsan: : gen() { doublex; x=0; do { x=x-(a*x*x*x+b*x*x+c*x+d)/(3*a*x*x+2*b*x+c); } while((fabs(a*x*x*x+b*x*x+c*x+d)<1e-7)&&(fabs((a*x*x*x+b*x*x+c*x+d)/(3*a*x*x+2*b*x+c))<1e-7)); cout<<"原方程在0附近的根为: "< } voidsan: : show1() { cout<<"原方程为: "< gen(); } voidsan: : jia(san&k) { a=a+k.a; b=b+k.b; c=c+k.c; d=d+k.d; } voidsan: : show2() { cout<<"两方程相加的结果为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安 交大 C+ 练习 13