c++程序设计 2.docx
- 文档编号:26501979
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:29
- 大小:396.55KB
c++程序设计 2.docx
《c++程序设计 2.docx》由会员分享,可在线阅读,更多相关《c++程序设计 2.docx(29页珍藏版)》请在冰豆网上搜索。
c++程序设计2
西安交通大学实验报告
课程_计算机程序与设计_实验名称_____继承_____第页共页
系别_____材料科学与工程______________实验日期2014年12月5日
专业班级_________组别_____________实验报告日期年月日
姓名_______学号_______报告退发(订正、重做)
同组人_________________________________教师审批签字
一.实验目的
1.掌握不同继承方式下对基类的成员的访问的控制;
2.掌握继承派生函数中构造函数的使用。
二.实验内容
(-)实验题目一:
设计一个person类和其派生类教师teacher,新增的属性有专业,职称和主讲课程,并为这些属性定义相应的方法。
1.程序源代码
#include
usingnamespacestd;
classPerson
{
char*name;
intage;
char*sex;
public:
voidset(char*n,inta,char*b)
{
name=n;age=a;sex=b;
}
voidShowme()
{
cout<<"姓名:
"< cout<<"年龄: "< cout<<"性别: "< } ~Person(){deletename;deletesex;} }; classteacher: publicPerson { char*major; char*title; char*course; public: voidset(char*n,inta,char*b,char*m,char*t,char*co) { Person: : set(n,a,b); major=m;title=t;course=co; } voidShowme() { Person: : Showme(); cout<<"专业: "< cout<<"职称: "< cout<<"主讲课程: "< } ~teacher(){deletemajor;deletetitle;deletecourse;} }; intmain() { char*n,*b,*m,*ca,*co; inta; cout<<"请输入姓名: "; n=newchar[20]; cin>>n; cout<<"请输入性别: "; b=newchar[30]; cin>>b; cout<<"请输入年龄: "; cin>>a; Personone; one.set(n,a,b); one.Showme(); cout<<"请分别输入教师的专业,职称和主讲课程: "; m=newchar[20];ca=newchar[20];co=newchar[20]; cin>>m>>ca>>co; teachersome; some.set(n,a,b,m,ca,co); some.Showme(); return0; } 1.实验结果 (二)实验题目二: 设计一个汽车类vehicle,包含的数据成员有车轮个数wheels和车重weight。 小车类car是它的私有子类其中包含载人数passenger_load.卡车类truck是vehicle的私有子类其中包含载人数passenger_load和载重量payload,每个类都有相关数据的输出方法。 1.程序源代码 #include usingnamespacestd; classvehicle { private: intwheels; intweight; public: voidset(intw,intwe) { wheels=w;weight=we; } voidshowMe() { cout<<"汽车车轮的个数为: "< cout<<"车重: "< } }; classcar: publicvehicle { private: intpassenger_load; public: voidset(intw,intwe,intpass) { vehicle: : set(w,we);passenger_load=pass; } voidshowMe() { vehicle: : showMe(); cout<<"小汽车的最大载客量: "< } }; classtruck: publicvehicle { private: intpassenger; intpayload; public: voidset(intw,intwe,intpass,intpay) { vehicle: : set(w,we);payload=pay;passenger=pass; } voidshowMe() { vehicle: : showMe(); cout<<"载人数: "< cout<<"载重量: "< } }; intmain() { intw,we,pass,pay; cout<<"请输入汽车的车轮个数和车重: "; cin>>w>>we; vehicleone; one.set(w,we); one.showMe(); cout<<"请输入小汽车的载客量: "; cin>>pass; carsome; some.set(w,we,pass); some.showMe(); cout<<"请输入卡车的载客量和载重量: "; trucksomeone; cin>>pass>>pay; someone.set(w,we,pass,pay); someone.showMe(); return0; } 2.实验结果 (三)实验题目三: 研究生类既有学生类的特征,又有教师类的特征,试通过多重继承说明一个研究生类,包括设置学生和教师的相关属性以及显示学生和教师的相关属性等功能。 1.程序源代码 #include #include usingnamespacestd; classstudent { private: charname[20]; charnum[20]; intmark; public: voidset(charna[],charnu[],intm) { strcpy_s(name,na);strcpy_s(num,nu);mark=m; } voidShowme() { cout<<"姓名为: "< cout<<"学号为: "< cout<<"成绩为: "< } }; classteacher { private: charmajor[20]; intsalary; charworktime[30]; public: voidset(charma[],ints,charwork[]) { strcpy_s(major,ma);salary=s;strcpy_s(worktime,work); } voidShowme() { cout<<"他的专业为: "< cout<<"他的工资为: "< cout<<"他的工作时间为: "< } }; classgraduated: publicstudent,publicteacher { private: charexperience[20]; charhis_professor[29]; public: voidset(charna[],charnu[],intm,charma[],intsa,charwork[],charex[],charhis[]) { student: : set(na,nu,m);teacher: : set(ma,sa,work);strcpy_s(experience,ex);strcpy_s(his_professor,his); } voidShow() { student: : Showme();teacher: : Showme(); cout<<"该研究成果: "< cout<<"导师: "< } }; intmain() { charna[20],nu[20],ma[20],work[20],his[29],ex[20]; intm,sa; cout<<"请输入学生的姓名,学号和成绩: "; cin>>na>>nu>>m; studentone; one.set(na,nu,m); one.Showme(); cout<<"请输入老师的专业,工资与上班时间: "; cin>>ma>>sa>>work; teachersome; some.set(ma,sa,work); some.Showme(); cout<<"请输入研究生的研究成果和导师: "; cin>>ex>>his; graduatedsomeone; someone.set(na,nu,m,ma,sa,work,ex,his); someone.Show(); return0; } 2.实验结果 (四)实验题目四: 用继承的方法描述下列类: 商品类、家电类、电视类,自己设计其属性和方法,编写主函数对各类事物的特征和功能进行模拟。 1.程序源代码 #include #include usingnamespacestd; classgoods { private: charname[20]; intprice; public: goods(char*n,intp) { strcpy_s(name,n); price=p; }; voidshow() { cout<<"商品名称: "< cout<<"价格: "< }; }; classEle: publicgoods { private: doublehaod; public: Ele(char*n,intp,doubleh): goods(n,p) { haod=h; }; voidshow() { goods: : show(); cout<<"每小时耗电量"< }; }; classT: publicEle { private: charleix[10]; public: T(char*n,intp,doubleh,char*l): Ele(n,p,h) { strcpy_s(leix,l); }; voidshow() { Ele: : show(); cout<<"类型: "< }; }; intmain() { cout<<"商品: "< goodsA("自行车",600); A.show(); cout<<"家电: "< EleB("电冰箱",2000,1.3); B.show(); cout<<"电视机: "< Ty("JY",5000,0.6,"液晶"); y.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; classfx { private: doublea; doubleb; doublec; doubled; public: fx() { a=0;b=0;c=0;d=0; }; fx(doublea1,doubleb1,doublec1,doubled1) { a=a1;b=b1;c=c1;d=d1; }; voidRegister(doublea1,doubleb1,doublec1,doubled1) { a=a1;b=b1;c=c1;d=d1; }; doublegen(); doublefx1(doublex); doublefx2(doublex); voidshowgen(doublex); voiddisplay(fxf); fxadd(fxf1); doublegeta(){returna;}; doublegetb(){returnb;}; doublegetc(){returnc;}; doublegetd(){returnd;}; }; doublefx: : gen() { doublex=1; doubleeps=1.0e-7; while(fabs(fx1(x))>eps) x-=fx1(x)/fx2(x); returnx; } voidfx: : showgen(doublex) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+程序设计 c+ 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)