为了完成老师的作业方便计算而编制的程序
使用一次之后感觉以后不用就可惜了,所以拿出来共享一下。
#include #include #include #define PI 3.1415926 void main() { float R,g,q,Pr,Pk,P1,P2; printf(\"请输入计算半径,自重,竖向荷载,拱底反力,侧向抗力,侧向均匀荷载,侧向三角荷载\\n\"); scanf(\"%f%f%f%f%f%f%f\ struct data{ float a; float Mg; float Ng; float Mq; float Nq; float Mpr; float Npr; float Mp1; float Np1; float Mp2; float Np2; float Mpk; float Npk; } dat[181]; int m,i; char c; int getchar(void); printf(\"是否自动计算?(Y/N)\\n\"); c=getchar(); if(c!=121) { printf(\"请输入计算角度个数\\n\"); scanf(\"%d\ printf(\"请依次输入角度数值(0—180)\\n\"); for(i=0;i scanf(\"%f\ if((dat[i].a>=0)&&(dat[i].a<=180)) {dat[i].a=dat[i].a/180*PI; dat[i].Mg=g*R*R*(1-0.5*cos(dat[i].a)-dat[i].a*sin(dat[i].a)); dat[i].Ng=g*R*(dat[i].a*sin(dat[i].a)-0.5*cos(dat[i].a)); dat[i].Mp1=P1*R*R*(0.25-0.5*cos(dat[i].a)*cos(dat[i].a)); dat[i].Np1=P1*R*cos(dat[i].a); dat[i].Mp2=P2*R*R*(0.25*sin(dat[i].a)*sin(dat[i].a)+0.083*cos(dat[i].a)*cos(dat[i].a)*cos(dat[i].a)-0.063*cos(dat[i].a)-0.125); dat[i].Np2=P2*R*cos(dat[i].a)*(0.063+0.5*cos(dat[i].a)-0.25*cos(dat[i].a)*cos(dat[i].a)); if(dat[i].a<=(PI/2)) { dat[i].Mq=q*R*R*(0.193+0.106*cos(dat[i].a)-0.5*sin(dat[i].a)*sin(dat[i].a)); dat[i].Nq=q*R*(sin(dat[i].a)*sin(dat[i].a)-0.106*cos(dat[i].a)); dat[i].Mpr=Pr*R*R*(0.057-0.106*cos(dat[i].a)); dat[i].Npr=0.106*Pr*R*cos(dat[i].a); if(dat[i].a<=(PI/4)) { dat[i].Mpk=Pk*R*R*(0.2346-0.3536*cos(dat[i].a)); dat[i].Npk=0.3536*Pk*R*cos(dat[i].a); } else { dat[i].Mpk=Pk*R*R*(-0.3487+0.5*cos(dat[i].a)*cos(dat[i].a)+0.2357*cos(dat[i].a)*cos(dat[i].a)*cos(dat[i].a)); dat[i].Npk=Pk*R*(-0.707*cos(dat[i].a)+cos(dat[i].a)*cos(dat[i].a)+0.707*sin(dat[i].a)*sin(dat[i].a)*cos(dat[i].a)); } } else { dat[i].Mq=q*R*R*(0.693+0.106*cos(dat[i].a)-sin(dat[i].a)); dat[i].Nq=q*R*(sin(dat[i].a)-0.106*cos(dat[i].a)); dat[i].Mpr=Pr*R*R*(-0.443+sin(dat[i].a)-0.106*cos(dat[i].a)-0.5*sin(dat[i].a)*sin(dat[i].a)); dat[i].Npr=Pr*R*(sin(dat[i].a)*sin(dat[i].a)-sin(dat[i].a)-0.1*cos(dat[i].a)); if((PI-dat[i].a)<=(PI/4)) { dat[i].Mpk=Pk*R*R*(0.2346-0.3536*cos(PI-dat[i].a)); dat[i].Npk=0.3536*Pk*R*cos(PI-dat[i].a); } else { dat[i].Mpk=Pk*R*R*(-0.3487+0.5*cos(PI-dat[i].a)*cos(PI-dat[i].a)+0.2357*cos(PI-dat[i].a)*cos(PI-dat[i].a)*cos(PI-dat[i].a)); dat[i].Npk=Pk*R*(-0.707*cos(PI-dat[i].a)+cos(PI-dat[i].a)*cos(PI-dat[i].a)+0.707*sin(PI-dat[i].a)*sin(PI-dat[i].a)*cos(PI-dat[i].a)); } } } else { printf(\"请重新输入第%d个角度\\n\ } printf(\"内力 角度 自重 竖向荷载 拱底反力 均匀侧压 三角侧压 弹性抗力 管片内力\\n\"); printf(\"M %8.2f%8.2f%10.2f%10.2f%10.2f%10.2f%10.2f%10.2f\\n\ 80/PI),dat[i].Mg,dat[i].Mq,dat[i].Mpr,dat[i].Mp1,dat[i].Mp2,dat[i].Mpk,(dat[i].Mg+dat[i].Mq+dat[i].Mpr+dat[i].Mp1+dat[i].Mp2+dat[i].Mpk)); printf(\"N %8.2f%8.2f%10.2f%10.2f%10.2f%10.2f%10.2f%10.2f\\n\80/PI),dat[i].Ng,dat[i].Nq,dat[i].Npr,dat[i].Np1,dat[i].Np2,dat[i].Npk,(dat[i].Ng+dat[i].Nq+dat[i].Npr+dat[i].Np1+dat[i].Np2+dat[i].Npk)); } float Mmax,Nmax,Mmin,Nmin; Mmax=dat[0].Mg+dat[0].Mq+dat[0].Mpr+dat[0].Mp1+dat[0].Mp2+dat[0].Mpk; Nmax=dat[0].Ng+dat[0].Nq+dat[0].Npr+dat[0].Np1+dat[0].Np2+dat[0].Npk; Mmin=dat[0].Mg+dat[0].Mq+dat[0].Mpr+dat[0].Mp1+dat[0].Mp2+dat[0].Mpk; Nmin=dat[0].Ng+dat[0].Nq+dat[0].Npr+dat[0].Np1+dat[0].Np2+dat[0].Npk; for(i=1;i if(Mmax<(dat[i].Mg+dat[i].Mq+dat[i].Mpr+dat[i].Mp1+dat[i].Mp2+dat[i].Mpk )) { Mmax=(dat[i].Mg+dat[i].Mq+dat[i].Mpr+dat[i].Mp1+dat[i].Mp2+dat[i].Mpk); } if(Nmax<(dat[i].Ng+dat[i].Nq+dat[i].Npr+dat[i].Np1+dat[i].Np2+dat[i].Npk)) { Nmax=(dat[i].Ng+dat[i].Nq+dat[i].Npr+dat[i].Np1+dat[i].Np2+dat[i].Npk); } if(Mmin>(dat[i].Mg+dat[i].Mq+dat[i].Mpr+dat[i].Mp1+dat[i].Mp2+dat[i].Mpk)) { Mmin=(dat[i].Mg+dat[i].Mq+dat[i].Mpr+dat[i].Mp1+dat[i].Mp2+dat[i].Mpk); } if(Nmin>(dat[i].Ng+dat[i].Nq+dat[i].Npr+dat[i].Np1+dat[i].Np2+dat[i].Npk)) { Nmin=(dat[i].Ng+dat[i].Nq+dat[i].Npr+dat[i].Np1+dat[i].Np2+dat[i].Npk); } } printf(\"最大正弯矩为%10.2f\\n\ printf(\"最大正轴力为%10.2f\\n\ printf(\"最大负弯矩为%10.2f\\n\ printf(\"最大负轴力为%10.2f\\n\ } else { printf(\"管片内力\\n\"); for(i=0;i<181;i++) { dat[i].a=i; dat[i].a=dat[i].a/180*PI; dat[i].Mg=g*R*R*(1-0.5*cos(dat[i].a)-dat[i].a*sin(dat[i].a)); dat[i].Ng=g*R*(dat[i].a*sin(dat[i].a)-0.5*cos(dat[i].a)); dat[i].Mp1=P1*R*R*(0.25-0.5*cos(dat[i].a)*cos(dat[i].a)); dat[i].Np1=P1*R*cos(dat[i].a); dat[i].Mp2=P2*R*R*(0.25*sin(dat[i].a)*sin(dat[i].a)+0.083*cos(dat[i].a)*cos(dat[i].a)*cos(dat[i].a)-0.063*cos(dat[i].a)-0.125); dat[i].Np2=P2*R*cos(dat[i].a)*(0.063+0.5*cos(dat[i].a)-0.25*cos(dat[i].a)*cos(dat[i].a)); if(dat[i].a<=(PI/2)) { dat[i].Mq=q*R*R*(0.193+0.106*cos(dat[i].a)-0.5*sin(dat[i].a)*sin(dat[i].a)); dat[i].Nq=q*R*(sin(dat[i].a)*sin(dat[i].a)-0.106*cos(dat[i].a)); dat[i].Mpr=Pr*R*R*(0.057-0.106*cos(dat[i].a)); dat[i].Npr=0.106*Pr*R*cos(dat[i].a); if(dat[i].a<=(PI/4)) { dat[i].Mpk=Pk*R*R*(0.2346-0.3536*cos(dat[i].a)); dat[i].Npk=0.3536*Pk*R*cos(dat[i].a); } else { dat[i].Mpk=Pk*R*R*(-0.3487+0.5*cos(dat[i].a)*cos(dat[i].a)+0.2357*cos(dat[i].a)*cos(dat[i].a)*cos(dat[i].a)); dat[i].Npk=Pk*R*(-0.707*cos(dat[i].a)+cos(dat[i].a)*cos(dat[i].a)+0.707*sin(dat[i].a)*sin(dat[i].a)*cos(dat[i].a)); } } else { dat[i].Mq=q*R*R*(0.693+0.106*cos(dat[i].a)-sin(dat[i].a)); dat[i].Nq=q*R*(sin(dat[i].a)-0.106*cos(dat[i].a)); dat[i].Mpr=Pr*R*R*(-0.443+sin(dat[i].a)-0.106*cos(dat[i].a)-0.5*sin(dat[i].a)*sin(dat[i].a)); dat[i].Npr=Pr*R*(sin(dat[i].a)*sin(dat[i].a)-sin(dat[i].a)-0.1*cos(dat[i].a)); if((PI-dat[i].a)<=(PI/4)) { dat[i].Mpk=Pk*R*R*(0.2346-0.3536*cos(PI-dat[i].a)); dat[i].Npk=0.3536*Pk*R*cos(PI-dat[i].a); } else { dat[i].Mpk=Pk*R*R*(-0.3487+0.5*cos(PI-dat[i].a)*cos(PI-dat[i].a)+0.2357*cos(PI-dat[i].a)*cos(PI-dat[i].a)*cos(PI-dat[i].a)); dat[i].Npk=Pk*R*(-0.707*cos(PI-dat[i].a)+cos(PI-dat[i].a)*cos(PI-dat[i].a)+0.707*sin(PI-dat[i].a)*sin(PI-dat[i].a)*cos(PI-dat[i].a)); } } } float Mmax,Nmax,Mmin,Nmin; Mmax=dat[0].Mg+dat[0].Mq+dat[0].Mpr+dat[0].Mp1+dat[0].Mp2+dat[0].Mpk; Nmax=dat[0].Ng+dat[0].Nq+dat[0].Npr+dat[0].Np1+dat[0].Np2+dat[0].Npk; Mmin=dat[0].Mg+dat[0].Mq+dat[0].Mpr+dat[0].Mp1+dat[0].Mp2+dat[0].Mpk; Nmin=dat[0].Ng+dat[0].Nq+dat[0].Npr+dat[0].Np1+dat[0].Np2+dat[0].Npk; for(i=1;i<181;i++) { if(Mmax<(dat[i].Mg+dat[i].Mq+dat[i].Mpr+dat[i].Mp1+dat[i].Mp2+dat[i].Mpk)) { Mmax=(dat[i].Mg+dat[i].Mq+dat[i].Mpr+dat[i].Mp1+dat[i].Mp2+dat[i].Mpk); } if(Nmax<(dat[i].Ng+dat[i].Nq+dat[i].Npr+dat[i].Np1+dat[i].Np2+dat[i].Npk)) { Nmax=(dat[i].Ng+dat[i].Nq+dat[i].Npr+dat[i].Np1+dat[i].Np2+dat[i].Npk); } if(Mmin>(dat[i].Mg+dat[i].Mq+dat[i].Mpr+dat[i].Mp1+dat[i].Mp2+dat[i].Mpk)) { Mmin=(dat[i].Mg+dat[i].Mq+dat[i].Mpr+dat[i].Mp1+dat[i].Mp2+dat[i].Mpk); } if(Nmin>(dat[i].Ng+dat[i].Nq+dat[i].Npr+dat[i].Np1+dat[i].Np2+dat[i].Npk)) { Nmin=(dat[i].Ng+dat[i].Nq+dat[i].Npr+dat[i].Np1+dat[i].Np2+dat[i].Npk); } } printf(\"最大正弯矩为%10.2f\\n\ printf(\"最大正轴力为%10.2f\\n\ printf(\"最大负弯矩为%10.2f\\n\ printf(\"最大负轴力为%10.2f\\n\ } system(\"pause\"); } 因篇幅问题不能全部显示,请点此查看更多更全内容