第一篇:软件开发技术基础的实验报告
《软件开发技术基础》实验报告
《软件开发技术基础》实验报告
姓名:
学号:
班级:
《软件开发技术基础》实验报告
实验一 线性表的操作(2学时)
实验类型:验证性
实验要求:必修 实验学时: 2学时
一、实验目的:
参照给定的线性表顺序表类和链表类的程序样例,验证给出的线性表的常见算法。
二、实验要求:
1、掌握线性表顺序表类和链表类的特点。掌握线性表的常见算法。
2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。
三、实验内容:
设计一个静态数组存储结构的顺序表类,要求编程实现如下任务:
1)建立一个线性表,首先依次输人整数数据元素(个数根据自己的需要键盘给定)
2)删除指定位置的数据元素(指定元素位置通过键盘输入)再依次显示删除后的线性表中的数据元素。
3)查找指定数据的数据元素(指定数据的大小通过键盘输入),若找到则显示位置,若没有找到就显示0。
四、要求
1)采用顺序表实现,假设该顺序表的数据元素个数在最坏情况下不会超过50个。
2)写出完整的程序并能调试通过即可
《软件开发技术基础》实验报告
{ if(nn==mm)
return(-1);if(nn==0)
return(0);return(1);}
template
cout<<“overflow”< return;} if(i>nn) i=nn+1;if(i<1) i=1;for(k=nn;k>=i;k--) v[k]=v[k-1];v[i-1]=b;nn=nn+1;return;} template cout<<“underflow!”< return;} if((i<1)||(i>nn)){ cout<<“Not this element in the list!”< return;} for(k=i;k v[k-1]=v[k]; 《软件开发技术基础》实验报告 return 0;} 运行结果如下: 心得体会: 1.通过本次试验,我掌握了线性表的基本概念。 2.通过本次试验,我懂得了如何建立一个顺序表,并能对顺序表进行基本的建立、插入、检测、删除以及查找的操作。 3.本次试验我知道了线性表的顺序存储结构具有如下两个特点:(1)线性表中所有元素所占的存储空间是连续的。 (2)线性表中各元素在存储空间中是按逻辑顺序依次存放的。 实验二 栈、队列的操作 《软件开发技术基础》实验报告 #define stacksize 5 typedef struct { char taskname[10];int taskno; }DataType; class stack { private: public: }; //任务名 //任务号 int top;DataType task[stacksize];bool init();bool empty();bool push(DataType d);bool pop(DataType &d); bool stack::init(){ top=0;int i;for(i=0;i strcpy(task[i].taskname,“"); task[i].taskno=-1;} return true;} bool stack::empty(){ return top>0?false:true; } 《软件开发技术基础》实验报告 queue_node(int d){ data=d; next=NULL;} }; class queue { private: queue_node *front,*rear;public: bool init();bool empty();bool enqueue(int d);bool dequeue(int &d);}; bool queue::init(){ front=rear=new queue_node; return true;} bool queue::empty(){ if(front==rear)return true;else return false;} bool queue::enqueue(int d){ rear->next=new queue_node(d);rear=rear->next;return true;} 《软件开发技术基础》实验报告 bool sqqueue::enqueue(int d){ if((rear+1)%queuesize==front)return false;base[rear]=d;rear=(rear+1)%queuesize;return true;} bool sqqueue::dequeue(int &d){ if(front==rear)return false;d=base[front];front=(front+1)%queuesize;return true;} void main(){ DataType dd[5],tt; char tn[]=”任务a“;int i;for(i=0;i<5;i++){ strcpy(dd[i].taskname,tn);tn[4]++;dd[i].taskno=i+1;} stack mystack;mystack.init();for(i=0;i<5;i++){ mystack.push(dd[i]);} cout<<”入栈完成,按回车键继续……“;getchar(); 《软件开发技术基础》实验报告 实验结果: 实验三 查找算法实现(2学时) 实验类型:验证性 实验要求:必修 实验学时: 2学时 一、实验目的: 参照各种查找算法程序样例,验证给出的查找常见算法。 二、实验要求: 1、掌握各种查找算法的特点,测试并验证查找的常见算法。 2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。 三、实验内容: 1.建立有序表,采用折半查找实现某一已知的关键字的查找。 2.利用折半查找算法在一个有序表中插入一个元素,并保持表的有序性。 源程序如下: #include int mm; int nn; T *v;public: sL_List(){mm=0;nn=0;return;} sL_List(int); int search_sL_List(T); int insert_sL_List(int,T); void prt_sL_List();}; template 《软件开发技术基础》实验报告 int i;for(i=0;i cout< int main(){ int k,t,q,result;int a[20]={10,20,30,40,50,60,70,80};sL_List s.insert_sL_List(k+1,a[k]);cout<<”输出有序对象s:“< 实验结果如下: 《软件开发技术基础》实验报告 2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。 三、实验内容: 输入一组关键字序列分别实现下列排序: 1.实现直接插入排序; 2.实现冒泡排序算法; 3.实现快速排序算法(取第一个记录或中间记录作为基准记录); 4.快速排序的非递归算法; 5.堆排序。 把上述几种排序的算法编写成菜单,根据输入的数字不同执行对应的排序算法。 源程序如下: #include t=p[j]; k=j-1; while((k>=0)&&(p[k]>t)) { p[k+1]=p[k]; k=k-1; } p[k+1]=t;} return;} //实现冒泡排序 template 《软件开发技术基础》实验报告 static int split(T p[],int n){ int i,j,k,l;T t;i=0;j=n-1;k=(i+j)/2;if((p[i]>=p[j])&&(p[j]>=p[k])) l=j;else if((p[i]>=p[k])&&(p[k]>=p[j])) l=k;else l=i;t=p[l];p[l]=p[i];while(i!=j){ while((i j=j-1; if(i { p[i]=p[j]; i=i+1; while((i i=i+1; if(i { p[j]=p[i]; j=j-1; } } } p[i]=t;return(i);} //实现堆排序 template sift(p,i,n-1);for(i=n-1;i>=1;i--) 《软件开发技术基础》实验报告 p[i]=100.0+200.0*p[i];cout<<”排列前的序列为:“< cout< cout< cout< cout< cout< 运行结果如下: 《软件开发技术基础》实验报告 实验 一、金属材料的硬度实验 一、实验类型 验证性 二、实验目的 1、了解硬度测定的基本原理及应用范围。 2、了解布氏、洛氏硬度试验机的主要结构及操作方法。 三、实验仪器与设备 1、HB-3000型布氏硬度试验机; 2、H-100型洛低硬度试验机; 3、读数放大鏡; 四、实验内容: 金属的硬度可以认为是金属材料表面在接触应力作用下抵抗塑性变形的一种能力。硬度测量能够给出金属材料软硬程度的数量概念。由于在金属表面以下不同深处材料所承受的应力和所发生的变形程度不同,因而硬度值可以综合地反映压痕附近局部体积内金属的弹性、微量塑变抗力、塑变强化能力以及大量形变抗力。硬度值越高,表明金属抵抗塑性变形能力越大,材料产生塑性变形就越困难。另外,硬度与其它机械性能(如强调指标b及塑性指标和)之间有着一定的内在联系,所以从某种意义上说硬度的大小对于机械零件或工具的使用性能及寿命具有决定性意义。 硬度的试验方法很多,在机械工业中广泛采用压入法来测定硬度,压入法又可分为布氏硬度、洛氏硬度、维氏硬度等。 压入法硬度试验的主要特点是: (1)试验时应力状态最软(即最大切应力远远大于最大正应力),因而不论是塑性材料还是脆性材料均能发生塑性变形。 (2)金属的硬度与强调指标之间存在如下近似关系。 bKHB (3)硬度值对材料的耐磨性、疲劳强度等性能也有定性的参考价值,通常硬度值高,这些性能也就好。在机械零件设计图纸上对机械性能的技术要求,往往只标注硬度值,其原因就在于此。 (4)硬度测定后由于仅在金属表面局部体系内产生很小压痕,并不损坏零件,因而适合于成品检验。(5)设备简单,操作迅速方便。 布氏硬度(HB): (一)布氏硬度试验的基本原理 布氏硬度试验是施加一定大小的载荷P,将直径为D的钢球压入被测金属表面(如图1-1所示)保持一定时间,然后卸除载荷,根据钢球在金属表面上所压出的凹痕面积F凹求出平均应力值,以此作为硬度值的计量指标,并用符号HB表示。 其计算公式如下: HBP/F凹 根据压痕面积和球面之比等于压痕深度h和钢球直径之比的几何关系,可知压痕部分的球面积为: F凹Dh (1-2) 由于测量压痕直径d要比测定压痕深度h容易,故可将(1-2)式中h改换为d来表示,这可根据图1-1(b)中Oab的关系求出: 12Dh12(D2)(2d2)2 h(DDd)2 2(1-3) 将式(1-2)和(1-3)代入式(1-1)即得: HBPDh2PD(DDd)22 (1-4) 式中只有d是变数,故只需测出压痕直径d,根据已知D和P值就可计算出HB值。在实际测量时,可由测出之压痕直径d直接查表得到HB值。 (三)布氏硬度试验机的结构和操作 1、HB-3000型布氏硬度试验机的外形结构如图1-2所示。其主要部件及作用如下。 (1)机体与工作台:硬度机有铸铁机体,在机体前台面上安装了丝杠座,其中装有丝杠,丝杠上装立柱和工作台,可上下移动。 (2)杠杆机构:杠杆系统通过电动机可将载荷自动加在试样上。(3)压轴部分:用以保证工作时试样与压头中心对准。 (4)减速器部分:带动曲柄及曲柄连杆,在电机转动及反转时,将载荷加到压轴上或从压轴上卸除。(5)换向开关系统:是控制电机回转方向的装置,使加、卸载荷自动进行。 2、操作程序: (1)将试样放在工作台上,顺时针转动手轮,使压头压向试样表面直至手轮对下面螺母产生相对运动为止。 (2)按动加载按钮,启动电动机,即开始加载荷。此时因紧压螺钉已拧松,圆盘并不转动,当红色指示灯闪亮时,迅速拧紧紧压螺钉,使圆盘转动。达到所要求的持续时间后,转动即自动停止。 (3)逆时针转动手轮降下工作台,取下试样用读数显微镜测出压痕直径d值,以此值查表即得HB值。洛氏硬度(HR): (一)洛氏硬度试验的基本原理 洛氏硬度同布氏硬度一样也属于压入硬度法,但它不是测定压痕面积,而是根据压痕深度来确定硬度值指标。 洛氏硬度测定时,需要先后两次施加载荷(预载荷和主载荷),预加载荷的目的是使压头与试样表面接触良好,以保证测量结果准确。0-0位置为未加载荷时的压头位置,此时压入深度为h1,2-2位置为加上主载荷后的位置,此时压入深度为h2,h2包括由加载所引起的弹性变形和塑性变形,此时压头的实际压入深度为h3。洛氏硬度就是以主载荷所引起的残余压入深度(h=h3-h1)来表示。洛氏硬度的试验规范: 洛氏硬度值的计算公式如下: HRK(h3h1)0.002 (三)洛氏硬度试验机的结构和操作 1、H-100型杠杆式洛氏硬度试验机的结构如图1-4所示,其主要部分及作用如下: (1)机体及工作台:试验机有坚固的铸铁机体,在机体前面安装有不同形状的工作台,通过手轮的转动,借助螺杆的上下移动而使工作台上升或下降。 (2)加载机构:由加载杠杆(横杆)及挂重架(纵杆)等组成,通过杠杆系统将载荷传至压头而压入试样,借扇形齿轮的转动可完成加载和卸载任务。 (3)千分表指示盘:通过刻度盘指示各种不同的硬度值(如图1-5所示)。 2、操作规程如下: (1)根据试样预期硬度按表1-2确定压头和载荷,并装入试验机。 (2)将符合要求的试样放置在试样台上,顺时针转动手轮,使试样与压头缓慢接触,直至表盘小指针指到“0”为止,此时即已预加载荷10kgf。然后将表盘大指针调整至零点(HRA、HRC零点为0,HRB零点为30)。此时压头位置即为图1-3中的1-1位置。 (3)按动按钮,平稳地加上主载荷。当表盘中大指针反向旋转若干格并停止时,持续8~4秒(此时压头位置为图1-3中的2-2位置),再顺时针旋转摇柄,直至自锁为止,即卸除主载荷。此时大指针退回若干格,这说明弹性变形得到恢复,指针所指位置反映了压痕的实际深度(此时压头位置相当于图1-3中的3-3位置)。由表盘上可直接读出洛氏硬度值,HRA、HRC读外圈黑刻度,HRB读内圈红刻度。 (4)逆时针旋转手轮,取出试样,测试完毕。 五、实验方法与步骤 1、分成两大组,分别进行布氏和洛氏硬度试验,并相互轮换。 2、在进行试验操作前必须事先阅读并弄清布氏和洛低硬度试验机的结构及注意事项。 3、按照规定的操作顺序测定试样的硬度值(HB和HRC)。 4、注意事项 1)试样两端要平行,表面应平整,若有油污或氧化皮,可用砂纸打磨,以免影响测试。2)圆柱形试样应放在带有“V”型槽的工作台上操作,以防试样滚动。3)加载时应细心操作,以免损坏压头。 4)加预载荷(10kgf)时若发现阻力太大,应停止加载,立即报告,检查原因。5)测完硬度值,卸掉载荷后,必须使压头完全离开试样后再取下试样。 6)金刚钻压头系贵重物件,质硬而脆,使用时要小心谨慎,严禁与试样或其它物件碰撞。 7)应根据硬度试验机使用范围,按规定合理选用不同的载荷和压头,超过使用范围将不能获得准确的硬度值。 实验二 金属相图的观察 一.实验类型 验证性 二.实验目的 了解金属相图在显微镜下的图形 三.实验内容 1.试样制备 要在金相显微镜下对金属的组织进行观察和摄影,必须制备平整、光亮、清洁、无划痕、并用适当的方法显示出真实组织的试样 (1)手工磨样 试样在金相砂纸上由粗到细磨制。磨样时用力均匀,待磨面上旧磨痕消失,新磨痕均匀一致时就更换细一号的砂纸,并且试样转90o再磨。一般磨制到4号(粒度800)砂纸即可。 (2)抛光 本实验采用机械抛光的方法。PG-2金相制样抛光机 在专用的抛光机上进行,抛光织物(如呢料、金丝绒等)固定在抛光盘上,洒以抛光粉悬浮液,试样轻压于旋转的抛光盘上。靠嵌于抛光织物中的抛光粉的磨削作用和滚压作用,得到平整、光亮无划痕的磨面。 (3)化学浸蚀 试样在浸蚀剂作用下,组织中电位低的部分为阳极,电位高的部分为阴极,低电位处于溶解较快而呈现凹陷从而显示出组织特征。碳钢常用3~4%硝酸酒精溶液浸蚀。 2.观察金相显微组织 制好的试样放在显微镜下观察。使用显微镜时,动作轻、速度慢,由低倍到高倍进行观察,结合试样热处理工艺,观察与分析组织。 选择能说明组织特征的典型视场,确定合适的放大倍数及图象采集。 一、电阻应娈式传感器全桥测量实验 实验报告要求 全桥测试糸统的工作原理.电阻应娈式传感器的工作过程.电阻应娈式传感器灵敏度是否是全桥测试糸统的灵敏度.二、测试糸统实验 实验报告要求 测试糸统的基本组成和要求.举例说明有弹性元件传感器的变换(应变、位移)过程和工作过程.三、振动测试系统的基本组成实验报告要求 一般振动测试系统应该包括下述三个主要部分。1)激励部分,2)拾振部分,3)分析记录部分。 1通过振动实验台简述每部分的作用。 2电动式激振器、电磁式激振器、磁电式速度传感器、压电式加速度(计)传感器的工作过程。 《多媒体技术基础及应用》课程实验报告 实验名称:实验日期: 专业:计算机应用(本科)年级:姓名: 一、实验目的: (在这里填写该次实验的实验目的) 二、实验要求: 1.2.… 三、实验内容: (在这里填写该次实验所需完成的任务) 四、实验步骤: (在这里填写完成该次实验的主要步骤) 五、调整/完善情况: (在这里填写在完成该次实验过程中对某些参数的进一步调整等) 六、实验结果分析: (在这里分析讨论本次实验,收获及感想)学号:班级:成绩: 华北电力大学 实 验 报 告 | | 实验名称: 机器人控制技术基础 课程名称: 机器人控制技术基础 实 验 人:张 钰 信 安1601 201609040126 李 童 能 化1601 201605040111 韩翔宇 能 化1601 201605040104 成 绩: 指导教师: 林永君、房静 实验日期: 2016年3月4日-3月26日 华北电力大学工程训练中心 第一部分:单片机开发板 实验一:流水灯实验 实验目的:通过此实验,初步掌握单片机的 IO 口的基本操作。实验内容:控制接在 P0.0上的 8个LED L0—L8 依次点亮,如此循环。硬件说明: 根据流水灯的硬件连接,我们发现只有单片机的IO口输出为低电平时LED灯才会被点亮,我们先给P0口设定好初值,只让其点亮一盏灯,然后用左右移函数即可依次点亮其他的灯。源程序如下: #include for(;;){ led_1=0;display_ms(10); } } led_1=1;led_2=0;display_ms(10);led_2=1;led_3=0;display_ms(10);led_3=1;led_4=0;display_ms(10);led_4=1;led_5=0;display_ms(10);led_5=1;led_6=0;display_ms(10);led_6=1;led_7=0;display_ms(10);led_7=1;led_8=0;display_ms(10);led_8=1;第二部分:机器人小车 内容简介:机器人小车完成如图规定的赛道,从规定的起点开始,记录完成赛道一圈的时间。必须在30秒之内完成,超时无效。其中当小车整体都在赛道外时停止比赛,视为犯规,小车不规定运动方向,顺时针和逆时针都可以采用,但都从规定的起点开始记录时间。作品优点及应用前景: 单片机可靠性高,编程简单单片机执行一条指令的时间是μs级,执行一个扫描周期的时间为几ms乃至几十ms。相对于电器的动作时间而言,扫描周期是短暂的,可以认为在一个扫描周期内输入端子的状态是不变的,而对其状态变化的采集和处理也是实时的,从而满足了实时控制的要求。本次设计的简易智能电动车,采用STC89C52RC单片机作为小车的检测和控制核心,使单片机按照预定的工作模式控制小车在各区域按预定的速度行驶,通过控制单片机进而控制小车,体现了智能化,通过使用不同的函数及设定不同的函数参数,能够在不同的要求下改变小车的前后轮转动方向以及转动速度,来完成不同的目的要求。在画正方形的同时能够完成四个1/4圆弧的制作。 循迹实验场地图: 传感器电路图: 源程序: #include } void main(){ unsigned int i; l_l = 1;r_l = 1;l_m = 1;r_m = 1;for(;;)unsigned int i,j;for(i=0;i if((l_l ==0)&&(r_l ==1)){ l_m = 1;for(i=0;i<5;i++) { } r_m = 0;delay(5);r_m = 1;delay(45); } else if((l_l ==1)&&(r_l ==0)){ } else if((l_1==1)&&(l_2==1)){ } else { l_m = 0;r_m = 0;delay(5);l_m = 1;r_m=1;l_m=1;r_m = 1;for(i=0;i<5;i++){ } l_m = 0;delay(5);l_m = 1;delay(45); } r_m = 1;delay(45);} } 第三部分:心得体会、合理性建议或意见 参加这次机器人实验基础培训,我最大的收获便是对机械控制有了初步的了解,然后学会了Keil uVison和Proteus等软件的用法,掌握了基本的C51单片机的初步调试和更改程序。在调试程序的过程中,我认识到了规范的重要性,写程序时一定要规范,否则就会在调试过程中报错。然后就是在焊制传感器的过程中,掌握了电络铁的使用,并了解了传感器的构成和程序控制方法。然后在调试程序过程中,一开始我们准备将所有控制函数写在头文件中,然后在主函数中调用,可是后来实践过程中总是不能达到预期效果,经过思考后,我想到了调用函数过程中变量的生存期问题,最终不得不放弃这种方法,采用正常的C语言函数写法。其次,在理论课的学习中,接触到了对未来学习模电或者数电有用的知识和模拟程序。非常感谢学长们的帮助,我们从中学到了很多。第二篇:工程材料与成形技术基础实验报告
第三篇:中南林机械工程测量技术基础实验报告(模版)
第四篇:《多媒体技术基础及应用》课程实验报告
第五篇:机器人控制技术基础实验报告