全球FlexSim系统仿真中文论坛

搜索
查看: 4759|回复: 6
打印 上一主题 下一主题

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值* S' P9 \& O; I. Y+ t
   当a=b=c=0时,n=3, I6 L) G! P2 B" x
   当a=b=c不等于0时,n=1. s( m2 x0 _5 \9 k
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3( T" v4 C, p+ c8 n. ^2 ?
   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123 2 @/ g# W5 j8 c+ k
6 Q* n/ O& D: F# o5 I9 K0 P

" y1 m0 X% `; p" u
' Q. c. V8 {2 \) V6 F你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。) H% k5 O& |# l1 C# D
1、三个队列,就用三个暂存区;
7 g8 O9 Q6 ]  c  w# B( _( s5 t2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
' F% Z6 T& s3 w! H3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?
( s/ o6 ^0 g* S& M/ h8 O我的建议是可以返回一个队列目前的数值,以暂存区为例
1 T3 g6 g# ^; T! W& }treenode item = parnode(1);0 U4 N7 t; ~' `! @# h( B) s+ t: t
treenode current = ownerobject(c);
$ ^) b* I' i* I. Fint port = parval(2);; c) |: b: n+ t( N+ ~
int aa = getinput(node("/a",model()) - getoutput("/a",model());7 d; H9 s7 {6 Y; L) p) o
int bb = getinput(node("/b",model()) - getoutput("/b",model());6 h. J: r3 O( q3 |* N
int cc = getinput(node("/c",model()) - getoutput("/c",model());* u) b3 s0 \' j$ R( }1 w
if (aa=bb && bb=cc && cc==0){n=3;}
* w: A) G2 l, Y; [! \0 r* q- ?9 T, m6 Pelse if (aa=bb && bb=cc){n=1;}8 k0 H9 `1 d( v! g1 b$ O
else if (aa<bb && bb<=cc){n=1;}1 E% l0 k$ b: ~) h4 n5 j4 g
else if (bb<aa && aa<=cc){n=2;}) `, R( z+ H) h$ M" E# H
else if (cc<aa && aa<=bb){n=3;}
& h* c$ u; i5 _+ T+ P, }+ c5 K0 ^3 l/ m& a
由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
+ A$ R) o0 B6 {7 }  r/ w0 m7 K( w; a, c! m+ `. w' e0 {# a6 J
, v, W% c2 w$ G* v$ {
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦
: ]) W; I' x' l3 e, c* I
2 }- b$ S2 E" e( w: y4 w
' N" S, V& R# V! X* k- n7 t6 B6 C' d就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
8 _  S, q0 t* ~/ k- `! ]/ C
. p& \, ]2 a) i0 _' n+ X% Z( O( e' U7 U$ c9 D) c
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦 , m- |2 f9 I( @8 w2 ~( k$ m& F

" x# U4 o0 X( P. X( p$ F6 M% k% m3 v" O
谢你啦,我在你的代码的基础改了改,出来了0 c) w; ]" F: O# a3 k1 u
if (aa==bb && bb==cc && cc==0){n=3;}, N( p! ^$ l# `
else if (aa==bb && bb==cc){n=1;}
2 |. B. I0 [7 f% ~else if (aa<=bb && aa<=cc){n=1;}
+ ^: w) S5 [* b/ `: B0 Pelse if (bb<=aa && bb<=cc){n=2;}$ P9 n- o2 c* W$ d8 A5 p
else if (cc<=aa && cc<=bb){n=3;}+ L# q# _) L; ]
   setitemtype(item,n) ;7 h3 V; O: @& m* o  y/ x+ |5 \: Z
这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2024-5-15 02:45 , Processed in 0.062035 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表