




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Harbin Institute of Technology材料力学电算大作业题目名称:各种条件下的任意截面的弯矩,挠度作者班号:1108108作者学号:1110810812作者:刘涛指导教师:王春香完成时间:2013/5/23一、 问题的提出该程序可以解决的问题:一个力作用下1圆柱面杆2矩形截面杆3工字梁截面杆4空心圆柱截面杆 的弯矩和挠度二、 程序流程图输入杆长mm,力FkN,力作用点到左端面A的距离amm输入梁的弹性模量Gpa 输入所求端面到左端面的距离X 输入梁的形状 计算惯性矩 计算并输出弯矩 根据梁的形状不同输入不同的数值 计算并输出挠度三、不同力作用下的弯矩,挠度1.一个力作用下
2、的任意截面的弯矩,挠度程序:#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926int get_I(int kind);int main() float f=100, l=100, a=50, b, x=60; float M, v; float E = 200, I; int kind=1; printf("请输入杆长l(mm),力FkN,力作用点到左端面A的距离a(mm)n"); scanf("%f%f%f",&
3、l,&f,&a); l /= 1000; f *= 1000; a /= 1000; printf("请输入梁的弹性模量(GPa)n"); scanf("%f",&E); E *= 1.e9; printf("请输入所求端面到左端面A的距离Xn"); scanf("%f",&x); x /= 1000; printf("请输入梁的截面形状圆柱面=1,矩形梁=2,工字梁=3,空心圆柱梁=4n"); scanf("%d",&kind); I
4、 = get_I(kind);/计算惯性矩 b = l - a; M = f * x;/计算弯矩 if (0 <= x && x <= a) v = (-1) * f * b * x *(l*l - x*x - b*b) / (6 * E * I * l); else if (a < x && x <= l) v = (-1) * f * b * x * (l/b * pow(x-a), 3) + (l*l - b*b)*x -pow(x, 3) / (6 * E * I * l); else v = 0; printf("er
5、ror!"); exit (0); printf("转矩M = %gNmn", M); printf("挠度V = %gmn", v); system("pause"); return 0;int get_I(int kind)/计算截面的I惯性矩 float d,b, h;/矩形梁,工字梁,圆柱梁 float d2, alpha;/空心圆柱梁 float I; /圆柱面=1,矩形梁=2,工字梁=3,空心圆柱梁=4 if (1 = kind)/圆柱面=1 printf ("请输入圆柱梁的直径dn"); s
6、canf("%f", &d); I = PI * pow(d, 4) / 64; else if (2 = kind)/矩形梁=2 printf ("请输入矩形截面的b和hn"); scanf ("%f%f",&b, &h); I = b * pow(h, 3) / 12; /* else if (3 = kind)/工字梁=3 printf("|-|n"); printf("| |tn"); printf(" |d|n"); printf("
7、; | |n"); printf("| |n"); printf("|b|n"); /* printf ("请输入工字梁的翼缘厚度t,腹板厚度d,翼缘宽度b,梁高度hn"); scanf ("%f%f%f%f",&t,&d,&b,&h); */ printf ("请查附表B输入工字梁的惯性矩In"); scanf ("%f",&I); /*/ else if (4 = kind)/空心圆柱梁=4 printf ("请
8、输入圆柱梁的直径d和内外径比例alphan"); scanf ("%f%f",&d2, &alpha); I = PI * pow(d2, 4) *(1 - pow(alpha, 4) / 64; else I = 0; return I;2.一个力偶作用下的任意截面的弯矩,挠度#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926#define TORAD (PI/180)float get_I(int kind);
9、float get_V_M0(float E, float Length,float I,float x, float M0, float a_L );float get_M_M0(float Length, float M0,float a_L, float x);int main() int kind;/截面形状 float Length, a_L, x; float E, I, M0; float v, M;/所求截面的挠度,弯矩 printf(" Input Length(mm): "); scanf ("%f", &Length); L
10、ength /= 1000;/*单位转化*/ printf("Input shape (circle=1,scquare=2,gongZL=3,blank circle=4): "); scanf("%d",&kind); printf("Input E(GPa): "); scanf("%f",&E); E *= 1.e9;/*单位转化*/ printf("Input M0(N*): "); scanf ("%f", &M0); printf(&qu
11、ot;Input a_L( mm) "); scanf ("%f", &a_L); a_L /= 1000;/*单位转化*/ while(a_L < 0 | a_L > Length) printf("力偶没有作用在杆上,请重新输入作用点位置: n"); printf("请输入力偶作用点距离左端面的距离a_L( mm) "); scanf ("%f", &a_L); a_L /= 1000;/*单位转化*/ printf("Input x ( mm): ")
12、; scanf ("%f", &x); x /= 1000;/*单位转化*/ I = get_I(kind ); v = get_V_M0(E, Length, I, x, M0, a_L ); M = get_M_M0(Length, M0, a_L, x); printf("Toatal M = %g Nmn", M); printf("Toatal v = %g mmn", v); return 0; system("pause");float get_I(int kind)/计算截面的I惯性矩 fl
13、oat d,b, h;/矩形梁,工字梁,圆柱梁 float d2, alpha;/空心圆柱梁 float I; /float t; if (1 = kind)/圆柱面=1 printf ("Input dn"); scanf("%f", &d); I = PI * pow(d, 4) / 64; else if (2 = kind)/矩形梁=2 printf ("Input b和hn"); scanf ("%f%f",&b, &h); I = b * pow(h, 3) / 12; /* e
14、lse if (3 = kind)/工字梁=3 printf("|-|n"); printf("| |tn"); printf(" |d|n"); printf(" | |n"); printf("| |n"); printf("|b|n"); printf ("Input In"); scanf ("%f",&I); else if (4 = kind)/空心圆柱梁=4 printf ("Input d and al
15、phan"); scanf ("%f%f",&d2, &alpha); I = PI * pow(d2, 4) *(1 - pow(alpha, 4) / 64; else I = 0; return I;float get_V_M0(float E, float Length, float I, float x, float M0, float a_L ) float v; float m, b; b = Length - a_L; m = M0; if (E < 1.e7) E *= 1.e9; if(x >= 0 &&am
16、p; x <= a_L) v = m * x * (3*Length*Length - 3*b*b - x*x)/(6*E*I*Length ); else if (x > a_L && x <= Length) v = m * (-pow(x, 3) + 3*Length*pow(x-a_L, 2) + (pow(Length, 2) - 3*b*b)*x) / (6*E*I*Length ); else printf ("ERROR!n"); v = 0; exit(0); return v;float get_M_M0(float L
17、ength, float M0, float a_L, float x) float F_L, F_R;/左右两处的支反力 float m, b; float M;/所求任意截面的弯矩 b = Length - a_L; m = M0; F_L = - M0 / Length; F_R = - F_L; if(x >= 0 && x <= a_L) M = F_L * x; else if (x > a_L && x <= Length) M = F_R * (x - a_L); else printf ("ERROR!n&qu
18、ot;); M = 0; exit(0); return M;3. 一段分布力作用下的任意截面的弯矩,挠度#include<stdio.h>#include<math.h>#include<stdlib.h># define PI 3.1415926float get_I(int kind);/计算截面的I惯性矩float get_M_q(float E, float I, float Length, float x, float q, float a_q_L, float a_q_R);float get_V_q(float E, float I, flo
19、at Length, float x, float q, float a_q_L, float a_q_R);int main()float Length, a_q_L, a_q_R, q;float E, I;float M, V, x;int kind;printf("请输入梁的长度Length(单位:mm) ");scanf("%f",&Length);Length *= 1.e-3;printf("请输入分布力最左端距离梁左端距离a_q_L(单位:mm) ");scanf("%f",&a_q
20、_L);a_q_L *= 1.e-3;printf("请输入分布力最左端距离梁右端距离a_q_R(单位:mm) ");scanf("%f",&a_q_R);a_q_R *= 1.e-3;printf("请输入分布力q:(单位:kN) ");scanf("%f",&q);q *= 1.e3;printf("请输入梁的弹性模量E(单位:GPa) ");scanf("%f",&E);E *= 1.e9; printf("请输入截面形状(圆柱面=1,
21、矩形梁=2,工字梁=3,空心圆柱梁=4): "); scanf("%d",&kind);I = get_I(kind);printf("请输所求截面距离左端面距离x(单位:mm) ");scanf("%f",&x);x *= 1.e-3;M = get_M_q(E, I, Length, x, q, a_q_L, a_q_R);V = get_V_q(E, I, Length, x, q, a_q_L, a_q_R);printf("所求截面的弯矩是:%g Nmn",M);printf(&
22、quot;所求截面的挠度是:%g mn",V);system ("pause");return 0;float get_I(int kind)/计算截面的I惯性矩 float d,b, h;/矩形梁,工字梁,圆柱梁 float d2, alpha;/空心圆柱梁 float I; if (1 = kind)/圆柱面=1 printf ("请输入圆柱梁的直径d(单位:mm) "); scanf("%f", &d); d *= 1.e-3; I = PI * pow(d, 4) / 64; else if (2 = kin
23、d)/矩形梁=2 printf ("请输入矩形截面的b和h(单位:mm) "); scanf ("%f%f",&b, &h); b *= 1.e-3; h *= 1.e-3; I = b * pow(h, 3) / 12; else if (3 = kind)/工字梁=3 printf("|-|n"); printf("| |tn"); printf(" |d|n"); printf(" | |n"); printf("| |n"); pr
24、intf("|b|n"); printf ("请查附表B输入工字梁的惯性矩I "); scanf ("%f",&I); else if (4 = kind)/空心圆柱梁=4 printf ("请输入圆柱梁的直径d和内外径比例alpha "); scanf ("%f%f",&d2, &alpha); d2 *= 1.e-3; I = PI * pow(d2, 4) *(1 - pow(alpha, 4) / 64; else I = 0; return I;float ge
25、t_M_q(float E, float I, float Length, float x, float q, float a_q_L, float a_q_R) float c_q, fa, fb; float M; c_q = Length - a_q_L - a_q_R;fa = (a_q_R + c_q/2) * c_q * q / Length;fb = (a_q_L + c_q/2) * c_q * q / Length;if (x >= 0) && (x <= a_q_L)M = fa * x / (E * I);else if (x > a_q_L) && (x <=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抽纱绣片剪裁工艺考核试卷及答案
- 碳九石油树脂装置操作工新员工考核试卷及答案
- 牙刷刷毛储存条件优化工艺考核试卷及答案
- 锅炉管阀检修工主管竞选考核试卷及答案
- 应聘者面试题库及答案
- 银行转正测试题目及答案
- 银行英语面试题及答案
- 给排水专业试题及答案
- 养老护理专业试题
- 福建省泉州市永春第一中学2025-2026学年高二上学期期初考试数学试题(含答案)
- 江苏省如皋市某中学2026届高三上学期一轮复习摸底考试英语试题(解析版)
- 2025陕西省延安旅游(集团)有限公司招聘16人笔试历年参考题库附带答案详解
- 民航职业道德教学课件
- 梯田建筑规划方案(3篇)
- 数字时代的艺术史重构-洞察及研究
- 零星维修工程项目方案投标文件(技术方案)
- 2025年江西省高考物理真题
- 海龟汤题目和答案(100题)
- 学习进阶理论指导下的美国科学课程体系整合研究
- 【教学评一体化】第五单元 观世间万物悟人生哲思【大单元公开课一等奖创新教学设计】新统编版语文七年级下册名师备课
- 新课程标准2025版解读
评论
0/150
提交评论