搜档网
当前位置:搜档网 › 算法分析与设计实验指导书

算法分析与设计实验指导书

算法分析与设计实验指导书
算法分析与设计实验指导书

《算法分析与设计》实验指导书

《算法分析与设计》课程是计算机专业的一门必修课程。开设算法分析与设计实验,目的就是为了使学生消化理论知识,加深对讲授内容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对算法的分析与设计有更深刻的认识。

《算法分析与设计》课程实验的目的:是为了使学生在课程学习的同时,通过实验环境中的实际操作,对部分算法的具体应用有一个初步的了解,使学生加深了解和更好地掌握《算法分析与设计》课程教学大纲要求的内容。

《算法分析与设计》课程实验的注意事项:在《算法分析与设计》的课程实验过程中,要求学生做到:

(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出

现的情况提前作出思考和分析。

(2)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分

析。

(3)遵守机房纪律,服从辅导教师指挥,爱护实验设备。

(4)实验课程不迟到。如有事不能出席,所缺实验一般不补。

《算法分析与设计》课程实验的验收:实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即时提问。第二部分是提交电子的实验报告。

实验一算法实现一

一、实验目的与要求

熟悉C/C++语言的集成开发环境;

通过本实验加深对分治法、贪心算法的理解。

二、实验内容:

掌握分治法、贪心算法的概念和基本思想,并结合具体的问题学习如何用相应策略进行求解的方法。

三、实验题

1. 【伪造硬币问题】给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的

任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的重量是否相同。试用分治法的思想写出解决问题的算法,并计算其时间复杂度。

2.【找零钱问题】一个小孩买了价值为33美分的糖,并将1美元的钱交给售货员。售

货员希望用数目最少的硬币找给小孩。假设提供了数目有限的面值为25美分、10美分、5美分、及1美分的硬币。给出一种找零钱的贪心算法。

a)实验步骤

理解算法思想和问题要求;

编程实现题目要求;

上机输入和调试自己所编的程序;

验证分析实验结果;

整理出实验报告。

四、实验程序

五、实验结果

六、实验分析

1本实验运用分治算法。可将硬币分成N堆来进行实验

若分成两堆算法思想如下

步骤一、令x等于n.

步骤二、若x为偶数,

则将袋子中的硬币一分为二,即各x/2个放仪器上比较两组硬币的重量,那组较轻伪造的硬币就在该组。若n等于2,则结束,因为已经找出伪造硬币。否则,令n=n/2,执行步骤一。

否则,

取出一个硬币后,再把剩下的x-1个硬币进行分组,每组(x-1)/2个硬币;并放在仪器上比较两组的重量,若两组一样重,则刚才拿出来的硬币为伪造的;否则,伪造的硬币在较轻的那一组。若n等于2,则结束,因为已经找出伪造硬币。否则,令n=(x-1)/2,执行步骤一。

时间复杂度。因为以上算法应用的是二分法的思想,每次比较排除1/2的真硬币。所以其时间复杂度为O(n)。

分成三堆思想

/*总体思想:将所有的硬币分成三堆,通过比较三堆的质量找出与其他两组不同的一组,伪造的硬币一定在这一组中。写程序时还须注意硬币号

所以一共有三种可能性:

1.硬币刚好能分成三堆,即硬币的数目能被3整除。这样只需要比较哪堆硬币质量和其他的两组质量不一样,不一样的那组是有伪造硬币的那组。

2.硬币的数目被3整除余1。再将这一种情况分成两种情况考虑:

a.三组硬币质量相等,则剩下的硬币是伪造的。

b.三组硬币质量不等,则情况与1一致。

3.硬币数目被3整除余2。也将这一种情况分成两种情况考虑:

a.三组硬币质量相等,则伪造的硬币一定在剩下的两个硬币当中。从三组硬币中任意取出一个与剩下的两个硬币比较质量,则质量与其他两个不相等的硬币是伪造的。

b.三组硬币质量不等,则情况与1一致。*/

实验程序如下

#include

#include <>

using namespace std;

void findTheCoin(int a[], int n ,int num);

2M

找零钱问题】一个小孩买了价值为33美分的糖,并将1美元的钱交给售货员。售货员希望用数目最少的硬币找给小孩。假设提供了数目有限的面值为25美分、10美分、5美分、及1美分的硬币。给出一种找零钱的贪心算法。

对于给定的数额,用面值25、10、5、2、1的硬币找零,要求所用硬币总数最少。

实现,算法如下:

#include

#include <>

using namespace std;

int main()

{

int a,b25,b10,b5,b2,b1;

cout <<"请输入要找的零钱:"<

cin>>a;

b25=(a/25);

b10=(a%25)/10;

b5=(a%25)%10/5;

b2=(a%25)%10%5/2;

b1=(a%25)%10%5%2;

cout<<"需要以下几枚零钱:"<

if(b25!=0)

cout<<"25分的"<

if(b10!=0)

cout<<"10分的"<

if(b5!=0)

cout<<"5分的"<

if(b2!=0)

cout<<"2fende"<

if(b1!=0)

cout <<"1分的"<

return(0);

}

实验二算法实现二一、实验目的与要求

熟悉C/C++语言的集成开发环境;

通过本实验加深对贪心算法、动态规划和回溯算法的理解。

二、实验内容:

掌握贪心算法、动态规划和回溯算法的概念和基本思想,分析并掌握"0-1"背包问题的三种算法,并分析其优缺点。

三、实验题

1."0-1"背包问题的贪心算法

2."0-1"背包问题的动态规划算法

3."0-1"背包问题的回溯算法

四、实验步骤

理解算法思想和问题要求;

编程实现题目要求;

上机输入和调试自己所编的程序;

验证分析实验结果;

整理出实验报告。

五、实验程序

六、实验结果

七、实验分析

优化设计实验指导书(完整版)

优化设计实验指导书 潍坊学院机电工程学院 2008年10月 目录

实验一黄金分割法 (2) 实验二二次插值法 (5) 实验三 Powell法 (8) 实验四复合形法 (12) 实验五惩罚函数法 (19)

实验一黄金分割法 一、实验目的 1、加深对黄金分割法的基本理论和算法框图及步骤的理解。 2、培养学生独立编制、调试黄金分割法C语言程序的能力。 3、掌握常用优化方法程序的使用方法。 4、培养学生灵活运用优化设计方法解决工程实际问题的能力。 二、实验内容 1、编制调试黄金分割法C语言程序。 2、利用调试好的C语言程序进行实例计算。 3、根据实验结果写实验报告 三、实验设备及工作原理 1、设备简介 装有Windows系统及C语言系统程序的微型计算机,每人一台。 2、黄金分割法(0.618法)原理 0.618法适用于区间上任何单峰函数求极小点的问题。对函数除“单峰”外不作 其它要求,甚至可以不连续。因此此法适用面相当广。 0.618法采用了区间消去法的基本原理,在搜索区间内适当插入两点和,它们把 分为三段,通过比较和点处的函数值,就可以消去最左段或最右段,即完成一次迭代。 然后再在保留下来的区间上作同样处理,反复迭代,可将极小点所在区间无限缩小。 现在的问题是:在每次迭代中如何设置插入点的位置,才能保证简捷而迅速地找到极小点。 在0.618法中,每次迭代后留下区间内包含一个插入点,该点函数值已计算过,因此以后的每次迭代只需插入一个新点,计算出新点的函数值就可以进行比较。 设初始区间[a,b]的长为L。为了迅速缩短区间,应考虑下述两个原则:(1)等比收缩原理——使区间每一项的缩小率不变,用表示(0<λ<1)。 (2)对称原理——使两插入点x1和x2,在[a,b]中位置对称,即消去任何一边区间[a,x1]或[x2,b],都剩下等长区间。 即有 ax1=x2b 如图4-7所示,这里用ax1表示区间的长,余类同。若第一次收缩,如消去[x2,b]区间,则有:λ=(ax2)/(ab)=λL/L 若第二次收缩,插入新点x3,如消去区间[x1,x2],则有λ=(ax1)/(ax2)=(1-λ)L/λL

算法分析与设计实验指导书

《算法分析与设计》实验指导书本书是为配合《算法分析与设计实验教学大纲》而编写的上机指导,其目的是使学生消化理论知识,加深对讲授容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对算法的分析与设计有更深刻的认识。 上机实验一般应包括以下几个步骤: (1)、准备好上机所需的程序。手编程序应书写整齐,并经人工检查无误后才能上机。(2)、上机输入和调试自己所编的程序。一人一组,独立上机调试,上机时出现的问题,最好独立解决。 (3)、上机结束后,整理出实验报告。 实验报告应包括: 1)问题分析 2)算法描述 3)运行结果、 4)算法性能分析。 实验一 实验名称:贪心算法应用及设计 实验学时:6学时 实验类型:验证 实验目的: 1.理解贪心算法的基本思想 2.掌握利用贪心算法求解问题的求解步骤 实验容 1.活动选择问题(2学时) 问题描述: 设有11个会议等待安排,用贪心法找出满足目标要求的会议集合,这些会议按结束时间的非减序排列如下表。 实验实现提示: 1)数据结构设计: 将会议开始时间存储在数组B中,结束时间存储在数组E中,数组下标为会议的代码。结果存储在数组A中,其元素A[i]==true,表示会议i被选中。 2)算法: void GreedySelect(int n, struct time B[], struct time E[], bool A[]) { int i,j;

A[1]=true; j=1; i=2; while( i<=n) if (B[i]>=E[j]) { A[i]=true; j=i;} else A[i]=false; } 思考题:证明所得的解是最优解? 2.单源点最短路径问题。(2学时) 问题描述 如图所示的有向带权图中,求源点0到其余顶点的最短路径及最短路径长度。并对算法进行性能分析。 实现提示 1)数据结构设计: 将图存储在邻接矩阵C中,结点个数为n,源点编号为u, 源点u到其余顶点的最短路径长度存储在dist[],最短路径存储在p[]。 2) 算法 void Dijkstra(int C[n][n], int n,int u,float dist[],int p[]) { bool s[n]; for( int i=1; i<=n; i++) { dist[i]=C[u][i]; s[i]=false; if (dist[i]=∞) p[i]=-1; else p[i]=u; } p[u]=-1; s[u]=true; for( i=1; i<=n; i++) { int temp= ∞; int t=u; for( int j=1;j<=n;j++)

【3】微机原理与汇编语言程序设计课程设计实验指导书_图文_百.

《微机原理与汇编语言程序设计课程设计》 实验指导书 本课程设计包含软件部分和硬件部分两个环节。 软件部分完成在有限的课内实验环节无法涉及到的具有综合设计性的软件实验,如中断程序设计、I/O程序设计、宏设计等。硬件部分利用伟福试验系统设计一个电子钟电路,并编制一个程序使电子钟能正常运行。通过软硬件环节的设计和调试,巩固所学知识,增强动手能力,提高综合性工程素质。 总实验学时:共计2周 实验一:电话号码本设计完善 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验二:显示器I/O程序设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验三:中断程序设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业

实验四:发声系统设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验五:键盘程序设计 实验类型:综合性、设计性实验 学时:1天 适用对象:信息安全专业 实验六:电子钟设计 实验类型:综合性、设计性实验 学时:5天 适用对象:信息安全专业 一、实验目的和要求 软件实验部分要求进一步熟悉汇编语言开发环境,掌握汇编语言程序设计的方法和步骤,并根据教师意见和讨论,完善改进课内环节所进行的实验及进行其他综合性、设计性较强的实验内容,具体如下: 1. 熟练掌握汇编语言程序设计环境,根据前期掌握程度,可选择Masm for windows集 成实验环境(实验室配备,或自行安装masm5.0、masm6.0、Emu8086,Tasm等,软件开发环境可由学生根据使用爱好自选。

2.根据课内实验验收时指导教师提出的意见,以及和同学讨论的结果,设计实现一个功能比较完善的电话号码本,并在设计中体现自己的工作特色,即具备和其他设计不同之处。 3. 显示器I/O程序设计,完成屏幕窗口控制程序。 要求在屏幕上开出三个窗口,它们的左上角和右下角的坐标分别是(5,10,(15,30和(5,50,(15,70和(18,15,(22,65,如从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示于左窗口,则先按下←键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示出左窗口的内容。如果再按下→键,输入字符就会接在先前输入的字符之后显示出来。当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示与最低一行,窗口最高一行向上卷动后消失。 4. 中断程序设计,完成内部中断服务程序和外部中断服务程序设计。具体要求为: (1.编写一个内部中断服务程序,使其能够显示以“0”结尾的字符串(利用显示器功能调用INT 10H。字符串缓冲区首地址为入口参数,利用DS:DX传递此参数。 (2.编写一个可屏蔽的外部中断服务程序,中断请求来自8259A的IRQ0,在新的外部中断服务程序(新08H中断中,使得每55ms的中断在屏幕上显示一串信息“A 8259A Interrupt!”,显示10次后,恢复原中断服务程序,返回DOS。 5.发声系统设计,参考教材中的例9.1,利用扬声器控制原理,编写一个简易乐器程序。 要求当按下1~8数字键时,分别发出连续的中音1~7和高音i(对应频率依次为524Hz、588Hz、660Hz、698Hz、784Hz、880Hz、988Hz和1048Hz;当按下其他键时,暂停发声。如果时间允许,可在此基础上自行发挥,如增加按键功能、编辑歌曲等。

算法分析与设计实验报告

算法设计与分析 学院:计算机科学与技术 学号:129074106 姓名:张淼淼 2014 11 14

1、 当问题规模100 N 时,快速排序和插入排序各需多少时间?写清机器配置,列出五种 快速排序所需时间(ms) 插入排序所需时间(ms ) 两者相差多少 N=100 0.00600 0.019000 -0.013000 N=1000 0.074000 0.724000 -0.650000 N=10000 0.032000 64.657000 -64.625000 N=100000 13.300000 50.900000 -37.600000 N=1000000 53.500000 117.700000 -64.200000 Window 7 32位 Cpu :Inter(R) Core(TM) i3-2120 cpu@3.30GHz AMD Radeon HD 6450 Graphics

程序: #include #include #include #include int a[1000000];

int b[1000000]; void QuickSort(int low ,int high) { long i,j; int x; i=low; j=high; x=a[i]; while(i=x&&i(j+1)) QuickSort(j+1,high); } void BinaryInsertSort(int length) { int low,high,mid; int i,j,m;//m为保存待插入的元素 for(i=1;i=b[mid]) low=mid+1; else high=mid-1; } for(j=i-1;j>=high+1;j--)//high为插入位置 b[j+1]=b[j];//后移元素,留出插入的空位b[high+1]=m;//将元素插入正确的位置 }

《网站设计与开发》实验指导书

《网站设计与开发》实验指导书 辽宁工程技术大学营销管理学院 电子商务系

目录 实验 1 HTML网页制作 (1) 实验 2 C#.NET基本程序设计 (4) 实验 3 HTML控件和Web服务器控件的使用 (7) 实验 4 验证控件的使用 (8) 实验 5 访客计数器 (9) 实验 6 数据库基本操作 (11) 实验7 使用DataSet对象访问数据 (14) 实验8 用户控件、自定义控件和Web服务的使用 (21)

实验1 HTML网页制作 一、目的与要求 1. 掌握HTML常用网页标记的使用。 2. 掌握表格的建立方法。 3. 掌握表单的建立方法。 二、实验环境 任何一个文本编辑器、IE或者其它网页浏览器 三、内容和步骤 【实验题1】在网页上创建一个课表。 步骤如下。 1. 打开记事本,输入如下代码,并以testl_1.html为文件名保存该文件: 表格标记应用

算法设计与分析实验报告贪心算法

算法设计与分析实验报告 贪心算法 班级:2013156 学号:201315614 姓名:张春阳哈夫曼编码 代码 #include float small1,small2; int flag1,flag2,count; typedefstructHuffmanTree { float weight; intlchild,rchild,parent; }huffman; huffmanhuffmantree[100]; void CreatHuffmanTree(intn,int m) { inti; void select(); printf("请输入%d个节点的权值:",n); for(i=0;i

printf("\n"); for(i=0;i

数据结构课程设计实验指导书

《数据结构课程设计》实验指导书 1.1 实验报告撰写的基本要求 1.1.1 问题描述 这一部分需要简单介绍题目内容,即该实验到底要做什么。 1.1.2 算法说明 这一部分需要详细描述解决问题需要用到算法和重要的数据结构,即该实验到底应该怎么做。 基本要求:处理问题中所用到的关键算法都要描述清楚,而不是仅描述主函数。算法和数据结构可用伪码和图示描述,不要只写源代码和注释。 1.1.3 测试结果 这一部分内容需要紧扣实习的题目类型和要求,涉及提供相应的测试方法和结果。 对于需要利用某算法解决某问题的题目,应设计并填写一张测试用例表。每个测试用例一般包括下列内容: (1)测试输入:设计一组输入数据; (2)测试目的:设计该输入的目的在于测试程序在哪方面可能存在漏洞; (3)正确输出:对应该输入,若程序正确,应该输出的内容; (4)实际输出:该数据输入后,实际测试得到的输出内容; (5)错误原因:如果实际输出与正确输出不符,需分析产生错误的可能原因; (6)当前状态:分为“通过”(实际输出与正确相符)、“已改正”(实际输出与正确输出不符,但现在已修改正确)、“待修改”(实际输出与正确输出不符,且尚未改正)三种状态; (7)测试结果分析:需要详细解释测试策略,对得到的数据进行分析,总结出算法的时空复杂度,得出自己对算法性能等方面分析的结论。 附录:源代码 源代码列在附录中,要求程序风格清晰易理解,有充分的注释,有意义的注释行少于代码的30%将不能得分。

1.2 实习作业的提交要求 每个实习项目结束后,学生按照实验报告格式和内容要求提交实验报告(打印稿)1份,与此同时提交压缩后的电子资料1份,电子资料要求按照如下方式打包: 文档夹:包括电子版的实验报告 学号姓名.rar 源代码文件 代码夹:源代码文件对应的可执行文件 readme.txt文件,告知如何编译源代码,生 成可执行文件

计算机算法设计与分析

算法设计与分析 实 验 报 告 班级: 姓名: 学号: (备注:共给出5个参考实验案例,根据学号尾数做对应的实验,即如尾号为1,则模仿案例实验123;尾号2,则模仿案例实验234;尾号3,即345;尾号4,同1.)

目录 实验一分治与递归 (1) 1、基本递归算法 (1) 2、棋盘覆盖问题 (2) 3、二分搜索 (3) 4、实验小结 (5) 实验二动态规划算法 (5) 1、最长公共子序列问题 (5) 2、最大子段和问题 (7) 3、实验小结 (8) 实验三贪心算法 (8) 1、多机调度问题 (8) 2、用贪心算法求解最小生成树 (10) 3、实验小结 (12) 实验四回溯算法和分支限界法 (12) 1、符号三角形问题 (12) 2、0—1背包问题 (14) 3、实验小结 (18) 实验五多种排序算法效率比较 1、算法:起泡排序、选择排序、插入排序、shell排序,归并排序、快速排序等 (19) 2、实验小结 (18)

P art1:课程设计过程 设计选题--→题目分析---→系统设计--→系统实现--→结果分析---→撰写报告 P art2:课程设计撰写的主要规范 1.题目分析:主要阐述学生对题目的分析结果,包括题目描述、 分析得出的有关模型、相关定义及假设; 2.总体设计:系统的基本组成部分,各部分所完成的功能及相互 关系; 3.数据结构设计:主要功能模块所需的数据结构,集中在逻辑设 计上; 4.算法设计:在数据结构基础上,完成算法设计; 5.物理实现:主要有数据结构的物理存储,算法的物理实现,系 统相关的实现。具体在重要结果的截图,测试案例的结果数据,核心算法的实现结果等; 6.结果分析:对第五步的分析,包括定性分析和定量分析,正确 性分析,功能结构分析,复杂性分析等; 7.结论:学生需对自己的课程设计进行总结,给出评价,并写出 设计体会; 8.附录:带有注释的源代码,系统使用说明等; 9.参考文献:列出在撰写过程中所需要用到的参考文献。

机械设计实验指导书

机械设计基础实验指导书 教师:李伟 2017年3月

实验一机构展示与认知实验 一、实验目的 1. 通过实验增强对机构与机器的感性认识; 2. 通过实验了解各种常用机构的结构、类型、特点及应用。 二、实验方法及主要内容 本陈列室陈列了一套CQYG-10B机械原理展示柜,主要展示平面连杆机构、空间连杆机构、凸轮机构、齿轮机构、轮系、间歇机构以及组合机构等常见机构的基本类型和应用。 通过演示机构的传动原理,增强学生对机构与机器的感性认识。通过实验指导老师的讲解与介绍,学生的观察、思考和分析,对常用机构的结构、类型、特点有一初步的了解。提高对学习机械原理课程的兴趣。 三、展示及分析 (一)机构的组成 通过对蒸气机、内燃机模型的观察,我们可以看到,机器的主要组成部分是机构。简单机器可能只包含一种机构,比较复杂的机器则可能包含多种类型的机构。可以说,机器乃是能够完成机械功或转化机械能的机构的组合。 机构是机械原理课程研究的主要对象。通过对机构的分析,我们可以发现它由构件和运动副所组成。机器中每一个独立运动的单元体称为一个构件,它可以由一个零件组成也可以由几个零件刚性地联接而组成;运动副是指两构件之间的可动联接,常用的有转动副、移动副、螺旋副、球面副和曲面副等。凡两构件通过面的接触而构成的运动副,通称为低副;凡两构件通过点或线的接触而构成的

运动副,称为高副。 (二)平面连杆机构 连杆机构是应用广泛的机构,其中又以四杆机构最为常见。平面连杆机构的主要优点以能够实现多种运动规律和运动轨迹的要求,而且结构简单、制造容易、工作可靠。 平面连杆机构分成三大类:即铰链四杆机构;单移动副机构;双移动副机构。 1. 铰链四杆机构分为:曲柄摇杆机构、双曲柄机构、双摇杆机构,即根据两连架杆为曲柄,或摇杆来确定。 2. 单移动副机构,它是以一个移动副代替铰链四杆机构中的一个转动副演化而成的。可分为:曲柄滑块机构,曲柄摇块机构、转动导杆机构及摆动导杆机构等。 3. 双移动副机构是带有两个移动副的四杆机构,把它们倒置也可得到:曲柄移动导杆机构、双滑块机构及双转块机构。 通过平面连杆机构应用实例,我们可以归纳出平面连杆机构在生产实际中所

《面向对象程序设计》课程设计实验指导书2013

《面向对象程序设计》课程设计 实验指导书 武汉理工大学理学院 物理科学与技术系 2013年2月1日

目录 设计一简单计算器 (1) 设计二模拟时钟程序 (4) 设计三 24点游戏 (8) 设计四多媒体视频播放器 (11) 设计五幸运52 (14) 设计六简单画图程序 (17) 课程设计说明书要求 (20)

设计一简单计算器 一、概述 在运算过程中,通过使用计算器能减少运算量。既可以用“计算器”的标准视图执行简单的计算,也可以用其科学型视图执行高级的科学计算。用户使用“计算器”执行所有通常用手持计算器完成的标准操作。 简单计算器包括双目运算和单目运算功能。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,阶乘,对数,开方,倒数等运算。简单计算器可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算,同时包含清除,退格,退出功能。简单计算器出现错误会给出相应错误提示。而且可以操作与运算按钮相对应的菜单项。 通过对简单计算器的设计,可以熟悉MFC编程,包括Visual C++在数学计算方面的知识、算法设计、对话框和控件的使用及应用程序的调试,同时对面向对象与可视化程序设计有一定的认识,并提高动手编程的能力。 二、设计任务 1、提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。具体如下: 执行简单计算: (1) 键入计算的第一个数字。 (2) 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。 (3) 键入计算的下一个数字。 (4) 输入所有剩余的运算符和数字。 (5)单击“=”。 执行科学计算:能够执行阶乘、正弦、余弦和指数运算。 2、添加相关控件,制作与用户交互性较好的应用程序界面。

产品创意设计实验课程实验指导书

产品创意设计实验课程实验指导书 机械工程实验中心 产品创意设计实验指导书 本实验主要基于慧鱼创意模型系统(fischertechnik).实验的目的是通过让学生学习动手组装模型机器人和建造自己设计的有一定功能的机器人模型产品,使学生体会创意设计的方法和意义;同时通过创意实验,使学生了解一些计算机控制、软件编程、机电一体化等方面的基础知识,加深对专业课学习的理解,为后续课的学习做一个很好地铺垫. 一、实验设备介绍 (1)慧鱼创意模型系统的组成: 慧鱼创意模型系统(fischertechnik)硬件主要包括:1000多种的拼插构件单元、驱动源、传感器、接口板等. 拼插构件单元:系统提供的构件主料均采用优质的尼龙塑胶,辅料采用不锈钢芯铝合金架等,采用燕尾槽插接方式连接,可实现六面拼接,多次拆装.系统提供的技术组合包中机械构件主要包括:齿轮、联杆、链条、齿轮(普通齿轮、锥齿轮、斜齿轮、内啮合齿轮、外啮合齿轮)、齿轴、齿条、涡轮、涡杆、凸轮、弹簧、曲轴、万向节、差速器、齿轮箱、铰链等. 驱动源:①直流电机驱动(9V、最大功率1.1W、转速7000 prn),由于模型系统需求功率比较低(系统载荷小,需求功率只克服传动中的摩擦阻力),所以它兼顾驱动和控制两种功能.②减速直流电机驱动(9V、最大功率1.1瓦,减速比50:1/20:1).③气动驱动包括:储气罐、气缸、活塞、电磁阀、气管等元件. 传感器:在搭接模型时,你可以把传感器提供的信息(如亮/暗、通/断,温度值等)通过接口板传给计算机.系统提供的传感器做为控制系统的输入信号包括:①感光传感器Brightness sensor(光电管):对亮度有反应,它和聚焦灯泡配合使用,当有光(或无光)照在上面时,光电管产生不同的电阻值,引发不同信号. ②接触传感器Contact sensor(触动开关):如图1所示,

《算法分析与设计》实验指导书

《计算机算法设计与分析》实验指导书(第一版)

前言 计算机算法分析与设计是面向设计的,它是计算机科学的核心。无论是计算机系统、系统软件和解决计算机的各种应用问题都可归结为算法的设计。通过本课程的学习,使学生掌握计算机领域中许多常用的非数值的算法描述:分治法、贪心法、动态规划、回溯法、分枝限界等算法,并掌握算法分析的方法,从而把学生的分析问题和解决问题能力提高到理论的高度。 前期课程为程序设计语言、数据结构、高等数学,即学生应该具备一门高级语言程序设计编程基础,学习基本的数据结构知识,还要求学生掌握较好的数学基础。 开发环境不限,本书采用C/C++语言的集成开发环境等。 实验完成后书写实验报告,包含实验问题、基本思想、关键算法流程图、测试数据及运行结果(截图)、调试心得和源程序。 总实验学时为16学时。

目录 预备实验验证算法的方法 (4) 实验目的: (4) 实验课时: (4) 实验原理: (4) 实验题目: (6) 基本题: (6) 提高题: (6) 实验一递归与分治 (7) 实验目的: (7) 实验课时: (7) 实验原理: (7) 实验题目: (7) 基本题: (7) 提高题: (8) 思考问题: (8) 实验二动态规划算法 (9) 实验目的: (9) 实验课时: (9) 实验原理: (9) 实验题目: (9) 基本题: (9) 提高题: (10) 思考问题: (10) 实验三贪心选择算法 (11) 实验目的: (11) 实验课时: (11) 实验原理: (11) 实验题目: (11) 基本题: (11) 提高题: (12) 思考问题: (12) 实验四回溯算法 (13) 实验目的: (13) 实验课时: (13) 实验原理: (13) 实验题目: (14) 基本题: (14) 提高题: (14) 思考问题: (14)

软件工程课程设计指导书

软件工程课程设计指导书 作者:周兵 软件工程课程设计是为了加强和巩固软件工程这门学科知识及技能的学习而开设的,它是一门实践性的课程,上机实验是其主要的环节。本实验指导书是帮助同学们进行上机实验而制订的。 一、实验目的: 1.能按照软件工程的思想,采用面向对象的方法开发出一个小型软件系统。 2.在此过程中,能综合利用以前所学习的专业知识。 3.加深对软件工程这门学科知识的理解,并掌握其基本的技能及方法,培养良好的软件开发素养。 二、面向专业:计算机科学与技术 三、先修课程:一门计算机高级语言、C++语言、数据库系统概论 四、上机学时数:10学时 五、实验环境 1.单机模式 操作系统:Windows 开发工具:C++ Builder 6.0、Access 2000 六、课程设计的基本要求 1. 基本了解和掌握面向对象的开发的过程与方法。 2. 基本能够完成所要求的系统。 3. 报告文档符合具体要求。 七、设计内容 题目:选课系统 1.说明:本设计选择广大学生最熟悉的选课系统最为设计任务,便于同学联系实际,学以至用。但限于具体条件和时间的限制,宜采用C++ Builder 6.0、Access 2000。 2.具体要求: 1)数据要求 所存储和查询的数据要符合本学校的具体情况,所涉及的字段至少应包括(名称可 以不同):学生姓名、学号、登陆密码、性别、出生年月、籍贯、地址、学生电话、家庭地址、教师号、教师姓名、教研室、职称、性别、教师电话、课名、课号、学 分、先行课号、课时、开课教室、人数限制、选课人数、考试成绩、平时成绩、总 评成绩。 2)功能要求 功能至少应有:等录、查询开课情况、查询选课情况、查询成绩、选课、退课等。 3)设计要求 整个系统的开发过程及方法应符合软件工程的要求,软件能够正常运行。 八、报告

网页设计实验指导书

网页设计实验指导书 经济与管理学院二零一二年二月

实验一HTML标记的基本语法 一、实验目的和要求 1.熟悉HTML文件的编辑环境; 2.掌握HTML中与文字、图像、页面、表格、表单和框架等的基本标记。 3.学会使用HTML设计出文本与图像相结合的较为复杂的页面。 二、实验内容 1、根据如表1-1所示的表格写出完整的HTML代码; 其中,《网络原理》和《网页设计与制作》课程的详细说明文件分别为该网页所在目录的net.htm和web.htm,需要为表中的书名设置相应的超级链接,以便在点击后可跳转到相应的说明页上。 2、编写出实现如图1-1所示页面效果的关键html代码,要求点击左边各目录项,相应的链接会显示在右下的帧中,并且适当填加特效如:背景图片、图像、动画等(也可自行设计效果)。 图1-1 个人网站首页 3、编写出实现如图1-2所示页面效果的关键html代码,其中各子项目都做了超链接,链接的目标文件自行指定。

图1-2 列表效果图 三、实验步骤 1.打开任何一种文本编辑工具,可以是附件中的记事本,也可以是rontPage/Dreamweaver 的代码窗口。 2.按各种不同标签的语法规则,输入合法的代码。 3.输入完成后保存代码文件,文件后缀为.htm/.html。 4.在IE浏览器中打开保存的文件,看看是否能完成自己想要的设置。 四、程序代码(在实验报告中写出) (1)

课表
节次星期一星期二 星期三星期四星期五
1、2 专业英语 操作系统 网络基础 专业英语 数据库
3、4 Java 数据库 实验 Java 操作系统

算法分析与设计实验指导书

《算法分析与设计》实验指导书 《算法分析与设计》课程是计算机专业的一门必修课程。开设算法分析与设计实验,目的就是为了使学生消化理论知识,加深对讲授内容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对算法的分析与设计有更深刻的认识。 《算法分析与设计》课程实验的目的:是为了使学生在课程学习的同时,通过实验环境中的实际操作,对部分算法的具体应用有一个初步的了解,使学生加深了解和更好地掌握《算法分析与设计》课程教学大纲要求的内容。 《算法分析与设计》课程实验的注意事项:在《算法分析与设计》的课程实验过程中,要求学生做到: (1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出 现的情况提前作出思考和分析。 (2)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分 析。 (3)遵守机房纪律,服从辅导教师指挥,爱护实验设备。 (4)实验课程不迟到。如有事不能出席,所缺实验一般不补。 《算法分析与设计》课程实验的验收:实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即时提问。第二部分是提交电子的实验报告。

实验一算法实现一 一、实验目的与要求 熟悉C/C++语言的集成开发环境; 通过本实验加深对分治法、贪心算法的理解。 二、实验内容: 掌握分治法、贪心算法的概念和基本思想,并结合具体的问题学习如何用相应策略进行求解的方法。 三、实验题 1. 【伪造硬币问题】给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的 任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的重量是否相同。试用分治法的思想写出解决问题的算法,并计算其时间复杂度。 2.【找零钱问题】一个小孩买了价值为33美分的糖,并将1美元的钱交给售货员。售 货员希望用数目最少的硬币找给小孩。假设提供了数目有限的面值为25美分、10美分、5美分、及1美分的硬币。给出一种找零钱的贪心算法。 a)实验步骤 理解算法思想和问题要求; 编程实现题目要求; 上机输入和调试自己所编的程序; 验证分析实验结果; 整理出实验报告。 四、实验程序 五、实验结果 六、实验分析

数据结构课程设计实验指导书

数据结构课程设计 指 导 书 东华大学计算机科学与技术学院 2017年1月

目录 1.前言 (1) 1.1指导思想 (1) 1.2设计任务 (1) 1.3参考进度 (2) 1.4成绩评定 (2) 1.5注意事项 (3) 1.6参考书目 (3) 2.个人任务 (4) 2.1 排序算法设计 (4) 2.2 应用算法设计 (4) 3 小组任务 (6) 3.1 有向图问题 (6) 3.2 最小生成树问题 (6) 3.3 关键路径问题 (6)

1.前言 《数据结构》是计算机科学与技术专业的一门核心专业基础课程,其主要任务是培养学生的算法设计能力及良好的程序设计习惯。通过学习,要求学生掌握典型算法的设计思想及程序实现,能够根据实际问题选取合适的存储方案、设计出简洁、高效、实用的算法,并为后续课程的学习及软件开发打下良好的基础。 1.1指导思想 本次课程设计的指导思想是: 1、学习获取知识的方法; 2、提高发现问题、分析问题和解决实际问题的能力; 3、加强创新意识和创新精神; 4、加强团队的分工与合作; 5、掌握面向实际背景思考问题的方法。 1.2设计任务 本次课程设计任务主要分为个人任务和小组任务两种。 个人基本任务: 在DHU-OJ平台上按要求完成“个人任务”部分的设计任务,其中选做题不是必须完成的任务。 小组任务: 完成“小组任务”部分的设计任务,其中选做题不是必须完成的任务。1.1要求 1、每项目小组人员为3~5名。 2、每项目小组提交一份课程设计报告,内容包括:课题名称,课题参加人 员名单和分工,课题的目的,课题内容,需求分析、概要设计、主要代码 分析、测试结果、课题特色和创新之处、收获与体会、使用说明。 3、每人必须在完成个人任务的基础上提交个人任务的设计报告,内容包括:

机械设计实验指导书(精)

本文由https://www.sodocs.net/doc/1318978478.html,【中文word文档库】收集 实验一机构运动简图测绘 分析机构的组成可知,任何机构都是由许多构件通过运动副的联接而构成的。这些组成机构的构件其外形和结构往往是很复杂的,但决定机构各部分之间相对运动关系的是原动件的运动规律、运动副类型及运动副相对位置的尺寸,而不是构件的外形(高副机构的轮廓形状除外)、断面尺寸以及运动副的具体结构。因此,为了便于对现有机构进行分析或设计新机构,可以撇开构件、运动副的外形和具体构造,而只用简单的线条和符号代表构件和运动副,按比例定出各运动副的位置,以此表示机构的组成和运动情况。这种表示机构相对运动关系的简单图形称为机构运动简图。掌握机构运动简图的绘制方法是工程技术人员进行机构设计、机构分析、方案讨论和交流所必需的。 一、实验目的 1.对运动副、零件、构件及机构等概念建立实感; 2.熟悉并运用各种运动副、构件及机构的代表符号; 3.学会根据实际机械或模型的结构测绘机构运动简图; 4.验证和巩固机构自由度计算方法和机构运动是否确定的判定方法。 二、实验设备及用具 1.各种机构和机器的实物或模型 2.直尺、圆规、铅笔、橡皮、草稿纸(自备) 三、机构运动简图绘制的方法及步骤 1.了解待绘制机器或模型的结构、名称及功用,认清机械的原动件、传动系统和工作执行构件。 2.缓慢转动原动件,细心观察运动在构件间的传递情况,了解活动构件的数目。 3. 根据相连接的两构件间的接触情况和相对运动特点,判定机构中运动副种类、个数和相对位置。 在了解活动构件的数目及运动副的数目时,需注意以下两种情况: ①当两构件间的相对运动很小时,勿认为一个构件。 ②由于制造误差和使用日久,同一构件各部分之间有稍许松动时,易误认为两个构件。碰到这种情况,要仔细分析,正确判断。 3.要选择最能表示机构特征的平面为视图平面,同时,要将原动件放在一适当的位置,以使机构运动简图最为清晰。 4.在草稿纸上按规定的符号绘制机构运动简图,在绘制时,应从原动件开始,先画出运动副,再用粗实线连接属于同一构件的运动副,即得各相应的构件。原动件的运动方向用箭头标出。在绘制时,在不影响机构运动特征的前提下,允许移动各部分的相对位置,以求图形清晰。初步绘制时可按大致比例作图(称之为机构示意图)。图作完后,从原动件开始分别1、2、3……标明各构件,再用A、B、C……表明各运动副。

算法设计与分析实验报告

算法设计与分析实验报告 教师: 学号: 姓名:

实验一:串匹配问题 实验目的:(1) 深刻理解并掌握蛮力法的设计思想; (2) 提高应用蛮力法设计算法的技能; (3) 理解这样一个观点: 用蛮力法设计的算法, 一般来说, 经过适度的努力后, 都可以对算法的第一个版本进行一定程度的改良, 改进其时间性能。 三、实验要求:( 1) 实现BF 算法; (2 ) 实现BF 算法的改进算法: KMP 算法和BM 算法; (3 ) 对上述 3 个算法进行时间复杂性分析, 并设计实验程序验证 分析结果。 #include "stdio.h" #include "conio.h" #include //BF算法 int BF(char s[],char t[]) { int i; int a; int b; int m,n; m=strlen(s); //主串长度 n=strlen(t); //子串长度 printf("\n*****BF*****算法\n"); for(i=0;i

算法设计与分析课程设计-实验指导书

算法设计与分析课程设计 实验指导书 上海第二工业大学 计算机与信息学院软件工程系

一、运动员比赛日程表 设有n=2k个运动员要进行网球比赛。设计一个满足以下要求的比赛日程表: ●每个选手必须与其它n-1个选手各赛一次 ●每个选手一天只能赛一次 ●循环赛一共进行n-1天 1、运用分治策略,该问题的递归算法描述如下,根据算法编制程序并上机 通过。 输入:运动员人数n(假定n恰好为2的i次方) 输出:比赛日程表A[1..n,1..n] 1. for i←1 to n //设置运动员编号 2. A[i,1]←i 3. end for 4. Calendar(0,n) //位移为0,运动员人数为n。 过程Calendar(v, k) //v表示位移(v=起始行-1),k表示运动员人数。 1. if k=2 then //运动员人数为2个 2. A[v+2,2]←A[v+1,1] //处理右下角 3. A[v+1,2]←A[v+2,1]//处理右上角 4. else 5. Calendar(v,k/2) //假设已制定了v+1至v+k/2运动员循环赛日程表 6. Calendar(v+k/2,k/2) //假设已制定了v+k/2+1至v+k运动员循环赛日程表 7. comment:将2个k/2人组的解,组合成1个k人组的解。 8. for i←1 to k/2 9. for j←1 to k/2 10. A[v+i+k/2,j+k/2]←A[v+i,j] //沿对角线处理右下角 11. end for 12. end for 13. for i←k/2+1 to k 14. for j←1 to k/2 15. A[v+i-k/2,j+k/2]←A[v+i,j] //沿对角线处理右上角 16. end for 17. end for 18. end if 2、编制该问题的非递归算法,上机通过。 将如上文件保存在命名为“学号+姓名+实验一”的文件夹中并上传到指定的服务器。

算法分析与设计实验报告

实验一、归并排序及各种排序算法性能比较 一、实验实习目的及要求 了解归并排序等各种排序算法,并能独立在计算机上实现,同时并能够计算它们的时间复杂度,并用计算机来验证。 二、实验实习设备(环境)及要求(软硬件条件) 计算机eclipse软件,执行环境JavaSE-1.8. 三、实验实习项目、内容与步骤(注意是主要关键步骤,适当文字+代码+截图说明) 项目:对10 4 6 3 8 2 5 7进行从小到大排序,采用几种排序方法,并统计这几种方法的运行时间,与归并排序比较。 内容及步骤: (1)归并排序:将序列每次分成两组,再进行合并,直到递归完成; 1、递归调用mergeSort对数组排序 2、merge将两个有序数组合并为一个有序数组

3、主函数调用mergeSort对数组排序 4、统计时间 (2) 选择排序:每次选择一个当前最小的并和当前的相对的第一个元素交换,直到最后 只有一个元素时结束;也可选择当前最大的并与当前的相对的最后一个 元素交换,直到最后只有一个元素时结束。

1、数组长度为n,需要选择n-1次;每次选择完成后,将数组中的最大值与最后一 个元素互换,调用java.util包中Arrays类。 2、主函数调用ChooseSort对数组排序。 3、统计运行时间。 (3)插入排序:从第二个元素开始,每次插入一个到当前有序序列中,使得有序,当 所有的元素插入完毕时,就排好序了; 1、从第二个元素开始,与之前序列比较,插入到合适的位置。

2、主函数调用sort对数组排序。 3、统计运行时间 (4) 快速排序:每次选择一个中间元素,并进行交换,使得中间元素的左边比它小,右 边比它大,然后对左右两边进行递归; 1、选取一个基准位,从右边向左边看,找比基准位小的元素,再从左边向右边看, 找比基准位大的元素,若两者均存在则交换;若两者相遇,则相遇元素与基准位元素交换,然后递归排序左右半数组。

相关主题
课程表
课号
课程名
学分
1002201
《网络原理》
6