全球FlexSim系统仿真中文论坛
标题:
关于队列比较的求助
[打印本页]
作者:
diudiu123
时间:
2013-6-21 23:04
标题:
关于队列比较的求助
现在有三个队列长度 a,b,c,n有1,2,3三个取值
3 ?3 J+ r% s3 P% G; H4 Z
当a=b=c=0时,n=3
* M1 v% Z/ T( _- B
当a=b=c不等于0时,n=1
9 @( U- V1 u& E$ b# f B! ]
当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
7 z# u# S: \3 q! T' E
求助flexsim里这个代码怎么编
作者:
天性518
时间:
2013-6-23 11:46
1#
diudiu123
# C8 s# G- v, I* H; U' n/ K( }
1 e! _$ Y( G4 e# w" U
! I1 V, z k) o) _8 ~2 h V1 J" z
4 }5 d9 n6 {7 E3 a# f; z
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
0 P/ _/ f$ j8 X8 _6 k" z
1、三个队列,就用三个暂存区;
8 C, e# S. P4 G8 F
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
6 }3 T$ F; E% m- C% l( r L
3、n的值可以通过设置一个标签来获取;
作者:
慧娴亚伦
时间:
2013-6-23 13:05
队列是指暂存区排队还是传送带排队呢?
, y4 v1 v2 W# l9 x4 f5 w, {$ [& D% ]
我的建议是可以返回一个队列目前的数值,以暂存区为例
3 ?. D5 l7 a$ D. K |
treenode item = parnode(1);
5 [5 y6 z. W; g6 K& q
treenode current = ownerobject(c);
) \/ X" e M) m8 ?: c( V
int port = parval(2);
& Y( h& x6 V( r
int aa = getinput(node("/a",model()) - getoutput("/a",model());
1 s) E7 P% \, |# j0 o
int bb = getinput(node("/b",model()) - getoutput("/b",model());
" D+ d7 Y6 u5 E/ \- f
int cc = getinput(node("/c",model()) - getoutput("/c",model());
. ?8 p% t. _; J$ m( q* ~, f) z
if (aa=bb && bb=cc && cc==0){n=3;}
6 v2 o5 h; d9 Y
else if (aa=bb && bb=cc){n=1;}
9 Z1 y8 C, `+ _$ }, s
else if (aa<bb && bb<=cc){n=1;}
: R5 H0 Z7 `# L. n$ ?
else if (bb<aa && aa<=cc){n=2;}
. ^" w. r' I/ G: C; C
else if (cc<aa && aa<=bb){n=3;}
: j( [% W) |$ }" q
( ^- r) R# u3 R; J
由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
作者:
diudiu123
时间:
2013-6-23 21:30
2#
天性518
4 p3 d! l) N m2 b+ A) c* s4 a
* Y- K# g. m. t k& p
1 D' a q8 l: B& b3 z7 H+ }
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
作者:
diudiu123
时间:
2013-6-23 21:31
3#
慧娴亚伦
7 ]6 ^1 Y) }' x( }8 P: L
( b' K( f' _6 `8 d" @% t
: y$ U0 f' Z$ H0 q: t- s
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
作者:
diudiu123
时间:
2013-6-23 21:44
3#
慧娴亚伦
/ {+ g2 p& u* N0 p
' S2 ~, O. K" `: p0 U, Z; S4 z
4 z6 y/ f, c5 E
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了
作者:
diudiu123
时间:
2013-6-23 21:58
3#
慧娴亚伦
6 c( Y: {0 X% ^, y
* u+ B* V0 t$ k! C
. o, F' B: c" q+ f2 v9 h2 l
谢你啦,我在你的代码的基础改了改,出来了
+ T$ S; b2 k( c* f2 }3 G2 T
if (aa==bb && bb==cc && cc==0){n=3;}
7 U1 @# N4 h! W' M% c: M- e, N9 M
else if (aa==bb && bb==cc){n=1;}
) M. M8 G, P$ x, |& L
else if (aa<=bb && aa<=cc){n=1;}
3 |( E: o. ?% M, t Z3 m- R0 C2 g
else if (bb<=aa && bb<=cc){n=2;}
6 X' H3 C3 m: @3 T
else if (cc<=aa && cc<=bb){n=3;}
1 x, t" s2 K2 [* ]" ?
setitemtype(item,n) ;
4 c' O' Y* L9 E4 u# o
这样就好了
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3