- UID
- 215174
- 积分
- 286
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-1-29
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
在工程应用中经常碰到一个结构物有多种组合,比如一个桥墩它的墩帽部分可以为等高墩帽,也可以为高低墩帽,还可以没有墩帽,墩柱可以为圆柱也可以为方柱等等,基础部分可以为桩基础也可以为扩基。由墩帽、墩柱、基础的多种类型组合成了一个桥墩。那么如何定义这样一个复杂的结构呢,作者根据windows窗口创建时定制窗口的状态联想到用枚举类型解决这一问题,简单思考如下:
1、定义的桥墩结构多种类型的枚举:
typedef enum tag_ENUM_PIERPART
{
//墩帽类型
SAMECAT = 1 << 0, //等高墩帽
DIFFCAT = 1 << 1, //高低墩帽
//墩柱类型
CIRPILLAR = 1 << 2,//圆柱
RECTPILLAR = 1 << 3, //方柱
THHOPILLAR = 1 << 4, //空心薄壁柱
VASEPILLAR = 1 << 5, //花瓶墩
//扩基类型
PILEFOUNDATION = 1<<6 // 桩基础
SPREADFOUNDATION = 1<<7 //扩基
}PIERPART;
2、定制一个桥墩
PIERPART dwPierFlags = SAMECAT | CIRPILLAR | PILEFOUNDATION;//由墩帽、墩柱、基础三部分组成
3、初始化
PierStructInit(PIERPART dwPierFlags)
{
if(dwPierFlags&SAMECAT)
{
等高墩帽初始化;
}
if(dwPierFlags&DIFFCAT)
{
高低墩帽初始化;
}
if(dwPierFlags&CIRPILLAR )
{
圆柱墩柱初始化;
}
if(dwPierFlags&RECTPILLAR)
{
矩形墩柱初始化;
}
if(dwPierFlags&THHOPILLAR )
{
空心薄壁柱墩柱初始化;
}
if(dwPierFlags&VASEPILLAR )
{
花瓶墩墩柱初始化;
}
if(dwPierFlags&PILEFOUNDATION )
{
桩基础初始化;
}
if(dwPierFlags&SPREADFOUNDATION )
{
扩基初始化;
}
}
以上内容只是小编的思考,尚没有在程序中使用,因为作者一开始没有这样实现,只是后来随者经验的不断丰富才想到的,现在拿出来同大家分享,以便大家少走弯路,共同进步,如果你觉得那里不妥或不对,欢迎批评指出,小编不胜感激。 |
|