- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实现1个简单画图功能C
问题的提出(需求陈述) 在显示器荧光屏上圆心坐标为(100,100)的位置画一个半径为40的圆; 在圆心坐标为(200,300)的位置画一个半径为20的圆; 在圆心坐标为(400,150)的位置画条弧,弧的起始角度为30度,结束角度为120度,半径为50。 问题的分析(面向对象分析) 确定对象:名词短语(候选者) 显示器荧光屏:一种输出设备,不是对象 圆心坐标:圆和弧的基本属性,不是对象 位置:即圆心坐标,不是对象 半径:圆和弧的基本属性,不是对象 圆(Circle):对象 弧(Arc):对象 起始角度:弧的属性,不是对象 结束角度:弧的属性,不是对象 问题的分析(面向对象分析) 确定属性: 确定对象的过程中发现: 圆的属性:圆心坐标,半径 弧的属性:圆心坐标,半径,起始角度,结束角度 借助于领域知识: 圆和弧的属性:可见性 问题的分析(面向对象分析) 确定服务: 访问属性值: 读/写圆心坐标(圆,弧) 读/写半径(圆,弧) 读/写起始角度(弧) 读/写结束角度(弧) 读/写可见性(圆,弧) 显示(圆,弧) 隐藏(圆,弧) 问题的解决(面向对象设计) 建立类层次:圆为父类,弧为子类 进一步分析:点,位置 定义属性 定义服务 类图 程序设计( C++) 自定义数据类型 enum Boolean {false, true}; 定义类 说明数据成员 说明和定义成员函数 成员函数 构造函数 完整的C++程序(1) # include graphics.h # include conio.h enum Boolean{false, 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()); } 完整的C++程序(7) Boolean Point::IsVisible() { return Visible; } Circle::Circle(int InitX, int InitY, int InitRadius): Point(InitX, InitY) { Radius=InitRadius; } Circle::Show() { Visible=true;
文档评论(0)