- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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 |
您可能关注的文档
最近下载
- 中药炮制实训指导.doc.doc
- 《基础会计(原初级会计学)(第12版)》课件 秦玉玺 第7-13章 会计账簿-会计管理相关工作规范.pptx
- 新能源汽车电池回收的供应链协同优化策略研究.pdf VIP
- 新能源汽车电池项目商业计划书.docx VIP
- 2025年一建《建筑工程管理与实务》案例300问.pdf VIP
- 江苏省泰州市兴化市2023-2024学年八年级下学期期中地理试题(原卷版).pdf VIP
- 护士岗位职责试题(附答案).docx VIP
- 江苏省泰州市兴化市2023-2024学年八年级下学期期中考试英语试题.docx VIP
- 教资试题电子版(14套).pdf
- 2024《中国商业银行绿色金融实践研究:以中国工商银行为例》9400字.doc
文档评论(0)