版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验4设计模式实验4设计模式抽象工厂模式实验4设计模式要求n本周日最后一次实验时(12月23号晚18:0022:00),前三次未交作业的同学将作业补交。n本次实验为选做实验,设计模式的内容请大家自学。实验4设计模式抽象工厂模式结构图实验目的:1. 理解抽象工厂设计模式的含义2. 练习抽象工厂模式的实现3.掌握学习设计模式的一般方法实验4设计模式问题n编写一个程序来完成花园的规划,花园可能是季生植物型花园、蔬菜型花园或多年生植物型花园。要解决的问题:边缘种植什么植物中央种植什么植物阴凉部分种植什么(用一个图片框来模拟,在一个图片框中的相应位置处标出植物类型,灰色的圆表示阴凉部分。)n以下是以C语
2、言给出的各参考类和运行结果。请实现这一程序,并分析抽象工厂模式的应用情况,使用的程序设计语言不限。实验4设计模式基类Gardenusing System;using System.Drawing ;namespace Gardener/ / Summary description for Garden./ public class Garden protected Plant center, shade, border;protected bool showCenter, showShade, showBorder;/select which ones to displaypublic voi
3、d setCenter() showCenter = true;public void setBorder() showBorder =true;public void setShade() showShade =true;/draw each plantpublic void draw(Graphics g) if (showCenter) center.draw (g, 100, 100);if (showShade) shade.draw (g, 10, 50);if (showBorder) border.draw (g, 50, 150);实验4设计模式Plant对象设置植物名字,并
4、绘制自己using System;using System.Drawing;namespace Gardener/ / Summary description for Plant./ public class Plant private string name;private Brush br;private Font font;public Plant(string pname) name = pname; /save namefont = new Font (Arial, 12);br = new SolidBrush (Color.Black ); /-public void draw(
5、Graphics g, int x, int y) g.DrawString (name, font, br, x, y);实验4设计模式季生植物型花园using System;using System.Drawing ;namespace Gardener/ / Summary description for AnnualGarden./ public class AnnualGarden : Gardenpublic AnnualGarden () shade = new Plant(Coleus);border = new Plant (Alyssum);center = new Pla
6、nt (Marigold);实验4设计模式蔬菜型花园using System;namespace Gardener/ / Summary description for VeggieGarden./ public class VeggieGarden : Garden public VeggieGarden() shade = new Plant(Broccoli);border = new Plant (Peas);center = new Plant (Corn);实验4设计模式多年生植物型花园using System;namespace Gardener/ / Summary descr
7、iption for PerennialGarden./ public class PerennialGarden : Gardenpublic PerennialGarden() shade = new Plant(Astilbe);border = new Plant (Dicentrum);center = new Plant (Sedum);实验4设计模式用户界面Form实验4设计模式用户界面单选按钮private void opAnnual_CheckedChanged(object sender, EventArgs e) setGarden( new AnnualGarden (
8、);/-private void opVegetable_CheckedChanged(object sender, EventArgs e) setGarden( new VeggieGarden ();/-private void opPerennial_CheckedChanged(object sender, EventArgs e) setGarden( new PerennialGarden ();/-private void setGarden(Garden gd) garden = gd;/save current gardengdPic1.setGarden ( gd);/t
9、ell picture bosgdPic1.Refresh ();/repaint itckCenter.Checked =false;/clear allckBorder.Checked = false;/checkckShade.Checked = false;/boxes实验4设计模式用户界面复选框private void ckCenter_CheckedChanged(object sender, System.EventArgs e) garden.setCenter ();gdPic1.Refresh ();/-private void ckBorder_CheckedChange
10、d(object sender, System.EventArgs e) garden.setBorder();gdPic1.Refresh ();/-private void ckShade_CheckedChanged(object sender, System.EventArgs e) garden.setShade ();gdPic1.Refresh ();实验4设计模式图片框(PictureBox)using System;using System.Collections;using System.ComponentModel;using System.Drawing;using S
11、ystem.Data;using System.Windows.Forms;namespace Gardener/ / Summary description for GdPic./ public class GdPic : System.Windows.Forms.PictureBox / / Required designer variable./ private System.ComponentModel.Container components = null;private Brush br;private Garden gden;private void init () br = n
12、ew SolidBrush (Color.LightGray );public GdPic() / This call is required by the Windows.Forms Form Designer.InitializeComponent();init();public void setGarden(Garden garden) gden = garden;protected override void OnPaint ( PaintEventArgs pe )Graphics g = pe.Graphics;g.FillEllipse (br, 5, 5, 100, 100);
13、if(gden != null)gden.draw (g);实验4设计模式图片框(PictureBox)(续)/ / Clean up any resources being used./ protected override void Dispose( bool disposing )if( disposing )if(components != null)components.Dispose();base.Dispose( disposing );#region Component Designer generated code/ / Required method for Designer support - do not modify / the contents of this method with the code editor./ private void InitializeComponent()/ / GdPic/ #endregion实验4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年江苏无锡中考满分作文《在劳动中成长》21
- 【文科综合模拟】河北省衡水中学2024届高三下学期高考猜题卷-文综
- 市场机会的寻求与把握
- 重庆市2023-2024学年高三下学期2月质量检测语文试题(解析版)
- 2024-2025学年广东省深圳市龙岗区三年级(上)段考数学试卷
- 股权融资对企业利益相关者关系的影响
- 江苏省南京市溧水县2024年中考数学考试模拟冲刺卷含解析
- 人力资源流程再造行业经营分析报告
- 2023年浙江省商业集团有限公司招聘笔试真题
- 再生医学材料医疗器械行业市场突围建议书
- 声母dtnl教学课件
- 国庆的英语诗歌祖国颂朗诵稿
- 人教版七年级数学上册《第一章有理数》单元测试卷(带答案)
- 社会单位消防安全评估技术规范
- 保温节能材料送检规定保温建筑
- 2023煤矿专业技术人员-机电运输考试试题
- 良好习惯成就美好人生-主题班会课件
- 中小学劳动任务清单
- 电缆标志桩施工方案
- 物流仓储机器人自动化系统项目背景概述
- 涵洞人工清淤施工方案
评论
0/150
提交评论