首页 > 范文大全 > 实习报告 > acm程序设计实习报告

acm程序设计实习报告

时间:2017-09-18   来源:实习报告   点击:

【www.gbppp.com--实习报告】

acm程序设计实习报告 第一篇_程序设计实训封面及内容模板

郑州轻工业学院

实习名称:程序设计与ACM竞赛实训

之程序设计实训

院系:计算机与通信工程学院

专业班级:计算机2014-01班

学号:541407010152

姓名:张径天

实习地点:科学校区实验楼302

时间:2015年7月

第一部分

扫雷游戏的设计与实现

一、实训目的

请注意格式:正文采用小四号字、单倍行距,其中的代码用五号字!注意分段,且每段首行缩进两个字!

1.掌握窗体设计步骤、窗体调用

2.学习Form窗体中控件的灵活使用,能基本理解所学代码的基本含义

3.会使用button、panel、label、textbox、menestrip等按钮,并会使用二维数组的定义与使用二维数组定义雷区,通过enable按钮控制器可使用性

4. 能通过Loction、size等控制界面的合理大方

5. 能使用imagebox、timer等控件的加入,并能通过属性按钮来完成所需要的结果

6. 自学制作过程中不会控件的使用。

二、实训内容

1. 通过一学期所学的C#知识来完成基本的可视化程序设计需求

2. 仿Windows系统扫雷,完善扫雷游戏:添加菜单(包含快捷键、热键等)、实现初级、中级、高级及自定义扫雷;添加扫雷英雄榜;实现各方块中标识周边雷数量的文字采用不同颜色的数字显示

三、程序开发操作步骤

说明:以下共分为4各部分来介绍,分别为:扫雷主界面、自定义窗体、请输入窗体、英雄榜窗体等.

主界面:

1. 打开Microsoft Visual Studio 2008,选择c#编译环境,创建一个项目,使用Windows窗体应用程序,并命名为“扫雷_xxb”

2. 点击Form1,从text属性栏中的Form1改为扫雷,icon属性中加入mine.ico图片。再将Font属性改为新宋体,9pt,加粗。并向其中添加一个timer1控件其属性中的Interval属性改为1000.添加一个imageList1控件,添加图片。

3. 按照如上设计分别加入menestrip控件,设计好菜单为:游戏(&G):新游戏、初级、中级、高级、自定义„、英雄榜„、退出;帮助(&H):游戏说明、 关于扫雷„、关于版权„等。按顺序先把前者属性栏中的ShowShortcutKeys属性设置为True,ShortcutKeys 分别设置为Ctrl+N、Ctrl+L、Ctrl+M、Ctrl+H、Ctrl+D、Ctrl+C、Ctrl+E;后者分别设置为Ctrl+I、Ctrl+F、Ctrl+B。

4. 向Form1中拖入一个menuStrip控件,Loction和size属性按上图设计,分别向其中加入1个button控件和2个label控件。设置label控件的Font属性为宋

体,12pt,加粗,其中ForeColor设置为Red。并在buttion窗体的text设置为空,Image加入face.bmp图片。

5. 再向Form1窗体中拖入一个button控件,其Text属性改为标示出雷,Font属性设置为新宋体,9pt,加粗。其中各个控件的位置是一定的。

6. 选中Form1在其属性事件中单击Load,添加如下代码:

privatevoid Form1_Load(object sender, EventArgs e) //Form1_Load,用于基本开始界面的设置

{

string path; //定义字符串,用于存放“扫雷英雄榜.txt”的位置

path = System.Windows.Forms.Application.StartupPath; // bin路径

if (!File.Exists(path + "\\扫雷英雄榜.txt")) //if语句,主要是通过检测是否有扫雷英雄榜.txt,如果没有。。。

File.Create(path + "\\扫雷英雄榜.txt"); //创建扫雷英雄榜.txt

初级ToolStripMenuItem.Checked = true; //使菜单中的初级可用

Load_Mine(); //用于解决开始时单击任意按钮均胜利的问题

GameInit(); //游戏初始化

timer1.Enabled = true; //开启时钟计时

}

7. 设置button1按钮:在点击事件下加入如下代码:

privatevoid button1_Click(object sender, EventArgs e) //这是一个开始按钮,单击即开始游戏

{

button1.Image = Image.FromFile("face.bmp"); //用于控制开始按钮的图标,开始时位笑脸

DelAllMines(); //删除所有的雷区控件(很重要,用于不让其改变等级时有参与) RestMine = MineNum; //用于记录雷数,开始时剩余雷数为总雷数

CostTime = 0; //用于记录从开始到现在游戏用时,开始为0

label1.Text = CostTime.ToString(); //label1窗体中用于显示所用的时间 GamesBegin(); //开始游戏

GameInit(); //游戏初始化

timer1.Enabled = true; //触发计时器

}

设置button2按钮:在点击事件下加入如下代码:

privatevoid button2_Click(object sender, EventArgs e) //显示所有的雷数

{

show(); //将地图中所有雷标识出来

}

privatevoid show()//将地图中所有雷标识出来

{

for (int i = 0; i < XNum; i++)

for (int j = 0; j < YNum; j++)

if (Convert.ToInt16(Mines[i, j].Tag) == 1)

{

//==1时,代表这个位置是地雷

Mines[i, j].BackgroundImage = Image.FromFile("mine.bmp");

}

}

8. 分别通过菜单栏中选项的单击添加如代码:

privatevoid 新游戏ToolStripMenuItem_Click(object sender, EventArgs e) //新游戏按钮的定义 {

button1.Image = Image.FromFile("face.bmp"); //开始时,让button1按钮的Image设为face.bmp

DelAllMines(); //删除所有的雷区控件(很重要,用于不让其改变等级时有参与) RestMine = MineNum; //计数剩余的雷数

CostTime = 0; //计数所用时间

label1.Text = CostTime.ToString(); //用于在开始界面显示所用的时间

GamesBegin(); //开始游戏

GameInit();//游戏初始化

timer1.Enabled = true; //触发计时器

}

privatevoid 退出ToolStripMenuItem_Click(object sender, EventArgs e) //定义退出

{

Application.Exit(); //单击退出

}

privatevoid 自定义ToolStripMenuItem_Click(object sender, EventArgs e) //自定义按钮的定义 {

button1.Image = Image.FromFile("face.bmp"); //开始时,让button1按钮的Image设为face.bmp

初级ToolStripMenuItem.Checked = false; //初级按钮不可用

中级ToolStripMenuItem.Checked = false; //中级按钮不可用

高级ToolStripMenuItem.Checked = false; //高级按钮不可用

自定义ToolStripMenuItem.Checked = true; //自定义按钮可用

Form zdy = newForm2(); //通过定义调用新的Form窗体

zdy.ShowDialog(); //显示自定义窗体

if (zdy.DialogResult == DialogResult.OK) //如果在自定义窗体中单击 确定

zdyGames(); //开始自定义游戏

}

privatevoid zdyGames() //自定义游戏

{

DelAllMines(); //删除残余雷片

XNum = zdyXNum; //定义雷区的列数

YNum = zdyYNum; //定义雷区的行数

MineNum = zdyMineNum; //定义总雷数

label1.Text = CostTime.ToString(); //用于在开始界面显示所用的时间

GamesBegin(); //开始游戏

GameInit();//游戏初始化

timer1.Enabled = true; //触发计时器

}

privatevoid 关于扫雷ToolStripMenuItem1_Click(object sender, EventArgs e)

{

MessageBox.Show("游戏简介:\r\n\r\n------------------------------------------\r\n\r\n扫雷是单人计算机游戏,游戏的用户界面十分友好!

\r\n\r\n------------------------------------------\r\n\r\n当游戏方格组成的战场构成开始时,计算机将固定的地雷数随机的放到战场的方格。

\r\n\r\n------------------------------------------\r\n\r\n此游戏还允许玩家指定雷区中的地雷数,让您尽情玩到底!!\r\n\r\n------------------------------------------\r\n\r\n 据有关调查显示:此游戏具有开发智力少儿的功能!! ", " 说 明:"); //显示游戏简介

}

privatevoid 关于游戏ToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("关于版权:\r\n\r\n本游戏是防Micosoft软件扫雷游戏 由\r\n\r\n 郑州轻工业学院 \r\n 计算机与通信工程学院\r\n 计算机科学与技术14-01班\r\n 李艳祥\r\n\r\n改编用于C#作业使用!特此声明!\r\n\r\n 辅导老师:李灿林\r\n\r\n 谢谢合作!!\r\n\r\n 如有雷同,纯属巧合", "版权声明:"); //显示游戏版本及版权说明

}

privatevoid 关于扫雷ToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("游戏说明:\r\n\r\n ▲在“游戏”菜单上,单击“开局”;\r\n ▲要启动计时器,请单击游戏区中的任何方块;\r\n\r\n注意:\r\n\r\n ▲ 单击就可以揭开方块,如果揭开的是地雷,您便输掉游戏;\r\n ▲ 如果方块上出现数字,则表示在它周围的八个方块中共有多少颗地雷(0-8)如有都可将用不同的图片标示;\r\n ▲ 要标记您认为可能有地雷的方块,请右键单击它;\r\n ▲ 游戏区包括菜单、雷区、地雷计数器、计时器和开始按钮,请按游戏规则游戏!\r\n ▲本游戏的英雄榜是记录游戏者的成绩使用,因能力有限仅支持初中高级的游戏记录。并设置了重置功能,方便玩家。\r\n\r\n 谢谢您对本游戏的支持 小谢 祝 您游戏愉快!", "游戏说明:"); //游戏的使用说明,简介游戏使用问题 }

privatevoid 扫雷英雄榜ToolStripMenuItem_Click(object sender, EventArgs e)

{

Form herof = newForm3(); //定义新的窗体,通过关联调用

herof.Show(); //显示扫雷英雄棒的窗体

}

privatebool IsInMineArea(int row, int col) //判断是否已出雷区

{

return (row >= 0 && row < XNum && col >= 0 && col < YNum); //返回true or false【acm程序设计实习报告】

}

privatevoid button1_Click(object sender, EventArgs e) //这是一个开始按钮,单击即开始游戏 {

button1.Image = Image.FromFile("face.bmp"); //用于控制开始按钮的图标,开始时位笑脸

DelAllMines(); //删除所有的雷区控件(很重要,用于不让其改变等级时有参与) RestMine = MineNum; //用于记录雷数,开始时剩余雷数为总雷数

CostTime = 0; //用于记录从开始到现在游戏用时,开始为0

acm程序设计实习报告 第二篇_算法实习报告

普里姆(Prim)算法:

假设N=(V,{E})是连通网,V={V1,V2,„,Vn}是网的顶点集合,{E}是N上最小生成树中边的集合。引入顶点集合U和边的集合TE,U的初试状态为{V1},它存放的是当前所得到的(还未完成的)最小代价生成树上所有顶点,TE的初始状态为{}。在Prim算法的每一步,都从所有的边{(u,v), uU, v V}中找出所有代价最小的边(u,v),同时将v 并入U,(u,v)并入集合TE,直到U=V为止。此时TE中必有n-1条边,则T=(V,{TE})为N的最小生成树。

克鲁斯卡尔(Kruskal)算法:

假设G=(V,{E})是一个连通的无向图,其中V={1,2,„,n},引入辅助集合T,来存放当前所形成的最小生成树的所有边,其初始状态为空, Kruskal算法是逐步给T添加不和T中的边构成回路的当前最小代价边。

具体步骤:

1、初始化T={ };

2、当T的边小于n-1时,做如下工作;

3、从E(G)中选取代价最小的边(v,u)并删除之;

4、若(v,u)不和T中的边一起构成回路,则将边(v,u)并入T中。

5、循环2~4步,直到T中所有顶点都在同一个连通图上为止。

拓扑排序的计算机实现:

方法:采用邻接表作为有向图的存储结构,且在头结点中增加一个有效

顶点的入度,入度为零的顶点既为滑有前趋的顶点,删除顶点及

弧可以使入度减1。

为避免重复检测入度为零的顶点,可另设一链表将所有入度为零

的顶点链结到一起,每当输出便删除,反之,当有新的入度为零的顶

点则插入,这相当于一个栈。

算法:

1、查邻接表中入度为零的顶点,并进栈;

2、当栈非空时,进行拓扑排序;

(1) 输出栈顶的顶点Vj并退栈;

(2) 输出栈顶的顶点Vj的直接后继Vk(k=1,2,„),将Vk的入度

减1,并将入度为0的顶点进栈。

(3)若栈空时输出的顶点数不足AOV-网中顶点数n,则说明有

向图中存在有向环,否则拓扑排序完毕。

Status TopologicalSort(ALGraph G)

{

FindInDegree(G,indegree);

InitStack(S);

for(i=0;i<G.Vexnum;++i)

if(!indegree(i))

push(S,i);

count=0;

if(!StachEmpty(s)){

pop(S,i);

printf(i,G.vertices(i),data);

count++;

for(p=G.vertices[i].firstarc; p ; p=p->nextarc){

k=p->adjvex;

if(!(--indegree(k)))

push(S,K);

}

}

if(count<G.vexnum)

return ERROR;

else

return OK;

}

迪杰斯拉特(Dijkstra)算法:

该算法提出了一个按路径递增的顺序产生最短路径的算法。首先引入一个辅助向量D,它的分量D(i)表示当前所有找到的从始点V到每个终点Vi的最短路径的长度。其初态为:若从V到Vi有弧,则D(i)为弧上权,否则为无穷大;显然,长度为

D(j)=Min{D(i)| Vi V}

的路径是从V出发的最短一条路径,此路径为(V, Vj )。

网络的可靠性

时间限制:3000 ms | 内存限制:65535 KB

难度:3

描述

A公司是全球依靠的互联网解决方案提供商,也是2010年世博会的高级赞助商。它将提供先进的网络协作技术,展示其”智能+互联“的生活概念,同时为参观者提供高品质的个人体验和互动,以”信息通信,尽情城市梦想”为主题贯穿。借助奇幻的剧场大屏幕和特效,展现信息通信技术的应用前景,通过生动形象的故事,向观众展示沟通无限制的未来社会前景。

为此,A公司为世博园的N个区域建立了视频通信系统,其中每个区域建立一个基站,编号依次为1,2,3...,N。通过基站之间的通信线路为各区域的参观者提供视频服务。

已知在各基站之间已铺设了一些光纤通讯线路,这些线路覆盖了所有的区域,即任意两个区域都可以进行视频传递。但为了节约成本开支,目前只铺设了N-1条线路,同时为了减轻各基站的信息传递负载,每个基站最多有三条光纤通讯线路与之连接。

但在通信系统试运行期间,A公司发现当某个基站发生故障时,会导致其它区域之间无法进行信息传递。为了提高该通信网络的可靠性,A公司准备在基站之间再新铺设一些光纤线路,使得任意一个基站故障后,其它基站之间仍然可以通讯。

【acm程序设计实习报告】

由于铺设线路的成本昂贵,A公司希望新增设的光纤线路越少越好。A公司请求Dr. Kong来完成这个任务

输入

有多组测试数据,以EOF为结束标志。

第一行: N 表示有N个基站

接下来有N-1行:X Y 表示第X个基站与第Y个基站直连

1<=N<=10000

输出

输出一个整数,表示至少需新铺设的光纤线路数

样例输入

8

1 3

3 2

【acm程序设计实习报告】

5 3

5 4

5 6

2 7

2 8

样例输出

3

#include<cstdio>

#include <iostream>

#include<cstring>

using namespace std;

#define max 10001

int result[max];

int main()

{

int n,i,a,b;

while(scanf("%d",&n)!=EOF)

{

memset(result,0,sizeof(result));

for(i=0;i<n-1;i++)

{

scanf("%d%d",&a,&b);

result[a]++;

result[b]++;

}

int sum=0;

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

{

if(result[i]==1)

sum++;

}

printf("%d\n",sum%2==0?sum/2:(sum/2+1));

}

return 0;

}

回溯法:

实际上是一种搜索问题的解的一种方法。所采用的方法一般为深度优先搜索法,所搜索的路径一般是沿树形结构进行搜索。在搜索过程中,首先会判断所搜索的树结点是否包含问题的解,如果肯定不包含,则不再搜索以该结点为根的树结点,而向其祖先结点回溯。否则进入该子树,继续按深度优先策略搜索。

1)递归回溯

利用递归算法对树进行深度遍历,并在遍历过程中不断地判断当前搜索的结点是否符合搜索条件,如果符合继续进行深度遍历,否则剪去该分支,搜索后续分支。

2)迭代回溯

采用树的非递归深度优先遍历方法也可实现回溯算法。非递归算法实际上是用循环来取代递归进行回溯。

装载问题

有一批共n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量为wi,且∑wi<=C1+C2, 其中1<=i<=n。问是否可以找到一种装载方法是的这n个集装箱可以装载到这2艘轮船上。

装载问题是一个NP问题。在该问题中,可以采用下面的策略:

(1)首先尽可能的将第一艘轮船装满。

(2)看剩余的货物能否装入第2艘船。

为什么可采用上述策略呢?可以证明!

显然,对于策略(1)需要去搜索一些货物,使其货物重量尽可能的接近于第一艘轮船的装载量。这个搜索策略当然可采用回溯法实现。

// ModifyMaxLoading.cpp : 定义控制台应用程序的入口点。//

#include "stdafx.h"

#include <iostream>

using namespace std;

template <class Type>

Type MaxLoading(Type w[],Type c, int n);

template <class Type>

class Loading{

friend Type MaxLoading(Type [], Type, int);

public:

void Backtrack(int i);

int n; //集装箱数量

//w-->集装箱重量数组;c-->第一艘轮船的载重量;cw-->当前载重量;bestw-->当前最优载重量

Type *w,c,cw,bestw;

//剩余集装箱重量

Type r;

};

int main()

{

int *w,c,n,bestw,tc, Maxw=0;

//输入必要的数据

cout<<"Please input the number of Container:";

cin>>n;

w=new int[n];

cout<<"Please input the weight of each container:";

for(int i=1;i<=n;i++){

cin>>w[i];

Maxw+=w[i];

}

cout<<"Please input the Maximum weight for the first ship:";

cin>>c;

cout<<"Please input the Maximum weight for the second ship:";

cin>>tc;

//调用函数实现回溯法搜索是否可以以最大限度的形式装载集装箱到第一艘船 bestw=MaxLoading(w,c,n);

//判断第2艘船是否可以装载下剩余的集装箱

if(Maxw-bestw<tc)

cout<<"the two ship can load all the container:"<<endl;

else

acm程序设计实习报告 第三篇_王付广实习报告

青岛黄海学院

学院:机电工程学院

专业:机械设计制造及其自动化

班级:

学号:

姓名:王付广 11级机制本科一班 1101111004

年3月20日 2015

一、实习目的

机械设计制造及其自动化专业是一门实践性很强的专业,毕业实习是本科教学计划中非常重要的一个教育环节,是学生在校学习期间理论联系实际、增长实践知识、培养自身各方面能力的重要手段和方法。通过实习,了解机械制造企业生产流程、加工工艺流程、企业工艺机械等相关知识,并了解本专业发展前沿,涉猎相关学科知识,使机械设计制造及其自动化专业的学生初步具有科学研究与解决工程实际问题的能力、较强的实践动手能力和创新意识的高级应用型人才。毕业实习是大学本科专业学习中不可缺少的重要部分,通过一段时间的生产实习后,使自己具备足够的技能,应付将来市场的挑战并保持强劲的竞争力,并为下一步的毕业设计打下坚实的基础。通过现场实习、观察,我们每个人的知识面扩大了,对我们学习后面的课程乃至以后的工作,都是十分必要的基础。

根据学校安排,我们在青岛钢铁控股集团有限责任公司进行了工程实习。

二、实习时间

2015年1月12日——2015年1月26日

三、实习地点

青岛钢铁控股集团有限责任公司

四、实习单位和部门情况简介

青岛钢铁控股集团有限责任公司,公司简介:青岛钢铁控股集团有限责任公司(一下简称青钢)是青岛市政府直属企业,位于李沧区。青钢始建于1958年,铁、钢、材各400万吨年生产能力,年实现销售收入300多亿元,2013年中国制造企业500强中列145位。近几年,青钢荣获了“全国钢铁工业先进集体”、“山东省富民兴鲁劳动奖状”、青岛市先进节能企业“、质量信誉AAA级等荣誉称号。连续多年上缴税金居青岛市前三位,并获得了“青岛经济成就卓越贡献奖”。

青钢目前主要产品有:焊接用钢盘条、汽车用弹簧扁钢、硬线系列、拉丝线材、易切削钢、优质碳素结构圆钢、建筑用线材与螺纹钢等11大系列,92个产品牌号,139个规格。主要产品覆盖华东、华北地区,具有较高的声誉,其中焊接用钢盘条一直为国内生产龙头产业,弹簧扁钢国内市场占第二位;今年开发的胎圈钢丝、预应力、钢帘线系列产品市场占有率位居国内三甲。企业先后通过

ISO9001:2000、OHSAS18001:2001、ISO14002:2004标准认证,产品连年获得“冶金产品金杯奖”、“中国钢铁市场产品质量用户满意第一品牌”等荣誉称号,优质碳素钢盘条为“中国名牌”。

“十二五”期间,青钢将通过结构调整、技术创新和管理创新,努力打造技术、人才、品牌、文化和区位方面的独特竞争优势,把企业建成为资产优良、效益显著、技术突出、环境优美的具有突出竞争优势的现代化临海钢铁企业。 我的工程实习部门是青钢技术中心,物理力学实验室。

五、实习内容

(一)实习项目

实习项目主要有以下几方面:

1.钢材的拉伸试验

2.弹簧扁钢的硬度试验

3.钢材的热处理工艺

4.钢材的切削制样

(二)具体内容

1.拉伸试验

(1)通过拉伸试验测定低碳钢在不同的热处理状态下的强度和塑性性能。

(2)根据应力—应变曲线,确定塑性变形阶段的应变硬化指数和系数。

2.弹簧扁钢的硬度试验

弹簧扁钢60Si2Mn-Cr的布氏硬度一般不应大于321HBW。

布氏硬度计主要用于铸铁、钢材、有色金属及软合金等材料的硬度测定,布氏硬度试验是所有硬度试验中压痕最大的一种试验法,它能反映出材料的综合性能,不受试样组织显微偏析及成分不均匀的影响,所以它是一种精度较高的硬度试验法。在冶金、锻造、未经淬火钢及有色金属等工业领域、实验室、大专院校和科研单位内广泛使用。

3.钢材的热处理工艺

(1)正火:将钢材或钢件加热到临界点AC3或ACM以上的适当温度保持一定时间后在空气中冷却,得到珠光体类组织的热处理工艺。

(2)退火:将亚共析钢工件加热至AC3以上20—40度,保温一段时间后,随炉缓慢冷却(或埋在砂中或石灰中冷却)至500度以下在空气中冷却的热处理工艺。

(3)固溶热处理:将合金加热至高温单相区恒温保持,使过剩相充分溶解到固溶体中,然后快速冷却,以得到过饱和固溶体的热处理工艺。

(4)时效:合金经固溶热处理或冷塑性形变后,在室温放置或稍高于室温保持时,其性能随时间而变化的现象。

(5)固溶处理:使合金中各种相充分溶解,强化固溶体并提高韧性及抗蚀性能,消除应力与软化,以便继续加工成型。

(6)时效处理:在强化相析出的温度加热并保温,使强化相沉淀析出,得以硬化,提高强度。

(7)淬火:将钢奥氏体化后以适当的冷却速度冷却,使工件在横截面内全部或一定的范围内发生马氏体等不稳定组织结构转变的热处理工艺。

(8)回火:将经过淬火的工件加热到临界点AC1以下的适当温度保持一定时间,随后用符合要求的方法冷却,以获得所需要的组织和性能的热处理工艺。

(9)钢的碳氮共渗:碳氮共渗是向钢的表层同时渗入碳和氮的过程。习惯上碳氮共渗又称为氰化,目前以中温气体碳氮共渗和低温气体碳氮共渗(即气体软氮化)应用较为广泛。中温气体碳氮共渗的主要目的是提高钢的硬度,耐磨性和疲劳强度。低温气体碳氮共渗以渗氮为主,其主要目的是提高钢的耐磨性和抗咬合

acm程序设计实习报告 第四篇_实习报告

专业认识实习实习报告

实习目的:

通过对校工院楼各实践地点、北京现代1号整车生产工厂以及北一大隈生产厂房的实地实习认识,我对工业生产制造、精度与测量、材料与热处理、机械原理及设计和数控自动化生产等,有了一次全面的认识,提升了我们对未来更深层次专业学习的浓厚兴趣。

实习时间:

2013年7月15日至19日

实习地点:【acm程序设计实习报告】

中国农业大学工学院楼地下机械工程训练中心

中国农业大学工学院楼重要实验室

中国北京现代1号整车生产工厂

中国北一大隈(北京)机床有限公司

实习内容:

2013年7月15日周一14:00始 机械工程训练

第一天我们小组的同学被安排在工学院楼地下的机械工程训练中心。在这里,负责教师带我们熟悉了解了大二上我们机械工程实训时将接触到的铸造、锻压、冲压、焊接、切削、车削、钳工、铣削、刨削、磨削等技术工种。以下是一些关于铣床的具体内容:

铣床(millingmachine)系指主要用铣刀在工件上加工各种表面的机床。通常铣刀旋转运动为主运动,工件(和)铣刀的移动为进给运动。它可以加工平面、沟槽,也可以加工各种曲面、

齿轮等。铣床是用铣刀对工件进行铣削加工的机床。铣床除能铣削平面、沟槽、轮齿、螺纹和花键轴外,还能加工比较复杂的型面,效率较刨床高,在机械制造和修理部门得到广泛应用。

铣床分成两种:立式和卧式。两者区分的标准在于轴位置不同:卧式的主轴水平布置 ,立式的主轴垂直布置。除了主轴布置不同以外,他们的加工范围也不同:卧式多用盘式铣刀,可用辅助支撑,刚度相对好些。立式铣床用的刀相对灵活一些,适用范围较广,可使用立铣刀、机夹刀盘、钻头等。可铣键槽、铣平面、镗孔等。卧式铣床也可使用上面各种刀具,但不如立铣方便,主要是可使用挂架增强刀具(主要是三面刃铣刀、片状铣刀等)强度。卧式铣床一般都带立铣头,虽然这个立铣头功能和刚性不如立式铣床强大,但足以应付立铣加工。这使得卧式铣床总体功能比立式铣床强大。

铣床型号以X开头,是类和分类代号,代表铣床。接下来的,如果是字母,则代表机床通用特性代号,如G(高精度)、M(精度)、Z(数控)、K(加工中心,即自动换刀)等。其后或有结构特性代号。接下来的数字中,第一位代表的是组别代号:5(立式)和6(卧式)。其后可能接系别代号。最后就是主参数代号了,将机床的主参数值使用折算值(数字)表示,一般位于系代号后。在机床编号中,还有一些其他的代号,如设计顺序号、重大改进顺序号等,这里就不一一叙述了。

2013年7月16日周二14:00始 制造装备及成型技术 第二天我们小组的同学被安排参观了制造装备及成型技术部分实验室。这部分包括:数控机床、特种加工、切削力参数及夹具组装实验室。以下是我们当天的一些收获:

在机械加工中,最主要的三个组成部分是:机床、夹具和刀具,三者同样重要,缺一不可。我们首先参观了数控机床,主要是加工回转体的车床和加工平面的铣床。数控机床是数字控制机床(Computer numerical control machine tools)的简称,是一种装有程序控制系统的自动化机床。该控制系统能够逻辑地处理具有控制编码或其他符号指令规定的程序,并将其译码,用代码化的数字表示,通过信息载体输入数控装置。经运算处理由数控装置发出各种控制信号,控制机床的动作,按图纸要求的形状和尺寸,自动地将零件加工出来。数控机床较好地解决了复杂、精密、小批量、多品种的零件加工问题,是一种柔性的、高效能的自动化机床,代表了现代机床控制技术的发展方向,是一种典型的机电一体化产品。数控机床以空间坐标系为基准,伺服电机控制工作台移动,电频率控制刀具转速,以求最高程度的精细化作业。最后,机械加工中,机床冷却液的作用有三:1、冷却;2、润滑;3、防锈。

接下来,我们参观了特种加工实验室,即光电加工。电加工的主要要求是被加工工件必须是导体,工作原理是通过加工头与工件不接触放电产生电火花使工件熔化。其加工范围仅限于平面穿刺。激光加工则是利用能量密度极高的激光束照射工件的被加工部位,使其材料瞬间熔化或蒸发,并在冲击波作用下,将熔融物质喷射出去,从而对工件进行穿孔、蚀刻、切割,或采用较小能量密度,使加工区域材料熔融黏合或改性,对工件进行焊接或热处理。此外,在实验室中还有快速成型机,可参照电脑内CAD数据,使用塑料丝完成层堆积。

最后,我们参观了切削力参数实验室(图1-1)和夹具组装实验室。切削力,是指在切削过程中产生的作用在工件和刀具上的大小相等、方向相反的切削力。通俗的讲:在切削加工时,工

件材料抵抗刀具切削时产生的阻力。而影响切削力的因素(图1-2)包括:

1.机加设备自身的功率大小,它是切削力的客观

条件;2.所加工材料的种类;3.刀具的种类和刀

片参数的不同。当然,这个实验室研究的就是刀

具种类和刀片参数对切削力的影响。至于夹具,

夹具是机械制造过程中用来固定加工对象,使之

图1-1

本文来源:http://www.gbppp.com/fw/376406/

推荐访问:
推荐内容:

热门文章