资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,问题的提出(需求陈述),在显示器荧光屏上圆心坐标为(,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,();,closegraph,();/,关闭图形系统,graphdriver,是指向图形驱动,序号变量的指针;,graphmode,是,在,graphdriver,选定后,指向图形,显示模式序号变量的指针,/,初始化图形系统:,int graphdriver=DETECT,graphmode;,intgraph(,
展开阅读全文