c语言板材下料,我需要完整程序

c语言板材下料,我需要完整程序,第1张

#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

}

箍筋长度计算方法与前茄公式

一般的算法是箍筋长度=(梁宽-保护层*2 +梁高-保护层*2)*2+1.9d*2+max(10d,75mm)*2

具体:

1、如如御果按实计算及下料长度,那渣悔岩么算法是:

(1) 90/90的箍筋钢筋计算公式为:

箍筋内皮周长-5个90°弯钩内皮差(0.288d)+2个弯钩处的平直段长度(10d>75mm时,平直长度为10d,10d<75mm时,平直长度为75mm)

即在钢筋规格为10d>75mm时,箍筋长度=构件周长-8保护层厚度+18.56d,钢筋规格为10d<75mm,即箍筋直径为6mm时,箍筋长度=构件周长-8保护层厚度+141.36

(2)90/180的箍筋钢筋计算公式为:

箍筋内皮周长-4个90°弯钩内皮差(0.288d)+1个180°弯钩中心线长+2个弯钩平直段长度(10d>75mm时,平直长度为10d,10d<75mm时,平直长度为75mm)

即在钢筋规格为10d>75mm时,箍筋长度=构件周长-8保护层厚度-28.268d,钢筋规格为10d<75mm,即箍筋直径为6mm时,箍筋长度=构件周长-8保护层厚度+199.61

(3)135/135的箍筋钢筋计算公式为:

箍筋内皮周长-3个90°弯钩内皮差(0.288d)+2个135°弯钩中心线长(135°弯钩中心长度=3π/4*(R+d/2),R=2.5d)+2个弯钩平直段长度(10d>75mm时,平直长度为10d,10d<75mm时,平直长度为75mm)

即在钢筋规格为10d>75mm时,箍筋长度=构件周长-8保护层厚度+33.266d,钢筋规格为10d<75mm,即箍筋直径为6mm时,箍筋长度=构件周长-8保护层厚度+229.6, 箍筋内皮周长长度=2*(H-2bhc)+2*(B-2bhc)=2(H+B)-8bhc(即构件周长-8个保护层)  

扩展资料

以梁箍筋为例

计算思路为箍筋长度=(梁宽-保护层*2 +梁高-保护层*2)*2+11.9d*2+8d

11.9D实际上是弯钩加上量度差值的结果,我们知道弯钩平直段长度是10D,那么量度差值应该是1.9D,8d是因为扣减保护层时,都是扣至受力钢筋的外皮,箍筋自身的钢筋还存在一定的长度,预算中计算箍筋长度时,都是按照外皮计算的,箍筋四条边多减掉了8d(每边2d),所以我们在计算的时候还得加回来。

外包法:混凝土截面尺寸轿余-钢筋保护层厚度(根据设计要求和规范规定,宽、高均乘2)-弯曲调整值首樱(45度0.5d;90度2d;135度2.5d,有一个什么样弯头就要算者帆丛一个)+平直长度(钢筋直径乘10d乘2)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12550852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存