济大机械CAD实验答案Word下载.docx

上传人:b****5 文档编号:19677575 上传时间:2023-01-08 格式:DOCX 页数:28 大小:143.90KB
下载 相关 举报
济大机械CAD实验答案Word下载.docx_第1页
第1页 / 共28页
济大机械CAD实验答案Word下载.docx_第2页
第2页 / 共28页
济大机械CAD实验答案Word下载.docx_第3页
第3页 / 共28页
济大机械CAD实验答案Word下载.docx_第4页
第4页 / 共28页
济大机械CAD实验答案Word下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

济大机械CAD实验答案Word下载.docx

《济大机械CAD实验答案Word下载.docx》由会员分享,可在线阅读,更多相关《济大机械CAD实验答案Word下载.docx(28页珍藏版)》请在冰豆网上搜索。

济大机械CAD实验答案Word下载.docx

2、编制三角带传动的程序设计程序

三、实验报告内容

每次上机实验结束后,学生要作一份完整的实验报告,实验报告内容应包括:

1、实验的基本原理简述及程序框图绘制。

2、编制实验程序。

3、用考核题对所编程序进行考核。

四、实验考核办法

本课程实验成绩依据以下几个方面进行考核

1、实验报告

2、考核所编制的程序

3、实验纪律、出勤等

实验一链表

1.用链表的方法编写减速箱零件清单(包括序号、名称、数量、材料)的管理程序,要求提供插入、删除、列表功能。

减速箱零件清单

名称

数量

材料

箱体

HT100

箱盖

齿轮轴

45

齿轮

6

端盖

实验程序清单

#include"

stdafx.h"

stdio.h"

malloc.h"

string.h"

typedefstruct_tagLink{

intNo,Num;

charName[10],Mat[10];

struct_tagLink*next;

}LINK;

LINK*Head=NULL;

voidOutPut(LINK*t)

{

printf("

%5d%15s%5d%15s\n"

t->

No,t->

Name,t->

Num,t->

Mat);

}

//插入

voidInsert(intNo,char*Name,intNum,char*Mat)

LINK*Node=(LINK*)malloc(sizeof(LINK));

Node->

No=No;

strcpy(Node->

Name,Name);

Num=Num;

Mat,Mat);

next=Head;

Head=Node;

//查询

voidCheck(intNo)

LINK*t=Head;

while(t){

if(t->

No==No){

OutPut(t);

break;

}elset=t->

next;

}

//删除

voidDelete(intNo)

LINK*p,*t;

p=t=Head;

while(t&

&

t->

No!

=No){

p=t;

t=t->

if(t==NULL){printf("

未找到%d\n"

No);

return;

if(p==t){

Head=Head->

free(t);

}else{

p->

next=t->

//列表输出

voidOutPutAll()

while(t){

OutPut(t);

intmain(intargc,char*argv[])

for(;

;

){

intcode;

printf("

减速箱零件查询系统\n\n\n"

);

0--退出1--输入\n"

2--查询3--删除\n"

4--列表\n"

请选择:

"

scanf("

%d"

&

code);

if(code==0)break;

switch(code){

case1:

intNo,Num;

charName[10],Mat[10];

for(;

printf("

序号<

0--结束>

:

No);

if(No==0)break;

名称:

%s"

Name);

数量:

Num);

材料:

Insert(No,Name,Num,Mat);

}

break;

case2:

{

intNo;

输入查询的序号:

Check(No);

case3:

输入删除的序号:

Delete(No);

case4:

OutPutAll();

}

return0;

实验二二叉树

1.建立排序二叉树、遍历排序二叉树

2.编写建立和遍历二叉排序树的程序。

3.实验数据:

18,14,22,7,17,20,35,27,11,3,20

4.程序清单:

typedefstruct_tagLink{

struct_tagLink*LC,*RC;

intdata;

LINK*Head;

intA[]={18,14,22,7,17,20,35,27,11,3,20};

intN=sizeof(A)/sizeof(int);

//建立二叉排序树的函数

voidbuilt()

for(inti=0;

i<

N;

i++){

LINK*Node,*Temp;

Node=(LINK*)malloc(sizeof(LINK));

Node->

data=A[i];

LC=Node->

RC=NULL;

if(i==0){Head=Node;

continue;

Temp=Head;

for(;

if(A[i]<

Temp->

data){

if(Temp->

LC==NULL){Temp->

LC=Node;

elseTemp=Temp->

LC;

}else{

RC==NULL){Temp->

RC=Node;

RC;

}

//用中序遍历二差树,输出结果为排序的数据

voidoutput()

LINK*stack[50];

intTOP=0;

LINK*P=Head;

if(P!

=NULL){

stack[TOP++]=P;

P=P->

}else{

if(TOP==0)break;

P=stack[--TOP];

%d\n"

P->

data);

built();

output();

实验三参数化图素拼装原理实验

实验内容:

编制构成轴的七种形状特征的函数,并利用这些函数生成一根轴。

构成轴的七种结构形式

传动轴

程序示例

voidCTSPZView:

DrawUnit_Arc(CDC*pDC,intr,CPointp0,CPointp1,CPointp2)

CRectrect(p0.x-r,p0.y-r,p0.x+r,p0.y+r);

pDC->

Arc(&

rect,p1,p2);

DrawUnit_A(CDC*pDC,CPointp0,intd,intc,boolv)

p2.x=p3.x=p0.x;

p2.y=p0.y-(d/2-c);

p3.y=p0.y+(d/2-c);

p1.x=p4.x=p0.x+(v?

(-c):

c);

p1.y=p0.y-d/2;

p4.y=p0.y+d/2;

MoveTo(p1);

LineTo(p2);

LineTo(p3);

LineTo(p4);

DrawUnit_B(CDC*pDC,CPointp0,intd,intb,boolv)

DrawUnit_C(CDC*pDC,CPointp0,intd,intb,boolv)

DrawUnit_D(CDC*pDC,CPointp0,intd,intb,boolv)

DrawUnit_E(CDC*pDC,CPointp0,intd,intb,intr,boolv)

DrawUnit_F(CDC*pDC,CPointp0,intd,intb,intl)

p5.x=p4.x=p0.x+(l-d/2);

p5.y=p1.y=p0.y-b/2;

p4.y=p3.y=p0.y+b/2;

intt=(int)(sqrt(d*d/4.0-b*b/4.0)+0.5);

p1.x=p3.x=p0.x+t;

DrawUnit_Arc(pDC,d/2,p0,p1,p3);

LineTo(p5);

DrawUnit_G(CDC*pDC,CPointp0,intb,intl)

OnTspzA()

CClientDCdc(this);

DrawUnit_A(&

dc,CPoint(200,300),100,10);

dc,CPoint(300,300),100,10,false);

//CDC*pDC,CPointp0,intd,intc,boolv)

OnTspz0()

//TODO:

Addyourcommandhandlercodehere

OnTspzB()

OnTspzC()

OnTspzD()

OnTspzE()

OnTspzF()

CDlgDrawFdlg;

if(dlg.DoModal()!

=IDOK)return;

DrawUnit_F(&

dc,CPoint(dlg.m_x0,dlg.m_y0),dlg.m_d,dlg.m_b,dlg.m_l);

OnTspzG()

OnTspzM()

实验四设计资料的程序处理

实验内容及要求:

编制下列函数及相应的主程序来调用这些函数。

保证输出结果正确。

1.制查三角胶带型号的函数(参见图5-5)。

要求输入转速和功率,输出型号。

2.编制“一元函数插值”的函数,实验数据见表5-7.

3.编制“二元函数插值”的函数,实验数据见表5-7.

4.编制“最小二乘法求线形方程”的函数,实验数据见表5-11.

math.h"

//找三角胶带型号输入参数N-转速;

P-功率

//函数返回值:

0-O型1-A型2-B型3-C型4-D型5-E型6-F型

intfind_type(doubleN,doubleP)

doubleA[6][4]={{4900,3.8,490,0.8},

{3400,10.5,100,1},

{2400,22.5,100,2.7},

{1500,36,100,5.9},

{1200,85,100,17.5},

{700,170,100,44}};

inti;

doublec;

for(i=0;

6;

if(N>

=A[i][0])returni;

c=log10(A[i][2])+(log10(A[i][0])-log10(A[i][2]))*

(log10(P)-log10(A[i][3]))/(log10(A[i][1])-log10(A[i][3]));

=pow(10.0,c))returni;

return6;

//一元函数线形插值

//xx,yy--节点数据,n--节点个数

intfind_liner(double*xx,double*yy,intn,doublex,double*y)

doublex1,y1,x2,y2;

inti=0;

if(x<

xx[0]||x>

xx[n-1])return0;

while(x>

xx[i])i++;

i--;

x1=xx[i];

y1=yy[i];

x2=xx[i+1];

y2=yy[i+1];

*y=y1+(x-x1)*(y2-y1)/(x2-x1);

return1;

//一元函数抛物线插值

intfind_quadric(double*xx,double*yy,intn,doublex,double*y)

doublex1,y1,x2,y2,x3,y3;

if((x-xx[i])<

(xx[i+1]-x))i--;

if(i<

0)i=0;

if(i>

n-3)i=n-3;

x3=xx[i+2];

y3=yy[i+2];

*y=0;

*y+=y1*(x-x2)*(x-x3)/(x1-x2)/(x1-x3);

*y+=y2*(x-x1)*(x-x3)/(x2-x1)/(x2-x3);

*y+=y3*(x-x1)*(x-x2)/(x3-x1)/(x3-x2);

//最小二乘法求线形方程

voidminlength_line(doublexy[][2],intm,double*a,double*b)

doublea1,b1,c1,a2,b2,c2,d;

b1=c1=a2=b2=c2=0.0;

m;

b1+=xy[i][0];

c1+=xy[i][1];

b2+=xy[i][0]*xy[i][0];

c2+=xy[i][0]*xy[i][1];

a1=m;

a2=b1;

d=a1*b2-a2*b1;

*a=(c1*b2-c2*b1)/d;

*b=-(c1*a2-c2*a1)/d;

find_type(2400,3.8));

doublexx[6]={0.4,0.5,0.6,0.7,0.8,0.9};

doubleyy[6]={0.38942,0.47943,0.56464,0.64422,0.71736,0.80341};

doublex=0.57891,y;

find_liner(xx,yy,6,x,&

y);

%lf\n"

y);

find_quadric(xx,yy,6,x,&

//最小二乘法求线形方程

doublexy[][2]={{1,0},{2,2},{3,2},{4,5},{5,4}};

doublea,b;

minlength_line(xy,5,&

a,&

b);

a=%lf\nb=%lf\n"

a,b);

实验五三角带传动的程序设计

1、已知条件

传动用途和工作条件,传动功率P,主、从带轮的转速n1,n2

2.设计时需要确定的内容

三角带型号、长度和根数,带轮直径,传动中心距,带的张紧力和轴上载荷,同时还要验算带的速度和小带轮上的包角。

三角带传动设计的源程序

#include<

stdio.h>

stdlib.h>

math.h>

#definePI3.1415926

=A[i][0])returni+1;

=pow(10.0,c))returni+1;

voidfind_S_KB(inttype,double*S,double*Q1,double*DMIN,double*DL,double*KB)

doubleA[5][7]={{47,81,138,230,476,692,1170},

{0.06,0.1,0.17,0.3,0.62,0.9,1.52},

{71,100,140,200,315,500,800},

{25,33,40,59,76,96,119},

{0.29,0.77,1.99,5.63,19.95,37.35,96.10}};

*S=A[0][type-1];

*Q1=A[1][type-1];

*DMIN=A[2][type-1];

*DL=A[3][type-1];

*KB=0.001*A[4][type-1];

doublefind_D2(doubleD2)

doubleA[53]={71,75,80,90,95,100,106,112,118,125,132,140,150,160,170,180,200,212,

224,236,250,265,280,300,315,355,375,400,425,450,475,500,530,560,600,630,670,

710,750,800,900,1000,1060,1120,1250,1400,1500,1600,1800,1900,2000,2240,2500};

53;

i++)if(A[i]>

=D2)returnA[i];

voidfind_LP_LI(doublel0,doubleDL,double*LP,double*LI)

doubleA[32]={450,500,560,630,710,800,900,1000,1120,1250,1400,1600,1800,

2000,22

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1