- 浏览: 143408 次
-
最新评论
文章列表
一,概述
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。
状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。
意图:允许一个对象在其内部状态改变时改变它的行为
适用场景:
1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。
2.一个操作中含有庞大的多分支结构,并且这些分支决定于对象的状态。
二,示例
题目:根据不同时间段,显示不同时间段的精神状态
1)面向过程版本
cla ...
- 2012-07-02 23:27
- 浏览 579
- 评论(0)
一,概述
观察者<Observer>模式(有时又被称为发布-订阅<Publish/Subscribe>模式、模型-视图<Model/View>模式、源-收听者<Source/Listener>模式或从属者<Dependents>模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。
二,示例
题目描述:公司里有的员工偷懒,看股票,看NBA。老板回来需要有人通知他们,然后再好好干活。 ...
- 2012-07-02 20:35
- 浏览 632
- 评论(0)
一,创建过程
1) 首先安装WinCE开发必备的环境:
VS2005
VS80sp1-KB926604-X86-CHS.exe
VS80sp1-KB932230-X86-CHS.exe
vs_emulator.exe
WINCE6.0_CHS_SDK.msi
2)文件 ---> 新建 ---->项目 ---> Visual C++ --->智能设备 ----> ...
- 2012-07-02 14:48
- 浏览 629
- 评论(0)
一,问题描述
A类包含B类的实例,而B类也包含A类的实例
二,求解策略
1)错误的解法
A文件包含B,而B文件又包含A文件,这样就形成死循环
#include "B.h"
class A
{
int i;
B b;
};
#include "A.h"
class B
{
int i;
A a;
};
2)正确的写法以及注意事项
1)主函数只需要包含b.h 就可以,因为b.h中包含了a.h
2)a.h中不需要包含b.h,但要声明class b。在避免死循环的同 ...
- 2012-06-30 18:13
- 浏览 514
- 评论(0)
必杀技一:
由于许多软件需要以管理员的身份运行安装,而操作系统默认不是以管理员的身份执行程序的安装。
要解决这个问题,有一种方法就是
1)找到C:\Windows\System32\cmd.exe
2)点击右键,选择以管理员身份运行cmd
3)找到要安装的程序(假设是test.exe,存放到C盘),在cmd中输入call c:/test.exe
必杀技二:
一般情况下 ,软件由于兼容问题,在安装的时候弹出错误对话框。简单的解决办法就是
找到程序击右键,选择属性 - ...
- 2012-06-29 10:28
- 浏览 480
- 评论(0)
一,概述
外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。
二,例如
股民买股票,大部分散户自己买股票、国债、房地产,然后到时机抛售。这样就要求每个股民对每支股票都和了解才能保证赚钱,就是说每个股民都要跟一大堆股票打交道。
而更加优化的方法是,股民将钱交给专业的理财机构,定期获利达到双赢。这样股民只需要跟理财机构打交道即可。就是所谓的把一组股票通过理财机构这一个统一的接口调用。
1)单个股民投资基金代码
#include <iostream>
using namespa ...
- 2012-06-28 15:21
- 浏览 532
- 评论(0)
一,概述
字符测试函数 包含在头文件 <ctype.h>中
这些都是宏定义,而非真正函数。
1)isalnum 测试字符是否为英文字母或数字
#include <stdio.h>
#include <ctype.h>
int main()
{
char str[]="12#$%sdfsfsf";
int i;
for(i=0;str[i]!=0;++i)
if(isalnum(str[i]))
printf("%c is an alphanumberic characte ...
- 2012-06-24 23:33
- 浏览 806
- 评论(0)
一,概念
从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
二,实例
请用C++、Java、C#任意一种面向对象语言实现一个计算器控制台程序
三,菜鸟实现
#include <iostream>
#include <exception>
using namespace std;
int ...
- 2012-06-17 17:26
- 浏览 587
- 评论(0)
一,问题
上柜的《哈利波特》平装本系列,一共有五卷。假设每一卷单独销售均需8欧元。如果读者一次购买不同的两卷,就可以扣除5%的费用,三卷则更多。假设具体折扣的情况如下:
本数2 折扣 5%
本数3折扣 10%
本数4折扣 20%
本数 5 折扣25%
问题:设计出算法,能够计算出读者所购买的一批书的最低价格。
二,问题分析:
优化问题就用动态规划、贪心算法、分支限界轮番狂轰乱炸!!直到找到最优解!!
贪心策略
当书的数目N<5时,直接按照折扣购买
当书的数目N>5时,情况如下:
依此可以穷举出每一种组合的情况,对于任意一种情况(i, ...
- 2012-06-14 16:35
- 浏览 948
- 评论(0)
一,问题:
星期五的晚上,一帮同事在希格玛大厦附近的“硬盘酒吧”多喝了几杯。程序员多喝了几杯之后谈什么呢?自然是算法问题。有个同事说:“我以前在餐馆打工,顾客经常点非常多的烙饼。店里的饼大小不一,我 ...
- 2012-06-13 15:52
- 浏览 536
- 评论(0)
一,概述
先进先出的数据结构,底端加入元素,顶端移除元素,类似stack同样不能有遍历行为,没有迭代器。也是以既有容器为底端容器被归类为陪接器(container adapter),默认底端容器为deque。
二,使用
#include <queue>
using namespace std;
三,方法
queue::push( ); //底部插入元素
queue::pop( ); //顶端移除元素
queue::empty( ); //是否为空
queue::back( );
queue::front( );
queue::size( );
...
- 2012-06-11 14:50
- 浏览 754
- 评论(0)
一,关于tr
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是 ...
- 2012-06-07 10:16
- 浏览 551
- 评论(0)
一,计算素数
第一个程序:如果整数n,从2开始到n-1都不能整除则为素数。注意,n=2时一定是素数的判断
#include <iostream>
using namespace std;
int prime(int n)
{
int i;
for (i = 2; i < n; i++)
if(n%i == 0)
return 0;
return 1;
}
int main()
{
int i,n;
n=1000;
...
- 2012-06-06 10:49
- 浏览 419
- 评论(0)
统计文件行数(单个文件):
wc
-l file
例如:
homer@ubuntu:~/workspace/android/game$wc -l main.java906main.java
统计目录所有文件行数(全部目录):
- 2012-06-04 18:53
- 浏览 677
- 评论(0)
如果应用程序需要知道Framebuffer设备的相关参数,必须通过ioctl()系统调用来完成。
在头文件<linux/fb.h>中定义了所有的ioctl命令字,不过,最常用的ioctl命令字是下面这两个:FBIOGET_FSCREENINFO和FBIOGET_VSCREENINFO。
前者返回与Framebuffer有关的固定的信息,比如图形硬件上实际的帧缓存空间的大小、能否硬件加速等信息。
而后者返回的是与Framebuffer有关的可变信息。
之所以可变,是因为对同样的图形硬件,可以工作在不同的模式下。
简单来讲,一个支持1024x768x24 ...
- 2012-06-04 14:35
- 浏览 624
- 评论(0)