实验三 面向对象编程(静态 友员).doc_第1页
实验三 面向对象编程(静态 友员).doc_第2页
实验三 面向对象编程(静态 友员).doc_第3页
实验三 面向对象编程(静态 友员).doc_第4页
实验三 面向对象编程(静态 友员).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

实验三 面向对象编程一、 实验目的:掌握类中静态成员的定义方法,初始化方法,使用方法;掌握类的友元说明方法,理解友元的使用特点二、 实验时间:三、 实验地点:四、 实验内容:1编写程序,统计某旅馆住宿客人的总数,要求输入客人姓名,输出客人编号(按先后顺序自动生成),姓名以及总人数。2编写学生类Stu,包含学生姓名,成绩,设计一个友员函数,将学生成绩按大到小排序。3.设计Person类,包含学号,姓名和成绩等私有数据成员,不含任何成员函数,只将main()设为该类的友元函数。4已知三点座标,求三角形的面积。S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2)五、实验要求: 在上机前写出全部源程序; 六、实验结果分析:1旅客人数及信息 代码:#include#includeusing namespace std;class Customer public: Customer(); void Input(); int GetNum(); static void Sort(Customer *cus,int len); void Disp(); Customer(); private: int num; char *name; static int count = 0;/构造函数Customer:Customer() count+;/信息输入void Customer:Input() coutnum; char *pname = new char; cinpname; name = pname;/获得编号int Customer:GetNum() return num;/按照编号排序void Customer:Sort(Customer *cus,int len) for(int i=0; ilen; i+)/冒泡排序 for(int j=i+1; jGetNum()cusj-GetNum()/比较编号大小 Customer *temp = cusi; cusi = cusj; cusj = temp; /信息输出void Customer:Disp() cout编号:num 姓名:nameendl;/析构函数Customer:Customer() count-;int main() int n, i; coutn; Customer *cn; for(i=0; iInput(); Customer:Sort(c, n); for(i=0; iDisp(); cout旅客的人数为:countendl; return 0;结果截图:2. 学生类Stu代码:#include #include using namespace std;class Student public: Student(); void Input(); void Disp(); Student(); friend void Sort(Student *s, int n); private: char *name; char *num; int score;static int count = 0;/构造函数Student:Student() count+;/输入学生信息void Student:Input() coutpnum; num = pnum; cinpname; name = pname; cinscore;/排序void Sort(Student *s, int n) for(int i=0; in; i+) for(int j=i+1; jscore score) Student *temp = si; si = sj; sj = temp; /输出学生信息void Student:Disp() cout分数:score 学号:num 姓名:nameendl;/析构函数Student:Student() count-;int main() int n, i; coutn; Student *cn; for(i=0; iInput(); Sort(c, n); cout学生成绩按大到小排序为endl; for(i=0; iDisp(); cout总人数为:count; return 0;结果截图:3. Person类代码:#include using namespace std;class Person public: friend int main(); private: char *num; char *name; int score;int main() int i, n; coutn; Person pn; for(i=0; in; i+) cout请输入i+1pnum; cinpname; pi.num = pnum; = pname; cinpi.score; for(i=0; in; i+) for(int j=i+1; jn; j+) if(pi.scorepj.score) Person temp = pi; pi = pj; pj = temp; cout将学生信息按照分数从高到低输出:endl; for(i=0; in; i+) cout分数:pi.score 学号:pi.num 姓名:endl; return 0;结果截图:4. 三角形的面积代码:#include #include using namespace std;class Point public: Point(); void InputCoordinates(); float get_x(); float get_y(); friend class TriangleArea; private: float x, y;class TriangleArea public: TriangleArea(Point xp1, Point xp2, Point xp3); void GetArea(); void Disp(); private: Point p1, p2, p3; float Area;/构造函数Point:Point()/构造函数TriangleArea:TriangleArea(Point xp1, Point xp2, Point xp3) p1 = xp1; p2 = xp2; p3 = xp3;/获取横坐标float Point:get_x() return x;/获取纵坐标float Point:get_y() return y;/输入坐标void Point:InputCoordinates() coutxy;/求面积void TriangleArea:GetArea() Area = (1.0/2)*(p1.x*(p3.y-p2.y)+p2.x*(p1.y-p3.y)+p3.x*(p2.y-p1.y);/计算面积公式/结果输出void TriangleArea:Disp() if(Area0) cout面积为:Area/-1endl; else cout面积为:Areaendl;int main() Point p1, p2, p3; p1.InputCoordinates(); p2.InputCoordinates(); p3.InputCoordinates(); TriangleArea C(p1, p2, p3); C.GetArea(); C.Disp(); return 0;结果截图:七、实验心得体会及问题反馈: 本实验主要是加深对面向对象的静态变量、静态函数和函数友元的掌握。同时也涉及到了指针的运用,和指针空间的申请。在指针的运用过程中,我

温馨提示

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

评论

0/150

提交评论