好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

面向对象程序设计(C++)实验一.docx

12页
  • 卖家[上传人]:hs****ma
  • 文档编号:531316985
  • 上传时间:2022-08-07
  • 文档格式:DOCX
  • 文档大小:31.72KB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 实验一 类和对象一、实验目的:掌握类的设计和对象的创建及相关知识点如对象数组、类聚合、友元函数、静态 成员二、实验内容:1、设计圆类,求两个圆的位置关系;2、设计圆类和直线类,求直线与圆的位置关系;3、设计学生类,求某班学生成绩的最高分、最低分及平均分;4、设计部门类和教师类,其中部门类成员为教师类的子对象;5、设计家庭银行账户类,其中账户资金为静态数据成员,为家庭成员共享;6、设计复数类,友元函数实现复数的加减三、实验过程:1、 根据实验题目确定需要设计哪些类、各类中包含哪些数据成员和函数成员 设计各成员的访问权限,设计数据成员的数据类型,设计函数成员的函数 原型;2、 给出类设计的程序实现,特别要注意重载构造函数的实现;3、 在主函数中完成题目中的逻辑,一般情况下需要创建相关类的对象,通过 对象对成员函数的调用或者通过对象指针对成员函数的调用完成相应的 功能四、参考程序代码:1、设计圆类,求两个圆的位置关系#include #include using namespace std;class Circle{private:float a,b,r;public:Circle(float c,float d,float e){a=c;b=d; r=e;}friend void position(Circle &,Circle &);};void position(Circle &c1,Circle &c2){float n,m,p;p=sqrt((c1.a-c2.a)*(c1.a-c2.a)+(c1.b-c2.b)*(c1.b-c2.b)); n=fabs(c1.r-c2.r);m=c1.r+c2.r;if(p>m)cout << "相离";if(p==m)cout << "相切";if(p> a >> b >> c >> d >> e >> f ;Circle c1(a,b,c),c2(d,e,f);position(c1,c2);return 0;}2 0 1s re I urned 0 (0x0) exec ut ioij timeanv kev to coni inue.运彳丁结果:■■ •! ■ i j: k 'v ■ iia ■ 片1 v k 、v ■ ■ vj21. 988 s2、设计圆类和直线类,求直线与圆的位置关系#include#includeusing namespace std;class Circle// 圆类{private:float x,y,r;public:Circle(float a,float b,float c){x=a;y=b;r=c;}float getx(){return x;}float gety(){return y;}float getr(){return r;}};class Lin e//直线类{private:float a,b,c;public:Line(float x,float y,float z){a=x;b=y;c=z;}void position(Circle c1){float d=fabs(a*c1.getx()+b*c1.gety()+c)/sqrt(a*a+b*b) ;// 圆心到直线的距离if(d#include using namespace std;class Student{private:char name[20],xuehao[20];float math;public:Student(){}Student(char *na,char *xu,float ma):math(ma){strcpy(name,na);strcpy(xuehao,xu);}void set(char *na,char *xu,float ma){math=ma;strcpy(name,na);strcpy(xuehao,xu);}char *get_name(){return name;}char *get_xuehao(){return xuehao;}float get_math(){return math;}};void max_min(Student stu[],int n){Student max,min;max=min=stu[0];for(int i;imax.get_math()) max=stu[i];if(stu[i].get_math()> n;for(int i=0;i> na >> xu >> ma ;stu[i].set(na,xu,ma);}max_min(stu,n); ave(stu,n);return 0;} 运行结果: 请输入学生总人数3小 J. 1 45小2 2 76小4 4 98李生成绩最髙:小4, 4, 98学生成绩最低:小1,1,45avc-=73Process rer::rned 0 (.0x0) execution time : 47. 674 sPress any key Ta continue.4、设计部门类和教师类,其中部门类成员为教师类的子对象#include #include using namespace std;class Department{private:int dep_num;char dep_master[20];char dep_name[20];public:Department(){}Department(int num,char *ma,char *na){dep_num=num;strcpy(dep_master,ma);strcpy(dep_name,na);}void show(){cout << dep_num << "," << dep_master << "," << dep_name }};class Teacher{private:char name[20];char haoma[20];Department dep;public:Teacher(char *n,char *nu,int num,char *ma,char *na):dep(num,ma,na) {strcpy(name,n); strcpy(haoma,nu);}void show(){dep.show();cout << "," << name << "," << haoma << endl;}};int main(){Teacher hp("wanghai","12345",6,"kiki","computer");hp.show();return 0;}运彳丁结果:u:\gnj\Dm\ueoug\gnj exe6, kikiT computer, wanghaL 12345Process returned 0 (0x0) execut ion t ime : 0.216 sPress any key to continue.5、设计家庭银彳账户类,其中账户为静态数据成员,为家庭成员共享#include #include using namespace std;class Familymember//家庭成员类{private:char member name[10];//成员名public:static float accou nt;//共享账户资金 Familymember(char *name);static void save(float mon ey);//存钱 static void pay(float mon ey);//支出 static void show(); //显示账户余额};float Familymember::account=0;Familymember::Familymember(char *name){strcpy(membername,name);}void Familymember:: save(float money){account= account+money;}void Familymember:: pay(float money){account= account-money;}void Familymember:: show()cout<

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.