15级面向对象程序设计实验报告-实验四_第1页
15级面向对象程序设计实验报告-实验四_第2页
15级面向对象程序设计实验报告-实验四_第3页
15级面向对象程序设计实验报告-实验四_第4页
15级面向对象程序设计实验报告-实验四_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京理工大学珠海学院实验报告ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY班级:15级计算机3班 学号:150201101898 姓名:林家铖 指导教师:谭忠兵 实验题目:友元、组合类、常对象 实验时间:2016-05-02 成绩:一、实验内容程序1设计一个点类Point,它有两个数据成员x和y,表示点的坐标。设计一个直线类Line,它有3个数据成员a、b、c,表示直线方程ax+by+c=0。函数dist是这两个类的友元,用于计算点到直线的距离。编写程序进行测试。 提示:平面上点(x,y)到直线ax+by+c=0的距离d的计算公式为: d=fabs(ax+by+c)/sqrt(a*a+b*b)程序2编写客机类。其属性有载客量、航程、发动机(对象成员)和客机数量;方法有构造函数、析构函数和修改载客数量。发动机类的属性有重量和型号;方法有构造函数、析构函数和显示函数。定义一个普通函数show,能显示客机所有的信息。 在主函数中创建客机对象,调用show函数显示客机的情况。程序3定义一个用于人事管理的职员类。属性有工号、姓名、性别、出生日期、月薪等,其中出生日期为一个日期类对象。方法有构造函数、析构函数、信息显示和信息更改。编写程序测试职员类。程序4. 编写圆类,要求其圆心不得移动。(提示:使用常对象成员)二、问题分析(问题的解决思路、算法分析等)第一个程序运用了友元函数第二个程序在第一个程序的基础上增加了类的合成第三个程序运用了类的组合,将两个类的对象组合在一起一起输出,在修改部分用switch语句实现数据的更改与保存。第四个程序运用了常对象成员三、程序实现(完整程序代码)1.#include using namespace std;class Line;class Pointprivate:double x,y;public:Point(double x1,double y1)x=x1;y=y1;friend void dist(Point &,Line &);Point()coutsuccess use Pointendl;class Lineprivate:double a,b,c;public:Line(double a1,double b1,double c1)a=a1;b=b1;c=c1;friend void dist(Point &,Line &);Line()coutsuccess use Lineendl;void dist(Point &x,Line &y)double d;d=fabs(y.a*x.x+y.b*x.y+y.c)/sqrt(y.a*y.a+y.b*y.b);cout方程式为:;couty.ax+y.by+y.c=0endl;cout点到方程的距离d=dendl;int main()Point a(10,10);Line b(2,4,-3);dist(a,b);return 0;2.#includeusing namespace std;const int Len=5;class Plane;class Engineprivate:double weight;char modelLen;public:Engine(double w,char m);Engine();void print();friend void show(Plane &p,Engine &e);inline Engine:Engine(double w,char m)weight=w;strcpy(model,m);Engine:Engine()coutEngine succeedendl;void Engine:print()coutWeight:weightendl;coutmodel:modelendl;class Planeprivate:int busload;double voyage;int number; public:Engine e;Plane(int b,double v,int n,double w0,char m0):e(w0,m0)busload=b;voyage=v;number=n;Plane();friend void show(Plane &p,Engine &e);void edit();Plane:Plane()coutPlane succeedendl;void Plane:edit()int i;docout请问你需要修改载客量吗(是/1,否/2)?i;if(i=1)cout请输入busload;while(i=1);void show(Plane &p,Engine &e)coutbusload:p.busloadendl;coutvoyage:p.voyageendl;coutnumber:p.numberendl;e.print();int main()Plane p(12,65,89,69,qw56);show(p,p.e);p.edit();show(p,p.e);return 0;3.#includeusing namespace std;class data1int y;int m;int d;public:data1(int y1, int m1, int d1);void show();void setdata();data1:data1(int y1, int m1, int d1) y = y1;m = m1;d = d1;void data1:show()cout 出生日期: y m y m d;class peopleint id;char name128;char sex10;int money;data1 data2;public:people(int x, char y, char z, int c, int y1, int m1, int d1);void print();void set(people stu);people:people(int x, char y, char z, int c, int y1, int m1, int d1):data2(y1,m1,d1)id = x;strcpy(name, y);strcpy(sex, z);money = c;void people:print()cout 员工信息: endl 工号: id 姓名: name 姓别: sex;data2.show();cout 月薪: money endl;void people:set(people stu)int i, id1, j, z;int id2, y, m, d, p;char n256, s10;cout z;if (z = 1)cout id1;for (i = 0; i 3; i+)if (id1 = stui.id)while (1)cout 选择要修改的项目:n1.工号n2.姓名n3.性别n4.出生日期n5.月薪n6.退出 j;switch (j)case(1): cout id2; stui.id = id2; stui.print(); break;case(2): cout n; strcpy(, n); stui.print(); break;case(3): cout s; strcpy(stui.sex, s); stui.print(); break;case(4): cout 输入新出生日期; stui.data2.setdata(); stui.print(); break;case(5): cout p; stui.money = p; stui.print(); break;if (j = 6)break;break;int main()int i;people stu3 = people(14,xiaoming,boy,2800,1996,8,15), people(18,liuhuan,boy,5800,1985,5,19) ,people(68,liurui,girl,1800,1997,6,12) ;for (i = 0; i 3; i+)stui.print();stu0.set(stu);return 0;4.#include#define PI 3.1415926using namespace std;class Circleprivate:double radius;const double x;const double y;public:Circle(double r,double x1,double y1);void show();Circle:Circle(double r,double x1,double y1):x(x1),y(y1)radius=r;void Circle:show()coutRaidus:radiusendl;co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论