当前位置:文档之家› 《数据结构》课程实验指导书(10-11)

《数据结构》课程实验指导书(10-11)

《数据结构》课程实验指导书(10-11)
《数据结构》课程实验指导书(10-11)

《数据结构》课程实验指导书

河南理工大学

地理信息系统专业

二〇〇八年九月

前言

《数据结构》是计算机科学与技术及GIS专业的一门重要专业基础课,它主要介绍线性结构、树型结构、图状结构三种逻辑结构的存储实现,在此基础上介绍一些典型算法,以及算法的时间、空间效率分析。

这门课程的主要任务是培养学生的算法设计能力及良好的程序设计习惯。通过本课程的学习,使学生熟练地掌握数据结构的内在逻辑关系及其在计算机中的表示方法(存储结构),以及相关基本操作的算法实现;掌握典型算法的设计思想及程序实现;熟悉各种数据结构在GIS软件开发、程序设计中的基本应用;培养和训练学生结合实际应用,根据实际问题选取合适的数据结构、存储方案设计出简洁、高效、实用的算法;并为学习《空间数据库原理》、《GIS设计与开发》等后续课程和研制开发各种系统和应用软件打下扎实的理论与实践基础。

学习这门课程,习题和实验是两个关键环节。学生理解算法,上机实验是最佳的途径之一。因此,实验环节的好坏是学生能否学好《数据结构》的关键。为了更好地配合学生实验,特编写此实验指导书。实验指导书按照实验教学大纲的要求,为每个主要的知识点精选了的

典型的实验题目,对每个实验题目提出具体实现要求,并对算法的实现进行提示,希望对同学们完成实验有所帮助。

目录

实验一线性表的链表实现类的设计 (1)

实验二顺序栈的自定义类设计 (2)

实验三字符串的操作类设计 (3)

实验四树和二叉树的自定义类的设计 (4)

实验五图的最短路径算法设计 (5)

实验六自定义类应用综合设计 (6)

实验一线性表的链表实现类的设计

实验类型:验证性实验学时:2学时

一、实验目的:

1、掌握C++面向对象类的设计和用VC++上机调试线性表的基本方法;

2、掌握线性表的基本操作,如插入、删除、查找,以及线性表合并等运算在链式

存储结构上的运算;并能够运用线性表基本操作解决问题,实现相应算法。

二、实验要求:

1、C++完成类的设计及基本操作算法并上机调试通过。

2、撰写实验报告,提供实验结果和数据。

三、实验内容:

设计你的线性表的链式存储结构类,编程实现通过键盘输入数据建立链表、查找、插入结点、删除结点、显示链表以及两链表的合并运算等操作。

测试数据示例:

(1) 以L1={0, 5, 9, 10, 12, 12, 17, 20, 24}构造链表;

(2) 找到重复的第二个元素12并删除它;

(3) 在第五个元素后插入55;

(4) 生成L2 = {33, 45, 50}的链表并将它与L1的链表合并。

可通过对你设计的链表类的简单应用来验证相应类的成员函数代码的正确性。如:管理以下学生表格信息,能打印表格内容,并能修改表格信息、添加学生、删除学生等操作。

注: 也可以完成课本第二章习题2.14题(P85)的代码设计作为本次课堂实验内容。

四、仪器设备:计算机、VC++编译环境

五、实验方法:

用C++语言设计类,并实现相关类的基本操作,程序在VC++环境下调试通过。并选择恰当的测试数据验证算法的正确性。

六、实验步骤:

1、在上机前提前完成设计代码;

2、程序调试通过,可运行;

3、通过测试数据和对象方法调用验证算法正确性。

七、实验结果处理:对程序调试中的问题要进行总结。

八、实验注意事项:独立完成实验及实验报告,抄袭者不给成绩。

九、预习与思考题:见课堂讲授课件和作业布置。

十、实验报告要求:本门课程实验报告格式见附件1,鼓励手写,可以打印。

实验二顺序栈的自定义类设计

实验类型:验证性实验学时:2学时

一、实验目的:

1、掌握用VC++上机调试通过栈的顺序存储结构类的设计;

2、掌握顺序栈的基本操作,如进栈、出栈、判断栈空和栈满,取栈顶元素等运算

在顺序存储结构上的运算;并能够运用栈的基本操作解决问题,实现相应算法。

二、实验要求:

1、C++完成类的设计及基本操作算法并上机调试通过。

2、撰写实验报告,提供实验结果和数据。

三、实验内容:

设计你的栈的顺序存储结构类,编程实现栈的基本操作。栈中的数据元素类型最好为字符类型,方便今后对字符串的算法设计和应用。

测试数据示例:

(1) 以“ABCDEFG”的字符串顺序进栈;

(2) 以合适顺序出栈得到序列“CDBAGFE”;

(3) 取栈顶元素得到‘F’;

(4) 进栈直到栈满和出栈直到栈空,检验对这两种情形的正确判断和处理。

可通过应用你设计的栈来实现一个简单图形编辑系统的“后悔”(回退)操作功能,如取消以前的几步不同类型的操作(删除刚画的图形、取消对顶点的编辑、取消图形的几何变换等),关键是对“回退”所需的保存的历史信息的结构设计要合理。

注: 也可以完成课本第三章习题3.13题(P132)的代码设计作为本次课堂实验内容。

四、仪器设备:计算机、VC++编译环境

五、实验方法:

用C++语言设计类,并实现相关类的基本操作,程序在VC++环境下调试通过。并选择恰当的测试数据验证算法的正确性。

六、实验步骤:

1、在上机前提前完成设计代码;

2、程序调试通过,可运行;

3、通过测试数据和对象方法调用验证算法正确性。

七、实验结果处理:对程序调试中的问题要进行总结。

八、实验注意事项:独立完成实验及实验报告,抄袭者不给成绩。

九、预习与思考题:见课堂讲授课件和作业布置。

十、实验报告要求:本门课程实验报告格式见附件1,鼓励手写,可以打印。

实验三字符串的操作类设计

实验类型:验证性实验学时:2学时

一、实验目的:

1、掌握动态分配空间的字符串的顺序存储类(链类)的设计;

2、掌握实现字符串的基本操作,如求串的长度、串的比较、复制、串的连接,取

子串、子串匹配定位和串替换等运算。

二、实验要求:

1、C++完成类的设计并上机调试通过。

2、撰写实验报告,提供实验结果和数据。

三、实验内容:

用堆分配存储表示串,实现串的比较、复制、串的连接,取子串、子串匹配定位和串替换等基本操作。

测试数据示例:

(1) 以“abcde”构造一个串s1,以“gabcdef”构造另一个串s2;

(2) 比较s1和s2是否相等;

(3) 在s2中定位s1子串;

(4) 复制s2串并连接在s1串后。

可尝试对下面的一段文本进行字符串的分析处理,自动提取其中不同的英文单词并另存为一个新的文本,示例文本:

原文:美国职业篮球赛组织叫做全国篮球协会(the National Basketball Association,简称NBA)。每年夏初,协会举办称为 the World Championship(即NBA决赛)的年度锦标赛。

分析提取英文文本格式:

the

National

Basketball

Association

NBA

World

Championship

注: 也可以完成课本第四章习题4.17题(P185)的代码设计作为本次课堂实验内容。

四、仪器设备:计算机、VC++编译环境

五、实验方法:

用C++语言设计类,并实现相关类的基本操作,程序在VC++环境下调试通过。并选择恰当的测试数据验证算法的正确性。

六、实验步骤:

1、在上机前提前完成设计代码;

2、程序调试通过,可运行;

3、通过测试数据和对象方法调用验证算法正确性。

七、实验结果处理:对程序调试中的问题要进行总结。

八、实验注意事项:独立完成实验及实验报告,抄袭者不给成绩。

九、预习与思考题:见课堂讲授课件和作业布置。

十、实验报告要求:本门课程实验报告格式见附件1,鼓励手写,可以打印。

实验四树和二叉树的自定义类的设计

实验类型:验证性实验学时:2学时

一、实验目的:

1、进一步掌握树的结构及非线性特点,递归特点和动态性。

2、巩固对指针的使用和二叉树的三种遍历方法、建立方法及树的输入输出。

二、实验要求:

1、C++完成类的设计并上机调试通过。

2、撰写实验报告,提供实验结果和数据。

三、实验内容:

实现二叉树的遍历,实现先序、中序和后序递归遍历算法;利用栈实现二叉树先序、中序遍历的非递归算法。

测试数据示例:

(1) 以层序遍历序列为abcdefghijklmn构造一棵二叉树;

(2) 分别输出其先序、中序和后序遍历结果;

可尝试通过设计合适的树结构对地图矢量或栅格数据建立高效的格网索引

算法,用于地图的快速显示和查询。

注: 也可以完成课本第五章习题5.37题(P250)的代码设计作为本次课堂实验内容。

四、仪器设备:计算机、VC++编译环境

五、实验方法:

用C++语言设计类,并实现相关类的基本操作,程序在VC++环境下调试通过。并选择恰当的测试数据验证算法的正确性。

六、实验步骤:

1、在上机前提前完成设计代码;

2、程序调试通过,可运行;

3、通过测试数据和对象方法调用验证算法正确性。

七、实验结果处理:对程序调试中的问题要进行总结。

八、实验注意事项:独立完成实验及实验报告,抄袭者不给成绩。

九、预习与思考题:见课堂讲授课件和作业布置。

十、实验报告要求:本门课程实验报告格式见附件1,鼓励手写,可以打印。

实验五图的最短路径算法设计

实验类型:验证性实验学时:2学时

一、实验目的:

了解最短路径的概念,掌握求最短路径的方法(Dijkstra算法或Floyd算法)。

二、实验要求:

1、C++完成图的相关类及算法的设计并上机调试通过。

2、撰写实验报告,提供实验结果和数据。

三、实验内容:

建立一个包含6个结点的带权有向图,并求顶点V0到其它顶点的最短路径。

测试数据由同学们自行选择。

模拟简单的道路网数据进行交互式的最短路径查询算法(Dijkstra算法)示例。

注: 也可以完成课本第八章习题8.23题(P395)的代码设计作为本次课堂实验内容。

四、仪器设备:计算机、VC++编译环境

五、实验方法:

用C++语言设计类,并实现相关类的基本操作,程序在VC++环境下调试通过。并选择恰当的测试数据验证算法的正确性。

六、实验步骤:

1、在上机前提前完成设计代码;

2、程序调试通过,可运行;

3、通过测试数据和对象方法调用验证算法正确性。

七、实验结果处理:对程序调试中的问题要进行总结。

八、实验注意事项:独立完成实验及实验报告,抄袭者不给成绩。

九、预习与思考题:见课堂讲授课件和作业布置。

十、实验报告要求:本门课程实验报告格式见附件1,鼓励手写,可以打印。

实验六自定义类应用综合设计

实验类型:综合性实验学时:2学时

一、实验目的:

1、进一步掌握各种数据结构的特点和适合解决问题的分析;

2、通过具体的有实际应用意义的问题解决和对前面设计的类的使用进一步提高程

序设计能力和算法设计、分析能力。

3、考察学生的程序设计中的逻辑思维能力和软件开发设计能力。

二、实验要求:

1、完成程序或简单系统的设计并上机调试通过。

2、撰写实验报告,提供实验结果和数据。

三、实验内容:

从下面给出的题目中选做其中的一题(多做可加分):

1. 约瑟夫环问题

1)问题描述:有编号为1, 2…n 的 n 个人按顺时针方向围坐一圈,每人持有一个正整数密码。开始给定一个正整数 m,从第一个人按顺时针方向自1开始报数,报到m者出列,不再参加报数,这时将出列者的密码作为m,从出列者顺时针方向的下一人开始重新自1开始报数。如此下去,直到所有人都出列。试设计算法,输出出列者的序列。

2)实验要求: 采用链式存储结构实现,结果可视化要友好。

3) 实现提示:用链式存储解决此问题时可以采用循环链表。

2. 停车场管理问题

1)问题描述:设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车走开,则排在便道上的第一辆车就进入停车场。停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。编写程序模拟该停车场的管理。

2)实验要求: 要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应缴纳的费用和他在停车场内停留的时间。

3)实现提示:以栈模拟停车场,以队列模拟便道,按照从终端读入的车辆“到达”“离开”信息模拟停车场管理。

3. 实现一个哈夫曼编/译码系统

1)问题描述:利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码。对于双工信道,每端都需要一个完整的编码/译码系统。试为这样的信息收发站写一个哈夫曼的编/译码系统。

2)实验要求:一个完整的系统应具有以下功能:

(1) I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。

(2) E:编码(Encoding)。利用已建好的哈夫曼树对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。

(3) D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。

(4) P:打印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码文件写入文件CodePrin中。

(5) T:打印哈夫曼树(Tree printing)。将已在内存中的哈夫曼树以直观的方式显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。

3) 实现提示:

(1) 文件CodeFile的基类型可以设为字节型。

(2) 用户界面可以设计为“菜单”方式:显示上述功能符号,再加上“Q”,表示退

出运行Quit。请用户键入一个选择功能符。此功能执行完毕后再显示此菜单,直至某次用户选择了“E”为止。

(3) 在程序的一次执行过程中,第一次执行I、D或C命令之后,哈夫曼树已经在内存了,不必再读入。每次执行中不一定执行I命令,因为文件hfmTree可能早已建好。

4. 利用最小生成树算法解决通信网的总造价最低问题

1)问题描述:若在n个城市之间建通信网络,秩序架设n-1条线路即可。如何以最低的经济代价建设这个通信网,是一个网络的最小生成树问题。

2)实验要求:利用克鲁斯卡尔算法求网的最小生成树

3) 实现提示:通信线路一旦建立,必然是双向的。因此,构造最小生成树的网一定是无向网。为简单起见,图的顶点数不超过10个,网中边的权值设置成小于100。

5. 教学计划编制问题

1)问题描述:软件专业的学生要学习一系列课程,其中有些课程必须在其先修课完成后才能学习。

2)实验要求:假设每门课程的学习时间为一个学期,试为该专业的学生设计教学计划,使他们能在最短时间内修完专业要求的全部课程。

3) 实现提示:

以顶点代表课程,弧代表课程的先后修关系,按课程先后关系建立有向无环图。利用拓扑排序实现。

6.公交线路优化路径的查询

【问题描述】

对于某城市的公交线路,乘坐公交的顾客希望在这样的线路上实现各种优化路径的查询。设该城市的公交线路的输入格式为:

线路编号:起始站名(该站坐标);经过的站点1名(该站坐标);经过的站点2名(该站坐标);……;经过的站点n名(该站坐标);终点站名(该站坐标)。该线路的乘坐价钱;该线路平均经过多少时间来一辆;车速。

例如:63:A(32,45);B(76,45);C(76,90);……;N(100,100) 。1元;5分钟;150米/每分钟。

假定线路的乘坐价钱与乘坐站数无关,假定不考虑公交线路在路上的交通堵塞。

对这样的公交线路,需要在其上进行的优化路径查询包括:任何两个站点之间最便宜的路径;任何两个站点之间最省时间的路径。

【设计要求】

①根据上述公交线路的输入格式,定义并建立合适的图模型。

②针对上述公交线路,能查询获得任何两个站点之间最便宜的路径,即输入站名S,T后,可以输出从S到T的最便宜的路径,输出格式为:线路x :站名S,…,

站名M1 ;换乘线路x :站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。共花费x元。

③针对上述公交线路,能查询获得任何两个站点之间最省时间的路径(不考虑在中间站等下一辆线路的等待时间),即输入站名S,T后,可以输出从S到T的考虑在中间站等下一辆线路的等待时间的最省时间的路径,输出格式为:线路x:站名S,…,站名M1;换乘线路x:站名M1,…,站名M2;…;换乘线路x:站名MK,…,站名T。共花费x时间。

④针对上述公交线路,能查询获得任何两个站点之间最省时间的路径(要考虑在中间站等下一辆线路的等待时间),即输入站名 S,T 后,可以输出从 S 到 T 的考虑在中间站等下一辆线路的等待时间的最省时间的路径,输出格式为:线路 x:站名 S,…,站名 M1;换乘线路 x:站名 M1,…,站名 M2;…;换乘线路 x:站名 MK,…,站名 T。共花费 x 时间。

四、仪器设备:计算机、VC++编译环境

五、实验方法:

用C++语言完成设计,程序在VC++环境下调试通过。并选择恰当的测试数据验证程序的正确性。

六、实验步骤:

1、在上机前提前完成设计代码;

2、程序调试通过,可运行;

3、通过测试数据和对象方法调用验证算法正确性。

七、实验结果处理:对程序调试中的问题要进行总结。

八、实验注意事项:独立完成实验及实验报告,抄袭者不给成绩。

九、预习与思考题:见课堂讲授课件和作业布置。

十、实验报告要求:本门课程实验报告格式见附件1,鼓励手写,可以打印。

测绘与国土信息工程学院

《数据结构》课程

实验报告

姓名:

学号:

班级:

成绩:

实验态度:1、认真2、良好3、一般4、不认真实验成果:1、优秀2、可信3、一般4、不真实实验报告:1、清晰完整2、比较完整3、不清晰

教师签名:____________

交报告日期:年月日

实验一线性表的链表实现类的设计

一、需求分析

本次程序设计要求建立一个以链表为储存方式的线性表,以及实现线性表所需求的各种功能。对线性表的操作有:

(1)输入形式为从键盘输入,用户根据界面的提示从键盘直接输入所对应的数即可。输入的值要求为整数类型,用户输入其它类型的数据时(例如字符串)会产生不可预测的错误。

(2)输出的界面为DOS窗口,系统按照用户输入的数据类型,将会把相应的输出结果显示到界面上。

(3)程序可以建立一个以链表形式储存的线性表,对线性表可以进行查找、删除、插入、构造、销毁和获取链表长度的操作。

(4)以L1={0, 5, 9, 10, 12, 12, 17, 20, 24}构造链表;找到重复的第二个元素12并删除它;在第五个元素后插入55;生成L2 = {33, 45, 50}的链表并将它与L1的链表合并。

二、概要设计

链表结点的数据结构:

struct LinkNode{ //链表结点定义(数据类型为整形)

int data; //数据域

LinkNode* link; //指针域

LinkNode(LinkNode* ptr = NULL)//仅初始化指针成员的构

{

link = ptr;

}

//初始化数据和指针成员的构造函数

LinkNode(const int x, LinkNode* ptr = NULL)

{

data = x;

link = ptr;

}

};

链表类:

class List{ //带头结点的单链表类的定义

public:

List(){first = new LinkNode;} //构造函数

List(const int x){first = new LinkNode(x);} //构造函数

List(List& L); //复制构造函数

~List(){

MakeEmpty(); //使链表为空表

delete first; //删除附加头结点

void MakeEmpty(); //将链表置为空表,保留头结点

int Length()const; //计算链表长度

LinkNode* Search(int x); //搜索含数据x的结点

LinkNode* Locate(int i); //返回第i个元素的地址

LinkNode* GetHead()const {return first;} //获取头结点地址

int GetData(int i); //取出第i个元素的值

void SetData(int i, int x);//用x修改第i个元素的值 bool Insert(int i, int x);//在链表的第i个元素后插入x

bool Remove(int i, int& x);//删除第i个元素,通过x返回其元素值

void AddTail(int x); //在链表尾部添加元素x

void DeleteRepeatedElem();//删除表中重复元素

void MergeList(List& L); //将链表L链接在当前链表尾部

bool IsEmpty()const //判断表空

{

return first->link == NULL ? true : false;

}

void Input(); //输入数据元素,建立表

void Display(); //显示表中元素

List& operator = (List& L); //重载操作符:赋值"=" private:

LinkNode* first;

};

三、详细设计

List::List(List& L)//复制构造函数

{

int val;

LinkNode * srcPtr = L.GetHead();//被复制表的头结点地址

LinkNode * desPtr = first = new LinkNode; //生成头结点

while(srcPtr->link != NULL){ //逐个结点复制

val = srcPtr->link->data;

desPtr->link = new LinkNode(val); //开辟新结点内存,并为数据域赋值X

desPtr = desPtr->link;

srcPtr = srcPtr->link;

}

desPtr->link = NULL;

}

void List::MakeEmpty() //将链表置为空表,保留头结点

{

LinkNode * p;

while(first->link!=NULL)//当链不为空时,删除链中所有结点

{

p = first->link;

first->link = p->link; //保存被删除结点的下一结点地址

delete p; //删除从链上摘下的结点}

}

int List::Length()const //计算链表长度

{

LinkNode * p = first->link;

int length = 0;

while(p!= NULL)//扫描直到链尾

{

p = p->link;

length ++;

}

return length;

}

LinkNode* List::Search(int x) //搜索含数据x的结点,返回结点地址

{

LinkNode * p = first->link;

while(p!= NULL)//扫描直到链尾,找含有数据x的结点

{

if(p->data = x) break;

else p = p->link;

}

return p;

}

LinkNode* List::Locate(int i) //返回第i个元素的地址

{

if(i < 0) return NULL; //i不合理,返回空指针

LinkNode* p = first->link;

int k = 1;

while(p!= NULL && k < i)//扫描直到链尾,找第i个结点

{

基于STM32F103嵌入式实验指导书

实验一、STM32的开发环境与简单工程 一、实验目的 1、熟悉STM32开发板的开发环境; 2、熟悉MDK创建和配置STM32工程项目的基本流程; 3、熟悉STM32官方库的应用; 4、规范编程格式。 二、实验内容 本次实验配置MDK集成开发环境,新建一个简单的工程文件,添加STM32官方库并配置工程,编译运行这个工程文件。下载已经编译好的文件到开发板中运行。学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。 三、预备知识 基本单片机硬件知识、单片机软件编程语言、程序创建和调试的基本方法。 四、实验设备及工具 硬件:STM32开发平台 软件:STM32官方库;PC机操作系统Windows 98、Windows 2000或Windows XP;KEIL MDK 集成开发环境;串口转usb驱动。 五、实验步骤 1、在准备存放工程文件的目录下创建一新文件夹,命名为Proj_GPIO;在Proj_GPIO 文件夹里面分别再创建四个文件夹:CMSIS、USER、LIB、OBJ。如图1。 其中CMSIS(Cortex Microcontroller Software Interface Standard)用于存放Cortex-M 处理器系列的与供应商无关的软件抽象层和启动相关的代码文件; USER用于存放我们自己编写的代码文件(含自己移植的底层驱动),还有MDK工程; LIB存放所有的官方底层驱动库文件; OBJ用于工程输出的过程文件和最终的二进制文件。 图1

2、将官方库STM32F10x_StdPeriph_Lib_V3.5.0.rar解压。 1)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下的所有文件和STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x 下的所有文件都到第一步所创建的CMSIS文件夹中; 2)把STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver目录下的文件(目录inc和scr)复制到第一步创建的LIB文件夹中; 3)把STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template目录下的stm32f10x_conf.h、stm32f10x_it.c、stm32f10x_it.h三个文件复制到USER文件夹中。 3、打开MDK软件,新建一个工程Proj_GPIO保存到Proj_GPIO/USER中。CPU选择STM32F103ZE,如图2; 图2 4、新建一个空文档main.c保存到USER中,然后根 据绝对路径将文件对应添加到工程中,如右图。 5、配置工程属性,右键点击工程文件中的Target 1选择Options for Target ‘Target 1’打开工程选项对话框。做如下修改: 1)Output选项勾选Create HEX File,然后点击Select Folder for Objects按钮定位输出文件保存目录到工程的OBJ文件; 2)Listing选项,同样点击Select Folder for Listings定位输出文件保存目录到工程的OBJ 文件; 3)C/C++选项,Define中填入 STM32F10X_HD, USE_STDPERIPH_DRIVER系统的两个基 本宏定义;配置Include Paths属性,加入工 程中包含头文件的目录;如右图

工艺综合课程设计指导书

《工艺综合课程设计》简明指导书 1.设计目的 《机械制造工艺与机床夹具》是一门实践性很强的课程,只有通过实践性教学环节才能使学生对该课程的基础理论有更深刻的理解,也只有通过实践才能培养学生理论联系实际的能力和独立工作能力。该设计的目的就在于: (1)在结束了《机械制造工艺与机床夹具》及有关课程的学习后,通过本次设计使学生所学到的知识得到巩固和加深,并培养学生学会全面综合地应用所学知识,去分析和解决机械制造中的问题的能力。 (2)通过设计提高学生的自学能力,使学生熟悉机械制造中的有关手册、图表和技术资料,并学会结合生产实际正确使用这些资料。 (3)通过设计使学生树立正确的设计思想,懂得合理的设计应该是技术上先进的,经济上合理的并且在生产实践中是可行的。 (4)通过编写设计说明书,提高学生对技术文件的整理、写作及组织编排能力,为学生将来撰写技术及科研论文打下基础。 2.设计内容 (1)编制规定零件的机械制造工艺规程一份; (2)填写规定零件的《机械加工工艺过程卡》一份; (3)填写规定零件某机械加工工序的《机械加工工序卡片》一份; (4)设计规定零件的某机械加工工序的专用夹具一套并绘制其总装图一张; (5)编写设计说明书一份。 3.设计步骤及要求 (1)根据给定的生产纲领,确定生产类型。 (2)分析和审查零件图:读懂零件图;审查该零件的结构工艺性;了解其主要技术要求;区分哪些表面是加工表面,哪些表面是不加工表面;查清各表面的尺寸公差、形位公差、表面粗糙度和特殊要求,区分各表面的精密与粗糙、主要与次要、重要与不重要等相对地位。在此基础上初步确定各加工表面的加工方法。 (3)根据给定的零件材料,确定毛坯种类。并确定加工表面的总加工余量。 (4)拟定零件的机械加工工艺规程:选择粗基准和精基准;确定各表面的加工方法;确定加工顺序;安排热处理工序及必要的辅助工序。 (5)确定各工序的加工设备,刀具及夹具。 (6)对工艺规程中的某道工序使用的夹具进行设计:一般画一张A1图,要求手工绘图。 a. 以有利于反映该工序加工的位置,选取投影视图。用双点划线画出零件轮廓。 b. 在零件定位表面处,画出定位元件或机构。 c. 在夹紧位置处画夹紧机构。 d. 在对刀位置画出对刀元件或刀具导引装置。 e. 画出与机床连接的元件及其它元件。 f. 绘图时要遵守国家标准的规定画法,能用标准件的尽量采用标准件。 g. 为表达清楚夹具结构,应有足够的视图、剖面图、局部视图等。 h. 夹具图上应标注夹具的总体轮廓尺寸,对刀尺寸,配合尺寸及配合公差要求,并标明夹具制造,验收和使用的技术要求。 i. 在夹具图右下角绘制国家标准规定的标题栏和明细表,表中详细列出零件的名称,代号,数量,材料,热处理及其它要求。 (7)确定所设计夹具的工序的工序余量,计算工序尺寸及公差。 (8)确定所设计工序的切削用量及工时定额。 (9)填写工艺文件——工艺过程卡和工序卡各一份。

数据结构课程实验指导书

数据结构实验指导书 一、实验目的 《数据结构》是计算机学科一门重要的专业基础课程,也是计算机学科的一门核心课程。本课程较为系统地论述了软件设计中常用的数据结构以及相应的存储结构与实现算法,并做了相应的性能分析和比较,课程内容丰富,理论系统。本课程的学习将为后续课程的学习以及软件设计水平的提高打下良好的基础。 由于以下原因,使得掌握这门课程具有较大的难度: 1)理论艰深,方法灵活,给学习带来困难; 2)内容丰富,涉及的知识较多,学习有一定的难度; 3)侧重于知识的实际应用,要求学生有较好的思维以及较强的分析和解决问题的能力,因而加大了学习的难度; 根据《数据结构》课程本身的特性,通过实验实践内容的训练,突出构造性思维训练的特征,目的是提高学生分析问题,组织数据及设计大型软件的能力。 课程上机实验的目的,不仅仅是验证教材和讲课的内容,检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面: (1)加深对课堂讲授内容的理解 实验是对学生的一种全面综合训练。是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,实验题中的问题比平时的习题复杂得多,也更接近实际。实验着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变" 活" ,起到深化理解和灵活掌握教学内容的目的。 不少学生在解答习题尤其是算法设计时,觉得无从下手。实验中的内容和教科书的内容是密切相关的,解决题目要求所需的各种技术大多可从教科书中找到,只不过其出

现的形式呈多样化,因此需要仔细体会,在反复实践的过程中才能掌握。 (2) 培养学生软件设计的综合能力 平时的练习较偏重于如何编写功能单一的" 小" 算法,而实验题是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。 通过实验使学生不仅能够深化理解教学内容,进一步提高灵活运用数据结构、算法和程序设计技术的能力,而且可以在需求分析、总体结构设计、算法设计、程序设计、上机操作及程序调试等基本技能方面受到综合训练。实验着眼于原理与应用的结合点,使学生学会如何把书本上和课堂上学到的知识用于解决实际问题,从而培养计算机软件工作所需要的动手能力。 (3) 熟悉程序开发环境,学习上机调试程序一个程序从编辑,编译,连接到运行,都要在一定的外部操作环境下才能进行。所谓" 环境" 就是所用的计算机系统硬件,软件条件,只有学会使用这些环境,才能进行 程序开发工作。通过上机实验,熟练地掌握程序的开发环境,为以后真正编写计算机程序解决实际问题打下基础。同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。 完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆语法错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,尽快掌握程序调试方法是非常重要的。分析问题,选择算法,编好程序,只能说完成一半工作,另一半工作就是调试程序,运行程序并得到正确结果。 二、实验要求 常用的软件开发方法,是将软件开发过程划分为分析、设计、实现和维护四个阶段。虽然数据结构课程中的实验题目的远不如从实际问题中的复杂程度度高,但为了培养一个软件工作者所应具备的科学工作的方法和作风,也应遵循以下五个步骤来完成实验题目: 1) 问题分析和任务定义 在进行设计之前,首先应该充分地分析和理解问题,明确问题要求做什么?限制条件是什么。本步骤强调的是做什么?而不是怎么做。对问题的描述应避开算法和所涉及的数据类型,而是对所需完成的任务作出明确的回答。例如:输入数据的类型、值的范围以及输入的

数据结构实验指导书(2016.03.11)

《数据结构》实验指导书 郑州轻工业学院 2016.02.20

目录 前言 (3) 实验01 顺序表的基本操作 (7) 实验02 单链表的基本操作 (19) 实验03 栈的基本操作 (32) 实验04 队列的基本操作 (35) 实验05 二叉树的基本操作 (38) 实验06 哈夫曼编码 (40) 实验07 图的两种存储和遍历 (42) 实验08 最小生成树、拓扑排序和最短路径 (46) 实验09 二叉排序树的基本操作 (48) 实验10 哈希表的生成 (50) 实验11 常用的内部排序算法 (52) 附:实验报告模板 .......... 错误!未定义书签。

前言 《数据结构》是计算机相关专业的一门核心基础课程,是编译原理、操作系统、数据库系统及其它系统程序和大型应用程序开发的重要基础,也是很多高校考研专业课之一。它主要介绍线性结构、树型结构、图状结构三种逻辑结构的特点和在计算机内的存储方法,并在此基础上介绍一些典型算法及其时、空效率分析。这门课程的主要任务是研究数据的逻辑关系以及这种逻辑关系在计算机中的表示、存储和运算,培养学生能够设计有效表达和简化算法的数据结构,从而提高其程序设计能力。通过学习,要求学生能够掌握各种数据结构的特点、存储表示和典型算法的设计思想及程序实现,能够根据实际问题选取合适的数据表达和存储方案,设计出简洁、高效、实用的算法,为后续课程的学习及软件开发打下良好的基础。另外本课程的学习过程也是进行复杂程序设计的训练过程,通过算法设计和上机实践的训练,能够培养学生的数据抽象能力和程序设计能力。学习这门课程,习题和实验是两个关键环节。学生理解算法,上机实验是最佳的途径之一。因此,实验环节的好坏是学生能否学好《数据结构》的关键。为了更好地配合学生实验,特编写实验指导书。 一、实验目的 本课程实验主要是为了原理和应用的结合,通过实验一方面使学生更好的理解数据结构的概念

嵌入式微控制器技术实验任务书(附程序和仿真图)

“嵌入式微控制器技术”实验任务书(电气、自动化) 一、实验目的与要求: 1、熟练掌握基于SST89E554RC微控制器的Keil C51集成开发工具的操 作及调试程序的方法(包括:仿真调试与脱机运行间的切换方法);掌握 其他相关微控制器集成开发工具的使用及调试方法; 2、熟练掌握基于SST89E554RC单片机核心板及I/O扩展实验系统的电 路结构原理、设计与应用;掌握其他相关微控制器最小系统设计与应用; 3、熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下的基于51 单片机控制器数字接口电路的硬件、软件设计方法与功能调试; 4、完成本实验课程所要求的全部实验容,并写出实验报告。 二、微机原理与接口技术综合实验室资源简介 实验室为以下实验活动提供条件: 1、基于唐都实验系统的微机原理与接口技术实验(包括汇编语言、C 语言/C++语言软件编程实验和16位/32位微机接口电路应用实验); 2、基于SST89E554RC微控制器技术软/硬件实验(提供支持汇编语言、 C语言编程的Keil C51集成开发工具、最小核心板+唐都实验系统箱); 3、基于DSP2407、DSP2812、DSP28335微控制器技术软件/硬件实验(提 供支持C语言编程的TI公司的CCS集成开发工具、DSP系列学习开发板、直流电机、步进电机、液晶); 4、基于Freescale的16位MC9S12XS128微控制器技术应用实验(提 供支持C语言编程的CodeWarrier 5.0 For S12集成开发工具、 HF-MC9S12XS128EVB-A 核心板); 5、基于ARM的16/32位ARM7LPC2103TDMI-S微控制器技术基础实验(提供 支持C、C++语言编程的ARM公司推出的ARM微控制器ADS 1.2集成开发工具、EasyARM2103开发板); 6、基于ARM Cortex?-M3先进核的LM3S1138微控制器技术基础实验(提

无机材料工艺课程设计指导书

无机非金属材料专业 《无机材料工艺课程设计》 指导书 无机非金属材料研究所编 2010年5月

目录 课程设计要求与说明 (1) 第一章窑炉制图规格 (2) 第二章窑体图 (9) 第三章尺寸标注 (13) 第四章窑炉课程设计说明书撰写规范 (19) 第五章设计说明书的编写 (22) 图1 隧道窑窑体主图 (26) 图2 隧道窑预热带典型断面图 (30) 图3 辊道窑窑体主图 (31) 图4 辊道窑窑体断面图 (33)

课程设计要求与说明 一、课程设计目的 课程设计是课堂教学的实践延伸,目的是对学生学习《陶瓷工艺学》课程的最后总结,是教学重要的一环。要求学生通过课程设计能综合运用和巩固所学的理论知识,并学会如何将理论与实践结合,研究解决实际中的工程技术问题。 主要任务是培养学生设计与绘图的基本技能,掌握窑炉设备的设计程序、过程与内容。学生根据老师给定的设计任务,在规定的时间里,应围绕自己的题目内容,结合所学知识,认真查阅资料,体验工程设计的过程,同时锻炼学生分析和解决实际问题的能力。 二、课程设计要求 通过本课程设计,要求学生进一步了解窑炉设备的基本结构;掌握窑炉设备的工作原理、工程制图方法和编制设计说明书的方法,同时要求学生融会贯通所学的理论知识,与实践结合,理解窑炉设备的设计思想和设计方法。学生对课程设计题目应视作真正的任务,要求学生认真负责地进行设计,每一个计算数据和结构设计应尽可能与生产实际相结合,课程设计应作为学生的创造性成果,不能抄袭历届学生的设计,也不允许简单照搬现成的资料,要求学生能表达自己的设计思想。 三、课程设计题目、内容 1、设计题目:隧道窑设计 辊道窑设计 2、设计内容 (1)图纸:主体结构图及主要断面图。要求尺寸标注齐全,线条、文字、图例规范; (2)说明书:确定主要尺寸和工作系统,进行燃烧计算和热平衡计算,要求计算正确,编写完整,格式规范。

实验指导-数据结构B教案资料

实验指导-数据结构B

附录综合实验 1、实验目的 本课程的目标之一是使得学生学会如何从问题出发,分析数据,构造求解问题的数据结构和算法,培养学生进行较复杂程序设计的能力。本课程实践性较强,为实现课程目标,要求学生完成一定数量的上机实验。从而一方面使得学生加深对课内所学的各种数据的逻辑结构、存储表示和运算的方法等基本内容的理解,学习如何运用所学的数据结构和算法知识解决应用问题的方法;另一方面,在程序设计方法、C语言编程环境以及程序的调试和测试等方面得到必要的训练。 2、实验基本要求: 1)学习使用自顶向下的分析方法,分析问题空间中存在哪些模块,明确这些模块之间的关系。 2)使用结构化的系统设计方法,将系统中存在的各个模块合理组织成层次结构,并明确定义各个结构体。确定模块的主要数据结构和接口。 3)熟练使用C语言环境来实现或重用模块,从而实现系统的层次结构。模块的实现包括结构体的定义和函数的实现。 4)学会利用数据结构所学知识设计结构清晰的算法和程序,并会分析所设计的算法的时间和空间复杂度。 5)所有的算法和实现均使用C语言进行描述,实验结束写出实验报告。

3、实验项目与内容: 1、线性表的基本运算及多项式的算术运算 内容:实现顺序表和单链表的基本运算,多项式的加法和乘法算术运算。 要求:能够正确演示线性表的查找、插入、删除运算。实现多项式的加法和乘法运算操作。 2、二叉树的基本操作及哈夫曼编码译码系统的实现 内容:创建一棵二叉树,实现先序、中序和后序遍历一棵二叉树,计算二叉树结点个数等操作。哈夫曼编码/译码系统。 要求:能成功演示二叉树的有关运算,实现哈夫曼编码/译码的功能,运算完毕后能成功释放二叉树所有结点占用的系统内存。 3、图的基本运算及智能交通中的最佳路径选择问题 内容:在邻接矩阵和邻接表两种不同存储结构上实现图的基本运算的算法,实现图的深度和宽度优先遍历算法,解决智能交通中的路径选择问题。设有n 个地点,编号为0~n-1,m条路径的起点、终点和代价由用户输入提供,寻找最佳路径方案(例如花费时间最少、路径长度最短、交通费用最小等,任选其一即可)。 要求:设计主函数,测试上述运算。 4、各种内排序算法的实现及性能比较 内容:验证教材的各种内排序算法。分析各种排序算法的时间复杂度。 要求:使用随机数产生器产生较大规模数据集合,运行上述各种排序算法,使用系统时钟测量各算法所需的实际时间,并进行比较。

数据结构实验指导书

《数据结构》实验指导书 实验一顺序表 实验目的: 熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作。 实验要求: 了解并熟悉顺序表的逻辑特性、存储表示方法和顺序表的基本操作的实现和应用。 实验内容: 1、编写程序实现在线性表中找出最大的和最小的数据元素,并符合下列要求: (1)设数据元素为整数,实现线性表的顺序存储表示。 (2)从键盘输入10个数据元素,利用顺序表的基本操作建立该表。 (3)利用顺序表的基本操作,找出表中最大的和最小的数据元素(用于比较的字段为整数)。 2、编写一个程序实现在学生成绩中找出最高分和最低分,并符合下列要求: (1)数据元素为学生成绩(含姓名、成绩等字段)。 (2)要求尽可能少地修改第一题的程序来得到此题的新程序,即要符合第一题的所有要求。(这里用于比较的字段为分数) 实验二链表 实验目的: 熟悉链表的逻辑特性、存储表示方法的特点和链式表的基本操作。 实验要求: 了解并熟悉链式表的逻辑特性、存储表示方法和链式表的基本操作的实现和应用。

实验内容: 1、编写一个程序建立存放学生成绩的有序链表并实现相关操作,要求如下: (1)设学生成绩表中的数据元素由学生姓名和学生成绩字段组成,实现这样的线性表的链式存储表示。 (2)键盘输入10个(或若干个,特殊数据来标记输入数据的结束)数据元素,利用链表的基本操作建立学生成绩单链表,要求该表为有序表 并带有头结点。(用于比较的字段为分数)。 (3)输入关键字值x,打印出表中所有关键字值<=x的结点。(用于比较的关键字字段为分数)。 (4)输入关键字值x,删除表中所有关键字值<=x的结点。(用于比较的关键字字段为分数)。 (5)输入关键字值x,并插入到表中,使所在的链表仍为有序表。(用于比较的字段为分数)。 实验三栈的应用 实验目的: 熟悉栈的逻辑特性、存储表示方法和栈的基本操作。 实验要求: 了解并熟悉栈的逻辑特性、顺序和链式存储表示方法和栈的基本操作的实现和应用。 实验内容: (1)判断一个表达式中的括号(仅有一种括号,小、中或大括号) 是否配对。编写并实现它的算法。 (2)用不同的存储方法,求解上面的问题。 (3)* 若表达式中既有小括号,又有大括号(或中括号),且允许 互相嵌套,但不能交叉,写出判断这样的表达式是否合法的算 法。如 2+3*(4-{5+2}*3)为合法;2+3*(4-{5+2 * 3} 、 2+3*(4-[5+2 * 3)为不合法。

嵌入式ADS实验指导书

实验一嵌入式微处理器系统的开发环境 一、实验环境 PC机一台 软件: ADS 1.2集成开发环境一套 二、实验目的 1.了解嵌入式系统及其特点; 2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序 三、实验容 1.嵌入式系统的开发环境、基本配置 2.使用汇编指令完成简单的加法实验 四、实验步骤 (1)在D:\新建一个目录,目录名为experiment。 (2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。启动ADS 1.2 如图1-1所示: 图1-1启动ADS1.2 (3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮, 也可以在“File”菜单中选择“New…”菜单。这样就会打开一个如图1-2 所示的对话框。选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。 图1-2 新建文件 在这个对话框中为用户提供了7 种可选择的工程类型:

1)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库; 3)Empty Project:用于创建一个不包含任何库或源文件的工程; 4)Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件; 5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件; 6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。(4)选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。 图1-3 新建test1.s (5) 选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312。 图1-4 设置字体 (6) 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings对话框的左边选择ARM Linker项,设置地址。 点击“DebugRel Settings…”图标按钮,即可进行工程的地址设置、输出文件设置、编

焊接工艺课程设计指导书

材料成形及控制工程专业课程设计 焊接工艺设计指导书 一、设计目的 1.通过实际产品的焊接工艺设计,使学生了解焊接结构的生产工艺过程; 2.掌握焊接工艺的设计方法及工艺文件的制定; 3.培养学生运用专业理论知识解决实际焊接生产问题的能力,锻炼查阅文献资料及工具书籍的基本技能。 二、设计内容 在规定时间内,完成由教师指定的某一个结构件的焊接工艺设计任务,主要内容包括: 1. 焊接结构件的设计简图与技术要求; 2. 产品的制造工艺性能分析; 3. 主要接头的焊接方法选择与说明,坡口型式及尺寸的设计与说明; 4. 主要部件(筒节、封头等)的加工工艺过程卡; 5. 产品的装焊工艺过程卡; 6. 壳体的焊接工艺卡。 三、设计要求 1.手绘产品的结构设计简图,标注出产品的主要结构尺寸;主要零件的名称、材质与规格;设计技术要求(包括制造技术要求与检验要求)等。 2.产品的制造工艺性能分析主要包括容器主体材料的焊接性分析与结构的装焊工艺性能分析。容器主体材料的焊接性能主要分析材质的焊接裂纹倾向及产生其它焊接缺陷的倾向,说明为保证焊接质量应采取的工艺措施,如合理选用焊接方法、焊接材料、焊前预热、焊后热处理、层间温度等;结构的装焊工艺性能分析主要针对特殊、复杂容器结构,分析需要采用的装焊顺序与方法。 2. 接头焊接方法的选择和坡口型式的设计应包括纵焊缝、环焊缝、封头拼缝、 人孔接管与筒体的焊缝等,绘制接头的局部放大图。选择与设计的依据主要从容器结构尺寸、接头位置、材质及厚度、施焊条件与可操作性、焊接变形与应力、装焊顺序等方面考虑。 3. 主要部件(筒节、封头等)的加工过程卡要求制定部件从原材料备料至组 装焊接之前的全部加工工艺过程,包括各加工工序的名称、加工内容、所用的工装设备与检验要求等,必要时绘制出加工工艺简图; 4. 壳体的装焊工艺设计包括装焊工艺顺序、工序名称与内容、各工序所涉及

《数据结构》实验指导

《数据结构》实验指导 (计算机信息大类适用) 实验报告至少包含以下内容: 实验名称 实验目的与要求: 实验内容与步骤(需要你进行细化): 实验结果(若顺利完成,可简单说明;若实验过程中遇到问题,也请在此说明) 收获与体会(根据个人的实际情况进行说明,不得空缺) 实验1 大整数加法(8课时) 目的与要求: 1、线性表的链式存储结构及其基本运算、实现方法和技术的训练。 2、单链表的简单应用训练。 3、熟悉标准模版库STL中的链表相关的知识。 内容与步骤: 1、编程实现单链表的基本操作。 2、利用单链表存储大整数(大整数的位数不限)。 3、利用单链表实现两个大整数的相加运算。 4、进行测试,完成HLOJ(https://www.doczj.com/doc/2a15040118.html,) 9515 02-线性表大整数A+B。 5、用STL之list完成上面的任务。 6、尝试完成HLOJ 9516 02-线性表大菲波数。 实验2 栈序列匹配(8课时) 目的与要求 1、栈的顺序存储结构及其基本运算、实现方法和技术的训练。 2、栈的简单应用训练。 3、熟悉标准模版库STL中的栈相关的知识。 内容与步骤: 1、编程实现顺序栈及其基本操作。 2、对于给出的入栈序列和出栈序列,判断2个序列是否相容。即:能否利用栈 将入栈序列转换为出栈序列。 3、进行测试,完成HLOJ 9525 03-栈与队列栈序列匹配。 4、用STL之stack完成上面的任务。 5、尝试完成HLOJ 9522 03-栈与队列胡同。

实验3 二叉排序树(8课时) 目的与要求 1、二叉树的链式存储结构及其基本运算、实现方法和技术的训练。 2、二叉树的遍历方法的训练。 3、二叉树的简单应用。 内容与步骤: 1、编程实现采用链式存储结构的二叉排序树。 2、实现插入节点的操作。 3、实现查找节点的操作(若查找失败,则将新节点插入二叉排序树)。 4、利用遍历算法对该二叉排序树中结点的关键字按递增和递减顺序输出,完成 HLOJ 9576 07-查找二叉排序树。 5、尝试利用二叉排序树完成HLOJ 9580 07-查找Let the Balloon Rise。 实验4 最小生成树(8课时) 目的与要求 1、图的邻接矩阵存储结构及其相关运算的训练。 2、掌握最小生成树的概念。 3、利用Prim算法求解最小生成树。 实验背景: 给定一个地区的n个城市间的距离网,用Prim算法建立最小生成树,并计算得到的最小生成树的代价。要求显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。 内容与步骤: 1、建立采用邻接矩阵的图。 2、编程实现Prim算法,求解最小生成树的代价。 3、尝试利用Prim算法完成:HLOJ 9561 06-图最小生成树。

2017数据结构实验指导书

《数据结构》实验指导书 贵州大学 电子信息学院 通信工程

目录 实验一顺序表的操作 (3) 实验二链表操作 (8) 实验三集合、稀疏矩阵和广义表 (19) 实验四栈和队列 (42) 实验五二叉树操作、图形或网状结构 (55) 实验六查找、排序 (88) 贵州大学实验报告 (109)

实验一顺序表的操作 实验学时:2学时 实验类型:验证 实验要求:必修 一、实验目的和要求 1、熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。 2、以线性表的各种操作(建立、插入、删除等)的实现为重点。 3、掌握线性表的动态分配顺序存储结构的定义和基本操作的实现。 二、实验内容及步骤要求 1、定义顺序表类型,输入一组整型数据,建立顺序表。 typedef int ElemType; //定义顺序表 struct List{ ElemType *list; int Size; int MaxSize; }; 2、实现该线性表的删除。 3、实现该线性表的插入。 4、实现线性表中数据的显示。 5、实现线性表数据的定位和查找。 6、编写一个主函数,调试上述算法。 7、完成实验报告。 三、实验原理、方法和手段 1、根据实验内容编程,上机调试、得出正确的运行程序。 2、编译运行程序,观察运行情况和输出结果。 四、实验条件 运行Visual c++的微机一台 五、实验结果与分析 对程序进行调试,并将运行结果进行截图、对所得到的的结果分析。 六、实验总结 记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等,并将其写入实验报告中。

【附录----源程序】 #include #include using namespace std; typedef int ElemType; struct List { ElemType *list; int Size; int MaxSize; }; //初始化线性表 bool InitList(List &L) { L.MaxSize=20; L.list=new ElemType[L.MaxSize]; for(int i=0;i<20&&L.list==NULL;i++) { L.list=new ElemType[L.MaxSize]; } if(L.list==NULL) { cout<<"无法分配内存空间,退出程序"<L.Size+1||pos<1) { cout<<"位置无效"<

嵌入式实验指导书 (修改6)20161025

嵌入式系统技术及应用 实验指导书 (第3版) 郑普亮编写 西安建筑科技大学信控学院 智能建筑与楼宇自动化实验室 2014年5月

目录 1课程简介、实验项目及学时安排 (1) 1.1课程简介 (1) 1.2实验项目及学时安排 (1) 2实验仪器仪表设备简介 (2) 2.1嵌入式系统实验箱 (2) 2.2其它实验设备 (2) 3嵌入式系统技术及应用课程实验 (3) 3.1实验1系统认识实验 (3) 3.2实验2定时器实验 (10) 3.3实验3PWM发生器实验 (14) 3.4实验416*16LED点阵显示汉字实验 (16)

1课程简介、实验项目及学时安排 1.1课程简介 嵌入式系统广泛应用于仪器仪表、工业控制、汽车电子等多个领域,是一个综合性的快速发展的技术方向。课程以ARM Cortex-M3系列处理器为主,着重介绍了嵌入式系统设计的基本概念、基于ARM处理器的体系结构、ARM微处理器的编程模型与指令系统、嵌入式操作系统及相关的接口技术。 通过对本课程的学习,能够使学生深刻了解ARM处理器的工作原理,熟练掌握ARM 微处理器的指令系统,以及嵌入式系统软硬件设计基本方法,进而加强学生独立设计能力和创新能力的培养。 1.2实验项目及学时安排 本课程的实验目的是使学生掌握ARM指令系统及基于C语言和驱动程序库的程序设计方法,掌握ARM微处理器各组成部分工作原理及应用,培养学生对ARM微处理器的应用程序与硬件电路的设计能力,提高学生分析和解决实际问题的能力,从而为学生今后走向工作岗位、从事相关专业领域的科学研究和技术开发打下扎实的基础。所以安排了验证性、设计性和综合性不同属性的实验项目。 序号实验项目学时 实验性质 验证综合设计 1系统认识实验2√ 2定时器实验2√ 3PWM发生器实验2√416*16LED点阵显示汉字实验2√ 注:实验项目根据实验教学安排选取。

冲压工艺与模具设计课程设计指导与任务书

冲压工艺及模具设计》课程设计指导书 2.1 课程设计目的 本课程设计是在学生学完“冲压工艺与冷冲模具设计”理论课并进行了上机练习之后 进行的一个重要教学环节。是学生运用所学理论,联系实际,提高工程技术能力和培养严 谨细致作风的一次重要机会。通过本次设计要达到以下目的: 1、巩固与扩充“冲压工艺与冷冲模具设计”以及有关技术基础课程所学的内容,掌握 制订冲压工艺规程和设计冲压模具的方法。 2、培养综合运用本专业所学课程的知识, 解决生产中实际问题的工程技术能力 设计、计 算、绘图、技术分析与决策、文献检索以及撰写技术论文的能力)。 3、养成严肃、认真、细致地从事技术工作的优良作风。 2.2 课程设计步骤 1. 设计准备 1) 阅读产品零件图 (1) 设计前应预先准备好设计资料、手册、图册、绘图用具、图纸、说明书用纸。 (2) 认真研究任务书及指导书,分析设计题目的原始图样、零件的工作条件,明确设 计要求 及内容。 (3) 熟悉各种可采用的模具结构形式及其优缺点。 2) 冲件图样分析 产品零件图是分析编制冲压方案、设计模具的重要依据,对零件图的分析 主要是从冲 压工艺的角度出发,对冲压件的形状、尺寸 ( 最小孔边距、孔径、材料厚度、最大 外形 精度、表面粗糙度、材料性能等逐项分析,确定冲压工序图。若有与冲压工艺要求相悖者, 应采 取相应的解决措施或与指导教师协商更改。 (1) 工艺分析。 合理的冲压工艺,既能保证冲件的质量,使冲压工艺顺利进行,提高模具寿命,降低 成本,提高经济效益,同时给模具的设计、制造与修理带来方便。所以必须对指定的冲压 件图样进行充分的工艺分析,在此基础上,拟订各种可能的不同工艺方案。 工艺分析主要是分析冲件的形状、尺寸及使用要求,分析冲件的工艺性;根据成形规 律,确定所用冲压工艺方法;根据生产批量、冲压设备、模具加工的工艺条件等多方面因 素,进行全面的分析、研究,确定冲件的工艺性质、工序数量、工序的组合和先后顺序。 在几种可能的冲压工艺方案中,选择一种经济、合理的工艺方案,并填写冲压工艺卡。 (2) 制订冲压工艺。 制订冲压工艺方案时,应做如下工作: ① 备料。确定板料、条料的规格、要求,并计算出材料利用率。 ② 确定工序性质、数目、先后顺序、工序的组合形式。 包括: )、

《数据结构》实验指导书

《数据结构》实验指导书 实验类别:课内实验实验课程名称:数据结构 实验室名称:软件工程实验室实验课程编号:N02070601 总学时:64 学分: 4 适用专业:计算机科学与技术、网络工程、物联网工程、数字媒体专业 先修课程:计算机科学导论、离散数学 实验在教学培养计划中地位、作用: 数据结构是计算机软件相关专业的主干课程,也是计算机软硬件专业的重要基础课程。数据结构课程实验的目的是通过实验掌握数据结构的基本理论和算法,并运用它们来解决实际问题。数据结构课程实验是提高学生动手能力的重要的实践教学环节,对于培养学生的基本素质以及掌握程序设计的基本技能并养成良好的程序设计习惯方面发挥重要的作用。 实验一线性表的应用(2学时) 1、实验目的 通过本实验,掌握线性表链式存储结构的基本原理和基本运算以及在实际问题中的应用。 2、实验内容 建立某班学生的通讯录,要求用链表存储。 具体功能包括: (1)可以实现插入一个同学的通讯录记录; (2)能够删除某位同学的通讯录; (3)对通讯录打印输出。 3、实验要求 (1)定义通讯录内容的结构体; (2)建立存储通讯录的链表结构并初始化; (3)建立主函数: 1)建立录入函数(返回主界面) 2)建立插入函数(返回主界面) 3)建立删除函数(返回主界面) 4)建立输出和打印函数(返回主界面) I)通过循环对所有成员记录输出 II)输出指定姓名的某个同学的通讯录记录 5)退出 实验二树的应用(2学时) 1、实验目的 通过本实验掌握二叉排序树的建立和排序算法,了解二叉排序树在实际中的应用并熟练运用二叉排序树解决实际问题。 2、实验内容 建立一个由多种化妆品品牌价格组成的二叉排序树,并按照价格从低到高的顺序 打印输出。 3、实验要求 (1)创建化妆品信息的结构体; (2)定义二叉排序树链表的结点结构; (3)依次输入各类化妆品品牌的价格并按二叉排序树的要求创建一个二叉排序树链表;(4)对二叉排序树进行中序遍历输出,打印按价格从低到高顺序排列的化妆品品牌信息。 实验三图的应用(2学时)

嵌入式linux实验指导书

嵌入式linux实验指导书 实验一:arm裸机实验 实验条件: pc ADS开发环境FL2440开发套件SecureCRT串口超级终端 实验目的: 熟悉arm裸机开发基本步骤,掌握ADS集成开发环境的使用,能够编写简单的裸机程序并下载到开发板运行测试。 实验原理: ADS 全称为ARM Developer Suite ,是ARM 公司推出的新一代ARM 集成开发工具。ADS 由命令行开发工具、ARM 实时库、GUI 开发环境(Code Warrior 和AXD) 、实用程序和支持软件组成。有了这些部件,用户就可以为ARM 系列的RISC 处理器编写和调试自己开发的应用程序了。本次实验利用ADS集成开发环境建立基于arm9 S3C2440的实验工程,完成工程搭建、代码编写和编译,生成可执行文件并下载到开发板进行运行测试。 实验步骤: 1、首先打开ADS软件CodeWarrior,点击File 菜单下的New 来创建新工程。Project 对话框中选择ARM Executable Image 。在Project name 中输入工程名,例:2440_led,点击“Location:”文本框的“Set...”按钮,选择要将工程保存的路径,然后点击确定即可建立一个新的工程。工程建立之后会出现一个24 40_led.mcp 窗口。 2、创建源文件,点击File 菜单下的New,选择标签页File,在File name 中输入要建立的文件名,如:Init.s (.s 文件为arm 中的汇编文件),若此时选上了Add to Project,创建的文件会自动添加到工程中,选择target方式为DebugRel,点击确定关闭窗口,文件创建完成后编写代码。(可将arm_linux文件夹下的裸机例程代码复制到工程中进行修改,如:复制裸机程序中的led程序init.s led.c 到建立的工程文件目录中,点击Project 菜单下的Add Fils 将源文件添加到工程中)

焊接结构课程设计指导书

焊接结构与生产工艺课程设计指导书通用桥式起重机金属结构和生产工艺设计 曹永胜李慕勤曹丽杰 佳木斯大学材料工程学院

通用桥式起重机金属结构和生产工艺课程设计指导书 一、设计目的 1.培养学生综合运用所学知识的技能.通过对典型焊接结构和生产工艺的设计,使学生能针对产品使用性能和使用条件,制定焊接结构的设计方案及生产工艺方案。在具体的设计过程中,应根据结构的特点和技术要求,提出问题,分析问题产生的原因,并找到解决问题的途径和具体措施,制定合理的结构设计方案和生产工艺方案,从而得到一次解决实际工程问题的锻炼. 2.培养学生自学能力.使学生熟悉工具书,参考书的查找与使用方法,在学习前人的设计经验的基础上,发挥主观能动性,有所创新. 3.了解焊接工程技术人员的主要任务,工作内容和方式方法. 二、设计内容与计划 (一)设计内容 1. 5~50T通用桥式起重机主梁箱型结构设计。 2. 5~50T通用桥式起重机主梁生产工艺指定。 3.5~50T通用桥式起重机主梁结构生产图纸绘制。 (二)设计计划 1.接受设计任务、查阅资料和制定设计方案。(2天) 2.主梁结构设计计算;(7天) 3.主梁结构生产图纸绘制;(1天) 4.主梁结构生产工艺分析;(2天) 5.主梁生产工艺规程制定。(2天) 6.总结和考核。(1天) (三)任务完成 课程设计完成后,学生应交付以下材料: 1 主梁结构设计计算说明书; 2 主梁结构生产工艺分析报告; 3 主梁结构生产用施工图纸; 4 主梁生产工艺规程.

通用桥式起重机主梁结构及生产工艺设计 §1 通用桥式起重机简介 通用桥式起重机是指用吊钩或抓斗(有的也有用电磁盘)吊取货物的一般用途的桥式起重机,它桥架(大车)和起重小车两大部分组成,桥架横跨于厂房或露天货物上空,沿吊车梁上的起重机轨道纵向运行。通用桥式起重机有大车运行机构(装在桥架上),起升机构和小车运行机构(装在小车上)等三种工作性机构,皆为电动。通用桥式起重机的起重量可达500吨,跨度50~60米。 1.1 通用桥式起重机的基本组成 1.2 通用桥式起重机的基本参数 1额定起重量Q(tf) 2 跨度L(m) 3大车运行速度(m/min) 4 小车运行速度(m/min) 5 起升高度(m) 6 起升速度(m/min) 7 接电持续率JC JC = 100t i /T % t i —在起重机的一个工作循环中该机的总运转时间。 T --起重机一个工作循环所需的时间。 T = 360/N h (s) 通用桥式起重机 大车 小车桥架 大车运行机构 主梁 端梁小车架 小车运行机构 起升机构 图 1 通用桥式起重机组成

相关主题
文本预览
相关文档 最新文档