全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值% y: L. D6 ^; X3 r
   当a=b=c=0时,n=3# Z; l& S8 V, |" E8 X. Z( ~
   当a=b=c不等于0时,n=1
2 z# T6 O5 `3 V! P   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
% E' V. A" s8 @$ t/ K$ z   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123 2 D2 Q4 J- p: J, k* q

  K& T$ y" _2 V! P8 P0 [0 ?' l+ t* w. [: l
  r) R" Z1 V1 O8 j
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
4 ~& U, f9 z+ I" J3 q1 f% C2 I1、三个队列,就用三个暂存区;
- N: R( X, j6 n& k, O, O# g3 e2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
3 a; Q, v! K# t+ \" T* M1 R$ f4 Q" ]3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?
, A4 Y& d( F3 b# _% _' q& ?7 Z我的建议是可以返回一个队列目前的数值,以暂存区为例; j. y# M) v0 y/ |/ Z4 I0 I
treenode item = parnode(1);+ v5 y6 J9 \5 x. B/ H
treenode current = ownerobject(c);% h: h1 k5 W1 W! Y2 F) c4 ^( p
int port = parval(2);6 w: _9 k- j9 O- Z* Q/ Y
int aa = getinput(node("/a",model()) - getoutput("/a",model());
3 M/ T9 i, S" \) d1 F+ {! p0 yint bb = getinput(node("/b",model()) - getoutput("/b",model());
6 N+ s  C8 P) |% @+ ]4 D  @int cc = getinput(node("/c",model()) - getoutput("/c",model());6 ^% z2 D  z  C- I1 b
if (aa=bb && bb=cc && cc==0){n=3;}2 G! P- Y* W( ^2 d4 u8 @
else if (aa=bb && bb=cc){n=1;}
8 {' C, y* H: E! Qelse if (aa<bb && bb<=cc){n=1;}" |5 k8 ~, D; y0 h/ [' ^& f( V1 h
else if (bb<aa && aa<=cc){n=2;}' k" g6 V- U6 \+ [
else if (cc<aa && aa<=bb){n=3;}
5 N% a) }3 t' B( J& f3 ]6 S1 I: G; H  ~) B6 A3 V
由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
* q9 Q2 M/ [& q
3 v! {3 D# g5 |" C& ~/ B! i: t
+ B$ K$ f3 `( h" u4 `7 y  \. q唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦
! {) U; U& E7 i/ c( G
2 ?- r$ Z% H9 l# N4 A1 z( J# G4 W, r2 }! M/ p8 q
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
% D  W4 c; v2 u5 Y: B  ~& e% I5 R
: h% v  M) e0 f5 N! {% h
4 U5 }+ u+ Q; E$ Q6 m  O' X呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦
( G% \; o1 d$ G, [" w# z3 n1 q* R: O8 w0 s

$ x2 r) E; m/ c' d5 c% a# ~谢你啦,我在你的代码的基础改了改,出来了
) \. |, S) @: N+ L' W+ Aif (aa==bb && bb==cc && cc==0){n=3;}# E) x# f: V# A7 V
else if (aa==bb && bb==cc){n=1;}
/ s: d9 a$ J4 e; n7 q! J1 V" Jelse if (aa<=bb && aa<=cc){n=1;}- m/ Z; S  i6 J2 s, k- d
else if (bb<=aa && bb<=cc){n=2;}# e/ l9 F5 ^  h0 r3 {
else if (cc<=aa && cc<=bb){n=3;}
; |# u1 p* k: N: o7 m, a; ]   setitemtype(item,n) ;0 Z) W5 |( A- q4 s* t7 c
这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 00:39 , Processed in 0.080876 second(s), 14 queries .

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

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