实现一个简单画图的功能.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+),自定义数据类型enumBooleanfalse,true;定义类说明数据成员说明和定义成员函数成员函数构造函数,完整的C程序(1),#include#includeenumBooleanfalse,true;classLocationprotected:intx;inty;public:Location(intInitX,intInitY);intGetX();intGetY();,完整的C程序(2),classPoint:publicLocationprotected:BooleanVisible;public:Point(intInitX,intInitY);voidShow();voidHide();BooleanIsVisible();,完整的C程序(3),classCircle:publicPointprotected:intRadius;public:Circle(intInitX,intInitY,intInitRadius);voidShow();voidHide();intGetRadius();,完整的C程序(4),classArc:publicCircleprivate:intStartAngle;intEndAngle;public:Arc(intInitX,intInitY,intInitRadius,intInitStartAngle,intInitEndAnagle);voidShow();voidHide();intGetStartAngle();intGetEndAngle();,完整的C程序(5),Location:Location(intInitX,intInitY)x=InitX;y=InitY;intLocation:GetX()returnx;intLocation:GetY()returny;,完整的C程序(6),Point:Point(intInitX,intInitY):Location(InitX,InitY)Visible=false;voidPoint:Show()Visible=true;putpixel(x,y,getcolor();voidPoint:Hide()Visible=false;putpixel(x,y,getbkcolor();,Putpixel:在指定位置画一像素getcolor:返回当前画线颜色Getbkcolor:返回当前背景颜色,完整的C程序(7),BooleanPoint:IsVisible()returnVisible;Circle:Circle(intInitX,intInitY,intInitRadius):Point(InitX,InitY)Radius=InitRadius;Circle:Show()Visible=true;circle(x,y,Radius);,完整的C程序(8),voidCircle:Hide()intTempColor;TempColor=getcolor();setcolor(getbkcolor();Visible=false;circle(x,y,Radius);setcolor(TempColor);intCircle:GetRadius()returnRadius;,setcolor:库函数图形屏幕函数setcolor(color)功能:将当前图形屏幕的当前笔画颜色置为color.,完整的C程序(9),Arc:Arc(intInitX,intInitY,intInitRadius,intInitStartAngle,intInitEndAngle):Circle(InitX,InitY,InitRadius)StartAngle=InitStartAngle;EndAngle=InitEndAngle;voidArc:Show()Visible=true;arc(x,y,StartAngle,EndAngle,Radius);intArc:GetStartAngle()returnStartAngle;,完整的C程序(10),voidArc:Hide()intTempColor;TempColor=getcolor();setcolor(getbkcolor();Visible=false;arc(x,y,StartAngle,EndAngle,Radius);setcolor(TempColor);intArc:GetEndAngle()returnEndAngle;,voidmain()Circlec1(100,100,40),c2(200,300,20);Arca1(400,150,50,30,120);c1.Show();c2.Show();a1.Show();getch();closegrap

温馨提示

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

评论

0/150

提交评论