2 0 0
1 2 0
1 1 1
1 0 2
0 3 0
0 2 1
0 1 3
0 0 4
下面是程序
model:
sets:
method/1..8/:n
parts/1..3/:
link(method,parts):m
endsets
data:
m=
2 0 0
1 2 0
1 1 1
1 0 2
0 3 0
0 2 1
0 1 3
0 0 4
enddata
min=@sum(method:n)
@for(parts(j):@sum(method(i):m(i,j)*n(i))>=200)
@for(method:@gin(n))
end
#include <stdio.h>int main() {
int i,j,L,W,a,b,dr,dc,rs,cs
int pLd,pWd,vLd,vWd// 板材长、宽方向余料尺寸
int parea,varea // 余料面积
int amount // 小料数量
int direction // 小料方向,长与L平行为0,垂直为1
char select[5]
FILE *fp
char filename[] = "data.txt"
if((fp = fopen(filename,"at")) == NULL) {
printf("\t无法打开数据文件:%s\n",filename)
return 1
}
while(1) {
printf("\t*** 板材下料助手 ***\n\n")
printf("\t1、输入板材及小料尺寸\n")
printf("\t2、显示下料信息\n")
printf("\t3、数据存盘\n")
printf("\t0、退出助手\n\n")
printf("\t请选择:")
scanf("%s",select)
switch(select[0]) {
case '1' :
printf("\t请输入板材及小料规格:")
while(scanf("%d%d%d%d",&L,&W,&a,&b) != 4)
printf("\t***** 非法数据!请重新输入:")
break
case '2' :
if(!(L && W && a && b)) {
printf("\t***** 缺少板材或小料规格数据。\n")
break
}
pLd = L % a, pWd = W % b// 平行方向下料
parea = L * pWd + W * pLd - pLd * pWd
vLd = L % b, vWd = W % a// 垂直方向下料
varea = L * vWd + W * vLd - vLd * vWd
if(parea > varea) { // 垂直下料更合理
direction = 1
dr = a, dc = b
rs = W / a, cs = L / b
}
else { // 水平下料更合理
direction = 0
dr = b, dc = a
rs = W / b, cs = L / a
}
amount = rs * cs
printf("\t板材规格:%d × %d\n",L,W)
printf("\t小料规格:%d × %d\n",a,b)
printf("\t小料数量:%d\n",amount)
printf("\t下料方向:%s\n",direction ? "垂行烂直" : "水平")
printf("\t余料面积:%d\n",direction ? varea : parea)
printf("\t使 用 率:%.0lf%%\n",100.0 * amount * a * b / L / W)
printf("\t小料位置数据:\n")
for(i = 0 i < 档岩漏rs * dr i += dr) {
for(j = 0 j < cs * dc j += dc)
printf("\t%d,%d\n",i,j)
}
printf("\n")
break
case '3' :
if(!(L && W && a && b)) {
printf("\t*****缺少板材及小料规格数据。\n")
break
}
fprintf(fp,"板材规格:%d × %d\n",L,W)
fprintf(fp,"小料规格:%d × %d\n",a,b)
fprintf(fp,"小料数量:%d\n",amount)
fprintf(fp,"下料方向:%s\n",direction ? "垂直" : "水平")
fprintf(fp,"余料面积:%d\n",direction ? varea : parea)
fprintf(fp,"使 用 率:%.0lf%%\n",100.0 * amount * a * b / L / W)
fprintf(fp,"小料位置数据:\n")
for(i = 0 i < rs * dr i += dr) {
for(j = 0 j < cs * dc j += dc)
fprintf(fp,"%d,%d\n",i,j)
}
fprintf(fp,"\n")
break
case '0' : fclose(fp) 枣郑return 0
}
}
fclose(fp)
return 0
}
创盈门激薯虚窗下料软件最新旗舰增强版!无需电脑基础, *** 作简单、分配对接客服终身服务,教学。支持窗式通风器,孔位工艺图,仓库管理,财务管理,工人计件工资等管理
无需CAD基础,可10秒绘制高清渲染效果图,新增加家装异型图;
并自动生成下料单(多达30多种),大样图(10多种样式)上可带料单
型材切手宴割方案,预算报价(可区明燃分工程和家装)、成本核算、型材(玻璃)尺寸,一键全面解决门窗生产下料过程中所有问题!
[支持旧版用户补差价换购高版本]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)