哈工大-材料力學(xué)上機(jī)實(shí)驗(yàn)-懸臂梁彎矩?fù)隙?c語言完美整合_第1頁
哈工大-材料力學(xué)上機(jī)實(shí)驗(yàn)-懸臂梁彎矩?fù)隙?c語言完美整合_第2頁
哈工大-材料力學(xué)上機(jī)實(shí)驗(yàn)-懸臂梁彎矩?fù)隙?c語言完美整合_第3頁
哈工大-材料力學(xué)上機(jī)實(shí)驗(yàn)-懸臂梁彎矩?fù)隙?c語言完美整合_第4頁
哈工大-材料力學(xué)上機(jī)實(shí)驗(yàn)-懸臂梁彎矩?fù)隙?c語言完美整合_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

HarbinInstituteofTechnology課程設(shè)計(jì)課程名稱:材料力學(xué)設(shè)計(jì)題目:懸臂梁的彎矩及撓度院系:機(jī)電工程學(xué)院班級(jí):設(shè)計(jì)者:學(xué)號(hào):設(shè)計(jì)時(shí)間: 指導(dǎo)老師:哈爾濱工業(yè)大學(xué)一問題描述:在懸臂梁條件下,進(jìn)行材料選取或者探究某材料是否滿足設(shè)計(jì)和使用要求時(shí),如果能夠快速計(jì)算出材料任意截面的彎矩和撓度,乃至于整體的最大彎矩,最大撓度,則可以起到事半功倍的效果。為此,我設(shè)計(jì)了這個(gè)c語言程序。這個(gè)c語言程序有以下兩個(gè)特點(diǎn):界面比較友善,可以根據(jù)實(shí)際要求,具體選擇計(jì)算的方式。計(jì)算迅速,占用空間小,簡(jiǎn)單實(shí)用,適用面廣。二界面展示及源代碼:主界面:圖一:主選擇界面這個(gè)界面的最顯著的特點(diǎn)是:界面較為友好,清晰;而且用戶可以根據(jù)實(shí)際情況具體選擇運(yùn)用哪種方法進(jìn)行計(jì)算。具體的選項(xiàng):1-8都有文字標(biāo)注,選擇只需輸入數(shù)字,然后回車便可出現(xiàn)下一步的具體提示。(2)1:計(jì)算一個(gè)力作用下的任意截面的彎矩,撓度:【1】源代碼:#include<stdio.h>#include<math.h>doubleMz,l,a,x,v,E,I,b,F;main(){ printf("請(qǐng)輸入長(zhǎng)度l\n"); scanf("%lf",&l); printf("請(qǐng)輸入長(zhǎng)度a\n"); scanf("%lf",&a); printf("請(qǐng)輸入彈性模量E\n"); scanf("%lf",&E); printf("請(qǐng)輸入極慣性矩I\n"); scanf("%lf",&I); printf("請(qǐng)輸入力F\n"); scanf("%lf",&F); printf("請(qǐng)輸入x\n"); scanf("%lf",&x); b=l-a; if(x>0&&x<a) { Mz=F*(l-a)*x/l; v=-F*b*x*(l*l-x*x-b*b)/(6*E*I*l); printf("Mz=%f\n",Mz); printf("v=%f\n",v); } elseif(x>a&&x<l) { Mz=F*a*(l-x)/l; v=-F*b*(l/b*pow(x-a,3)+(l*l-b*b)*x-x*x*x)/(6*E*I*l); printf("Mz=%f\n",Mz); printf("v=%f\n",v); } else { printf("數(shù)值溢出\n"); }}【2】檢驗(yàn)數(shù)據(jù):條件:L=1m,E=4.5GPa。I=0.0001m4QUOTE,F(xiàn)=1000N,a=0.6m,x=0.3m;理論運(yùn)算結(jié)果:Mz=120NmV=-0.000033m【3】程序運(yùn)行結(jié)果:圖二:程序一運(yùn)行 結(jié)論:運(yùn)行結(jié)果與理論運(yùn)算結(jié)果相同,可以使用。(3)一個(gè)力偶作用下的任意截面的彎矩,撓度?!?】源代碼:#include<stdio.h>#include<math.h>doubleMz,l,a,x,v,E,I,b,M;main(){printf("請(qǐng)輸入長(zhǎng)度l\n");scanf("%lf",&l);printf("請(qǐng)輸入長(zhǎng)度a\n");scanf("%lf",&a);printf("請(qǐng)輸入彈性模量E\n");scanf("%lf",&E);printf("請(qǐng)輸入極慣性矩I\n");scanf("%lf",&I);printf("請(qǐng)輸入彎矩M\n");scanf("%lf",&M);printf("請(qǐng)輸入x\n");scanf("%lf",&x);b=l-a;if(x>0&&x<a){Mz=M*x/l;v=M*x*(l*l-3*b*b-x*x)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}elseif(x>a&&x<l){Mz=M*(l-x)/l;v=M*(-x*x*x+3*l*(x-a)*(x-a)+(l*l-3*b*b)*x);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數(shù)值溢出\n");}}【2】檢驗(yàn)數(shù)據(jù):條件:L=1m,E=4.5GPa。I=0.0001QUOTEm4,M=1000Nm,a=0.6m,x=0.3m;理論計(jì)算結(jié)果:Mz=300.00NmV=0.000048m【3】程序運(yùn)行結(jié)果: 圖三:程序一運(yùn)行 結(jié)論:運(yùn)行結(jié)果與理論運(yùn)算結(jié)果相同,可以使用。(4)一段分布力作用下的任意截面的彎矩?fù)隙龋骸?】源代碼:#include<stdio.h>#include<math.h>doubleq,l,c,d,x,E,I,v,Mz;doubleC,D,Ec,Fc;doubleFR1,FR2;/*函數(shù)功能:奇異函數(shù)*/doubleqiyi(doublex,doubley){ if(x<=y) return0; if(x>y) returnx-y;}main(){printf("請(qǐng)輸入長(zhǎng)度l\n");scanf("%lf",&l);printf("請(qǐng)輸入彈性模量E\n");scanf("%lf",&E);printf("請(qǐng)輸入極慣性矩I\n");scanf("%lf",&I);printf("請(qǐng)輸入分布力q\n");scanf("%lf",&q);printf("請(qǐng)輸入長(zhǎng)度c\n");scanf("%lf",&c);printf("請(qǐng)輸入長(zhǎng)度d\n");scanf("%lf",&d);printf("請(qǐng)輸入x\n");scanf("%lf",&x);C=qiyi(x,c); D=qiyi(x,d); FR2=(-q*(d*d-c*c)/2)/l;//求支反力 FR1=-q*(d-c)-FR2; Ec=-(FR1*pow(l,3)/6-q*pow(l-c,4)/24+q*pow(l-d,4)/24)/E/I/l; Fc=0; Mz=(FR1*x-0.5*q*C*C+0.5*q*D*D); v=(FR1*pow(x,3)/6-q*pow(C,4)/24+q*pow(D,4)/24)/E/I+Ec*x; printf("截面的彎矩為:%f\n",Mz); printf("截面的撓度為:%f\n",v);}【2】檢驗(yàn)數(shù)據(jù):c,d為q作用的起止長(zhǎng)度坐標(biāo)。條件:L=1m,E=4.5GPa。I=0.0001m4,q=1000N/m,c=0.6m,d=0.8m,x=0.3m;理論計(jì)算結(jié)果:Mz=-18NmV=0.000007m【3】程序運(yùn)行結(jié)果:圖三:程序一運(yùn)行結(jié)論:運(yùn)行結(jié)果與理論運(yùn)算結(jié)果相同,可以使用。n個(gè)力共同作用下的任意截面的彎矩,撓度:【1】源代碼;#include<stdio.h>#include<math.h>doubleMzs,l,a[10],x,vs,E,I,F[10],Mz[10],v[10];inti,nF;main(){ printf("請(qǐng)輸入長(zhǎng)度l\n"); scanf("%lf",&l); printf("請(qǐng)輸入彈性模量E\n"); scanf("%lf",&E); printf("請(qǐng)輸入極慣性矩I\n"); scanf("%lf",&I); printf("請(qǐng)輸入集中載荷F的個(gè)nF:"); scanf("%d",&nF); printf("請(qǐng)輸入集中載荷F的值和位置a:"); for(i=0;i<nF;i++) { scanf("%lf%lf",&F[i],&a[i]); } printf("請(qǐng)輸入x\n"); scanf("%lf",&x);for(i=0;i<nF;i++){ if(x>0&&x<a[i]) { Mz[i]=F[i]*(l-a[i])*x/l; v[i]=-F[i]*(l-a[i])*x*(l*l-x*x-(l-a[i])*(l-a[i]))/(6*E*I*l); } elseif(x>a[i]&&x<l) { Mz[i]=F[i]*a[i]*(l-x)/l; v[i]=-F[i]*(l-a[i])*(l/(l-a[i])*pow(x-a[i],3)+(l*l-(l-a[i])*(l-a[i]))*x-x*x*x)/(6*E*I*l); } Mzs=Mzs+Mz[i]; vs=vs+v[i];}printf("截面的彎矩為%f",Mzs);printf("截面的撓度為%f",vs);}【2】檢驗(yàn)數(shù)據(jù):a[n]為F[n]的作用位置坐標(biāo)。條件:L=1m,E=4.5GPa。I=0.0001m4,F(xiàn)[1]=1000N,F(xiàn)[2]=2000N,a[1]=0.6m, a[2]=0.8m, x=0.4m;理論計(jì)算結(jié)果:Mz=320.00Nm V=-0.000088m【3】程序運(yùn)行結(jié)果:結(jié)論:運(yùn)行結(jié)果與理論運(yùn)算結(jié)果相同,可以使用。h個(gè)力偶共同作用作用下的任意截面的彎矩,撓度:【1】源代碼:#include<stdio.h>#include<math.h>doubleMz[10],l,b[10],x,v[10],E,I,M[10],Mzs,vs;inti,nM;main(){printf("請(qǐng)輸入長(zhǎng)度l\n");scanf("%lf",&l);printf("請(qǐng)輸入彈性模量E\n");scanf("%lf",&E);printf("請(qǐng)輸入極慣性矩I\n");scanf("%lf",&I); printf("請(qǐng)輸入外力偶M的個(gè)數(shù)nM"); scanf("%d",&nM); printf("請(qǐng)輸入外力偶值和位置b:"); for(i=0;i<nM;i++) { scanf("%lf%lf",&M[i],&b[i]); }printf("請(qǐng)輸入x\n");scanf("%lf",&x);for(i=0;i<nM;i++) {if(x>0&&x<b[i]){Mz[i]=M[i]*x/l;v[i]=M[i]*x*(l*l-3*(l-b[i])*(l-b[i])-x*x)/(6*E*I*l);}elseif(x>b[i]&&x<l){Mz[i]=M[i]*(l-x)/l;v[i]=M[i]*(-x*x*x+3*l*(x-b[i])*(x-b[i])+(l*l-3*(l-b[i])*(l-b[i]))*x);} Mzs=Mzs+Mz[i]; vs=vs+v[i]; }printf("截面的彎矩為%f",Mzs);printf("截面的撓度為%f",vs);}【2】檢驗(yàn)數(shù)據(jù):條件:L=1m,E=4.5GPa。I=0.0001QUOTEm4,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m, b[2]=0.7m, x=0.3m;理論計(jì)算結(jié)果:Mz=900.00NmV=0.00019m【3】程序運(yùn)行結(jié)果:結(jié)論:運(yùn)行結(jié)果與理論運(yùn)算結(jié)果相同,可以使用。(7)m段分布力共同作用下的任意截面的彎矩,撓度:【1】源代碼:#include<stdio.h>#include<math.h>doubleq[10],l,c[10],d[10],x,E,I,v[10],Mz[10],Mzs,vs;doubleC[10],D[10],Ec[10],Fc[10];doubleFR1[10],FR2[10];inti,nq;doubleqiyi(doublex,doubley){ if(x<=y) return0; if(x>y) returnx-y;}main(){printf("請(qǐng)輸入長(zhǎng)度l\n");scanf("%lf",&l);printf("請(qǐng)輸入彈性模量E\n");scanf("%lf",&E);printf("請(qǐng)輸入極慣性矩I\n");scanf("%lf",&I);printf("請(qǐng)輸入均布力的個(gè)數(shù)nq"); scanf("%d",&nq); printf("請(qǐng)輸入分布力q的值和位置c,d:"); for(i=0;i<nq;i++) { scanf("%lf%lf%lf",&q[i],&c[i],&d[i]); }printf("請(qǐng)輸入x\n");scanf("%lf",&x); for(i=0;i<nq;i++) { C[i]=qiyi(x,c[i]); D[i]=qiyi(x,d[i]); FR2[i]=(-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力 FR1[i]=-q[i]*(d[i]-c[i])-FR2[i]; Ec[i]=-(FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24)/E/I/l;Mz[i]=(FR1[i]*x-0.5*q[i]*C[i]*C[i]+0.5*q[i]*D[i]*D[i]); v[i]=(FR1[i]*pow(x,3)/6-q[i]*pow(C[i],4)/24+q[i]*pow(D[i],4)/24)/E/I+Ec[i]*x; Mzs=Mzs+Mz[i]; vs=vs+v[i]; }printf("截面的彎矩為%f",Mzs);printf("截面的撓度為%f",vs);}【2】檢驗(yàn)數(shù)據(jù):條件:L=1m,E=4.5GPa。I=0.0001QUOTEm4,q[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m, c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理論計(jì)算結(jié)果:Mz=-78NmV=0.000032m【3】程序運(yùn)行結(jié)果:結(jié)論:運(yùn)行結(jié)果與理論運(yùn)算結(jié)果相同,可以使用。(8)n個(gè)力,h個(gè)力偶,m段分布力共同作用下的任意截面的彎矩,撓度:【1】源代碼:#include<stdio.h>#include<math.h>doubleF[10],M[10],q[10];//定義各個(gè)載荷大小的數(shù)組doubleMz[10],v[10],l,E,I,Mzs,vs,Mzmax,vmax,Mzmin,vmin;//定義桿的基本參數(shù)doublea[10],b[10],c[10],d[10];//定義各個(gè)載荷的橫坐標(biāo)doubleA[10],B[10],C[10],D[10];//定義奇異函數(shù)中間變量doubleEc[10],Fc[10];//定義積分常數(shù)doublex;//定義任一截面橫坐標(biāo)doubleFR1[10],FR2[10];//定義支反力FR1,F(xiàn)R2inti,Q;//定義循環(huán)變量intnM,nF,nq,nn;//定義載荷個(gè)數(shù)/*函數(shù)功能:奇異函數(shù)*/doubleqiyi(doublex,doubley){ if(x<=y) return0; if(x>y) returnx-y;}voidps(){ printf("請(qǐng)輸入長(zhǎng)度l\n"); scanf("%lf",&l); printf("請(qǐng)輸入彈性模量E\n"); scanf("%lf",&E); printf("請(qǐng)輸入極慣性矩I\n"); scanf("%lf",&I);printf("請(qǐng)輸入集中載荷F的個(gè)nF:"); scanf("%d",&nF); printf("請(qǐng)輸入集中載荷F的值和位置a:"); for(i=0;i<nF;i++) { scanf("%lf%lf",&F[i],&a[i]); }printf("請(qǐng)輸入外力偶M的個(gè)數(shù)nM"); scanf("%d",&nM); printf("請(qǐng)輸入外力偶值和位置b:"); for(i=0;i<nM;i++) { scanf("%lf%lf",&M[i],&b[i]); }printf("請(qǐng)輸入均布力的個(gè)數(shù)nq"); scanf("%d",&nq); printf("請(qǐng)輸入分布力q的值和位置c,d:"); for(i=0;i<nq;i++) { scanf("%lf%lf%lf",&q[i],&c[i],&d[i]); }printf("請(qǐng)輸入任一截面橫坐標(biāo)x\n"); scanf("%lf",&x);nn=nF;//找到最大載荷數(shù) if(nM>nn) nn=nM; if(nq>nn) nn=nq;}main(){ps();//初始數(shù)據(jù)輸入 for(i=0;i<nn;i++) { A[i]=qiyi(x,a[i]); B[i]=qiyi(x,b[i]); C[i]=qiyi(x,c[i]); D[i]=qiyi(x,d[i]); FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力 FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i];Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*po w(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求積分常數(shù)if(x<=b[i])Q=0;if(x>b[i])Q=1;Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2;v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow (C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x;Mzs=Mzs+Mz[i]; vs=vs+v[i];}printf("截面的彎矩為%f",Mzs);printf("截面的撓度為%f",vs);}【2】檢驗(yàn)數(shù)據(jù):條件:L=1m,E=4.5GPa。I=0.0001QUOTE,F(xiàn)[1]=1000N,F(xiàn)[2]=2000N,a[1]=0.6m, a[2]=0.8m,M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m, b[2]=0.8mq[1]=1000Nm,q[2]=2000Nm,c[1]=0.4m,c[2]=0.5m, d[1]=0.6m,d[2]=0.7m,x=0.4m;理論計(jì)算結(jié)果:Mz=-1570.00NmV=0.00037m【3】程序運(yùn)行結(jié)果:結(jié)論:運(yùn)行結(jié)果與理論運(yùn)算結(jié)果相同,可以使用。(9)n個(gè)力,h個(gè)力偶,m段分布力共同作用下的最大彎矩,最大撓度。【1】源代碼:#include<stdio.h>#include<math.h>doubleF[10],M[10],q[10];//定義各個(gè)載荷大小的數(shù)組DoubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;/doublea[10],b[10],c[10],d[10];//定義各個(gè)載荷的橫坐標(biāo)doubleA[10],B[10],C[10],D[10];//定義奇異函數(shù)中間變量doubleEc[10],Fc[10];//定義積分常數(shù)doublex;//定義任一截面橫坐標(biāo)doubleFR1[10],FR2[10];//定義支反力FR1,F(xiàn)R2inti,Q;//定義循環(huán)變量intj;ntnM,nF,nq,nn;//定義載荷個(gè)數(shù)/*函數(shù)功能:奇異函數(shù)*/doubleqiyi(doublex,doubley){ if(x<=y) return0; if(x>y) returnx-y;}/*函數(shù)功能:初始數(shù)據(jù)輸入*/voidps(){ printf("請(qǐng)輸入長(zhǎng)度l\n"); scanf("%lf",&l); printf("請(qǐng)輸入彈性模量E\n"); scanf("%lf",&E); printf("請(qǐng)輸入極慣性矩I\n"); scanf("%lf",&I); printf("請(qǐng)輸入集中載荷F的個(gè)nF:"); scanf("%d",&nF); printf("請(qǐng)輸入集中載荷F的值和位置a:"); for(i=0;i<nF;i++) { scanf("%lf%lf",&F[i],&a[i]); } printf("請(qǐng)輸入外力偶M的個(gè)數(shù)nM"); scanf("%d",&nM); printf("請(qǐng)輸入外力偶值和位置b:"); for(i=0;i<nM;i++) { scanf("%lf%lf",&M[i],&b[i]);}printf("請(qǐng)輸入均布力的個(gè)數(shù)nq"); scanf("%d",&nq); printf("請(qǐng)輸入分布力q的值和位置c,d:"); for(i=0;i<nq;i++) {scanf("%lf%lf%lf",&q[i],&c[i],&d[i]);}printf("請(qǐng)輸入任一截面橫坐標(biāo)x\n"); scanf("%lf",&x);nn=nF;//找到最大載荷數(shù) if(nM>nn) nn=nM; if(nq>nn) nn=nq;}main(){ps();//初始數(shù)據(jù)輸入for(j=0;j<99;j++) { x=j*l/100; for(i=0;i<nn;i++) { A[i]=qiyi(x,a[i]); B[i]=qiyi(x,b[i]); C[i]=qiyi(x,c[i]); D[i]=qiyi(x,d[i]); FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力 FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i]; Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[ i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求積分常數(shù)f(x<=b[i]) Q=0; if(x>b[i]) Q=1; Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2; v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/2 4-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x; Mzs[j]=Mzs[j]+Mz[i]; vs[j]=vs[j]+v[i]; } if(Mzs[j]>Mzmax) Mzmax=Mzs[j]; if(vs[j]>vmax) vmax=vs[j]; if(Mzs[j]<Mzmin) Mzmin=Mzs[j]; if(vs[j]<vmin) vmin=vs[j]; } printf("最大彎矩為Mzmax=%f\n",Mzmax); printf("最大撓度為vmax=%f\n",vmax); printf("最小彎矩為Mzmin=%f\n",Mzmin); printf("最小撓度為vmin=%f\n",vmin);}【2】檢驗(yàn)數(shù)據(jù);條件:L=1m,E=4.5GPa。I=0.0001QUOTEm4,F(xiàn)[1]=1000N,F(xiàn)[2]=2000N,a[1]=0.6m,a[2]=0.8m, M[1]=1000Nm,M[2]=2000Nm,b[1]=0.6m,b[2]=0.8m,q[1]=1000Nm,q[2]=2000Nm, c[1]=0.4m,c[2]=0.5m,d[1]=0.6m,d[2]=0.7m,x=0.4m;理論計(jì)算結(jié)果:Mzmax=-2360NmVmax=0.0004m【3】程序運(yùn)行結(jié)果:結(jié)論:運(yùn)行結(jié)果與理論運(yùn)算結(jié)果相同,可以使用。三總程序源代碼:#include"stdio.h"#include"stdlib.h"#include"string.h"#include"math.h"doubleqiyi(doublex,doubley) { if(x<=y) return0; if(x>y) returnx-y; }voidmain(){ voidfun1(); voidfun2(); voidfun3(); voidfun4(); voidfun5(); voidfun6(); voidfun7(); voidfun8(); { intch; printf("請(qǐng)選擇相應(yīng)功能\n\n"); printf("|1一個(gè)力作用下的任意截面的彎矩,撓度。|\n"); printf("|2一個(gè)力偶作用下的任意截面的彎矩,撓度。|\n"); printf("|3一段分布力作用下的任意截面的彎矩?fù)隙?。|\n"); printf("|4n個(gè)力共同作用下的任意截面的彎矩,撓度。|\n"); printf("|5h個(gè)力偶共同作用作用下的任意截面的彎矩,撓度|\n"); printf("|6m段分布力共同作用下的任意截面的彎矩,撓度|\n"); printf("|7n個(gè)力,h個(gè)力偶,m段分布力共同作用下的任意截面的彎矩,撓度。|\n"); printf("|8n個(gè)力,h個(gè)力偶,m段分布力共同作用下的最大彎矩,最大撓度。|\n");printf("請(qǐng)選擇您需要的功能:"); scanf("%d",&ch);/*取得用戶的選擇*/ switch(ch) { case1:fun1();break;case2:fun2();break;case3:fun3();break;case4:fun4();break;case5:fun5();break;case6:fun6();break;case7:fun7();break;case8:fun8();break; } } system("pause");}voidfun1(){ doubleMz,l,a,x,v,E,I,b,F; printf("請(qǐng)輸入長(zhǎng)度l\n"); scanf("%lf",&l); printf("請(qǐng)輸入長(zhǎng)度a\n"); scanf("%lf",&a); printf("請(qǐng)輸入彈性模量E\n"); scanf("%lf",&E); printf("請(qǐng)輸入極慣性矩I\n"); scanf("%lf",&I); printf("請(qǐng)輸入力F\n"); scanf("%lf",&F); printf("請(qǐng)輸入x\n"); scanf("%lf",&x); b=l-a; if(x>0&&x<a) { Mz=F*(l-a)*x/l; v=-F*b*x*(l*l-x*x-b*b)/(6*E*I*l); printf("Mz=%f\n",Mz); printf("v=%f\n",v); } elseif(x>a&&x<l) { Mz=F*a*(l-x)/l; v=-F*b*(l/b*pow(x-a,3)+(l*l-b*b)*x-x*x*x)/(6*E*I*l); printf("Mz=%f\n",Mz); printf("v=%f\n",v); } else { printf("數(shù)值溢出\n"); }}voidfun2(){doubleMz,l,a,x,v,E,I,b,M; printf("請(qǐng)輸入長(zhǎng)度l\n");scanf("%lf",&l);printf("請(qǐng)輸入長(zhǎng)度a\n");scanf("%lf",&a);printf("請(qǐng)輸入彈性模量E\n");scanf("%lf",&E);printf("請(qǐng)輸入極慣性矩I\n");scanf("%lf",&I);printf("請(qǐng)輸入彎矩M\n");scanf("%lf",&M);printf("請(qǐng)輸入x\n");scanf("%lf",&x);b=l-a;if(x>0&&x<a){Mz=M*x/l;v=M*x*(l*l-3*b*b-x*x)/(6*E*I*l);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}elseif(x>a&&x<l){Mz=M*(l-x)/l;v=M*(-x*x*x+3*l*(x-a)*(x-a)+(l*l-3*b*b)*x);printf("Mz=%f\n",Mz);printf("v=%f\n",v);}else{printf("數(shù)值溢出\n");}}voidfun3(){doubleq,l,c,d,x,E,I,v,Mz;doubleC,D,Ec,Fc;doubleFR1,FR2; printf("請(qǐng)輸入長(zhǎng)度l\n");scanf("%lf",&l);printf("請(qǐng)輸入彈性模量E\n");scanf("%lf",&E);printf("請(qǐng)輸入極慣性矩I\n");scanf("%lf",&I);printf("請(qǐng)輸入分布力q\n");scanf("%lf",&q);printf("請(qǐng)輸入長(zhǎng)度c\n");scanf("%lf",&c);printf("請(qǐng)輸入長(zhǎng)度d\n");scanf("%lf",&d);printf("請(qǐng)輸入x\n");scanf("%lf",&x); C=qiyi(x,c); D=qiyi(x,d); FR2=(-q*(d*d-c*c)/2)/l;//求支反力 FR1=-q*(d-c)-FR2; Ec=-(FR1*pow(l,3)/6-q*pow(l-c,4)/24+q*pow(l-d,4)/24)/E/I/l; Fc=0; Mz=(FR1*x-0.5*q*C*C+0.5*q*D*D); v=(FR1*pow(x,3)/6-q*pow(C,4)/24+q*pow(D,4)/24)/E/I+Ec*x; printf("截面的彎矩為:%f\n",Mz); printf("截面的撓度為:%f\n",v);}voidfun4(){ doubleMzs,l,a[10],x,vs,E,I,F[10],Mz[10],v[10];inti,nF; Mzs=0; vs=0; printf("請(qǐng)輸入長(zhǎng)度l\n"); scanf("%lf",&l); printf("請(qǐng)輸入彈性模量E\n"); scanf("%lf",&E); printf("請(qǐng)輸入極慣性矩I\n"); scanf("%lf",&I); printf("請(qǐng)輸入集中載荷F的個(gè)nF:"); scanf("%d",&nF); printf("請(qǐng)輸入集中載荷F的值和位置a:"); for(i=0;i<nF;i++) { scanf("%lf%lf",&F[i],&a[i]); } printf("請(qǐng)輸入x\n"); scanf("%lf",&x);for(i=0;i<nF;i++){ if(x>0&&x<a[i]) { Mz[i]=F[i]*(l-a[i])*x/l; v[i]=-F[i]*(l-a[i])*x*(l*l-x*x-(l-a[i])*(l-a[i]))/(6*E*I*l); } elseif(x>a[i]&&x<l) { Mz[i]=F[i]*a[i]*(l-x)/l; v[i]=-F[i]*(l-a[i])*(l/(l-a[i])*pow(x-a[i],3)+(l*l-(l-a[i])*(l-a[i]))*x-x*x*x)/(6*E*I*l); } Mzs=Mzs+Mz[i]; vs=vs+v[i];}printf("截面的彎矩為%f",Mzs);printf("截面的撓度為%f",vs);}voidfun5(){doubleMz[10],l,b[10],x,v[10],E,I,M[10],Mzs,vs;inti,nM; Mzs=0; vs=0; printf("請(qǐng)輸入長(zhǎng)度l\n");scanf("%lf",&l);printf("請(qǐng)輸入彈性模量E\n");scanf("%lf",&E);printf("請(qǐng)輸入極慣性矩I\n");scanf("%lf",&I); printf("請(qǐng)輸入外力偶M的個(gè)數(shù)nM"); scanf("%d",&nM); printf("請(qǐng)輸入外力偶值和位置b:"); for(i=0;i<nM;i++) { scanf("%lf%lf",&M[i],&b[i]); }printf("請(qǐng)輸入x\n");scanf("%lf",&x);for(i=0;i<nM;i++) {if(x>0&&x<b[i]){Mz[i]=M[i]*x/l;v[i]=M[i]*x*(l*l-3*(l-b[i])*(l-b[i])-x*x)/(6*E*I*l);}elseif(x>b[i]&&x<l){Mz[i]=M[i]*(l-x)/l;v[i]=M[i]*(-x*x*x+3*l*(x-b[i])*(x-b[i])+(l*l-3*(l-b[i])*(l-b[i]))*x);} Mzs=Mzs+Mz[i]; vs=vs+v[i]; }printf("截面的彎矩為%f",Mzs);printf("截面的撓度為%f",vs);}voidfun7(){doubleF[10],M[10],q[10];//定義各個(gè)載荷大小的數(shù)組doubleMz[10],v[10],l,E,I,Mzs,vs,Mzmax,vmax,Mzmin,vmin;//定義桿的基本參數(shù)doublea[10],b[10],c[10],d[10];//定義各個(gè)載荷的橫坐標(biāo)doubleA[10],B[10],C[10],D[10];//定義奇異函數(shù)中間變量doubleEc[10],Fc[10];//定義積分常數(shù)doublex;//定義任一截面橫坐標(biāo)doubleFR1[10],FR2[10];//定義支反力FR1,F(xiàn)R2inti,Q;//定義循環(huán)變量intnM,nF,nq,nn;//定義載荷個(gè)數(shù)ps();//初始數(shù)據(jù)輸入 Mzs=0; vs=0; printf("請(qǐng)輸入長(zhǎng)度l\n"); scanf("%lf",&l); printf("請(qǐng)輸入彈性模量E\n"); scanf("%lf",&E); printf("請(qǐng)輸入極慣性矩I\n"); scanf("%lf",&I); printf("請(qǐng)輸入集中載荷F的個(gè)nF:"); scanf("%d",&nF); printf("請(qǐng)輸入集中載荷F的值和位置a:"); for(i=0;i<nF;i++) { scanf("%lf%lf",&F[i],&a[i]); } printf("請(qǐng)輸入外力偶M的個(gè)數(shù)nM"); scanf("%d",&nM); printf("請(qǐng)輸入外力偶值和位置b:"); for(i=0;i<nM;i++) { scanf("%lf%lf",&M[i],&b[i]); } printf("請(qǐng)輸入均布力的個(gè)數(shù)nq"); scanf("%d",&nq); printf("請(qǐng)輸入分布力q的值和位置c,d:"); for(i=0;i<nq;i++) { scanf("%lf%lf%lf",&q[i],&c[i],&d[i]); } printf("請(qǐng)輸入任一截面橫坐標(biāo)x\n"); scanf("%lf",&x); nn=nF;//找到最大載荷數(shù) if(nM>nn) nn=nM; if(nq>nn) nn=nq; for(i=0;i<nn;i++) { A[i]=qiyi(x,a[i]); B[i]=qiyi(x,b[i]); C[i]=qiyi(x,c[i]); D[i]=qiyi(x,d[i]); FR2[i]=(M[i]-F[i]*a[i]-q[i]*(d[i]*d[i]-c[i]*c[i])/2)/l;//求支反力 FR1[i]=-(F[i]+q[i]*(d[i]-c[i]))-FR2[i]; Ec[i]=-((M[i]*pow((l-b[i]),2)/2+F[i]*pow((l-a[i]),3)/6+FR1[i]*pow(l,3)/6-q[i]*pow(l-c[i],4)/24+q[i]*pow(l-d[i],4)/24))/E/I/l;//求積分常數(shù) if(x<=b[i]) Q=0; if(x>b[i]) Q=1; Mz[i]=(M[i]*Q+F[i]*A[i]+FR1[i]*x)-q[i]*pow(C[i],2)/2+q[i]*pow(D[i],2)/2; v[i]=(M[i]*pow(B[i],2)/2+F[i]*pow(A[i],3)/6+FR1[i]*pow(x,3)/6)/(E*I)-(q[i]*pow(C[i],4)/24-q[i]*pow(D[i],4)/24)/(E*I)+Ec[i]*x; Mzs=Mzs+Mz[i]; vs=vs+v[i]; }printf("截面的彎矩為%f",Mzs);printf("截面的撓度為%f",vs);}voidfun8(){staticdoubleF[10],M[10],q[10];//定義各個(gè)載荷大小的數(shù)組staticdoubleMz[10],v[10],l,E,I,Mzs[100],vs[100],Mzmax,vmax,Mzmin,vmin;//定義桿的基本參數(shù)staticdoublea[10],b[10],c[10],d[10];//定義各個(gè)載荷的橫坐標(biāo)staticdoubleA[10],B[10],C[10],D[10];//定義奇異函數(shù)中間變量staticdoubleEc[10],Fc[10];//定義積分常數(shù)staticdoublex;//定義任一截面橫坐標(biāo)staticdoubleFR1[10],FR2[10];//定義支反力FR1,F(xiàn)R2staticinti,Q;//定義循環(huán)變量staticintj;staticintnM,nF,nq,nn;//定義載荷個(gè)printf("請(qǐng)輸入長(zhǎng)度l\n"); scanf("%lf",&l); printf("請(qǐng)輸入彈性模量E\n"); scanf("%lf",&E); printf("請(qǐng)輸入極慣性矩I\n"); scanf("%lf",&I); printf("請(qǐng)輸入集中載荷F的個(gè)nF:"); scanf("%d",&nF); printf("請(qǐng)輸入集中載荷F的值和位置a:"); for(i=0;i<nF;i++) { scanf("%lf%lf",&F[i],&a[i]);}printf("請(qǐng)輸入外力偶M的個(gè)數(shù)nM"); scanf("%d",&nM); printf("請(qǐng)輸入外力偶值和位置b:"); for(i=0;i<nM;i++) { scanf("%lf%lf",&M[i],&b[i]); }printf("請(qǐng)輸入均布力的個(gè)數(shù)nq"); scanf("%d",&nq); printf("請(qǐng)輸入分布力q的值和位置c,d:"); for(i=0;i<nq;i++) { scanf("%lf%lf%lf",&q[i],&c[i],&d[i]); }printf("請(qǐng)輸入任一截面橫坐標(biāo)x\n"); scanf("%lf",&x);nn=nF;//找到最大載荷數(shù) if(nM>nn) nn=nM; if(nq>nn) nn=nq;for(j=0;j<99;j++) { x=j*l/100; for(i=0;i<nn;i++) { A[i]=qiyi(x,a[i]); B[i]=qiyi(x,b[i]); C[i]=qiyi(x,c[i]); D[i]=qiyi(x,d[i]);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論