Builder (C++实现)

// Builder.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>

using namespace std;


/
class Builder
{
public:
 Builder(){ }
 virtual ~Builder(){}
 virtual void BuilderPartA()=0;
 virtual void BuilderPartB()=0;

};


class ConcreteBuilder1:public Builder
{
 public:
 ConcreteBuilder1(){ }
 virtual ~ConcreteBuilder1(){}
 virtual void BuilderPartA()
 {
  cout<<"Builder PartA by ConcreteBuilder1"<<endl;
 }
 virtual void BuilderPartB()
 {
  cout<<"Builder PartB by ConcreteBuilder2"<<endl;
 }

};


class ConcreteBuilder2:public Builder
{
 public:
 ConcreteBuilder2(){ }
 virtual ~ConcreteBuilder2(){}
 virtual void BuilderPartA()
 {
  cout<<"Builder PartA by ConcreteBuilder2"<<endl;
 }
 virtual void BuilderPartB()
 {
  cout<<"Builder PartA by ConcreteBuilder2"<<endl;
 }

};

 

/
class Dirctor
{
private:
 Builder * m_pBuilder;

public:
Dirctor(Builder * m_p):m_pBuilder(m_p)
{
}

virtual ~Dirctor()
{
 delete m_pBuilder;
 m_pBuilder=NULL;
}

void Construct()
{
 m_pBuilder->BuilderPartA();
 m_pBuilder->BuilderPartA();
}
};


int _tmain()

 Builder * pBuilder1=new ConcreteBuilder1();
 Dirctor *pDirctor1=new Dirctor(pBuilder1);
 pDirctor1->Construct();

 Builder * pBuilder2=new ConcreteBuilder2();
 Dirctor *pDirctor2=new Dirctor(pBuilder2);
 pDirctor2->Construct();

 delete pDirctor1;
 delete pDirctor2;

 return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
09级编译原理课内试验和课程设计内容和要求 1. 课内实验(考试前交报告) 对PL/0作以下修改扩充: (1)增加单词:保留字 ELSE,FOR,STEP,UNTIL,RETURN 运算符 +=,-=,++,--,∧,∨,┓ (2)修改单词:不等号# 改为 <> (3)增加条件语句的ELSE子句,要求:写出相关文法,语法图,语义规则。 2. 课程设计 基本内容(成绩范围:“中”、“及格”或“不及格”) (1)扩充赋值运算:+= 和 -= (2)扩充语句(Pascal的FOR语句): FOR <变量>:=<表达式> STEP <表达式>UNTIL <表达式> DO <语句> (3)增加运算:++ 和 --。 选做内容(成绩评定范围扩大到:“优”和“良”) (1)增加类型:① 字符类型; ② 实数类型。 (2)扩充函数:① 有返回值和返回语句;② 有参数函数。 (3)增加一维数组类型(可增加指令)。 (4)其他典型语言设施。 3. 要求和说明 (1)放假前完成,提交课程设计报告和光盘 (各班统一制作一张光盘,每人的目录名:xx姓名,xx是学号末2位)。 (2)在程序运行界面突出显示: 设计者的班级、学号和姓名; 开始调试时间; 完成调试时间。 (3)实验报告内容 1)概述: 源、目标语言,实现工具(平台),运行平台 2)结构设计说明 各功能模块描述 3)主要成分描述 ① 符号表 ② 运行时存储组织和管理 ③ 语法分析方法 ④ 中间代码表示 4)测试用例 5)开发过程和完成情况 (4)光盘内含: ① 扩充后的PLO编译程序的源程序文件和可执行程序文件; ② 测试用例的PL0语言源程序和编译运行结果; ③ 课程设计报告文档(令需交打印文档一份)。 (5)成绩分五档:优,良,中,及格和不及格。 根据完成的程序和报告的质量评定成绩。 只完成基本内容者,成绩至高为“中”。 鼓励完成选做内容,可获得加分:“良”,直到“优”。 如果有下列情况,则视情节严重程度,成绩下降若干档次,直至不及格: • 光盘文件含有病毒或者内容不能正确读出; • 抄袭、复制别人程序或文档; • 未能按时提交报告和光盘文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值