C++作业79文档格式.docx
- 文档编号:14363949
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:23
- 大小:186.69KB
C++作业79文档格式.docx
《C++作业79文档格式.docx》由会员分享,可在线阅读,更多相关《C++作业79文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
2.定义一个由y=ax+b确定的直线类Line,该类的构造函数初始化直线,成员函数Print显示该直线方程,友元函数SetPoint()求解两条直线的交点。
3.下列程序是有关友元类的,程序中将A类声明为B类的友元类,A类中所有的成员函数都是B类的友元函数,请给程序填空。
#inlcude<
iostream.h>
classB;
classA
{
private:
intx;
public:
A(intxx){x=xx;
}
intSet(B&
);
intGet(){returnx;
};
classB
B(intxx){①}
friend②
};
intA:
:
Set(③)
{returnx=b.x;
voidmain()
{Aa(10);
Bb(20);
cout<
<
a.Get()<
endl;
a.Set(b);
}
三、实验步骤
1.运用学过的知识,实验前在纸上写出程序。
2.根据程序要求,先定义类,包括其数据成员和成员函数。
3.分析使用的是友元类还是友元函数,通过友元要处理哪些问题。
4.在主函数中完成相应的功能。
5.上机编辑、编译、调试和运行,并修改错误。
四、实验报告
1.写出实验目的。
2.写出实验内容和程序清单。
3.说明对编程分析、运行结果、难点、解决方法、结论和编程体会。
二.实验内容
1.#include<
classVector
{
public:
Vector(doublem=0,doublen=0)
x=m;
y=n;
voiddisplay()
cout<
"
("
x<
"
y<
)"
friendVectoroperator+(Vector&
a,Vector&
b)
Vectort;
t.x=a.x+b.x;
t.y=a.y+b.y;
returnt;
friendVectoroperator-(Vector&
t.x=a.x-b.x;
t.y=a.y-b.y;
~Vector()
{}
private:
doublex,y;
Vectora1(6,8),a2(9,5),a3,a4;
向量a1="
;
a1.display();
向量a2="
a2.display();
a3=a1+a2;
a1+a2="
a3.display();
a4=a1-a2;
a1-a2="
a4.display();
2.
#include<
iostream>
usingnamespacestd;
classLine
Line(doublem=0,doublen=0)
a=m;
b=n;
voidprint()
直线y="
a<
x+"
b<
voidfriendsetpoint(Line&
L1,Line&
L2)
doublex,y;
if(L1.a==L2.a)
cout<
两直线平行,无交点"
else
{
x=(L1.b-L2.b)/(L2.a-L1.a);
y=L1.a*x+L1.b;
两直线交点为("
}
~Line(){}
doublea,b;
LineL1(4,6),L2(9,8);
L1.print();
L2.print();
setpoint(L1,L2);
3.#include<
B(intxx){x=xx;
friendclassA;
Set(B&
b)
个人总结:
本次实验目的主要是熟悉使用友元编程,在第一个程序中使用了两个友元函(friendVectoroperator+(Vector&
b)和friendVectoroperator-(Vector&
b))数进行对向量的运算,从而实现了向量之间的加减运算,通过主函数赋值,得出运算结果。
第二个程序主要实现的是求不同的两二维直线是否相交,若相交求交点的运算,通过友元函数(voidfriendsetpoint(Line&
L2))对保护成员的调用,实现了函数功能,最后一个程序是利用友元类来实现函数功能。
实验题目
实验八继承和派生的编程
实验室
9302机房
实验时间
2015年月日
1.了解继承在面向对象程序设计中的重要作用。
2.理解继承与派生的概念,掌握单继承和多继承的定义方法。
3.熟悉公有派生和私有派生的访问特性。
4.掌握继承中基类和派生类的构造函数定义和调用过程。
5.了解虚基类的作用和用法,会使用虚基类,学习虚基类在解决二义性问题中的作用。
1.有以下程序,请完成下面的工作:
(1)阅读程序,写出运行后的输出结果;
(2)然后上机运行,验证结果是否正确;
(3)分析程序执行过程,尤其是调用构造函数和析构函数的过程。
#include<
classA
{public:
A(){cout<
“constructingA”<
~A(){cout<
“destructingA”<
classB:
publicA
B(){cout<
“constructingB”<
~B(){cout<
“destructingB”<
classC:
publicB
C(){cout<
“constructingC”<
~C(){cout<
“destructingC”<
{Cc1;
2.事先编写好程序:
分别声明Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部),要求:
(1)在两个基类中都包含有姓名、年龄、性别、地址、电话等数据成员;
(2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Teacher_Cadre类中还包含数据成员wages(工资);
(3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域;
(4)在类体中声明成员函数,在类外定义成员函数;
(5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、地址、电话,然后再用cout语句输出职务和工资。
2.根据程序要求,分析用到几个类,哪些是基类,哪些是派生类,采用何种继承方式。
3.先设计基类,再设计派生类,派生类成员函数应该处理哪些数据。
4.在主函数中创建对象,创建基类对象还是派生类对象时,通过对象调用哪些成员函数。
注意:
基类和派生类的构造函数和析构函数的执行顺序。
3.写出编程思路和类层次图,体会基类与派生类的关系。
4.说明对编程分析、运行结果、难点、解决方法、结论和编程体会。
1.
string>
classteacher
teacher(stringnam,inta,chars,stringad,stringtele,stringt):
name(nam),age(a),sex(s),address(ad),telephone(tele),title(t){}
voiddisplay();
protected:
stringname;
intage;
charsex;
stringaddress;
stringtelephone;
stringtitle;
voidteacher:
display()
姓名:
teacher:
name<
年龄:
age<
性别:
sex<
地址:
address<
电话:
telephone<
职称:
title<
classcadre
cadre(stringnam,inta,chars,stringad,stringtele,strin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 作业 79
![提示](https://static.bdocx.com/images/bang_tan.gif)