第十二周项目4——(6)
来源:互联网 发布:mac适合编程吗 编辑:程序博客网 时间:2024/05/22 00:34
/* *Copyright (c) 2014,烟台大学计算机学院void change(int a[8][8]); *All rights reserved. *文件名称:main.cpp *作者:苏强 *完成日期:2015年5月25日 *版本号:v1.0 * *问题描述:建立点类Point和派生圆类circle,实现定点和圆心输出的直线与圆的交点*/#include <iostream>#include<cmath>using namespace std;class Circle;class Point{protected: double x,y;public: Point(double X=0,double Y=0):x(X),y(Y){} friend ostream &operator <<(ostream &out,Point &p); friend void crossover_point(Point &p,Circle &c,Point &p1,Point &p2);};ostream &operator <<(ostream &out,Point &p){ out<<"("<<p.x<<","<<p.y<<")"; return out;}class Circle:virtual public Point{protected: double r;public: Circle(double X=0,double Y=0 ,double R=0):Point(X,Y),r(R){} friend ostream &operator <<(ostream &out,Circle &c); friend void crossover_point(Point &p,Circle &c,Point &p1,Point &p2);};ostream &operator <<(ostream &out,Circle &c){ out<<"圆心:("<<c.x<<","<<c.y<<") 半径:"<<c.r<<endl; return out;}void crossover_point(Point &p,Circle &c,Point &p1,Point &p2){ p1.x=c.x+sqrt((c.r*c.r)/(1+((c.y-p.y)*(c.y=p.y)/((c.x-p.x)*(c.x-p.x))))); p1.y=(c.y-p.y)*(p1.x-p.x)/(c.x-p.x)+p.y; p2.x=c.x-sqrt((c.r*c.r)/(1+((c.y-p.y)*(c.y=p.y)/((c.x-p.x)*(c.x-p.x))))); p2.y=(c.y-p.y)*(p2.x-p.x)/(c.x-p.x)+p.y;}int main(){ Circle c(3,1,4); Point p(1,1),p1,p2; crossover_point(p,c,p1,p2); cout<<"点p:"<<p; cout<<"与圆c:"<<c<<endl; cout<<"的圆心连成的直线与圆的交点是:"<<p1<<" "<<p2<<endl;}
0 0
- 第十二周项目4——(6)
- 第十二周项目4——(4)
- 第十二周项目一——程序阅读(6)
- 第十二周项目一——阅读程序(4)
- 第十二周项目一——程序阅读(4)
- 第十二周项目一——阅读程序(4)
- 第十二周项目4——(5)
- 第十二周项目(4)
- 第十二周 项目(4)
- 第十二周 项目(4)
- 第十二周项目4
- 第十二周 【项目4
- 第十二周 【项目4
- 第十二周实践项目课后————4
- 第十二周项目3——6 汉诺塔的移动
- 第十二周项目3——6 银行系统
- 第十二周项目4—①是否有简单路径
- 第十二周(项目四)——日期时间类。
- Tomcat建立虚拟主机最佳实践
- ssh的验证方法具体过程
- android避免弹出软键盘遮盖listview
- 使用‘互斥量’ 和 ‘条件变量’ 控制线程同步
- boost::function
- 第十二周项目4——(6)
- 存储器和寄存器的区别
- 《Hadoop集群与安全》
- 第十二周(教师兼干部类)
- 当你产品上架AppStore可能会遇到的10个大坑【转载】
- 大话设计模式笔记(1)
- python模块之urllib
- CSS
- frameset使用教程