网站大量收购独家精品文档,联系QQ:2885784924

图形工厂 课程设计报告-正文.docVIP

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形工厂 课程设计报告-正文

目 录 1 前言 2 2 需求分析 2 2.1 任务和要求 2 2.2 运行环境 2 2.3 开发工具 2 3 分析和设计 3 3.1 系统分析及设计思路 3 3.2 主要类图 4 3.3 函数流程图 5 4 具体代码实现 6 5 课程设计总结 6 5.1 程序运行结果或预期运行结果 17 5.2 设计结论 22 参考文献 22 致 谢 23 1 前言 工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。(1)WINDOWS2000/XP系统 (2)Visual C++ 6.0编译环境或DEV C++ 5.0编译环境 C++语言 3 分析和设计 3.1 系统分析及设计思路 系统要求设计一个使用空格和星号绘制图形的工厂,该工厂可以根据用户选择绘制至少6种以上不同的图形(如矩形、三角形、菱形、平行四边形、梯形等)。把可以绘制的图形名称保存在文本文件中,并实现根据用户选择设置图形参数绘制图形,并记录和显示绘制了的图形的个数。 利用文件流的打开、关闭及使用方法实现:把可以绘制的图形名称保存在文本文件中并显示在运行屏幕上。定义文件类infile类读取保存可以绘制的图形名称在文本文件shapeFactory.txt。 利用工厂模式的设计模式定义ShapeFactory工厂类,并定义抽象基类BaseShape类和7个具体图形派生类:直线Line(),梯形Echelon(),直角三角形RightTriangle(),等边三角形EquilateralTriangle(),矩形Rectangle(),正方形Square(),菱形Diamond(),构造绘制图形函数DrawShape()并调用,实现根据用户选择绘制图形。 3.2 主要类图 工厂类:ShapeFactory类; 抽象类:BaseShape类; 具体类:直线Line类,梯形Echelon类, 直角三角形RightTriangle类, 等边三角形EquilateraTriangle类,矩形Rectangle类,正方形Square类,菱形Diamond类。 图3.1 图形工厂类图 3.3 函数流程图 Draw函数和SelectShape函数流程图如下图3.2 函数流程图 图3.2 函数流程图 4 具体代码实现 源程序代码如下: // BaseShape.h文件 #include iostream using namespace std; class BaseShape { public: BaseShape() {}; virtual ~BaseShape() {}; virtual void DrawShape() = 0; }; //********************************* //ShapeFactory.h文件 #include fstream #include string #include Echelon.h #include Line.h #include EquilateralTriangle.h #include RightTriangle.h #include Rectangle.h #include Square.h #include Diamond.h #include BaseShape.h //定义工厂类 class ShapeFactory { public: ShapeFactory(); ~ShapeFactory(); //BaseShape* SelectShape(string); BaseShape* SelectShape(string shape) { if(shape==Line || shape==线) return new Line(); if(shape==RightTriangle || shape==直角三角形) return new RightTriangle(); if(shape==EquilateralTriangle || shape==等边三角形) return new EquilateralTriangle(); if(shape==Rectangle || shape==矩形) return new Rectangle(); if(shape==Square |

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档