全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值6 P5 C7 ]; O  _
   当a=b=c=0时,n=3
- z- `6 \2 \2 Y) k   当a=b=c不等于0时,n=1( p) a" w$ ?1 t  s% v
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
' _7 z' [2 {2 r  K* U! y: [   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123 8 i1 F; k3 U0 G9 l/ M' W4 ~- L* g# S
9 w' e3 b& `6 [% V, T. W* \! m
- e8 ]; D1 f7 e
3 f+ x. I  ^9 Y  z8 o
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。; r$ q2 i! l/ ^( r+ q
1、三个队列,就用三个暂存区;: f' q4 l# n+ \( I1 i
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);: Z9 m/ ~0 O( a
3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?/ O) V" S" t7 u: T
我的建议是可以返回一个队列目前的数值,以暂存区为例( W- H7 g& ~4 x
treenode item = parnode(1);. \, r! u. `9 E5 o! n
treenode current = ownerobject(c);
1 ]' x8 x: c/ R0 |5 I- P5 uint port = parval(2);' i% R7 V4 i0 o5 z+ C+ ^9 {
int aa = getinput(node("/a",model()) - getoutput("/a",model());
! R6 g4 P9 |* F- H8 c% Yint bb = getinput(node("/b",model()) - getoutput("/b",model());
8 N- w* P! ^' p6 Iint cc = getinput(node("/c",model()) - getoutput("/c",model());5 a" j7 r4 u  u' z( A2 i0 M
if (aa=bb && bb=cc && cc==0){n=3;}
3 T( [) G; L( }* c9 }else if (aa=bb && bb=cc){n=1;}- h) c" n9 V# \( e9 ^( f
else if (aa<bb && bb<=cc){n=1;}
4 }$ Y8 m9 Y( }& @else if (bb<aa && aa<=cc){n=2;}! Q  l* P* }4 T4 l: g  ]
else if (cc<aa && aa<=bb){n=3;}
/ j# k5 A' W. \* d- T3 f2 ?% u' N
7 R! v( Q% Q8 n' _0 u7 `7 s由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
' v8 Z, Z+ a* P( ?' I/ v/ w& w+ C, M# o3 w: k
& M- H2 F7 a1 j$ p: U1 _# W
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦 8 R  S) q  k$ J7 ^& m! D

" Y/ `- }3 F6 o$ ]1 M9 s3 F* w% G) b
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
, U! P7 V& B2 v7 D1 v9 N+ R# Y
4 W! q4 z* ?2 w' g# G% t0 C. J; U+ u6 r0 B/ U5 J
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦 ( U2 o* f- s# U3 w8 C
% j- s  r, G8 v3 ]2 u; E
% H3 h/ F. T" R& ^  i5 x, _' o6 l
谢你啦,我在你的代码的基础改了改,出来了
6 O/ _" b7 J+ Aif (aa==bb && bb==cc && cc==0){n=3;}
* T# Z; V) h+ e% @( ^/ Q. d) zelse if (aa==bb && bb==cc){n=1;}
. k; A' N" u8 N4 Z$ s+ Kelse if (aa<=bb && aa<=cc){n=1;}
) D( ~- t$ b/ q! p  Z! eelse if (bb<=aa && bb<=cc){n=2;}
2 x- g& s7 R8 kelse if (cc<=aa && cc<=bb){n=3;}+ j+ l6 c1 X1 g+ c! E. ~
   setitemtype(item,n) ;; A, ]$ X  X9 q0 S
这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-1 08:26 , Processed in 0.086859 second(s), 14 queries .

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

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