文档视界 最新最全的文档下载
当前位置:文档视界 › 上机练习三-图的操作

上机练习三-图的操作

上机练习三-图的操作
上机练习三-图的操作

一、实验内容

图的生成

图的遍历。

二、实验目的

1.掌握图的基本存储方法――邻接表和邻接矩阵。

2.掌握有关图的操作算法并用高级语言编程实现;

3.熟练掌握图的两种搜索路径的遍历方法。

三、实验题目

本实验要求实现以下功能:

1.以邻接矩阵或邻接表作为存储结构建立一个无向图。

2.深度(或广度)优先搜索该无向图,输出遍历序列。

[测试数据]:对如图的无向图建立存储并遍历:

四、实验报告

图的存储可采用邻接表或邻接矩阵;定义下列过程:

CreateGraph(): 按从键盘的数据建立图

DFSGrahp():深度优先遍历图

BFSGrahp():广度优先遍历图

算法描述:可以用自然语言、伪代码或流程图等方式

VertexType; //顶点类型

MGraph; //图的邻接矩阵类型

ArcNode; //定义邻接表类型

void DispMat(MGraph g) //输出邻接矩阵

void MatToList(MGraph g,ALGraph *&G) //将邻接矩阵g转换为邻接表G void DispAdj(ALGraph *G) //输出邻接表

void ListToMat(ALGraph *G,MGraph g) //将邻接表转换为邻接矩阵的形式

void DFS(ALGraph *G,int v) //递归深度优先遍历

void BFS(ALGraph *G,int v) //广度优先遍历

源代码:

#include

#include

#define max 100 //最大顶点个数

typedef struct //以下定义临接矩阵类型

{

int number; //顶点编号

int info; //顶点其他信息,边的权值

}VertexType; //顶点类型

typedef struct //图的定义

{

int edges[max][max]; //邻接矩阵

int n,e; //顶点数和弧数

VertexType vexs[max]; //存放定点信息

}MGraph; //图的邻接矩阵类型

typedef struct ANode //弧的结点结构类型

{

int adjvex; //弧的重点位置,就是放值的

struct ANode *nextarc; //指向下一条弧的指针

int info; //存放弧的信息(权值)

}ArcNode;

typedef struct Vnode

{

int data; //邻接表头结点的的类型

ArcNode *firstarc; //指向第一条弧

}VNode;

typedef VNode AdjList[max]; //AdjList是邻接表类型,把大表变成几个小的连接到一起

typedef struct

{

AdjList adjlist; //邻接表

int n,e; //图中顶点数和和边数

}ALGraph; //图的邻接表类型

int visited[max]; //全局数组用于判断后面节点是否被访问过

void DispMat(MGraph g) //输出邻接矩阵

{

int i,j;

for(i=0;i

{

for(j=0;j

if(g.edges[i][j]==0)

printf("0 ");

else

printf("%d ",g.edges[i][j]);

printf("\n");

}

}

void MatToList(MGraph g,ALGraph *&G) //将邻接矩阵g转换为邻接表G

{

int i,j;

int n=g.n; //n为顶点数

ArcNode *p; //弧节点结构的类型

G=(ALGraph *)malloc(sizeof(ALGraph));

for(i=0;i

G->adjlist[i].firstarc=NULL;

for(i=0;i

for(j=0;j

if(g.edges[i][j]!=0)

{

p=(ArcNode *)malloc(sizeof(ArcNode)); //新申请一个节点空间,就是后面的一段段小的节点

p->adjvex=j;

p->info=g.edges[i][j]; //存放边的权值

p->nextarc=G->adjlist[i].firstarc; //将*p连接到表后

G->adjlist[i].firstarc=p;

}

G->e=g.e;

G->n=g.n;

}

void DispAdj(ALGraph *G) //输出邻接表

{

int i;

ArcNode *p; //弧的类型

for(i=0;in;i++)

{

p=G->adjlist[i].firstarc;

if(p!=NULL)

printf(" %d: ",i); //这是那个大链表的头

while(p!=NULL) //顺着那个头向下查看

{

printf(" %d ",p->adjvex); //输出弧的终点

p=p->nextarc;

}

printf("\n");

}

}

void change(int visited[],ALGraph *G) //给全局变量visited赋初值{

int i;

for(i=0;in;i++)

visited[i]=0;

}

void ListToMat(ALGraph *G,MGraph g) //将邻接表转换为邻接矩阵的形式{

int i,j;

int n=G->n;

ArcNode *p;

for(i=0;i

for(j=0;j

g.edges[i][j]=0;

for(i=0;i

{

p=G->adjlist[i].firstarc;

while(p!=NULL)

{

g.edges[i][p->adjvex]=p->info;

p=p->nextarc;

}

}

g.n=n;

g.e=G->e;

}

void DFS(ALGraph *G,int v) //递归深度优先遍历

{

ArcNode *p;

//change(visited,G);

visited[v]=1; //第一个点设为已被访问并输出,接着以他为主进行遍历

printf(" %d",v);

p=G->adjlist[v].firstarc;

while(p!=NULL)

{

if(visited[p->adjvex]==0)

DFS(G,p->adjvex);

p=p->nextarc;

}

}

void BFS(ALGraph *G,int v) //广度优先遍历,一个点先找和其有关的所有节点,{

ArcNode *p;

int queue[max],front=0,rear=0; //定义循环队列并初始化

int visited[max];

int w,i;

for(i=0;in;i++)

visited[i]=0;

printf(" %d ",v); //把输入的第v个作为第一个广度遍历的节点,一直这样进行下去visited[v]=1;

rear=(rear+1)%max; //要入队了

queue[rear]=v; //把v入队

while(front!=rear) //队列不为空的时候

{

front=(front+1)%max; //要出队了

w=queue[front];

p=G->adjlist[w].firstarc; //跟前面差不多开始查找与顶点w邻接的第一个顶点了

while(p!=NULL)

{

if(visited[p->adjvex]==0) //就是当前节点未被访问

{

printf("%d ",p->adjvex);

visited[p->adjvex]=1;

rear=(rear+1)%max; //又要入队了,马上要重复之前的操作了

queue[rear]=p->adjvex;

}

p=p->nextarc;

}

}

printf("\n");

}

void main()

{

int i,j;

MGraph g;

ALGraph *G; //没有定义过的邻接表类型加上*

int A[max][6];

printf("请输入邻接矩阵:\n");

for(i=0;i<6;i++)

for(j=0;j<6;j++)

scanf("%d",&A[i][j]);

g.n=6;

g.e=10;

for(i=0;i

for(j=0;j

g.edges[i][j]=A[i][j]; //这是给邻接矩阵赋值

printf("这是图的邻接矩阵的形式:");

printf("\n");

DispMat(g); //输出邻接矩阵的函数

G=(ALGraph *)malloc(sizeof(ALGraph));

MatToList(g,G);

printf("这是图的邻接表的形式:");

printf("\n");

DispAdj(G);

printf("从顶点0开始的深度优先遍历:\n");

DFS(G,0);

printf("\n");

printf("从顶点0开始的广度优先遍历:\n");

BFS(G,0);

printf("\n");

}

MATLAB基本操作实验报告

南昌航空大学 数学与信息科学学院 实验报告 课程名称:数学实验 实验名称: MATLAB基本操作 实验类型:验证性■综合性□ 设计性□ 实验室名称:数学实验室 班级学号: 10 学生姓名:钟 X 任课教师(教师签名): 成绩: 实验日期: 2011-10- 10

一、实验目的 1、熟悉MATLAB基本命令与操作 2、熟悉MATLAB作图的基本原理与步骤 3、学会用matlab软件做图 二、实验用仪器设备、器材或软件环境 计算机MATLAB软件 三、实验原理、方案设计、程序框图、预编程序等 问题1:在区间【0,2π】画sinx 实验程序: >> x=linspace(0,2*pi,30); >> y=sin(x); >> plot(x,y) 问题2:在【0,2π】用红线画sinx,用绿圈画cosx,实验程序:

>> x=linspace(0,2*pi,30); >> y=sin(x); >> z=cos(x); >> plot(x,y,'r',x,z,'co') >> 问题3:在【0,π】上画y=sinx的图形。 实验程序: >> ezplot('sin(x)',[0,pi]) >> 问题4:在【0,π】上画x=cos3t,y=sin3t星形图形。

实验程序: >> ezplot('cos(t).^3','sin(t).^3',[0,pi]) >> 问题5:[-2,0.5],[0,2]上画隐函数 实验程序: >> ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2]) >> 问题6:在[-2,2]范围内绘制tanh的图形。实验程序: >> fplot('tanh',[-2,2])

soliworks2008基础教程与上机指导——第十章 装配设计

第10章装配设计 10.4 上机指导 10.4.1 物质动力 物质动力是以现实的方式查看装配体零部件运动的方法之一。启动物质动力功能后,拖动一个零部件时,此零部件就会向其接触的零部件施加作用力,并使接触的零部件在所允许的自由度范围内。物质动力可以在整个装配体范围内应用,拖动的零部件依次可以顺次推动一个零部件向前移动,继而推动另一个零部件移动。 例10.14 物质动力实例 (1) 单击【新建】按钮,出现【新建SolidWorks文件】对话框,选择【装配体】模 板,单击【确定】按钮,进入装配体窗口,出现【插入零部件】属性管理器,选 中【生成新装配体时开始指令】和【图形预览】复选框,单击【浏览】按钮,出 现【打开】对话框,选择要插入的零件“底板”,单击【打开】按钮,单击原点, 则插入“底板”,定位在原点,插入其余零件,单击【保存】按钮,保存为“物 质动力实例”,如图10.61所示。 (2) 选择“底板”、“滑块”的右视图,单击【重合】按钮,单击【确定】按钮, 完成重合配合,如图10.62所示。 (3) 选择“底板”上表面和“滑块1”下表面,单击【重合】按钮,单击【确定】按 钮,完成重合配合,如图10.63所示。 图10.61 物质动力实例

SolidWorks 基础教程与上机指导 ·258 · 图10.62 “底板”、“滑块”右视图重合配合 图10.63 “底板”上表面、“滑块1”下表面重合配合 (4) 按同样方法完成其余零件装配,单击【确定】按钮,如图10.64所示。 (5) 单击【移动零部件】按钮,出现【移动零部件】属性管理器,选择【自由拖动】 选项,指针变成形状,展开【高级配合】标签,选中【标准拖动】单选按钮, 按住鼠标拖动,观察移动情况,如图10.65所示。 图10.64 完成其余零件装配 图10.65 【自由拖动】 (6) 选中【碰撞检查】单选按钮,选中【碰撞时停止】、【高亮显示面】和【声音】 复选框,选择“手柄”,由于销钉的影响,滑块<1>被拖动到如图10.66所示位置,停止并发出“叮铛”声。 (7) 选中【物质动力】单选按钮,选择“手柄”,在零件上出现一个符号,这个符 号代表质量中心。拖动“手柄”,当“滑块<1>”移动到槽尾部时,“滑块 <1>” 将拖动“滑块<2>”同时移动,直到“滑块<2>”零件到达“底板”槽的尾部,发生碰撞时停止,如图10.67所示。

第三次上机作业

第三次上机作业 题目: 1.从一个整型数组中删除所有小于数组元素平均值并且不是素数的那些整数。 【编程要求】 1)编写函数int del(int r[ ], int n),计算r数组中前n个整数的平均值,删除 数组中所有小于该平均值并且不是素数的那些数,函数返回r数组中剩 余整数的个数。 2)编写main函数,声明数组resource并用测试数据初始化,调用del函数 处理数组resource中的数据,将resource数组中剩余的整数输出到屏幕。 【测试数据与运行结果】 数组初始数据为:17 5 6 18 8 28 运行结果:17 5 18 28 2.编程要求 1)编写函数int find(char *a , char *b),函数被调用时,a指向的数组中已 存储一个字符串,该字符串是一个包含了多个单词的英语句子。函数的 功能找出字符数组a中字符串中最长的单词并存入b所指向的数组中, 函数返回最长单词在字符串的起迭位置下标。 2)编写main函数,接受键盘输入的一个英文句子。调用find函数找到该 句子中最长的单词,将最长单词及其在字符串中的起始位置下标输出到 屏幕。 附加题 3.重新排列一维数组元素的顺序,使得左边的所有元素均为偶数并按由大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。 【测试数据与运行结果】 数组原始数据为:17 15 10 14 16 17 19 18 13 12 输出结果:18 16 14 12 10 13 15 17 17 19 要求:

1)编写函数void resort(int *x, int n),使得左边的所有元素均为偶数并按由 大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。 (可根据编程需要增加函数) 2)编写main函数,接受键盘输入数据,调用resort函数完成上述功能,并 输出结果。

图的遍历操作实验报告

. .. . .. .. 实验三、图的遍历操作 一、目的 掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构;掌握DFS及BFS对图的遍历操作;了解图结构在人工智能、工程等领域的广泛应用。 二、要求 采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS 和BFS操作。 三、DFS和BFS 的基本思想 深度优先搜索法DFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后选择一个与Vo相邻且没被访问过的顶点Vi访问,再从Vi出发选择一个与Vi相邻且没被访问过的顶点Vj访问,……依次继续。如果当前被访问过的顶点的所有邻接顶点都已被访问,则回退到已被访问的顶点序列中最后一个拥有未被访问的相邻顶点的顶点W,从W出发按同样方法向前遍历。直到图中所有的顶点都被访问。 广度优先算法BFS的基本思想:从图G中某个顶点Vo出发,首先访问Vo,然后访问与Vo相邻的所有未被访问过的顶点V1,V2,……,Vt;再依次访问与V1,V2,……,Vt相邻的起且未被访问过的的所有顶点。如此继续,直到访问完图中的所有顶点。 四、示例程序 1.邻接矩阵作为存储结构的程序示例

#include"stdio.h" #include"stdlib.h" #define MaxVertexNum 100 //定义最大顶点数 typedef struct{ char vexs[MaxVertexNum]; //顶点表 int edges[MaxVertexNum][MaxVertexNum]; //邻接矩阵,可看作边表int n,e; //图中的顶点数n和边数e }MGraph; //用邻接矩阵表示的图的类型 //=========建立邻接矩阵======= void CreatMGraph(MGraph *G) { int i,j,k; char a; printf("Input VertexNum(n) and EdgesNum(e): "); scanf("%d,%d",&G->n,&G->e); //输入顶点数和边数 scanf("%c",&a); printf("Input Vertex string:"); for(i=0;in;i++) { scanf("%c",&a); G->vexs[i]=a; //读入顶点信息,建立顶点表 }

AUTOCAD上机操作题库

AUTOCAD上机操作题库 试题一 绘制三视图(图号001)。 (1)要求如下: 1.用A3图幅,横放。 2.不标注尺寸,画标题栏外边框线,不画标题栏内细实线。 3.布图不一定要匀称(以后可采用移动命令调整视图位置)。 (2)绘图方法与步骤 1.启动AutoCAD2004系统,进入AutoCAD2004绘图界面。 2.用新建命令建立一个新图形文件。 3.绘A3图幅边界线(细实线) 打开正交(ORTHO)按钮,启用直线命令,采用绝对直角坐标输入方法。 4.绘制图框线(粗实线) 启用多段线命令,采用相对直角坐标输入方法。 5.绘制标题栏外边框线(粗实线) 采用“相对极坐标”输入方法。 启用多段线(Pline)命令,根据提示完成。 6.绘制三视图 启用多段线命令,采用“直接距离”和“相对极坐标”输入方法。 (1)绘制主视图 (2)绘制俯视图 (3)绘制左视图 (3)注意事项 1.绘制图形前,应先均匀布置好三视图的位置,确定三个视图的起点A、B 、C的坐标。2.用“直接距离”输入点的坐标时,应在确定线段起点后,拉出橡皮线,指示画线方向,再输入线段长度值。

图001

试题二 绘制平面图形(图号003) (1)要求 1.用A4图幅,竖放。 2.不标注尺寸,不填写标题栏。 3.布图均匀,作图准确。 (2)绘图方法与步骤 1.启动AutoCAD2004系统,进入AutoCAD2004界面。 2.启用新建命令创建一个新图形文件。 3.并启用“UNITS”命令,在单位对话框中设置:绘图单位、精度、角度、方向等内容。4.设置绘图界限:启用命令(命令行输入:limits↙或单击:格式→图形界限)→输入左下角点坐标:0,0↙→输入右上角点坐标:210,297↙。 5.启用图层命令,按规定设置三个图层的线型和颜色。 粗实线、细实线、细点画线层。 6.绘制图框、标题栏。 7.绘制基准线。 用直线命令绘制椭圆的中心线,用偏移命令完成4×Φ16圆的中心线。 8.绘制椭圆。 (1)设置系统变量PELLIPSE=1 操作方法:键盘输入:PELLIPSE↙→输入:1↙。 (2)启用椭圆命令绘制长轴为110、短轴为60椭圆。 9.启用偏移命令绘制外椭圆弧。 10.启用圆命令绘制4×Φ16、R16的圆。绘制圆时,调出“对象捕捉”工具条,用捕捉交点指定圆点位置。 11.启用圆命令中的TTR(切、切、半)绘制8个R10并与相邻圆弧相切的圆。 12. 启用圆命令画Φ40的圆,用多边形命令画正六边形 12.启用直线命令绘制公切线。切点用捕捉切点的方法获得。 13.启用修剪命令或删除命令擦去多余图线。 14.用多段线编辑命令加粗全部可见轮廓线。 五、注意事项 1.改变系统变量LTSCALE的值,可改变点画线、虚线的相对长度。操作方法: 输入:“LTSCALE”↙→提示:输入新线型比例因子→输入一个新值,按Enter键。2.绘制不同线型的图形时,注意将所画图线的层设为当前层。

数值线性代数第三次上机作业

数值线性代数第三次上机作业 对比试验希尔伯特矩阵和魔方矩阵及Matlab内置QR分解(六阶矩阵) 运行结果: 六阶的希尔伯特矩阵经典的Gram-Schmidt QR分解: Q = 0.8189 -0.5397 0.1893 -0.0482 0.0090 -0.0011 0.4094 0.3320 -0.7024 0.4489 -0.1617 0.0332 0.2730 0.4219 -0.1529 -0.5723 0.5854 -0.2322 0.2047 0.4067 0.2015 -0.3866 -0.4687 0.6189 0.1638 0.3735 0.3963 0.0915 -0.4285 -0.6961 0.1365 0.3399 0.4998 0.5574 0.4773 0.2784 R = 1.2212 0.7019 0.5045 0.3970 0.3284 0.2806 0 0.1385 0.1511 0.1444 0.1340 0.1237 0 0 0.0096 0.0152 0.0181 0.0195 0 0 0 0.0005 0.0010 0.0014 0 0 0 0 0.0000 0.0000 0 0 0 0 0 0.0000 六阶的希尔伯特修正的Gram-Schmidt QR分解: Q = 0.8189 -0.5397 0.1893 -0.0482 0.0090 -0.0011 0.4094 0.3320 -0.7024 0.4489 -0.1617 0.0331 0.2730 0.4219 -0.1529 -0.5723 0.5854 -0.2320 0.2047 0.4067 0.2015 -0.3866 -0.4687 0.6188 0.1638 0.3735 0.3963 0.0915 -0.4285 -0.6961 0.1365 0.3399 0.4998 0.5574 0.4773 0.2785 R = 1.2212 0.7019 0.5045 0.3970 0.3284 0.2806 0 0.1385 0.1511 0.1444 0.1340 0.1237 0 0 0.0096 0.0152 0.0181 0.0195 0 0 0 0.0005 0.0010 0.0014 0 0 0 0 0.0000 0.0000 0 0 0 0 0 0.0000 六阶的希尔伯特matlab内置的QR分解: Q= 0.8189 -0.5397 0.1893 -0.0482 0.0090 -0.0011 0.4094 0.3320 -0.7024 0.4489 -0.1617 0.0331 0.2730 0.4219 -0.1529 -0.5723 0.5854 -0.2320 0.2047 0.4067 0.2015 -0.3866 -0.4687 0.6188 0.1638 0.3735 0.3963 0.0915 -0.4285 -0.6961 0.1365 0.3399 0.4998 0.5574 0.4773 0.2785

实验报告1windows的基本操作范例

实验名称:Windows的基本操作 一、实验目的 1.掌握桌面主题的设置。 2.掌握快捷方式的创建。 3.掌握开始菜单的组织。 4.掌握多任务间的数据传递——剪贴板的使用。 5.掌握文件夹和文件的创建、属性查看和设置。 6.掌握文件夹和文件的复制、移动和删除与恢复。 7.熟悉文件和文件夹的搜索。 8.熟悉文件和文件夹的压缩存储和解压缩。 二、实验环境 1.中文Windows 7操作系统。 三、实验内容及步骤 通过上机完成实验4、实验5所有内容后完成该实验报告 1.按“实验4--范例内容(1)”的要求设置桌面,将修改后的界面复制过来。 注:没有桌面背景图“Autumn”的,可选择其它背景图。 步骤:在桌面空白区域右击,选择菜单中的“个性化”,在弹出的窗口中点击“桌面背景”,在背景栏内选中“某一张图片”,单击“确定”。 修改后的界面如下图所示: 2.将画图程序添加到“开始”菜单的“固定项目列表”上。 步骤:右击“开始/所有程序/附件”菜单中的画图程序项,在弹出的快捷菜单中选“附到「开始」菜单”命令。 3.在D盘上建立以“自己的学号+姓名”为名的文件夹(如01108101刘琳)和其子文件 夹sub1,然后:

步骤:选定D:\为当前文件夹,选择“文件/新建/文件夹”命令,并将名字改为“学号+姓名”;选定“ D:\学号+姓名”为当前文件夹,选择“文件/新建/文件夹”命令,并将名字改为“sub1” ①在C:\WINDOWS中任选2个TXT文本文件,将它们复制到“学号+姓名”文件夹中;步骤:选定“C:\WINDOWS”为当前文件夹,随机选取2个文件, CTRL+C复制,返回“D:\学号+姓名”的文件夹,CTRL+V粘贴 ②将“学号+姓名”文件夹中的一个文件移到其子文件夹sub1中; 步骤:选定“ D:\学号+姓名”为当前文件夹,选中其中任意一个文件将其拖拽文件到subl ③在sub1文件夹中建立名为“”的空文本文档; 步骤:选定“ D:\学号+姓名\ sub1”为当前文件夹,在空白处单击右键,选择“新建\文本文档”,把名字改为test,回车完成。 ④删除文件夹sub1,然后再将其恢复。 步骤:选定“ D:\学号+姓名”为当前文件夹,右键单击“sub1”文件夹,选择“删除”,然后打开回收站,右键单击“sub1”文件夹,在弹出的快捷菜单中选择“还原”。 4.搜索C:\WINDOWS\system文件夹及其子文件夹下所有文件名第一个字母为s、文件长 度小于10KB且扩展名为exe的文件,并将它们复制到sub1文件夹中。 步骤:选定“ C:\WINDOWS\system”为当前文件夹,单击“搜索”按钮,在左侧窗格选择“所有文件和文件夹”,在“全部或部分文件名”中输入“s*.exe”,在“大小”中,选择“0~10KB”。 5.用不同的方法,在桌面上创建名为“计算器”、“画图”和“剪贴板”的三个快捷方式, 它们应用程序分别为:、和。并将三个快捷方式复制到sub1文件夹中。 步骤:①在"开始"菜单的"所有程序"子菜单中找到"计算器",单击右键,在弹出的快捷菜单中选择“发送到\桌面快捷方式”。 ②在"开始"菜单的"所有程序"子菜单中找到"画图",将其拖至桌面空白处。 ③在桌面上单击右键,在弹出的快捷菜单中选择“新建\快捷方式”,在“创建快捷方式”

机械制图-如何由装配图拆画零件图文档

机械制图-如何由装配图拆画零件图 装配图拆画出零件图是设计过程中的重要环节,是产品设计加工的重要手段。必须在全面看懂装配图的基础上,按照零件图的内容和要求拆画零件图。下面就介绍拆画零件图的一般方法步骤。 一、零件的分类处理 拆画零件图前,要对装配图所示的机器或部件中的零件进行分类处理,以明确拆画对象。按零件的不同情况可分以下几类: 1、标准件 大多数标准件属于外购件,故只需列出汇总表,填写标准人件的规定标记、材料及数量即可,不需拆画其零件图。 2、借用零件 是指借用定型产品中的零件,可利用已有的零件图,不必另行拆画其零件图。 3、特殊零件 是设计时经过特殊考虑和]计算所确定的重要零件,如汽轮机的叶片、喷嘴等。这类零件应按给出的图样或数据资料拆画零件图。 4、一般零件 是拆画的主要对象,应按照在装配图中所表达的形状、大小和有关技术要求来拆画零件图。 如图1钻模装配图,共26种零件,除去12捉标准件,其余14种为一般零件,需拆画零件图。此部件中无借用零件和特殊零件。 一、看懂装配图分离零件

看懂装配图,弄清机器或部件的工作原理、装配关系、各零件的主要结构形状及功用,在此基础上将所要拆画的零件从装配线图中分离出来。现以图1钻模中的模板6为例,说明分离零件的方法: 1、利用序号指引线 看看左视图,从序号6的指引线起端圆点,可代到模板的位置和大致轮廓范围,从而知道它仅次于钻模上方。 2、用投影关系和形体分析法 看左视图联系主、俯视图,对投影,用形体分析法可知,模板为前部长方体,后部为圆形体,呈前低年高形状,并可知其上各孔的位置。 3、用剖面线、规定画法和配合代号 看左视图联系俯、主视图和剖视图“B—B”可知: (1)模板与衬碱度7、V型压铁5这两个相邻剖面线方向、间隔不同,且接触面画一条线,很容易区分出来。模板衬碱度7注有配合代号,则模板此处庆为一光孔。 (2)模板的相邻件螺钉9、斜齿杆10、引导栏13由于受纵向剖切没画剖面线。模板与螺钉9以螺纹连接,可知模板此处为一M6螺纹通孔。(3)模板与伴齿杆10连接处下压斜齿杆轴肩,上有螺母、垫圈紧固。斜齿杆与模板光孔处不接触画两人条线,可知模板此处为直径稍大于杆直径或上部螺纹大径的炮孔。 (4)模板与引导柱13上部连接处下压引导柱轴肩,孔轴配合处接触器画一条线,注有配合代号φ ,可知模板此处为一φ15H7光孔。两引导柱孔中心距为52±0.01。

第二次上机作业参考答案

第二次上机作业参考答案: 1. 4个数排序 从键盘任意输入4个整数,将其按从小到大顺序排序后输出。 例:输入 5 12 -9 3 输出After ascending sorting: -9 3 5 12 #include void main() { int a,b,c,d,t; scanf("%d%d%d%d",&a,&b,&c,&d); if(a>b) { t=a; a=b; b=t; } if(a>c) { t=a; a=c; c=t; } if(a>d) { t=a; a=d; d=t; } if(b>c) { t=b; b=c; c=t; } if(b>d) { t=b; b=d; d=t; } if(c>d) { t=c; c=d; d=t; } printf("The sorted number is:%d %d %d %d\n",a,b,c,d); } 2.求1 + 1/2! +....+ 1/n! 输入正整数n,计算上式前n 项的和(保留 4 位小数)。 例:输入10 输出 1 + 1/2! +....+ 1/10!=1.7183 #include int main( ) { int i,j,n; float s,t; scanf("%d",&n); for(s=0,i=1;i<=n;i++) { for(t=1,j=1;j<=i;j++) t*=j; s+=1/t; } printf("%0.4f\n",s); }

3. 编程计算表达式:data1 op data2 的值。(+ - * / %) 例:输入23+12 输出23+12=35 #include int main( ) { int a,b,result,flag=1; char op; scanf("%d%c%d",&a,&op,&b); switch(op) { case '+': result=a+b; break; case '-': result=a-b; break; case '*': result=a*b; break; case '/': printf("%d%c%d=%.2f\n",a,op,b,(float)a/b); flag=0; break; case '%': result=a%b; break; } if(flag) printf("%d%c%d=%d\n",a,op,b,result); } 4. 用二分法求方程2x3-4x2+3x-6=0在(a,b)之间的根。 例:输入Please input the lower and upper boundaries: 3 10 输出No root in this boundary! Please input the lower and upper boundaries: 1 5 The root is 2.00 #include void main() { double x,fx,a,fa,b,fb; do { printf("Please input the lower and upper boundaries:"); scanf("%lf%lf",&a,&b); fa=2*a*a*a-4*a*a+3*a-6; fb=2*b*b*b-4*b*b+3*b-6; }while(fa*fb>0); while(1) { x=(a+b)/2; fx=2*x*x*x-4*x*x+3*x-6;

数据结构实验图的基本操作

浙江大学城市学院实验报告 课程名称数据结构 实验项目名称实验十三/十四图的基本操作 学生姓名专业班级学号 实验成绩指导老师(签名)日期2014/06/09 一.实验目的和要求 1、掌握图的主要存储结构。 2、学会对几种常见的图的存储结构进行基本操作。 二.实验内容 1、图的邻接矩阵定义及实现: 建立头文件test13_AdjM.h,在该文件中定义图的邻接矩阵存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时建立一个验证操作实现的主函数文件test13.cpp(以下图为例),编译并调试程序,直到正确运行。 2、图的邻接表的定义及实现: 建立头文件test13_AdjL.h,在该文件中定义图的邻接表存储结构,并编写图的初始化、建立图、输出图、输出图的每个顶点的度等基本操作实现函数。同时在主函数文件test13.cpp中调用这些函数进行验证(以下图为例)。

3、填写实验报告,实验报告文件取名为report13.doc。 4、上传实验报告文件report13.doc到BB。 注: 下载p256_GraphMatrix.cpp(邻接矩阵)和 p258_GraphAdjoin.cpp(邻接表)源程序,读懂程序完成空缺部分代码。 三. 函数的功能说明及算法思路 (包括每个函数的功能说明,及一些重要函数的算法实现思路) 四. 实验结果与分析 (包括运行结果截图、结果分析等)

五.心得体会

程序比较难写,但是可以通过之前的一些程序来找到一些规律 (记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。) 【附录----源程序】 256: //p-255 图的存储结构以数组邻接矩阵表示, 构造图的算法。 #include #include #include #include typedef char VertexType; //顶点的名称为字符 const int MaxVertexNum=10; //图的最大顶点数 const int MaxEdgeNum=100; //边数的最大值 typedef int WeightType; //权值的类型 const WeightType MaxValue=32767; //权值的无穷大表示 typedef VertexType Vexlist[MaxVertexNum]; //顶点信息,定点名称 typedef WeightType AdjMatrix[MaxVertexNum][MaxVertexNum]; //邻接矩阵typedef enum{DG,DN,AG,AN} GraphKind; //有向图,有向网,无向图,无向网typedef struct{ Vexlist vexs; // 顶点数据元素 AdjMatrix arcs; // 二维数组作邻接矩阵 int vexnum, arcnum; // 图的当前顶点数和弧数 GraphKind kind; // 图的种类标志 } MGraph; void CreateGraph(MGraph &G, GraphKind kd)// 采用数组邻接矩阵表示法,构造图G {//构造有向网G int i,j,k,q; char v, w; G.kind=kd; //图的种类 printf("输入要构造的图的顶点数和弧数:\n"); scanf("%d,%d",&G.vexnum,&G.arcnum); getchar();//过滤回车 printf("依次输入图的顶点名称ABCD...等等:\n"); for (i=0; i

运筹学第三次上机作业之资源利用问题

题目一:永久机械厂生产Ⅰ、Ⅱ、Ⅲ三种产品,均要经过A 、B 两道工序加工。设有两种规格的设备A1、A2能完成 A 工序;有三种规格的设备B1、B2、B3能完成 B 工序。Ⅰ可在A 、B 的任何规格的设备上加工;Ⅱ 可在任意规格的A 设备上加工,但对B 工序,只能在B1设备上加工;Ⅲ只能在A2与B2设备上加工。数据如表。问:为使该厂获得最大利润,应如何制定产品加工方案? 解:设设备A 1生产I 产品1x 件,产品II 生产2x 件,设备A 2生产产品I,3x 件,产品IIx 4件, 产品IIIx 5件,设备B 1生产Ix 6件,IIx 7件,设备B 2生产Ix 8件,IIIx 9件,设备B 3生产Ix 10件。由题意可得: Max Z=0.751x +1.152x +0.77533x +1.3611 x 4 +1.9148 x 5-0.375 x 6-0.5 x 7 -0.447429 x 8-1.230429 x 9-0.35 x 10 ST.?? ? ?? ? ? ? ????? 9574210863110987654320040007700011440008610000 12976000105x x x x x x x x x x x x x x x x x x x x ==-+=---+≤≤+≤+≤++≤+

经运算可得: **********************最优解如下************************* 目标函数最优值为: 1146.41367867589 变量最优解 ------- -------- x1 1200 x2 0 x3 230 x4 500 x5 324 x6 0 x7 500 x8 859 x9 324 x10 571 约束松弛/剩余 ------- --------- 1 0 2 2 3 0 4 0 5 3 6 0 7 0 8 0 故设备A 1生产I产品1200件,产品II生产零件;设备A 2 生产产品I,230件,产品II500件, 产品III324件;设备B 1生产I零件,II500件;设备B 2 生产I859件,III324件;设备B 3 生

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)

实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图所示:

装配图技术要求

1.锥面与件-07的锥面,保证接触面积大于80% 2.零件13与零件14的装配面对主床身后模垫板的平行度不大于0.05mm 3.所有相对运动的零件,要求运动自如,不得有卡死现象存在 4.该装置接上润滑油后,检查所有相对运动的地方,必须有润滑油送到 5.零件6与零件16、17、18、19组装后,间隙为0.07-0.10mm 6.零件7与零件8组装后,接触线不得少于有效长度的80% 7.紧固件装配 8.链轮必须牢固的装在轴上,并且轴肩与链轮端面的间隙不得大于0.10mm; 9.主动链轮和被动链轮齿的中心线应当重合,其偏移误差不得大于两链轮中心距的2/1000; 10.装配前,所有的零件用煤油清洗,箱体内壁涂上两层不被机油浸蚀的涂料; 11.齿轮啮合侧隙用铅丝检验,高速级侧隙应不小于0.211mm,低速级侧隙也不应小于0.211 mm; 12.用涂色法检验齿面接触斑点:按齿高不小于40%,按齿长不小于50%; 13.滚动轴承36207,36211的轴向调整间隙为0.04~0.07mm; 14.剖分面涂密封胶或水玻璃,不允许使用任何填料; 15.减速器内盛120号工业齿轮油; 16.减速器外表面涂灰色油漆; 基本要求 1 必须按照设计、工艺要求及本规定和有关标准进行装配。 2 装配环境必须清洁。高精度产品的装配环境温度、湿度、防尘量、照明防震等必须符合有关规定。 3 所有零部件(包括外购、外协件)必须具有检验合格证方能进行装配。 4 零件在装配前必须清理和清洗干净,不得有毛刺、飞边、氧化皮、锈蚀、切屑、砂粒、灰尘和油污等,并应符合相应清洁度要求。 5 装配过程中零件不得磕碰、划伤和锈蚀。 6 油漆未干的零件不得进行装配。 7 相对运动的零件,装配时接触面间应加润滑油(脂)。 8 各零、部件装配后相对位置应准确。 9 装配时原则上不允许踩机操作,特殊部位必须上机操作时应采取特 殊措施,应用防护罩盖住被踩部位,操作者须穿平底步鞋以防止破坏漆膜,电瓶及非金属等强度较低部位严禁踩踏。 各密封件装配前必须浸透油。 15.装配滚动轴承允许采用机油加热进行热装,油的温度不得超过100℃。 20.齿轮装配后,齿面的接触斑点和侧隙应符合GB10095和GB11365的规定。 21.装配液压系统时允许使用密封填料或密封胶,但应防止进入系统中。 22.进入装配的零件及部件(包括外购件、外协件),均必须具有检验部门的合格证方能进行装配。 23.零件在装配前必须清理和清洗干净,不得有毛刺、飞边、氧化皮、锈蚀、切屑、油污、着色剂和灰尘等。 24.装配前应对零、部件的主要配合尺寸,特别是过盈配合尺寸及相关精度进行复查。 25.装配过程中零件不允许磕、碰、划伤和锈蚀。 26.螺钉、螺栓和螺母紧固时,严禁打击或使用不合适的旋具和扳手。紧固后螺钉槽、螺母

华中科技大学c第3次上机作业

华中科技大学 《计算机基础与程序设计(C++)》 实验报告 实验名称:第三次上机实验实验学时:4 姓名:学号:班级:电气 实验日期:2017/3/27 教师批阅签字: 一、实验目的 ●掌握三种循环语句的使用。 ●学会使用continue 和break。 ●掌握多重循环的设计。 ●掌握常用算法的应用。 二、实验内容 1.在vc环境下编写下述程序代码,编译调试然后用不同的数据测试直至得到完全正确的 结果。并解释出错原因。 #include #include using namespace std; int main( ) { float x0,x1,a; cout<<"输入一个正数:"; cin>>a; if(a<0) cout<=1e-5) { x0=x1; x1=(x0+a/x0)/2; } cout<< a<<"的平方根为:"<

return 0; 语法错误: 1.最后缺少花括号。 逻辑错误: 1.else后面有分号,导致花括号中的语句不受else限制。 2.abs所提供的精度为整数 更改后的程序: #include #include using namespace std; int main( ) { float x0,x1,a; cout<<"输入一个正数:"; cin>>a; if(a<0) cout<=1e-5) { x0=x1; x1=(x0+a/x0)/2; } cout<< a<<"的平方根为:"<

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作....................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验二:图像的灰度变换和直方图变换............................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验三:图像的平滑处理....................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。实验四:图像的锐化处理......................................................................................... 错误!未定义书签。:实验目的 .............................................................................................................. 错误!未定义书签。:实验任务和要求..................................................................................................... 错误!未定义书签。:实验步骤和结果..................................................................................................... 错误!未定义书签。:结果分析................................................................................................................. 错误!未定义书签。

相关文档
相关文档 最新文档