摘要: 1 /* 2 * 网上商店中如果商品(product)在名称(name)、价格(price)等 3 * 方面有变化,系统能自动通知会员,将是网上商店区别传统商店的一 4 * 大特色。应用外观模式,用C#控制台应用程序改进设计。 5 */ 6 using System; 7 using System.Collections.Generic; 8 using System.Linq; 9 using System.Text;10 11 namespace Observer12 {13 //观察者-会员类14 class Vip15 {16 priv... 阅读全文
posted @ 2012-05-18 22:37 ZH奶酪 阅读(494) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 * 一个保安系统的,由录像机、电灯、红外线监控和警报器组成。保安系统的操作 3 * 人员需要经常将这些仪器启动和关闭。保安类需要用到所有的录像机(Camera)、 4 * 电灯(Light)、感应器(Sensor)和警报器(Alarm)对象,保安觉得使用不方便。应 5 * 用外观模式,用C#控制台应用程序改进该设计。 6 */ 7 using System; 8 using System.Collections.Generic; 9 using System.Linq; 10 using System.Text; 11 12 namespace F... 阅读全文
posted @ 2012-05-18 22:35 ZH奶酪 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 最开始接触“面向对象程序设计”这个词是在大一下学期学习C++的时候,因为有C语言的基础,学起C++来并没有觉得很吃力,在那时候的我看来,C++和C语言的区别就是语法上有些差异,而“面向对象”和“面向过程”的区别,我没有看的很清晰,不管写什么程序,都觉得既可以用C语言写,又可以用C++写。 后来大二下学期的时候,学习了一下MFC,也拿着一本《VisualC++面向对象程序设计》学习了学习,知道了一些基本的控件和函数的使用方法,也开发过几个小程序,在做课程设计的时候也使用的MFC,做过一些程序之后,觉得面向对象仅此而已,并没有什么实际的意义,通过学习MFC,反而体会到了应用程序框架的优势,在别人已 阅读全文
posted @ 2012-05-17 18:50 ZH奶酪 阅读(257) 评论(0) 推荐(0) 编辑
摘要: //注意职责链模式和状态模式的区别。状态模式的逻辑顺序不一定是线性的。(每个状态中只需判断即可)职责链模式的逻辑顺序是线性的。(每个Handler要设置Prior) 1 /* 2 * 高校学生请假需要符合学校规定,假如班主任可以批准1天假,系主任可以批 3 * 准7天假,各学院院长可以批准30天,学校校长可以批准1年。应用职责链模 4 * 式,用C#控制台应用程序实现该设计。 5 */ 6 using System; 7 using System.Collections.Generic; 8 using System.Linq; 9 using System.Text... 阅读全文
posted @ 2012-05-17 12:56 ZH奶酪 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 *“喜羊羊逃命”游戏:喜羊羊被灰太狼追,喜羊羊最多5条命,灰太狼每咬到喜羊羊一 3 * 次,喜羊羊就要少一条命。在逃的过程中喜羊羊可以吃到三种苹果,吃“红苹果”可 4 * 以给喜羊羊加上保护罩,吃“绿苹果”可以加快喜羊羊奔跑速度,吃“黄苹果”可以 5 * 使喜羊羊趟着水跑。应用装饰模式,用C#控制台应用程序实现该设计。 6 */ 7 using System; 8 using System.Collections.Generic; 9 using System.Linq;10 using System.Text;11 12 namespace Decorator13 ... 阅读全文
posted @ 2012-05-16 23:45 ZH奶酪 阅读(794) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 * 一个咖啡店可以提供大杯(JorumCoffee)、中杯(MediumCoffee)、小杯(SmallCoffee)的咖 3 * 啡(Coffee),为了满足不同用户的口味,在咖啡中可以添加牛奶(Milk),或者糖(Sugar), 4 * 或者柠檬(Lemon),提供给用户不同口味的组合,如大杯咖啡加牛奶,中杯咖啡加糖,小 5 * 杯咖啡加柠檬,小杯咖啡加糖等。应用桥接模式,用C#控制台应用程序实现该设计。 6 */ 7 using System; 8 using System.Collections.Generic; 9 using System... 阅读全文
posted @ 2012-05-16 23:37 ZH奶酪 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 * 在图书销售时,根据不同类型的图书有不同的折扣,计算金额时必须区别对待, 3 * 例如计算机类图书7折,英语类图书6折。应用策略模式,用C#控制台应用程序 4 * 实现该设计。 5 */ 6 using System; 7 using System.Collections.Generic; 8 using System.Linq; 9 using System.Text;10 11 namespace Strategy12 {13 abstract class Strategy14 {15 public abstract double ... 阅读全文
posted @ 2012-05-16 23:37 ZH奶酪 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 * 一个软件团队开发绘图系统,设计了圆对象(Circle)、矩形对象(Rectangle),线对象(Line) 3 * 都支持Draw()函数,即可以通过Draw()函数绘制图形。为了加快项目进度,将角度对象(Angle) 4 * 绘制功能交给了合作团队实现。但合作团队将角度对象绘制函数定为了DrawAngle()。 5 * 绘图系统提供给用户后,用户不满意,希望能统一的调用,不用记太多命令。 6 * 应用适配器模式,用C#控制台应用程序完善该设计。 7 */ 8 using System; 9 using System.Collections.Generic;10 ... 阅读全文
posted @ 2012-05-15 22:21 ZH奶酪 阅读(507) 评论(0) 推荐(0) 编辑
摘要: 1 /* 2 * 建造者模式是一种创建型模式,它主要是应对项目中一些复杂对象的创建工作。 3 * 所谓“复杂对象”,是指此对象中还含有其它的子对象。 4 * 我们现在定义一个场景:汽车生产必须包含车轮(Wheel)、油箱(OilBox)和车身(Body), 5 * 应用建造者模式,用C#控制台应用程序实现该设计,构建BMW品牌和BenZ品牌汽车生产。 6 */ 7 using System; 8 using System.Collections.Generic; 9 using System.Linq; 10 using System.Text; 11 12 n... 阅读全文
posted @ 2012-05-14 22:56 ZH奶酪 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡(Hamburg)和可乐(Cola),用C#控制台应用程序实现这两个快餐店经营产品的抽象工厂模式。 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace AbstractFactory 7 { 8 //汉堡接口 9 interface IHamburg10 {11 }12 //KFC汉堡13 class KFCHamburg... 阅读全文
posted @ 2012-05-14 21:55 ZH奶酪 阅读(663) 评论(0) 推荐(0) 编辑
摘要: 有一个OEM制造商代理做HP笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单Acer,Lenovo,Dell,该OEM商发现,如果一次同时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,用C#控制台应用程序实现该OEM制造商的工厂模式。 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace Factory 7 { 8 class Laptop 9 {10 }11 cl... 阅读全文
posted @ 2012-05-14 21:53 ZH奶酪 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 . 阅读全文
posted @ 2012-05-14 21:52 ZH奶酪 阅读(757) 评论(0) 推荐(0) 编辑
摘要: Problem : 1862 ( EXCEL排序 ) Judge Status : AcceptedRunId : 5941834Language : C++Author : qq1203456195Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 struct e 5 { 6 char t[20],name[20]; 7 int s; 8 阅读全文
posted @ 2012-05-14 13:32 ZH奶酪 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 根据《畅通工程》系列中的某题代码直接改的,忘记具体哪道了。Problem : 1863 ( 畅通工程 ) Judge Status : AcceptedRunId : 5940637Language : C++Author : qq1203456195Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace st 阅读全文
posted @ 2012-05-13 22:26 ZH奶酪 阅读(238) 评论(0) 推荐(0) 编辑
摘要: Problem : 1860 ( 统计字符 ) Judge Status : AcceptedRunId : 5940488Language : CAuthor : qq1203456195Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta 1 #include <stdio.h> 2 #include <string.h> 3 char f[6],c[81]; 4 int main() 5 { 6 int l1,i,j,sum; 7 while (gets(f)&& 阅读全文
posted @ 2012-05-13 22:01 ZH奶酪 阅读(278) 评论(0) 推荐(0) 编辑
摘要: Problem : 1235 ( 统计同成绩学生人数 ) Judge Status : AcceptedRunId : 5938229Language : CAuthor : qq1203456195Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta#include <stdio.h>#include <string.h>int main(){ int sc[101]; int n,s,i; while (scanf("%d",&n),n) { memse 阅读全文
posted @ 2012-05-13 14:11 ZH奶酪 阅读(295) 评论(0) 推荐(0) 编辑
摘要: Problem : 1234 ( 开门人和关门人 ) Judge Status : AcceptedRunId : 5938210Language : C++Author : qq1203456195Code Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta#include <cstdio>#include <algorithm>using namespace std;char name[100][20];typedef struct { int ah,am,as; int id;}AR 阅读全文
posted @ 2012-05-13 14:05 ZH奶酪 阅读(336) 评论(0) 推荐(0) 编辑
摘要: Problem : 1232 ( 畅通工程 ) Judge Status : AcceptedRunId : 5938141Language : CAuthor : qq1203456195Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta#include <stdio.h>#include <string.h>int set[1005],s,n;void MergeSet(int a,int b){ int i; s--; for (i=0;i<n;i++) { if(set 阅读全文
posted @ 2012-05-13 13:46 ZH奶酪 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 类似HDOJ1003Problem : 1231 ( 最大连续子序列 ) Judge Status : AcceptedRunId : 5938021Language : CAuthor : qq1203456195Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta#include <stdio.h>#define N 10005int a[N],b[N],c[N];int main(){ int n,j,tmax,ti,tj,p; while(scanf("%d",& 阅读全文
posted @ 2012-05-13 13:20 ZH奶酪 阅读(514) 评论(0) 推荐(0) 编辑
摘要: Problem : 1229 ( 还是A+B ) Judge Status : AcceptedRunId : 5937488Language : CAuthor : qq1203456195Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta #include <stdio.h>int f[9]={0,10,100,1000,10000,100000,1000000,10000000,100000000};int main(){ int a,b,n; while (scanf("%d% 阅读全文
posted @ 2012-05-13 11:04 ZH奶酪 阅读(262) 评论(0) 推荐(0) 编辑