搜档网
当前位置:搜档网 › 顺序表实验报告

顺序表实验报告

顺序表实验报告
顺序表实验报告

实验一顺序表的基本操作及其应用

一、需求分析

1.本演示程序实现顺序表的初始化,依次从键盘读入数据,建立顺序表、表中元素的连续追加、求顺序表的长度、检查顺序表是否为空、检查顺序表是否为满、显示顺序表、从顺序表中查找元素、给定元素值找位置、向顺序表中插入元素、从顺序表中删除元素、顺序表的逆序排列等基本操作。

2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令。

3.程序执行命令包过1)顺序表的初始化;2)连续追加元素建表;3)求顺序表长度;4)检查顺序表是否为空;5)检查顺序表是否为满;6)显示顺序表;7)从顺序表中查找元素;8)给定元素值找位置;9)向顺序表中插入元素;10)从顺序表中删除元素;11)逆序

二、概要设计

抽象化数据类型线性表的定义如下:

ADT List{

数据对象:D={ai|ai属于ElemSet,i=1,2,....,n,n>=0}

数据关系:R1={|ai-1,ai属于D,i=2,.....n}

基本操作:

ListEmpty(L)

初始条件:线性表L已存在。

操作结果:若L为空表,则返回TURE,否则返回FLASE。

ListLength(L)

初始条件:线性表L已存在。

操作结果:返回L中数据元素个数。

ListInsert(&L,i,e)

初始条件:线性表L已存在,1<=i<=ListLength(L)+1。

操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1。

ListDelete(&L,i,&e)

初始条件:线性表L已存在且非空,1<=i<=ListLength(L)。

操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减一。

ListTraverse(L,visit())

初始条件:线性表L已存在。

操作结果:依次对L的每个数据元素调用函数visit()。一旦visit()失败,则操作失败。

}ADT List

主程序

void main(){

初始化;

While(“命令”!=“退出”){

接受命令;

处理命令;

2.本程序只有两个模块,调用关系简单。

三、详细设计

1.元素类型

#include

#include

#include

#define MAXSIZE 100 /*顺序表存储空间的总分配量*/

typedef int ElemType; /* 定义ElemType为int类型*/

/* 顺序存储类型*/

typedef struct

{ElemType data[MAXSIZE]; /*存放线性表的数组*/

int length; /* length是顺序表的长度*/

}SqList;

SqList L;

2. 初始化顺序表

void SqListInit(SqList &L )

3. 追加顺序表

void ListCreate(SqList &L)

4. 求顺序表长度

int ListLength(SqList L)

5.检查顺序表是否为空

void ListEmpty(SqList L)

6.检查顺序表是否为满

void ListFull(SqList L)

7. 显示遍历顺序表

void ListTraverse(SqList L)

8. 从顺序表中查找元素

void ListGet(SqList L ,int i)

9.从顺序表中查找与给定元素值相同的元素在顺序表中的位置*/

int ListLocate(SqList L, ElemType x)

10. 向顺序表中插入元素

void ListInsert(SqList &L,int i,ElemType x)

11. 从顺序表中删除元素

void ListDelete(SqList L,int i)

12.顺序表逆序排列

void nixu(SqList &L)

四、调试分析

1.此程序全面包含了顺序表的所有功能,覆盖全面,每个功能的实现都设计的非常合理清晰。

2.本次试验使我们得到了一次良好的设计训练。

五、用户手册

1.本程序的运行环境为DOS操作系统。

2.进入演示程序后,即显示文本方式的用户界面:

3.运行此程序后,确定符为“回车符”。按照提示依次进行。

六、测试结果

执行命令‘1’:SqListInit(SqList &L )初始化线性表;

执行命令‘2’:请输入数值个数2 输入第一个数4输入第一个数3

执行命令‘3’:顺序表的长度为2

执行命令‘4’:"顺序表不空

执行命令‘5’:顺序表已满

执行命令‘6’:当前顺序表中的元素为4 3

执行命令‘7’:请输入要查找元素的位置2 顺序表中第2个元素的值为3 执行命令‘8’:请输入要查找的元素的值3 顺序表中2的位置是:2

执行命令‘9’:请输要插入元素的位置和其值:3 5

执行命令‘10’:请输要删除元素的位置:1 1已被删除

七、附录

#include

#include

#define MAXSIZE 100 /*顺序表存储空间的总分配量*/

typedef int ElemType; /* 定义ElemType为int类型*/

/* 顺序存储类型*/

typedef struct

{ElemType data[MAXSIZE]; /*存放线性表的数组*/

int length; /* length是顺序表的长度*/

}SqList;

SqList L;

/* 初始化顺序表*/

void SqListInit(SqList &L )

{ L.length=0;}

/* 追加顺序表*/

void ListCreate(SqList &L)

{ int i,n;

printf("请输入数值个数");

scanf("%d",&n);

for(i=0;i

{printf("输入第%d个数",i+1);

scanf("%d",&L.data[i]);

L.length++;}

}

/* 求顺序表长度*/

int ListLength(SqList L)

{return(L.length);}

/* 检查顺序表是否为空*/

void ListEmpty(SqList L)

{if(L.length) printf("顺序表不空");

else printf("顺序表为空");

}

/*检查顺序表是否为满*/

void ListFull(SqList L)

{if(L.length==MAXSIZE) printf("顺序表已满");

else printf("顺序表不满");

}

/* 显示遍历顺序表*/

void ListTraverse(SqList L)

{int i;

if(L.length<=0) printf("顺序表为空\n");

else {printf("当前顺序表中的元素为:\n");

for(i=0;i

printf("\n");

}}

/* 从顺序表中查找元素*/

void ListGet(SqList L ,int i)

{if(L.length==0) printf("顺序表空\n");

else if(i<1||i>L.length) printf("查找的位置不正确\n");

else printf("顺序表中第%d个元素的值为:%d\n",i,L.data[i-1]); }

/* 从顺序表中查找与给定元素值相同的元素在顺序表中的位置*/ int ListLocate(SqList L, ElemType x)

{int i=0;

while(i

i++;

if (i

else return 0;

}

/* 向顺序表中插入元素*/

void ListInsert(SqList &L,int i,ElemType x)

{int j;

if(L.length==MAXSIZE)

printf("表满,不能插入\n");

else if(i<1||i>L.length+1)

printf("插入位置不正确\n");

else

{ for(j=L.length-1;j>=i-1;j--)

L.data[j+1]=L.data[j];

L.data[i-1]=x;

L.length++;

} }

/* 从顺序表中删除元素*/

void ListDelete(SqList L,int i)

{int j;ElemType x;

if (i<1||i>L.length)

printf("删除位置不正确\n");

else {x=L.data[i-1];

for(j=i;j<=L.length-1;j++)

L.data[j-1]=L.data[j];

L.length--;

printf("%d已被删除\n",x);

}}

/*顺序表逆序排列*/

void nixu(SqList &L)

{ int j,t;

for(j=0;j

{t=L.data[j];L.data[j]=L.data[L.length-1-j]; L.data[L.length-1-j]=t;}}

int scan()

{int d;

printf("1. 顺序表的初始化 2.连续追加元素建表 3.求顺序表长度\n"); printf("4. 检查顺序表是否为空 5.检查顺序表是否为满 6.显示顺序表\n"); printf("7. 从顺序表中查找元素8.给定元素值找位置9.向顺序表中插入元素\n");

printf("10.从顺序表中删除元素11.逆序其他键退出......\n"); printf("\n");

printf("\n\n请选择所要进行的操作\n");

scanf("%d",&d);

return(d); }

void main()

{int quit=0;

int i,location;

ElemType e,prior,next;

printf("第一次操作需选择初始化\n\n\n");

while(!quit)

{switch(scan())

{case 1:SqListInit(L); printf("\n\n线性表已经初始化!\n\n\n");break;

case 2:ListCreate(L);break;

case 3:printf("顺序表的长度为%d\n",L.length);break;

case 4:ListEmpty(L);break;

case 5:ListFull(L);break;

case 6:ListTraverse(L); break;

case 7:printf("请输入要查找的元素的位置\n");

scanf("%d",&i);ListGet(L,i); break;

case 8:printf("请输入要查找的元素的值\n");

scanf("%d",&e);

if(L.length==0) printf("顺序表已空\n");

else

{location=ListLocate(L,e);

if(location==0) printf("顺序表中不存在值为%d的元素\n",e);

else printf("顺序表中%d的位置是:%d\n",e,ListLocate(L,e));

}

break;

case 9:printf("请输入要插入的元素的位置和其值:\n");

scanf("%d%d",&i,&e);

ListInsert(L,i,e);

break;

case 10:printf("请输入要删除的元素的位置:\n");

scanf("%d",&i);

ListDelete(L,i);

break;

case 11:nixu(L) ; break;

default:quit=1;

}

getchar();getchar();

实验报告总结

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

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

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

实验报告一

一、实验目的 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、逻辑运算符

用友实验报告

实验报告 项目名称:用友财务链与供应链实训 一、实验目的及要求: 实训目的:通过本课程的学习,使同学们在掌握会计电算化和财务会计的理论知识基础上,理解用友财务软件的设计理念,熟练应用友软件的财务链和供应链的各模块,借助于用友财务软件的操作说明,能独立完成财务核算工作和供应链的处理流程。 实训要求:通过本课程的开设,使同学们熟练完成财务链和供应链的处理流程操作并与财务链连接起来,为同学走向工作岗位奠定基础。 二、实验原理—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);

实验报告一顺序表的操作

《数据结构》实验报告一 系别:班级: 学号:姓名: 日期:指导教师: 一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 从键盘输入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;

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是一个销售情况的统计,主要从记录、排序、数据筛选、分类汇总、数据透视

数据结构- 顺序表的基本操作的实现-课程设计-实验报告

顺序表的基本操作的实现 一、实验目的 1、掌握使用VC++上机调试顺序表的基本方法; 2、掌握顺序表的基本操作:建立、插入、删除等运算。 二、实验仪器 安装VC++软件的计算机。 三、实验原理 利用线性表的特性以及顺序存储结构特点对线性表进行相关的基本操作四、实验内容 程序中演示了顺序表的创建、插入和删除。 程序如下: #include #include /*顺序表的定义:*/ #define ListSize 100 typedef struct { int data[ListSize]; /*向量data用于存放表结点*/ i nt length; /*当前的表长度*/ }SeqList; void main() { void CreateList(SeqList *L,int n); v oid PrintList(SeqList *L,int n); i nt LocateList(SeqList *L,int x); v oid InsertList(SeqList *L,int x,int i); v oid DeleteList(SeqList *L,int i); SeqList L;

i nt i,x; i nt n=10; L.length=0; c lrscr(); C reateList(&L,n); /*建立顺序表*/ P rintList(&L,n); /*打印建立后的顺序表*/ p rintf("INPUT THE RESEARCH ELEMENT"); s canf("%d",&x); i=LocateList(&L,x); p rintf("the research position is %d\n",i); /*顺序表查找*/ p rintf("input the position of insert:\n"); s canf("%d",&i); p rintf("input the value of insert\n"); s canf("%d",&x); I nsertList(&L,x,i); /*顺序表插入*/ P rintList(&L,n); /*打印插入后的顺序表*/ p rintf("input the position of delete\n"); s canf("%d",&i); D eleteList(&L,i); /*顺序表删除*/ P rintList(&L,n); /*打印删除后的顺序表*/ g etchar(); } /*顺序表的建立:*/ void CreateList(SeqList *L,int n) {int i; printf("please input n numbers\n"); for(i=1;i<=n;i++) scanf("%d",&L->data[i]); L->length=n;

顺序表实验报告

嘉应学院计算机学院 实验报告 课程名称数据结构实验名称线性表实验地点锡科405 指导老师巫喜红实验时间第2-3周提交时间第3周 班级1303班姓名魏振辉学号131110108 一、实验目的和要求 编写一个程序algo2-1.cpp,实现顺序表的各种基本运算 二、实验环境、内容和方法 实验内容: 1.初始化线性表L; 2.依次采用尾插法插入a,b,c,d,e元素; 3.输出顺序表L; 4.输出顺序表L的长度; 5.判断顺序表L是否为空; 6.输出顺序表L的第3个元素; 7.输出元素a的位置; 8.在第4个元素位置上插入f元素; 9.输出顺序表L; 10.删除L的第3个元素; 11.输出顺序表L; 12.释放顺序表L。 实验环境:Windows xp Visual C++6.0 三、实验过程描述 (详见本文件夹) 四、结果分析 运行结果如下图所示: 初始化线性表,先定义一个变量num,用while循环配合switch语句的使用来达到在未选择退出即num不等

时一直提示操作的效果,每执行一次操都会先运行fflush(stdin)函数来清除缓存区,避免下次操作受到干扰; 1、往线性表里插入元素,位置和元素用空格隔开; 2、查询线性表是否为空 3、输出顺序表 4、查询线性表长度

5、查询某位置的元素。执行查询操作时先用if语句判断查询元素的函数LocateElem(L,e)返回的值来执行不的操作,当返回的值为0时则所查元素不在线性表中; 6、查询木元素的位置。用if语句判断是否正确输入; 7、删除某元素。 8、释放顺序表 9、退出。用if语句每次执行操作时都判断一次指令是否正确。 五、实验总结

实验报告实验心得

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

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

《数据结构》实验报告一 学院:班级: 学号:姓名: 日期:程序名 一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 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);

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. (四)具体程序的实现

顺序表的建立及其基本操作技巧

山东师范大学 实验报告 课程:数据结构班级:2016级通信2班实验序号: 1 姓名:韩明达 学号: 201611030230 实验日期:9.17 题目: 顺序表的建立和运算 一、实验目的和要求 (1)熟悉C语言的上机环境,进一步掌握C语言的结构特点。 (2)掌握线性表的顺序存储结构的定义及基本运算 二、实验环境 Windows10,Visual Studio 2017 三、实验内容及实施 实验内容 1、建立一个顺序表,输入n个元素并输出; 2、查找线性表中的最大元素并输出; 3、在线性表的第i个元素前插入一个正整数x; 4、删除线性表中的第j个元素; 5、将线性表中的元素按升序排列; 【程序流程图】

【程序】 #include #include using namespace std; #define MAXSIZE 100 #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef struct { //定义顺序表结构 int data[MAXSIZE]; //存储空间的基地址; int length; //当前表长 }SqList; int InitList(SqList &L) //初始化顺序表 { L.length = 0; //当前长度为0 return OK; } void ShowList(SqList &L) //显示顺序表 { cout << "您构建的顺序表为:" << endl; //提示int i; for (i = 0; i < L.length; i++) { cout << L.data[i] << " ";

数据结构实验报告-顺序表的创建、遍历及有序合并操作

数据结构实验报告-顺序表的创建、遍历及有序合并操作二、实验内容与步骤 实现顺序表的创建、遍历及有序合并操作,基本数据结构定义如下: typedef int ElemType; #define MAXSIZE 100 #define FALSE 0 #define TRUE 1 typedef struct {ElemType data[MAXSIZE]; int length; }seqlist; 创建顺序表,遍历顺序表 #include #include #define MAXSIZE 100 #define Icreament 20 #define FALSE 0

#define TRUE 1 typedef int ElemType; //用户自定义数据元素类型 // 顺序表结构体的定义 typedef struct { ElemType *elem; //顺序表的基地址 int length; //顺序表的当前长度 int listsize; //预设空间容量 }SqList; //线性表的顺序存储结构 SqList* InitList() //创建空的顺序表 { SqList* L = (SqList*)malloc(sizeof(SqList));//定义顺序表L if(!L) { printf("空间划分失败,程序退出\n"); return NULL; } L->elem=(ElemType *)malloc(MAXSIZE*sizeof(ElemType)); if(!L->elem) { printf("空间划分失败,程序退出\n");

顺序表定义和使用实验报告

题目:顺序表的定义与使用 一.实验要求:(1)用C/C++定义顺序表的存储结构(2)至少实现四个基本操作(初始化,创建,插入,删除等)(3)使用定义的顺序表实现表内的顺序逆置 二.抽象数据类型 Status Chushih_L(SeqList &l); void Create_L(SeqList &l); Status Insert_L(SeqList &l); Status Delete_L(SeqList &l); Status chazhao_L(SeqList &l); Status nizhi_L(SeqList &l); void Merge_L(SeqList La,SeqList Lb,SeqList Lc); void Print_L(SeqList &l); 三.存储结构 typedef int Status; typedef int ElemType; typedef struct { ElemType *elem; int length; int size; }SeqList; 四.基本操作: Status Chushih_L(SeqList &l){ //l.elem=(ElemType*)malloc(sizeof(ElemType)); l.elem=new ElemType[Size]; if(!l.elem) exit(OVERFLOW); l.length=0; return OK; } void Create_L(SeqList &l){ int n; cout<<"输入表的长度:"<>n; l.length=n; cout<<"输入表中的元素:"; for(int i=0;i

数据结构_实验报告1顺序表

一、抄写自己所选择的题目。

1、已知一顺序表A,其元素非递减有序排列,编写一个算法,删除顺序表中值相同多余的元素(相同值保留一个)。 2、已知带头结点的单链表L中的节点是按整数值递增排序的,试写一算法,将值为x的节点插入到表L中,使得表L仍然有序。分析算法的时间复杂度。 二、写出算法设计思路。 1.建立一个顺序表用于存储一组非递减排序的整形数据,对顺序表中的每个元素与其下一个元素进行比较操作。用指针记录当前所比较的元素,如果相等则对当前指针所指向的元素进行删除操作,并将它后面的数据前移,再与下一个元素比较,如果还相等就继续删除操作,否则指向下个元素,再比较直至无重复的元素。 2. 建立一个带头节点的单链表,其节点按整数值递增排序。创建一个新的节点,并由键盘输入节点的值。将其与链表中原有的节点(头节点不参与比较)按顺序作比较,并用指针指向当前的位置,若不大于当前节点,则在当前位置这前作插入操作,否则在最后作插入操作。 三、编写代码,调试运行,实现题目要求(提示:考虑到插入和删除的位置是否超出范围等可能出现的异常问题)。解1.法I: #include "stdio.h" #include "conio.h" #define SIZE 10 main() { int SqList_A[SIZE]={23,3,45,65,23,44,5,7,89,0}; int i,j,n,m,l=SIZE; for(i=0;i

顺序表的基本操作实验报告

湖南第一师范学院信息科学与工程系实验报告 课程名称:数据结构与算法成绩评定: 实验项目名称:顺序表的基本操作指导教师:王杰文 学生姓名:沈丽桃学号:10403080118 专业班级:教育技术 实验项目类型:验证性实验地点:科B305 实验时间: 2011年 10月8 日一、实验目的与要求: 实验目的:实现顺序表的创建、查找、插入、删除与输出 基本原理:顺序表的基本操作 二、实验环境:(硬件环境、软件环境) 1.硬件环境:奔ⅣPC。 2.软件环境:Windows XP 操作系统,TC2.0或VC++。 三、实验内容:(原理、操作步骤、程序代码等) #include # define maxlength 100 /#后不应该有空格/ struct LIST { int elements[maxlength]; int last; }L; typedef int position; void main() { position p,p1; /p和x最好赋值/ int x,x1,i,choice; position Locate(int x,struct LIST*y); void Insert(int x,position p,struct LIST*y); void Delete(position p,struct LIST *y); printf("option:Locate 1,Insert 2,Delete 3\n"); printf("please choice:"); scanf("%d",&choice); switch(choice) { case 1: { printf("please input a number:"); scanf("%d",&x); p1=Locate(x,&L); if(p1==101) printf(“the number does not exist”);

顺序表实验报告

实验一顺序表的基本操作及其应用 一、需求分析 1.本演示程序实现顺序表的初始化,依次从键盘读入数据,建立顺序表、表中元素的连续追加、求顺序表的长度、检查顺序表是否为空、检查顺序表是否为满、显示顺序表、从顺序表中查找元素、给定元素值找位置、向顺序表中插入元素、从顺序表中删除元素、顺序表的逆序排列等基本操作。 2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令。 3.程序执行命令包过1)顺序表的初始化;2)连续追加元素建表;3)求顺序表长度;4)检查顺序表是否为空;5)检查顺序表是否为满;6)显示顺序表;7)从顺序表中查找元素;8)给定元素值找位置;9)向顺序表中插入元素;10)从顺序表中删除元素;11)逆序 二、概要设计 抽象化数据类型线性表的定义如下: ADT List{ 数据对象:D={ai|ai属于ElemSet,i=1,2,....,n,n>=0} 数据关系:R1={|ai-1,ai属于D,i=2,.....n} 基本操作: ListEmpty(L) 初始条件:线性表L已存在。 操作结果:若L为空表,则返回TURE,否则返回FLASE。 ListLength(L) 初始条件:线性表L已存在。 操作结果:返回L中数据元素个数。 ListInsert(&L,i,e) 初始条件:线性表L已存在,1<=i<=ListLength(L)+1。 操作结果:在L中第i个位置之前插入新的数据元素e,L的长度加1。 ListDelete(&L,i,&e)

初始条件:线性表L已存在且非空,1<=i<=ListLength(L)。 操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减一。 ListTraverse(L,visit()) 初始条件:线性表L已存在。 操作结果:依次对L的每个数据元素调用函数visit()。一旦visit()失败,则操作失败。 }ADT List 主程序 void main(){ 初始化; While(“命令”!=“退出”){ 接受命令; 处理命令; } } 2.本程序只有两个模块,调用关系简单。 三、详细设计 1.元素类型 #include #include #include #define MAXSIZE 100 /*顺序表存储空间的总分配量*/ typedef int ElemType; /* 定义ElemType为int类型*/ /* 顺序存储类型*/ typedef struct {ElemType data[MAXSIZE]; /*存放线性表的数组*/ int length; /* length是顺序表的长度*/ }SqList; SqList L; 2. 初始化顺序表 void SqListInit(SqList &L ) 3. 追加顺序表 void ListCreate(SqList &L) 4. 求顺序表长度 int ListLength(SqList L) 5.检查顺序表是否为空 void ListEmpty(SqList L) 6.检查顺序表是否为满

相关主题