查找表实验报告

查找表实验报告
查找表实验报告

河北科技大学

实验报告

16级计算机科学与技术专业班学号 2019年5月21日姓名教师白云飞

实验名称查找表操作成绩

实验类型设计型实验批阅教师白云飞

一、实验目的

1.掌握查找表的基本概念。

2.掌握静态查找表(顺序查找、折半查找)的存储和算法实现。

3.掌握动态查找表(二叉排序树)的存储和算法实现。

二、实验内容

1.给出静态查找表的顺序存储结构描述。

2.实现顺序查找和折半查找操作。

3.给出二叉排序树的二叉链式存储结构描述。

4.实现二叉排序树的初始化、插入、删除、查找、清空等操作。

5.编写主程序实现对这些运算的测试。

三、实验环境

硬件:CPU I 5 内存4GB,硬盘512GB

操作系统:Windows XP

软件编程环境:VC++6.0

四、实验步骤

1.用VC建立一个控制台应用程序,命名为Search。

2.新建一个头文件,命名为datastru.h,包含标示符常量的定义和Status类型定义。

3.新建一个头文件,命名为Search.h,包含查找表的存储类型描述和基本运算的声明。4.新建一个程序文件,命名为Search.cpp,包含查找表基本运算的实现和复杂运算的实现。5.新建一个主程序文件,命名为SearchMain.cpp,包含对这些运算的测试。

五、程序源代码(对复杂的设计思想描述要有较详细的注释)

1.头文件datastru.h内容。

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

typedef int Status ;

2.头文件Search.h内容。

……

3.程序文件Search.cpp内容。

…….

4.主程序文件SearchMain.cpp实现。

//设计测试程序

……

六、实验数据、结果分析

(描述最终得到的结果,并进行分析说明)

既要有正确数据的测试也要有异常数据的测试。

七、结论体会

(说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

实验报告总结

实验报告书 姓名: 学号: 专业: 系部: 指导教师:

2012年5月25日 一、实验时间: 2012年3月—5月 二、实验地点: 三、实验目的: 1、通过本次模拟实验提高我们现代大学生实践能力缩短理论知识与 实际工作的差距,为将理论知识运用到实践工作中作好准备。 2、通过本次模拟实验巩固我们在平时所学的理论知识加深对书本 知识的理解,举一反三,活学活用,发现自身学识方面的欠缺。 3、通过本实模拟实验培养我们分析问题和解决问题的能力,有助 于培养我们成为高素质的会计专门人才。 4、通过本次模拟实验充分发挥我们的积极性调动大家的学习热情 使大家的主观能动性、创造性在实验过程中得以充分发挥。 5、通过本次模拟实验为我们毕业走上工作岗位后缩短“适应期” 并胜任工作打下扎实的基础。 四、实验内容: 1.会计基本书写规范的演示及模拟实验 2.原始凭证的填制与审核的演示及模拟实验. 3.记账凭证的填制与审核的演示及模拟实验 4.记账凭证汇总表的编制方法的演示及模拟实验 5.记账凭证汇总表的编制方法的演示及模拟实验 6.对账和结账的演示及模拟实验

7.对账和结账的演示及模拟实验 8.会计报表填制演示及模拟实验 9.凭证之间传递的演示 10.凭证、账簿的装订的演示 五、实验效果 如今我们身处在大三下半学期意味着什么?大四就可以出去找工作单位实习了。我们学了这么长时间会计,虽然课程先后学习了基础会计、中级会计还有高级会计,但你真要让我们去现实生活中做账的话,我们的统一感觉应该是好像在学校没学到多少。学习理论知识固然重要,但不能忘了我们为什么要学习它,目的无非是想在实践中能够运用自如。实践课可使纸上谈兵、抽象空洞的凭证、帐簿、帐务处理程序、报表等内容生动地展现在学生面前。 本学期我们开设会计模块课程是将会计基础理论与会计具体实务相结合的过程。从这门课程中我收获了很多,很庆幸我们的代课老师是一位非常负责任的老师与其他班不同的是:我们的模块课没有下课时间,没有时间上网,更没有时间聊天,每节课去的目标就是把老师布置的任务做完。通常上完这节课的感觉是时间好紧迫,大家都在停蹄的做账压力好大啊!起初我们难免有抱怨但到期末时看到我们比别的班多做那么多帐页,顿时为自己感到自豪。 模块课程通过对原始凭证的识别、审核到填制记帐凭证、登帐、算帐、结帐、对帐、编制报表等一系列具体操作来印证理论教学课的相关知识,将书本知识溶于实践中,它还可以纠正账务中的错误,如果你不把帐做的百分之百正确它是不会保存的。我觉得这个会计基础模块是我以后工作的第一位老师,因为我做账时

查找表实验报告

河北科技大学 实验报告 16级计算机科学与技术专业班学号 2019年5月21日姓名教师白云飞 实验名称查找表操作成绩 实验类型设计型实验批阅教师白云飞 一、实验目的 1.掌握查找表的基本概念。 2.掌握静态查找表(顺序查找、折半查找)的存储和算法实现。 3.掌握动态查找表(二叉排序树)的存储和算法实现。 二、实验内容 1.给出静态查找表的顺序存储结构描述。 2.实现顺序查找和折半查找操作。 3.给出二叉排序树的二叉链式存储结构描述。 4.实现二叉排序树的初始化、插入、删除、查找、清空等操作。 5.编写主程序实现对这些运算的测试。 三、实验环境 硬件:CPU I 5 内存4GB,硬盘512GB 操作系统:Windows XP 软件编程环境:VC++6.0 四、实验步骤 1.用VC建立一个控制台应用程序,命名为Search。 2.新建一个头文件,命名为datastru.h,包含标示符常量的定义和Status类型定义。 3.新建一个头文件,命名为Search.h,包含查找表的存储类型描述和基本运算的声明。4.新建一个程序文件,命名为Search.cpp,包含查找表基本运算的实现和复杂运算的实现。5.新建一个主程序文件,命名为SearchMain.cpp,包含对这些运算的测试。 五、程序源代码(对复杂的设计思想描述要有较详细的注释) 1.头文件datastru.h内容。 #define TRUE 1 #define FALSE 0 #define OK 1

#define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 typedef int Status ; 2.头文件Search.h内容。 …… 3.程序文件Search.cpp内容。 ……. 4.主程序文件SearchMain.cpp实现。 //设计测试程序 …… 六、实验数据、结果分析 (描述最终得到的结果,并进行分析说明) 既要有正确数据的测试也要有异常数据的测试。 七、结论体会 (说明实验过程中遇到的问题及解决办法;个人的收获;未解决的问题等)

《数据结构》实验报告——排序.docx

《数据结构》实验报告排序实验题目: 输入十个数,从插入排序,快速排序,选择排序三类算法中各选一种编程实现。 实验所使用的数据结构内容及编程思路: 1. 插入排序:直接插入排序的基本操作是,将一个记录到已排好序的有序表中,从而得到一个新的,记录增一得有序表。 一般情况下,第i 趟直接插入排序的操作为:在含有i-1 个记录的有序子序列r[1..i-1 ]中插入一个记录r[i ]后,变成含有i 个记录的有序子序列r[1..i ];并且,和顺序查找类似,为了在查找插入位置的过程中避免数组下标出界,在r [0]处设置哨兵。在自i-1 起往前搜索的过程中,可以同时后移记录。整个排序过程为进行n-1 趟插入,即:先将序列中的第一个记录看成是一个有序的子序列,然后从第2 个记录起逐个进行插入,直至整个序列变成按关键字非递减有序序列为止。 2. 快速排序:基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 假设待排序的序列为{L.r[s] ,L.r[s+1],…L.r[t]}, 首先任意选取一个记录 (通常可选第一个记录L.r[s])作为枢轴(或支点)(PiVOt ),然后按下述原则重新排列其余记录:将所有关键字较它小的记录都安置在它的位置之前,将所有关键字较大的记录都安置在它的位置之后。由此可以该“枢轴”记录最后所罗的位置i 作为界线,将序列{L.r[s] ,… ,L.r[t]} 分割成两个子序列{L.r[i+1],L.[i+2], …,L.r[t]}。这个过程称为一趟快速排序,或一次划分。 一趟快速排序的具体做法是:附设两个指针lOw 和high ,他们的初值分别为lOw 和high ,设枢轴记录的关键字为PiVOtkey ,则首先从high 所指位置起向前搜索找到第一个关键字小于PiVOtkey 的记录和枢轴记录互相交换,然后从lOw 所指位置起向后搜索,找到第一个关键字大于PiVOtkey 的记录和枢轴记录互相 交换,重复这两不直至low=high 为止。 具体实现上述算法是,每交换一对记录需进行3 次记录移动(赋值)的操作。而实际上,

实验报告一

一、实验目的 1、实验目的 (1)、掌握利用各种数据类型声明局部变量的方法。 (2)、掌握为局部变量赋值的俩中方法。 (3)、掌握常用系统函数、运算符和表达式的功能和应用。 (4)、掌握Transact-SQL控制流语言的基本功能和分类。 (5)、掌握利用控制流语句实现基本的分支选择和循环处理功能。 (6)、了解其他控制流语句的功能和应用。 (7)、掌握SELECT各个字句的功能和检索数据的方法。 (8)、掌握WHERE字句中LIKE、IN、BETEEN、IS等逻辑运算符的使用。 (9)、掌握COMPUTE语句和聚合函数的使用。 二、实验内容和步骤 1、变量的应用 declare @sno char(8),@name varchar(10),@sex nchar(12),@birthday datetime,@usually int, @final numeric(4,1) set @sno='32145467'; set @name='哈哈'; set @sex='男'; select @birthday ='1989-03-09',@usually=90,@final=80 print @sno+@name+@sex print @birthday print @usually print @final 2、运算符的应用 A、比较运算符 use teaching go select * from student where birthday>'1989-01-01' select * from teacher where department<>'计算机学院' B、逻辑运算符

实验报告-排序与查找

电子科技大学实验报告 课程名称:数据结构与算法 学生姓名: 学号: 点名序号: 指导教师: 实验地点:基础实验大楼 实验时间: 5月20日 2014-2015-2学期 信息与软件工程学院

实验报告(二) 学生姓名学号:指导教师: 实验地点:基础实验大楼实验时间:5月20日 一、实验室名称:软件实验室 二、实验项目名称:数据结构与算法—排序与查找 三、实验学时:4 四、实验原理: 快速排序的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 假设要排序的数组是A[1]……A[N],首先任意选取一个数据(通常选用第一个数据)作为关键数据,然后将所有比它的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一躺快速排序。一躺快速排序的算法是: 1)设置两个变量I、J,排序开始的时候I:=1,J:=N 2)以第一个数组元素作为关键数据,赋值给X,即X:=A[1]; 3)从J开始向前搜索,即(J:=J-1),找到第一个小于X的值,两者交换; 4)从I开始向后搜索,即(I:=I+1),找到第一个大于X的值,两者交换; 5)重复第3、4步,直到I=J。 二分法查找(折半查找)的基本思想: (1)确定该区间的中点位置:mid=(low+high)/2 min代表区间中间的结点的位置,low代表区间最左结点位置,high代表区间最右结点位置(2)将待查a值与结点mid的关键字(下面用R[mid].key)比较,若相等,则查找成功,否则确定新的查找区间: A)如果R[mid].key>a,则由表的有序性可知,R[mid].key右侧的值都大于a,所以等于a的关键字如果存在,必然在R[mid].key左边的表中,这时high=mid-1; B)如果R[mid].key

用友实验报告

实验报告 项目名称:用友财务链与供应链实训 一、实验目的及要求: 实训目的:通过本课程的学习,使同学们在掌握会计电算化和财务会计的理论知识基础上,理解用友财务软件的设计理念,熟练应用友软件的财务链和供应链的各模块,借助于用友财务软件的操作说明,能独立完成财务核算工作和供应链的处理流程。 实训要求:通过本课程的开设,使同学们熟练完成财务链和供应链的处理流程操作并与财务链连接起来,为同学走向工作岗位奠定基础。 二、实验原理—ERP基本知识 ERP系统实质上就是通过计算机技术、网络技术等将企业的业务流程固化在系统中。简单的讲,它首先是将原本大量的手工操作实现自动化,将业务活动中产生的各类数据(如交易数据、生产数据、财务数据等)规范化、标准化,并完整、及时、准确的记录在系统中;其次ERP系统为员工提供了快捷方便的管理工具,可以通过系统随时查询以往的数据,并对数据进行统计、比较、分析等工作,ERP使企业的数据不再封闭,而是在权限范围内得到充分的共享;最后ERP系统将各类统计报表、分析数据以规范的格式展现出来,为决策提供依据。 本实验选择的是用友ERP-U8管理系统作为实训平台。用友ERP-U8管理系统以全面会计核算和企业级财务管理为基础,实现购销存业务处理、会计核算和财务监控的一体化管理,为企业经营决策提供了预测、控制和分析的手段,并能有效控制企业成本和经营风险。

三、实验主要设备 机房电脑,单机环境 操作系统:WINXP 数据库系统:SQLSERVER ERP软件:用友U8.5 涉及模块:基本设置,总账模块、工资、固定资产、UFO报表应收管理模块、应付模块、采购模块、销售模块、库存模块、存货核算。 四、实验内容及步骤 (一)实验内容:第九章销售管理 现结业务: (1)12月17日,销售部向昌新贸易公司销售计算机10台,报价为6400元,货物从成品库发出。 (2)12月17日,根据上述发货单开具专用发票一张。同时收到客户用转账支票所支付的全部货款。票据号ZZ001188。 (二)实验步骤 (1)在销售管理系统中填制并审核发货单:执行“业务”—“发货”—“发货单”,进入“发货单”窗口,单击“增加”,录入资料,单击保存,并审核发货单。如下图所示: (2)在销售管理系统中,根据发货单生成销售专用发票:单击“增加”,显示“选择订单”窗口,单击“显示”,选择订单后,单击“确定”,并保

1.C语言顺序表实验报告

实验报告要求 一、实验目的 二、实验内容 三、程序流程图 四、实验结果(要求检测所有情况的正确性,写出测试条件及相应的测试结果) 五、完成思考题 实验一顺序表的基本操作(2学时) 一、实验目的 了解顺序表的逻辑特征,掌握顺序表的描述方法、特点及有关的概念,掌握顺序表上的插入和删除等基本操作算法。 二、实验内容 在顺序表List []中,实现顺序表的基本操作,包括:初始化顺序表,在表中插入元素、删除元素。 基本要求: (1)顺序表的元素个数可随意设定; (2)可连续测试任意多个元素的插入、删除,(插 入、删除位置及要插入元素数值均从键盘输入); (3)任一操作结束后将顺序表中的内容输出; (4)可由用户选择退出程序。 三、实验要点及说明 顺序表又称为线性表的顺序存储结构,它是用一组地址连续的存储单元依次存放线性表的各个元素。 可按如下格式定义顺序表: #define MAXLEN 50 /* 定义顺序表最大元素个数50 */ typedef struct{ datatype List[MAXLEN];/* 定义顺序表List */ int Num; /* 定义顺序表表长*/ }Seqlist; 模块划分:(1)initiq( )函数:初始化顺序表 (2)insertq( )函数:实现插入功能 (3)deleteq( )函数:实现删除功能 (4)print( )函数:实现输出功能 四、参考源程序 #include #define MAXLEN 50 typedef int datatype; typedef struct{ datatype List[MAXLEN]; int Num; }Seqlist; void initiq(Seqlist *la ); int insertq(Seqlist *la,int n);

(完整word版)查找、排序的应用 实验报告

实验七查找、排序的应用 一、实验目的 1、本实验可以使学生更进一步巩固各种查找和排序的基本知识。 2、学会比较各种排序与查找算法的优劣。 3、学会针对所给问题选用最适合的算法。 4、掌握利用常用的排序与选择算法的思想来解决一般问题的方法和技巧。 二、实验内容 [问题描述] 对学生的基本信息进行管理。 [基本要求] 设计一个学生信息管理系统,学生对象至少要包含:学号、姓名、性别、成绩1、成绩2、总成绩等信息。要求实现以下功能:1.总成绩要求自动计算; 2.查询:分别给定学生学号、姓名、性别,能够查找到学生的基本信息(要求至少用两种查找算法实现); 3.排序:分别按学生的学号、成绩1、成绩2、总成绩进行排序(要求至少用两种排序算法实现)。 [测试数据] 由学生依据软件工程的测试技术自己确定。 三、实验前的准备工作 1、掌握哈希表的定义,哈希函数的构造方法。 2、掌握一些常用的查找方法。 1、掌握几种常用的排序方法。 2、掌握直接排序方法。

四、实验报告要求 1、实验报告要按照实验报告格式规范书写。 2、实验上要写出多批测试数据的运行结果。 3、结合运行结果,对程序进行分析。 五、算法设计 a、折半查找 设表长为n,low、high和mid分别指向待查元素所在区间的下界、上界和中点,key为给定值。初始时,令low=1,high=n,mid=(low+high)/2,让key与mid指向的记录比较, 若key==r[mid].key,查找成功 若keyr[mid].key,则low=mid+1 重复上述操作,直至low>high时,查找失败 b、顺序查找 从表的一端开始逐个进行记录的关键字和给定值的比较。在这里从表尾开始并把下标为0的作为哨兵。 void chaxun(SqList &ST) //查询信息 { cout<<"\n************************"<=1;j--) if(ST.r[j].xuehao

Excel实验报告

一、课程感想 四周时间,说长不长,说短不短。眼看着旧同学们都放假回家了,我还留在学校上着万恶的小学期,说实话,心里一百个不情愿,好在我也没有浪费这一个月的时光。 作为财务管理专业的学生,我们必须要面对一个事实——每天面对各式各样的数据,因此,掌握对数据整理、归类、分析的技巧是非常必要的,而excel就是其中之一。 小学期选修了excel在经济管理中的应用,excel 是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。老师选了三个专题对excel之于数据的管理进行了讲解,分别是成绩统计和分析、工资的核定和整理、销售汇总。这三个专题涉及到excel应用的三个基本方面。 下面简单谈谈我从每个case中学到的东西。 Case 1: 制作基本信息的时候,有三个知识点。 首先是由身份证号生成个人的出生日期。使用了一个复合函数,即:=MID(C2,7,4)&"-"&MID(C2,11,2)&"-"&MID(C2,13,2)。它的意义是从C2的第7个数字开始取,取4个数字,形成“年份”,从C2的第11个数字开始取,取2个数字,形成“月份”,从C2的第13个数字开始取,取2个数字,形成“日期”。 此外还有由身份证信息生成性别信息。函数表示为=IF(MOD(MID(C2,17,1),2)=0,"女","男")。它的意义是:从C2的第17位开始取值,取1位,用这个数字除以2,若余数为0,则显示为“女”,否则显示为“男”。 最后是由身份证信息自动计算年龄。函数为=YEAR(TODAY())-MID(C2,7,4),它的意义是:今天日期代表的年份,减去身份证号码从第7位开始取4位(即出生年份)所得的差值。 以上三个看似简单的常识,要用计算机的语言表达出来并不是键容易的事,还有一些细节需要注意。而这些方法和函数可以广泛应用到人力资源(HR)管理中。键入身份证的基本资料就可以通过函数取得其他的基本资料,省去了认为换算和计量的麻烦和误差。 其后的成绩排名最基本的是rank函数,但要以文字信息“不及格”“及格”“良好”“优秀”来表述会更加直观,也更有实际意义。在书写评级时应用到Lookup函数,这是excel 中最基本的函数类型,在小学期学到的各个case里面也得以体现。 成绩分析是case 1最精髓的部分,因为应用到了数理统计的部分。统计部分用了三种方法,分别是Lookup函数、Frequency函数、直方图,而在统计人数时用到了Countif函数,这也是人力资源(HR)中常常会用到的。 Case 2: Case 2将在之后做详细叙述,在此不赘言。 Case 3: Case 3是一个销售情况的统计,主要从记录、排序、数据筛选、分类汇总、数据透视

实验报告一顺序表的操作

《数据结构》实验报告一 系别:班级: 学号:姓名: 日期:指导教师: 一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 从键盘输入10个整数,产生顺序表,并输入结点值。 从键盘输入1个整数,在顺序表中查找该结点的位置。若找到,输出结点的位置;若找不到,则显示“找不到”。 从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插入在对应位置上,输出顺序表所有结点值,观察输出结果。 从键盘输入1个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果。二、程序设计的基本思想,原理和算法描述: (包括程序的结构,数据结构,输入/输出设计,符号名说明等) 三、源程序及注释:

#include <> /*顺序表的定义:*/ #define ListSize 100 /*表空间大小可根据实际需要而定,这里假设为100*/ typedef int DataType; /*DataType可以是任何相应的数据类型如int, float或char*/ typedef struct { DataType data[ListSize]; /*向量data用于存放表结点*/ int length; /*当前的表长度*/ }SeqList; /*子函数的声明*/ void CreateList(SeqList * L,int n); /*创建顺序表函数*/ int LocateList(SeqList L,DataType x); /*查找顺序表*/ void InsertList(SeqList * L,DataType x,int i); /*在顺序表中插入结点x*/ void DeleteList(SeqList * L,int i);/*在顺序表中删除第i个结点*/ void PrintList(SeqList L,int n); /*打印顺序表中前n个结点*/ void main() { SeqList L; int n=10,x,i; /*欲建立的顺序表长度*/ =0;

顺序表的查找、插入与删除实验报告

《数据结构》实验报告一 学院:班级: 学号:姓名: 日期:程序名 一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 1.从键盘输入10个整数,产生顺序表,并输入结点值。 2.从键盘输入1个整数,在顺序表中查找该结点的位置。若找到,输出结点的位置;若找 不到,则显示“找不到”。 3.从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插 入在对应位置上,输出顺序表所有结点值,观察输出结果。 4.从键盘输入1个整数,表示欲删除结点的位置,输出顺序表所有结点值,观察输出结果。 二、源程序及注释: #include #include /*顺序表的定义:*/ #include #define ListSize 100 /*表空间大小可根据实际需要而定,这里假设为100*/ typedef int DataType; /*DataType可以是任何相应的数据类型如int, float或char*/ typedef struct { DataType data[ListSize]; /*向量data用于存放表结点*/ int length; /*当前的表长度*/ }SeqList; void main() { SeqList L; int i,x; int n=10; /*欲建立的顺序表长度*/ L.length=0; void CreateList(SeqList *L,int n); void PrintList(SeqList L,int n); int LocateList(SeqList L,DataType x); void InsertList(SeqList *L,DataType x,int i); void DeleteList(SeqList *L,int i);

9.1静态查找表

9.1静态查找表 关键字类型说明: typedef float KeyType; //实型。 typedef int KeyType; //整型。 typedef char *KeyType; //字符串型。 数据元素类型定义: typedef struct{ KeyType key; //关键字域。 ... //其它域。 }ElemType; 对两个关键字的比较: //--对数值型关键字--- #define EQ(a,b) ((a)==(b)) #define LT(a,b) ((a)<(b)) #define LQ(a,b) ((a)>=(b)) //--对字符串型关键字--- #define EQ(a,b) (!strcmp((a),(b))) #define LT(a,b) (strcmp((a),(b))<0) #define LQ(a,b) (strcmp((a),(b))>=0) ... 9.1.1顺序表的查找 //---静态查找表的顺序存储结构------- typedef struct { ElemType *elem; //数据元素存储空间基址,建表时按实际长度分配,0号单元留空。 int length; //表长度。 }SSTable; 程序: int Search_Seq(SSTable ST,KeyType key) //在顺序表ST中顺序查找其关键字等于key的数据元素,若找到,则函数值为 //该元素在表中的位置,否则为0。 { ST.elem[0].key=key; for(i=ST.length;!EQ(ST.elem[i].key,key);--i);//从后往前找。 return i; //找不到时,i为0。 }//Search_Seq 9.1.2有序表的查找。 ①折半查找实例: (05,13,19,21,37,56,64,75,80,88,92)查找21和85. (1)找21. low=1,high=11 ,mid=(low+high)/2=6,ST.elem[mid]=56>21; low=1,high=mid-1=5,mid=(low+high)/2=3,ST.elem[mid]=19<21; low=mid+1=4,high=5,mid=(low+high)/2=4,ST.elem[mid]=21=21;

查找与排序实验报告

实验四:查找与排序 【实验目的】 1.掌握顺序查找算法的实现。 2.掌握折半查找算法的实现。 【实验内容】 1.编写顺序查找程序,对以下数据查找37所在的位置。 5,13,19,21,37,56,64,75,80,88,92 2.编写折半查找程序,对以下数据查找37所在的位置。 5,13,19,21,37,56,64,75,80,88,92 【实验步骤】 1.打开VC++。 2.建立工程:点File->New,选Project标签,在列表中选Win32 Console Application,再在右边的框里为工程起好名字,选好路径,点OK->finish。 至此工程建立完毕。 3.创建源文件或头文件:点File->New,选File标签,在列表里选C++ Source File。给文件起好名字,选好路径,点OK。至此一个源文件就被添加到了你刚创建的工程之中。 4.写好代码 5.编译->链接->调试 #include "stdio.h" #include "malloc.h" #define OVERFLOW -1 #define OK 1 #define MAXNUM 100 typedef int Elemtype; typedef int Status; typedef struct {

Elemtype *elem; int length; }SSTable; Status InitList(SSTable &ST ) { int i,n; ST.elem = (Elemtype*) malloc (MAXNUM*sizeof (Elemtype)); if (!ST.elem) return(OVERFLOW); printf("输入元素个数和各元素的值:"); scanf("%d\n",&n); for(i=1;i<=n;i++) { scanf("%d",&ST.elem[i]); } ST.length = n; return OK; } int Seq_Search(SSTable ST,Elemtype key) { int i; ST.elem[0]=key; for(i=ST.length;ST.elem[i]!=key;--i); return i; } int BinarySearch(SSTable ST,Elemtype key) { int low,high,mid; low=1; high=ST.length;

《数据结构》实验报告查找

实验四——查找 一、实验目的 1.掌握顺序表的查找方法,尤其是折半查找方法; 2.掌握二叉排序树的查找算法。 二、实验内容 1.建立一个顺序表,用顺序查找的方法对其实施查找; 2.建立一个有序表,用折半查找的方法对其实施查找; 3.建立一个二叉排序树,根据给定值对其实施查找; 4.对同一组数据,试用三种方法查找某一相同数据,并尝试进行性能分析。 三、实验预习内容 实验一包括的函数有:typedef struct ,创建函数void create(seqlist & L),输出函数void print(seqlist L),顺序查找int find(seqlist L,int number),折半查找int halffind(seqlist L,int number) 主函数main(). 实验二包括的函数有:结构体typedef struct,插入函数void insert(bnode * & T,bnode * S),void insert1(bnode * & T),创建函数void create(bnode * & T),查找函数bnode * search(bnode * T,int number),主函数main(). 四、上机实验 实验一: 1.实验源程序。 #include<> #define N 80 typedef struct { int number; umber; for(i=1;[i].number!=0;) { cin>>[i].name>>[i].sex>>[i].age; ++; cout<>[++i].number; } } umber<<"\t"<<[i].name<<"\t"<<[i].sex<<"\t"<<[i].age<

实验报告实验心得

实验心得体会 在做测试技术的实验前,我以为不会难做,就像以前做物理实验一样,做完实验,然后两下 子就将实验报告做完.直到做完测试实验时,我才知道其实并不容易做,但学到的知识与难度 成正比,使我受益匪浅. 在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就 会听不懂,这将使你在做实验时的难度加大,浪费做实验的宝贵时间.比如做光伏的实验,你要 清楚光伏的各种接法,如果你不清楚,在做实验时才去摸索,这将使你极大地浪费时间,使你事 倍功半.做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还 要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还 不如不做.做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽 我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛. 通过这次测试技术的实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考 问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅. 实验心得体会 这个学期我们学习了测试技术这门课程,它是一门综合应用相关课程的知识和内容来解 决科研、生产、国防建设乃至人类生活所面临的测试问题的课程。测试技术是测量和实验的 技术,涉及到测试方法的分类和选择,传感器的选择、标定、安装及信号获取,信号调理、 变换、信号分析和特征识别、诊断等,涉及到测试系统静动态性能、测试动力学方面的考虑 和自动化程度的提高,涉及到计算机技术基础和基于labview的虚拟测试技术的运用等。 课程知识的实用性很强,因此实验就显得非常重要,我们做了金属箔式应变片:单臂、 半桥、全桥比较, 回转机构振动测量及谱分析, 悬臂梁一阶固有频率及阻尼系数测试三个实 验。刚开始做实验的时候,由于自己的理论知识基础不好,在实验过程遇到了许多的难题, 也使我感到理论知识的重要性。但是我并没有气垒,在实验中发现问题,自己看书,独立思 考,最终解决问题,从而也就加深我对课本理论知识的理解,达到了“双赢”的效果。 实验中我学会了单臂单桥、半桥、全桥的性能的验证;用振动测试的方法,识别一小阻 尼结构的(悬臂梁)一阶固有频率和阻尼系数;掌握压电加速度传感器的性能与使用方法; 了解并掌握机械振动信号测量的基本方法;掌握测试信号的频率域分析方法;还有了解虚拟 仪器的使用方法等等。实验过程中培养了我在实践中研究问题,分析问题和解决问 题的能力以及培养了良好的工程素质和科学道德,例如团队精神、交流能力、独立思考、 测试前沿信息的捕获能力等;提高了自己动手能力,培养理论联系实际的作风,增强创新意 识。 实验体会 这次的实验一共做了三个,包括:金属箔式应变片:单臂、半桥、全桥比较;回转机构 振动测量及谱分析;悬臂梁一阶固有频率及阻尼系数测试。各有特点。 通过这次实验,我大开眼界,因为这次实验特别是回转机构振动测量及谱分析和悬臂梁 一阶固有频率及阻尼系数测试,需要用软件编程,并且用电脑显示输出。可以说是半自动化。 因此在实验过程中我受易非浅:它让我深刻体会到实验前的理论知识准备,也就是要事前了 解将要做的实验的有关质料,如:实验要求,实验内容,实验步骤,最重要的是要记录什么 数据和怎样做数据处理,等等。虽然做实验时,指导老师会讲解一下实验步骤和怎样记录数 据,但是如果自己没有一些基础知识,那时是很难作得下去的,惟有胡乱按老师指使做,其 实自己也不知道做什么。 在这次实验中,我学到很多东西,加强了我的动手能力,并且培养了我的独立思考能力。 特别是在做实验报告时,因为在做数据处理时出现很多问题,如果不解决的话,将会很难的 继续下去。例如:数据处理时,遇到要进行数据获取,这就要求懂得labview软件一些基本

河南工业大学实验报告——查找和排序(排序)——张伟龙

河南工业大学实验报告 课程名称数据结构实验项目实验三查找和排序(二)——排序院系信息学院计科系专业班级计科1203 姓名张伟龙学号 201216010313 指导老师范艳峰日期 2013.6.5 批改日期成绩 一实验目的 掌握希尔排序、快速排序、堆排序的算法实现。 二实验内容及要求 实验内容:1.实现希尔排序。 2.实现快速排序。 3. 实现堆排序。 (三选一) 实验要求:1. 根据所选题目,用C语言编写程序源代码。 2. 源程序必须编译调试成功,独立完成。 三实验过程及运行结果 选择第三题: Source Code: #include #include using namespace std; void HeapAdjust(int *a,int i,int size) //调整堆 { int lchild=2*i; //i的左孩子节点序号

int rchild=2*i+1; //i的右孩子节点序号 int max=i; //临时变量 if(i<=size/2) //如果i是叶节点就不用进行调整 { if(lchild<=size&&a[lchild]>a[max]) { max=lchild; } if(rchild<=size&&a[rchild]>a[max]) { max=rchild; } if(max!=i) { swap(a[i],a[max]); HeapAdjust(a,max,size); //避免调整之后以max为父节点的子树不是堆 } } } void BuildHeap(int *a,int size) //建立堆 { int i; for(i=size/2;i>=1;i--) //非叶节点最大序号值为size/2 { HeapAdjust(a,i,size); } }

Excel的实验报告完整版

信息工程学院1 大学计算机基础实验/实习报告 学院: 班级: 姓名: 学号: 成绩: 数据处理技术 一、实验/实习过程 1通过第一节的学习,我学会了Excel的一些基本操作方法,比如在输入数据时如何进行数据的有效性检验,还学会了一些函数的应用,比如取证函数 INT();随即函数Rand();求和函数sum();求均值函数average();还有编程中很重要的条件判断函数if等等一系列常用函数。学会了单元格的引 用。总的来说,在完成第一节实习后,我对Excel又有了进一步的了解,由此我也收获很多知识。 2通过对第二节的学习,我学会了报表设计,进一步了解和熟练了单元格应用以及求和函数的应用。在这一节中,我学会了表格的设计与排版,懂得了制作一个报表的知识,收获颇多。 实验报告的内容与格式按任课教师的要求书写。

3通过对第三节的学习,我学会了Excel中的数据分析与管理,学会了如何在一堆数据中筛选出我需要的数据,并且我会了实现数据透视表的方法,这样, 运用数据透视表就可以非常简单的实现一个庞大的数据的统计,很有效的减

缓了人们的压力。 4.

20 40 60 80 100 120 马萍 王振 华 罗青 中 杨唐 荣 何鹏 董 昱 李燕 丽 戴卉 敏 王 颖 刘婷刘文 斌 汪海 蓉 赵 莹石巧 玲 房晟陈海鹏 姓名 分数 系列1 20 40 60 80 100 120 马 萍 王振 华 罗 青 中 杨 唐 荣 何 鹏 董 昱 李燕 丽 戴 卉敏 王 颖 刘 婷 刘文 斌 汪 海 蓉 赵 莹 石巧 玲 房 晟 陈海 鹏 姓名 分数系列1

5.九九乘法口诀(三角阶梯型)输入方法:b1-j1输入1-9的数字,a2-a10输入1-9的数,在B2输入” =IF(B$1>$A2,"",B$1&"*"&$A2&"="&B$1*$A2) 然后回车,拖动表格即可得到九九乘法口诀。” 6.德育成绩计算方法:①选中课时并对课时求总和,给总和改名为zxs,给课时改名为xs②在学习成绩表中选中学生的成绩,并对成绩改名为cj③在第三张表中(以第一个人为对象)在相同位置C2框中输入”=xs*cj”,点击回车,然后拖动图标④选中第一行,求和,在求和后的框中再输入”\zxs”,点击回车,拖动图标⑤确定德育成绩的小数点位数,可以直接点击减少(增加)小数点位数按钮。 从这一次的实习中我了解了运用较简单的方法来进行较复杂的计算。这是我的一大收获。 7.图表应用:(以制作土壤电导率图像为例) 1.点击→散点图→下一步→系列→添加→选择系列1的名称、X值、Y 值.(分别为土壤电导率背景值、数值、埋深的数值)→添加→系列2的名称、X 值、Y值.(分别为15天后的电导率、数值、埋深的数值)→添加→系列3的名称、X值、Y值.(分别为30天后的电导率、数值、埋深的数值)→下一步→输写标题、图例说明→修改网格线→点击完成 2.双击图例→修改字体与边框 3.右键单击坐标轴→坐标轴格式→修改格式、边框、数值次序反转、数值最大值以及最小值→确定如图所示

顺序表的应用数据结构实验报告记录

顺序表的应用数据结构实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

大学数据结构实验报告 课程名称数据结构实验第(三)次实验实验名称顺序表的应用 学生姓名于歌专业班级学号 实验成绩指导老师(签名)日期2018年9月30日一、实验目的 1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。 2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。 3.掌握对多函数程序的输入、编辑、调试和运行过程。 二、实验要求 1.预习C语言中结构体的定义与基本操作方法。 2.对顺序表的每个基本操作用单独的函数实现。 3.编写完整程序完成下面的实验内容并上机运行。 4.整理并上交实验报告。 三、实验内容: 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 (2)逐个显示学生表中所有学生的相关信息 (3)根据姓名进行查找,返回此学生的学号和成绩 (4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩) (5)给定一个学生信息,插入到表中指定的位置 (6)删除指定位置的学生记录 (7)统计表中学生个数 四、实验设计 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 for(count=0; count

线性表逆置(顺序表)实验报告

实验一:线性表逆置(顺序表)实验报告 (一)问题的描述: 实现顺序表的逆置算法 (二)数据结构的设计: 顺序表是线性表的顺序存储形式,因此设计如下数据类型表示线性表: typedef struct { ElemType *elem; /* 存储空间基址*/ int length; /* 当前长度*/ int listsize; /* 当前分配的存储容量(以sizeof(ElemType)为单位) */ }SqList; (三)函数功能、参数说明及概要设计: 1.函数Status InitList(SqList *L) 功能说明:实现顺序表L的初始化 算法设计:为顺序表分配一块大小为LIST_INIT_SIZE的储存空间 2.函数int ListLength(SqList L) 功能说明:返回顺序表L长度 算法设计:返回顺序表中的length变量 3.函数Status ListInsert(SqList *L,int i,ElemType e) 功能说明:将元素e插入到顺序表L中的第i个节点 算法设计:判断顺序表是否已满,已满则加空间,未满则继续,将元素e插入到第i个元素之前,并将后面的元素依次往后移 4.函数Status ListTraverse(SqList L,void(*vi)(ElemType*)) 功能说明:依次对L的每个数据元素调用函数vi() 算法设计:依次对L的每个数据元素调用函数vi() 5.函数void Exchange(SqList *L) 功能说明:实现顺序表L的逆置 算法设计:用for循环将顺序表L中的第i个元素依次与第(i+length)个元素交换6.函数void print(ElemType *c) 功能说明:打印元素c 算法设计:打印元素c 2. (四)具体程序的实现

相关文档
最新文档