实现一个简单画图的功能.ppt_第1页
实现一个简单画图的功能.ppt_第2页
实现一个简单画图的功能.ppt_第3页
实现一个简单画图的功能.ppt_第4页
实现一个简单画图的功能.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

问题的提出(需求陈述),在显示器荧光屏上圆心坐标为(100,100)的位置画一个半径为40的圆; 在圆心坐标为(200,300)的位置画一个半径为20的圆; 在圆心坐标为(400,150)的位置画条弧,弧的起始角度为30度,结束角度为120度,半径为50。,问题的分析(面向对象分析),确定对象:名词短语(候选者) 显示器荧光屏:一种输出设备,不是对象 圆心坐标:圆和弧的基本属性,不是对象 位置:即圆心坐标,不是对象 半径:圆和弧的基本属性,不是对象 圆(Circle):对象 弧(Arc):对象 起始角度:弧的属性,不是对象 结束角度:弧的属性,不是对象,问题的分析(面向对象分析),确定属性: 确定对象的过程中发现: 圆的属性:圆心坐标,半径 弧的属性:圆心坐标,半径,起始角度,结束角度 借助于领域知识: 圆和弧的属性:可见性,问题的分析(面向对象分析),确定服务: 访问属性值: 读/写圆心坐标(圆,弧) 读/写半径(圆,弧) 读/写起始角度(弧) 读/写结束角度(弧) 读/写可见性(圆,弧) 显示(圆,弧) 隐藏(圆,弧),问题的解决(面向对象设计),建立类层次:圆为父类,弧为子类 进一步分析:点,位置 定义属性 定义服务 类图,程序设计( C+),自定义数据类型 enum Boolean false, true; 定义类 说明数据成员 说明和定义成员函数 成员函数 构造函数,完整的C程序(1),# include # include enum Booleanfalse, true; class Location protected: int x; int y; public: Location(int InitX, int InitY); int GetX(); int GetY(); ;,完整的C程序(2),class Point: public Location protected: Boolean Visible; public: Point(int InitX, int InitY); void Show(); void Hide(); Boolean IsVisible(); ;,完整的C程序(3),class Circle: public Point protected: int Radius; public: Circle(int InitX, int InitY, int InitRadius); void Show(); void Hide(); int GetRadius(); ;,完整的C程序(4),class Arc: public Circle private: int StartAngle; int EndAngle; public: Arc(int InitX, int InitY, int InitRadius, int InitStartAngle, int InitEndAnagle); void Show(); void Hide(); int GetStartAngle(); int GetEndAngle(); ;,完整的C程序(5),Location:Location(int InitX, int InitY) x=InitX; y=InitY; int Location:GetX() return x; int Location:GetY() return y; ,完整的C程序(6),Point:Point(int InitX, int InitY): Location(InitX, InitY) Visible=false; void Point:Show() Visible=true; putpixel(x, y, getcolor(); void Point:Hide() Visible=false; putpixel(x, y, getbkcolor(); ,Putpixel:在指定位置画一像素 getcolor:返回当前画线颜色 Getbkcolor:返回当前背景颜色,完整的C程序(7),Boolean Point:IsVisible() return Visible; Circle:Circle(int InitX, int InitY, int InitRadius): Point(InitX, InitY) Radius=InitRadius; Circle:Show() Visible=true; circle(x, y, Radius); ,完整的C程序(8),void Circle:Hide() int TempColor; TempColor=getcolor(); setcolor(getbkcolor(); Visible=false; circle(x, y, Radius); setcolor(TempColor); int Circle:GetRadius() return Radius; ,setcolor:库函数 图形屏幕函数 setcolor(color) 功能:将当前图形屏幕的当前笔画颜色 置为color.,完整的C程序(9),Arc:Arc(int InitX, int InitY, int InitRadius, int InitStartAngle, int InitEndAngle): Circle(InitX, InitY, InitRadius) StartAngle=InitStartAngle; EndAngle=InitEndAngle; void Arc:Show() Visible=true; arc(x, y, StartAngle, EndAngle, Radius); int Arc:GetStartAngle() return StartAngle; ,完整的C程序(10),void Arc:Hide() int TempColor; TempColor=getcolor(); setcolor(getbkcolor(); Visible=false; arc(x, y, StartAngle, EndAngle, Radius); setcolor(TempColor); int Arc:GetEndAngle() return EndAngle; ,void main() Circle c1(100,100,40),c2(200,300,20); Arc a1(400,150,50,30,120); c1.Show(); c2.Show(); a1.Show(); getch(); clo

温馨提示

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

评论

0/150

提交评论