实验报告 - 图文

更新时间:2024-05-24 22:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验报告二

实验二 :第八章:C++类的继承与派生 1. 实验目的 (1)掌握多继承方式下派生类对象的构造过程、派生类对象对基类成员的访问权限。 (2)掌握虚基类在多继承方式下的作用。 2. 实验内容 (2)设计一个从圆类circle和桌类table派生的圆桌类roundtable,要求输入一个圆桌的高度、面积和颜色等数据。编写main()验证类设计的合理性。 (3)定义电器类,派生出电风扇类和冰箱类,输出去用途。在电风扇类和冰箱类的基础上派生出空调类,输出去用途。编写main()验证类设计的合理性。 3.程序代码 #include #include class Circle { public: Circle(float x) {r=x;} float Area() {area=3.14*r*r; return area;} void Show_r() {cout<<\半径为:\ void Show_area() {cout<<\面积为:\private: float r; float area; }; class Table { public: Table(float y) {H=y;} void Get_color(char *color) {Color=color;} void Show_color() {cout<<\颜色为:\ void Show_h() {cout<<\高度为:\private: #include class Electricalappliance { public: void print() {cout<<\用电工作\ }; class Fan:public Electricalappliance { public: void print() {cout<<\降温乘凉\ }; class Fridge:public Electricalappliance { public: void print() {cout<<\保鲜冷冻\ }; class Aircondtion:public Fan,public Fridge { public: void print() {cout<<\室内降温换气\ }; void main() { Electricalappliance e; Fan m; Fridge n; Aircondtion k; e.print(); float H; char *Color; }; class Roundtable:public Circle,public Table { public: Roundtable(float r,float H):Circle(r),Table(H) { } }; void main() { char *b=\ Roundtable r(5,7); r.Get_color(b); r.Area(); r.Show_area(); r.Show_h(); r.Show_color(); } 4.程序运行结果(以及心得): m.print(); n.print(); k.print(); } 实验报告三

实验三:第九章:C++多态与虚函数 1. 实验目的 (1)掌握多态的基本概念、基本原理。 (2)掌握多继承方式下多态的实现方式。 (3)掌握虚函数在实现多态中的重要性以及抽象类的构成和作用。 1

2. 实验内容 (1)定义动物类,输出呼吸类型;派生出脊椎动物类,输出呼吸类型为用肺呼吸;在派生出水生动物类,输出呼吸类型为用腮呼吸;在脊椎动物类和水生动物类的基础上派生出两栖类,输出呼吸类型为既可用腮呼吸也可用肺呼吸。编写main()验证类设计的合理性。 (2)定义汽车类,数据成员包括乘坐人数、自重、轴数;派生出轿车类和货车类,轿车类数据成员包括运输类型(载人),货车类数据成员包括运输类型(载货),在轿车类和货车类的基础上派生出皮卡类,用同名函数输出各车辆类型的特征信息。编写main()验证类设计的合理性。 (3)设计一个虚基类base,包含姓名和年龄私有数据成员以及相关的成员函数,由它派生出领导类leader,包含职务和部门私有数据成员以及相关的成员函数。在由base派生出工程师类engineer,包含职称和专业私有数据成员以及相关的成员函数。然后由leader和engineer类派生出主任工程师类chairman。编写main()验证类设计的合理性。 3.程序代码 #include class Animal { public: virtual void show(){} }; class Jizhui:public Animal { public: void show() { cout<<\呼吸系统为用肺呼吸\ } }; class Shuisheng:public Animal { public: void show() { cout<<\呼吸系统为用腮呼吸\ } }; class Liangqi:public Jizhui,public Shuisheng { public: void show() { cout<<\呼吸系统为#include class Car { public: Car(int x,float y,int z){a=x;b=y;c=z;} virtual void show() { cout<<\汽车乘坐人数为:\自重为:\轴数为:\ } int get_a(){return a;} float get_b(){return b;} int get_c(){return c;} private: int a,c; float b; }; class Jiaoche:virtual public Car { public: Jiaoche(int x,float y,int z):Car(x,y,z){} void show() { cout<<\轿车乘坐人数为:\自重为:\轴数为:\运输类型为载人\ } }; #include #include class base { public: base(char*name,int age){Name=name;Age=age;} void show(){cout<<\姓名:\年龄:\ char*get_name(){return Name;} int get_age(){return Age;} private: int Age; char*Name; }; class leader:virtual public base { public: leader(char*name,int age,char*post,char*department):base(name,age){Post=post;Department=department;} void show(){cout<<\姓名:\年龄:\职位:\部门:\char* get_department(){return Department;} char* get_post(){return Post;} private: char*Department; char*Post; 2

用肺和腮呼吸\ } }; #include void main() { Animal a; Jizhui j; Shuisheng s; Liangqi l; j.show(); s.show(); l.show(); } class Huoche:virtual public Car { public: Huoche(int x,float y,int z):Car(x,y,z){} void show() { cout<<\货车乘坐人数为:\自重为:\轴数为:\运输类型为载物\ } }; class Pika:public Huoche,public Jiaoche { public: Pika(int x,float y,int z):Car(x,y,z),Huoche(x,y,z),Jiaoche(x,y,z){} void show() { cout<<\皮卡乘坐人数为:\自重为:\轴数为:\运输类型为载物载人\ } }; void main() { Car c(4,500,20); Jiaoche j(5,600,30); Huoche h(2,800,60); Pika p(3,900,20); c.show(); j.show(); h.show(); }; class engineer:virtual public base { public: engineer(char*name,int age,char*zhicheng,char*zhuanye):base(name,age){Zhicheng=zhicheng;Zhuanye=zhuanye;} void show(){cout<<\姓名:\年龄:\职称:\专业:\ char* get_zhicheng(){return Zhicheng;} char* get_zhuanye(){return Zhuanye;} private: char*Zhicheng; char*Zhuanye; }; class chairman:public leader,public engineer { public: chairman(char*name,int age,char*post,char*department,char*zhicheng,char*zhuanye) :base(name,age),leader(name,age,post,department),engineer(name,age,zhicheng,zhuanye){} void show(){cout<<\姓名:\年龄:\职位:\部门:\职称:\专业:\l;} }; void main() 3

p.show(); } { base b(\ leader l(\ engineer e(\\ chairman c(\jianzhu\ b.show(); l.show(); e.show(); c.show(); } 4.程序运行结果(及心得): 实验四:第十章:数据结构与算法 1. 实验目的 (1)掌握二叉树的特点及其存储方式。 (2)掌握二叉树的创建。 (3)掌握二叉树遍历的基本方法:先序遍历、中序遍历、后序遍历。 (4)了解二叉排序树的插入、删除等算法。 (5)了解哈夫曼树的构造算法。 (6)了解树在计算机科学及其他工程中的应用。 2. 实验内容 (1)二叉树遍历的递归算法的实现。 (2)在实验案例的基础上实现哈夫曼编码。 3.程序代码 #include #include typedef int ElemType; const int MAXSIZE=100; class SqList { private: ElemType elem[MAXSIZE]; int length; public: SqList(void); #include typedef int ElemType; const int MAXSIZE=100; class SqStack { private: ElemType elem[MAXSIZE]; int top; public: SqStack(){top=-1;} ~SqStack(){}; int IsEmpty(); 4

实验报告四

~SqList(){}; void Creat(); void PrintOut(); void Insert(int i,ElemType e); }; SqList::SqList(){length=0;} void SqList::Creat() {cout<<\cout<<\for(int k=0;k>elem[k]; } void SqList::PrintOut() { cout<<\ cout<<\ for(int k=0;klength) cout<<\ else {for(j=length;j>i;j--) elem[j]=elem[j-1]; elem[i]=e; length++; } } void main() {int i; ElemType e; SqList sq; sq.Creat(); sq.PrintOut(); cout<<\cin>>i; cout<<\cin>>e; sq.Insert(i,e); sq.PrintOut(); } void Push(ElemType e); ElemType Pop(); }; int SqStack::IsEmpty() {if(top==-1) return 1; else return 0; } void SqStack::Push(ElemType e) { if(top==MAXSIZE-1) cout<<\栈满溢出\ else{ top++; elem[top]=e; } } ElemType SqStack::Pop() { ElemType x; if(IsEmpty()){cout<<\栈为空不能出栈操作\ x=0; } else {x=elem[top]; top--; } return x; } void Conversion(int N,int r) { ElemType x; SqStack s; while(N) {s.Push(N%r); N=N/r; } while(!s.IsEmpty()) {x=s.Pop(); cout<

4.程序运行结果(及心得): cin>>n>>r; Conversion(n,r); }

6

本文来源:https://www.bwwdw.com/article/53w7.html

Top