当前位置:文档之家› 城市规划原理——实验报告表

城市规划原理——实验报告表

城市规划原理——实验报告表
城市规划原理——实验报告表

河南理工大学建筑与艺术设计学院

教学实验报告

课程名称姓名

专业班级学号

河南理工大学建筑与艺术设计学院教学实验报告

附:实验作品一、实验作品二

生命表的编制实验报告

生命表的编制实验报告 【实验目的】 1、了解生命表的类型及其结构 2、通过给定种群各年龄时期的存活个体数,计算生命表各特征值,理解种群生命期望的含义,领会生命表的生态学意义 【实验原理】 预测预报的有力工具。通过生命表的组建和分析,不仅可以直观考察种群数量动态的一系列特征,如种群各年龄的存活数和存活率、死亡数和死亡率、死亡原因、出生率、生命期望等,而且可以进一步了解种群数量动态的内在规律和机制,如分析种群的存活动态、估计特定条件下种群的增长潜力和种群数量消长的趋势。依据生物性质划分年龄阶段(如1个发育期、1个月、1年、5年等),作为表中最左边的一列x,观察同一时期出生的同一群生物从出生到死亡各年龄段开始的存活情况,将观测值n x列在x值右边一栏,根据这些观测值即可算出表中其他栏目的数据。动态生命表中数据栏目由左至右依次为: x(年龄段);n x(x期开始时存活数目);l x(x期开始时的存活率);d x(x到x+1期间的死亡数目);q x (x到x+1期间的死亡率);L x(x到x+1期间的平均存活数);T x(超过x龄的个体总数);e x(x期开始的平均生命期望或平均余年)。各栏数据的关系如下: L x= d x=n x-n x+1 q x= L x=(n x+n x+1)/2 T X=L x+L x+1+L+x+2…+L max e x= 如果在生命表中加入加入m x项,用来记录各年龄的出生率,即构成综合生命表。 【实验器材】 骰子、烧杯、记录纸、笔 【方法与步骤】 1、以骰子数量代表所观察的一组动物的同生群,每个组发有50个骰子,一个有盖子的盒子。 2、通过掷骰子游戏来模拟动物死亡过程,每只骰子代表一个动物,所以开始时动物数为50,年级记为0。掷骰子规则为:将烧杯中骰子充分混匀,打开盖子,观察筛子朝上一面的颜色,蓝色代表存活个体,红色代表死亡个体,投掷一次骰子代表一年。将投掷次数作为年龄计入表中最左边一栏(年龄x)中,将蓝色骰子数作为存活个体数记在表中存活个体数n x一栏中。 3、将“死亡个体”去除,“存活个体”继续放回盒子中重复以上步骤,直到所有动物全部“死亡”。 4、按上面公式计算生命表中其他各项数值,完成表。

线性表实验报告

线性表实验报告 一、实验的目的要求 1、了解线性表的逻辑结构特性,以及这种结构特性在计算机内的两种存储结构。 2、掌握线性表的顺序存储结构的定义及其C语言实现。 3、掌握线性表的链式存储结构——单链表的定义及其C语言实现。 4、掌握线性表在顺序存储结构即顺序表中的各种基本操作。 5、掌握线性表在链式存储结构——单链表中的各种基本操作。 6、认真阅读和掌握实验的程序。 7、上机运行本程序。 8、保存和打印出程序的运行结果,并结合程序进行分析。 二、实验的主要内容 题目:请编制C语言,利用链式存储方式来实现线性表的创建、插入、删除和查找等操作。 具体地说,就是要根据键盘输入的数据建立一个单链表,并输出该单链表;然后根据屏幕 菜单的选择,可以进行数据的插入或删除,并在插入或删除数据后,再输出单链表;最后 在屏幕菜单中选择0,即可结束程序的运行。 三、解题思路分析 在链表中插入数据,不需要进行大量的数据移动,只需要找到插入点即可,可以采用后插入的算法,在插入点的后面添加结点。在链表中删除数据,先找到删除点,然后进行指针赋值操作。 四、程序清单 #include #include #include typedef int ElemType; typedef struct LNode {ElemType data; struct LNode *next; }LNode;

LNode *L; LNode *creat_L(); void out_L(LNode *L); void insert_L(LNode *L,int i,ElemType e); ElemType delete_L(LNode *L,ElemType e); int locat_L(LNode *L,ElemType e); void main() {int i,k,loc; ElemType e,x; char ch; do{printf("\n"); printf("\n 1.建立单链表"); printf("\n 2.插入元素"); printf("\n 3.删除元素"); printf("\n 4.查找元素"); printf("\n 0.结束程序运行"); printf("\n================================"); printf("\n 请输入您的选择(1,2,3,4,0)"); scanf("%d",&k); switch(k) {case 1:{L=creat_L(); out_L(L); }break; case 2:{printf("\n请输入插入位置:"); scanf("%d",&i); printf("\n请输入要插入元素的值:");

模拟编制生命表

生态学实验 实验模拟编制生命表 专业: 学号: 姓名:

实验模拟编制生命表 作者: 摘要: 通过实验室模拟生命表与所得盘羊头骨年龄数据及男女性数据做对比,得出种群个体总数的差异会导致种群如何生存与发展,并且通过比较实验室模拟种群的生命表与3个实际种群的生命表,找出其中存在的差异并解释,并以存活数量的对数值为纵坐标,以年龄为横坐标作图,从而把每一个种群的死亡--存活情况绘成一条曲线,这条曲线即是存活曲线。存活曲线直观地表达了同生群的存活过程。为了方便不同动物的比较,横轴的年龄可以各年龄其占总存活年限的百分数来表示[1]。同时更好的了解和使用生命表解决实际问题。 关键词:生命表盘羊种群变化存活率存活曲线 引言:生命表(life table)是一种有用的工具。简单的生命表只是根据各年龄组的存活或死亡数编制,综合生命表则包括出生数据,从而能估计种群的增长[2]。在生态学中指死亡表活寿命表,用于简单而直观地描述种群存活或死亡过程的统计表。世界上第一个生命表为英国天文学家埃德蒙.哈雷于1693年编制的[3]。本实验为模拟实验旨在模拟自然环境下的一个种群的生命表,极大的节省了生态学实验所需的时间,此方法为掷骰子来模拟动物的死亡过程编制生命表,从而分析数据绘制图表得出存活曲线,死亡曲线,生命期望等一系列和研究问题相关的曲线,是一个有趣的游戏性实验。我们可以通过得出的图表大致比较种群大小不同的生命表差异和比较模拟种群与所给真实种群的生命表的差异。用这样一个简单的模拟方法达到真实的效果。 1、材料与方法

1.1实验材料 骰子、烧杯、记录纸、绘图纸、笔等。 1.2试验方法 1. 以骰子数量代表所观察的一组动物的同生群,给每个实验组发30只骰子,1个烧杯; 2. 通过投骰子来模拟动物的死亡过程,每颗骰子代表一个动物,所以开始时动物数为30,年龄记为0。掷骰子规则为:将烧杯中骰子充分混匀,一次全部掷出,观察骰子的点数,1,2,5,6点代表存活个体,3、4点代表死亡个体,投掷一次骰子代表1年。将投掷次数作为年龄记在表1的最左边一栏(年龄x)中,将显示1,2,5,6点的骰子数作为存活个体数记在表1中的存活个体数nx一栏中; 3 .将“死亡个体”去除,“存活个体”继续放回烧杯中重复以上步骤,直到所有动物全部“死亡”。 1.3实验室模拟生命表的主要指标 nx(x期开始时存活数目);lx(x期开始时的存活率);dx(x到x+1期间的死亡数目);qx(x到x+1期间的死亡率);Lx(x到x+1期间的平均存活率);Tx(超过x龄的个体总数);ex(x期开始时的平均生命期望或平均余年)。 1.4数据处理 表1从X至(X+1)期的平均30个骰子的实验

数据结构实验一题目一线性表实验报告

北京邮电大学电信工程学院 数据结构实验报告 实验名称:实验1——线性表 学生姓名: 班级: 班内序号: 学号: 日期: 1.实验要求 1、实验目的:熟悉C++语言的基本编程方法,掌握集成编译环境的调试方法 学习指针、模板类、异常处理的使用 掌握线性表的操作的实现方法 学习使用线性表解决实际问题的能力 2、实验内容: 题目1: 线性表的基本功能: 1、构造:使用头插法、尾插法两种方法 2、插入:要求建立的链表按照关键字从小到大有序 3、删除 4、查找 5、获取链表长度 6、销毁 7、其他:可自行定义 编写测试main()函数测试线性表的正确性。 2. 程序分析 2.1 存储结构 带头结点的单链表

2.2 关键算法分析 1.头插法 a、伪代码实现:在堆中建立新结点 将x写入到新结点的数据域 修改新结点的指针域 修改头结点的指针域,将新结点加入链表中b、代码实现: Linklist::Linklist(int a[],int n)//头插法 {front=new Node; front->next=NULL; for(int i=n-1;i>=0;i--) {Node*s=new Node; s->data=a[i]; s->next=front->next; front->next=s; } } 2、尾插法

a、伪代码实现:a.在堆中建立新结点 b.将a[i]写入到新结点的数据域 c.将新结点加入到链表中 d.修改修改尾指针 b、代码实现: Linklist::Linklist(int a[],int n,int m)//尾插法 {front=new Node; Node*r=front; for(int i=0;idata=a[i]; r->next=s; r=s; } r->next=NULL; } 时间复杂度:O(n) 3、按位查找 a、伪代码实现: 初始化工作指针p和计数器j,p指向第一个结点,j=1 循环以下操作,直到p为空或者j等于1 b1:p指向下一个结点 b2:j加1 若p为空,说明第i个元素不存在,抛出异常 否则,说明p指向的元素就是所查找的元素,返回元素地址 b、代码实现 Node* Linklist::Get(int i)//得到指向第i个数的指针 {Node*p=front->next; int j=1; while(p&&j!=i)//p非空且j不等于i,指针后移 {p=p->next; j++;

数据结构实验报告——线性表

实验报告:线性表的基本操作 实验1:实现顺序表各种基本运算的算法 一、实验目的 学会并运用顺序表存储结构及各种运算。 二、实验环境 VC++6.0 三、实验准备 (1) 复习课件中理论知识 (2)练习课堂所讲的例子 四、实验内容 编写一个程序实现SqList.cpp,实现顺序表基本运算,并在此基础上设计个主程序exp1.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; 五、实验步骤 1、构造一个空的线形表并分配内存空间 Status InitList_Sql(SqList &L) {L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem) exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; return OK; } 2、求线性表的长度 Status ListLength(SqList L) { return L.length; } 3、线性表清空 void ClearList(SqList &L){ L.length = 0; } 4、在顺序线形表 L 中第 i 个位置之前插入新的元素 e Status ListInsert_Sq(SqList &L,int i,ElemType e)

模拟编制生命表

实验模拟编制生命表 专业:环科1001 学号:10320113 姓名:李牟

实验模拟编制生命表 作者:李牟 摘要: 通过实验室模拟生命表与所得盘羊头骨年龄数据等做对比,得出种群个体总数的差异导致种群的生存与发展,并且通过比较实验室模拟种群的生命表与实际种群的生命表,找出其中存在的差异并解释。 关键词:生命表实验模拟盘羊种群变化 引言:种群统计(Demography)是研究种群数量动态的一种方法,其核心是生命表[1],它综合了种群在生命过程中最重要数据,不仅可反映种群从出生到死亡的数量动态,还可用于预测种群未来发展的趋势。根据研究者获取数据的方式、研究对象和研究目的等,可将生命表划分为4种基本类型,即动态生命表、静态生命表、动态混合生命表和图解生命表[2]。 生命表是表达种群死亡过程的有固定格式的表。通过编制生命表,可获得有关种群成活率、存活曲线、生命期望、世代净增殖率、增长率(综合生命表)等有重要价值的信息。根据生命表所列数字的来源和类型,可将生命表分为动态生命表(又称同生群生命表)、静态生命表(根据一次大规模调查,以不同年龄个体成活数作为基本数据列入表中)和综合生命表(在上述生命表中加入代表世代繁殖信息的数据)。建立野外生物的动态生命表往往需要结合运用标记重捕技术,而且该方法由于要追踪生物从生到死的整个过程,不太适用于寿命很长的生物的研究。静态生命表的编制需要一次大量采集数据,以便样品能够代表整个种群的构成,而且由于不同同生群之间出生率、死亡率不尽相同,容易出现较大的误差。 依据生物性质划分年龄阶段(如1个发育期、1个月、1年、5年等)作为表中最左边的一列x,观察同一时期出生的同生群生物从出生到死亡各年龄段开始时

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

实验一:线性表逆置(顺序表)实验报告 (一)问题的描述: 实现顺序表的逆置算法 (二)数据结构的设计: 顺序表是线性表的顺序存储形式,因此设计如下数据类型表示线性表: 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. (四)具体程序的实现

数据结构线性表的应用实验报告

实验报告 课程名称____数据结构上机实验__________ 实验项目______线性表的应用____________实验仪器________PC机___________________ 系别_____电子信息与通信学院___ 专业________ ___ 班级/学号______ __ 学生姓名______ ___________ 实验日期_______________________ 成绩_______________________ 指导教师_______________________

实验一.线性表的应用 1.实验目的:掌握线性链表的存储、运算及应用。利用链 表实现一元多项式计算。 2.实验内容: 1)编写函数,实现用链表结构建立多项式; 2)编写函数,实现多项式的加法运算; 3)编写函数,实现多项式的显示; 4)测试:编写主函数,它定义并建立两个多项式,显示 两个多项式,然后将它们相加并显示结果。变换测试用的多项式,检查程序的执行结果。 选做内容:修改程序,选择实现以下功能: 5)多项式求值:编写一个函数,根据给定的x值计算并 返回多项式f(x)的值。测试该函数(从终端输入一个x的值,调用该函数并显示返回结果)。 6)多项式相减:编写一个函数,求两个多项式相减的多 项式。 7)多项式相乘:编写一个函数,求两个多项式的乘积多 项式。 3.算法说明: 1)多项式的建立、显示和相加算法见讲义。可修改显示 函数,使输出的多项式更符合表达规范。

2)多项式减法:同次项的系数相减(缺项的系数是0)。 例如a(x)=-5x2+2x+3,b(x)= -4x3+3x,则a(x)-b(x) =4x3-5x2-x+3。提示:a(x)-b(x) = a(x)+(-b(x))。 3)多项式乘法:两个多项式的相乘是“系数相乘,指数 相加”。算法思想是用一个多项式中的各项分别与另 一个多项式相乘,形成多个多项式,再将它们累加在 一起。例如,a(x)=-5x2+2x+3,b(x)=-4x3+3x,则 a(x)*b(x) = (-4x3)*(-5x2+2x+3)+(3x)*(-5x2+2x+3) = (20x5-8x4-12x3) + (-15x3+6x2+9x) = 20x5-8x4-27x3+6x2+9x。 4.实验步骤: 根据实验报告的要求,我对文件夹里的C文件进行了丰 富和修改,步骤如下: 链表结构建立多项式: typedef struct polynode { float coef; //系数 int exp; //指数 struct polynode *next; //下一结点指针 } PNode; 编写函数,实现多项式的加法运算; PNode * PolyAdd (PNode *f1, PNode *f2) //实现加法功能。

实验报告一顺序表的操作

《数据结构》实验报告一 系别:班级: 学号:姓名: 日期:指导教师: 一、上机实验的问题和要求: 顺序表的查找、插入与删除。设计算法,实现线性结构上的顺序表的产生以及元素的查找、插入与删除。具体实现要求: 从键盘输入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.线性表基本操作; 2.处理约瑟夫环问题 二.试验目的: 1.熟悉C语言的上机环境,掌握C语言的基本结构。 2.定义单链表的结点类型。 3.熟悉对单链表的一些基本操作和具体的函数定义。 4.通过单链表的定义掌握线性表的链式存储结构的特点。 5.熟悉对单链表的一些其它操作。 三.实验内容 1.编制一个演示单链表初始化、建立、遍历、求长度、查询、插入、删除等操作的程序。 2.编制一个能求解除约瑟夫环问题答案的程序。 实验一线性表表的基本操作问题描述: 1. 实现单链表的定义和基本操作。该程序包括单链表结构类型以及对单链表操作 的具体的函数定义 程序中的单链表(带头结点)结点为结构类型,结点值为整型。 /* 定义DataType为int类型*/ typedef int DataType; /* 单链表的结点类型*/ typedef struct LNode {DataType data; struct LNode *next; }LNode,*LinkedList; LinkedList LinkedListInit() //初始化单链表 void LinkedListClear(LinkedList L) //清空单链表 int LinkedListEmpty(LinkedList L)//检查单链表是否为空 void LinkedListTraverse(LinkedList L)//遍历单链表 int LinkedListLength(LinkedList L)//求单链表的长度 /* 从单链表表中查找元素*/ LinkedList LinkedListGet(LinkedList L,int i) /* 从单链表表中查找与给定元素值相同的元素在链表中的位置*/ int LinkedListLocate(LinkedList L, DataType x) void LinkedListInsert(LinkedList L,int i,DataType x) //向单链表中插入元素 /* 从单链表中删除元素*/ void LinkedListDel(LinkedList L,DataType x)

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

顺序表的基本操作的实现 一、实验目的 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;

实验三 生命表与存活曲线的编制精品文档4页

实验二生命表与存活曲线的编制 生命表(life table)的概念:生命表是描述种群存活和死亡过程的一种统计表格。记录了生物发育的不同年龄阶段的出生率和死亡率,以及由此计算出的种群生命期望值等特征值。 生命表一般可以分为如下几种类型: 1)特定年龄生命表:以一群同年龄个体为起始点,始终跟踪各年龄阶段的种群动态,记录期繁殖和死亡个体数,直至该年龄群全部死亡为止。适用于世代周期短、世代不重叠的种群。 2)特定时间生命表:假设不同年龄段种群的大小和结构相同的前提下,对一时刻各年龄段个体的调查统计而制成的生命表。适用于世代重叠且稳定的种群。 3)图解生命表:将某世代个体数的动态特征以图解的形式直观地表现出来便成了图解生命表。适用于生活史简单的种群。总之,生命表是描述种群死亡过程及存活情况的一种有用工具,它包括了各年龄组的实际死亡数、死亡率、存活数及平均期望年龄值等。根据生命表绘制的种群存活曲线图可以直观地描述种群的时间动态。 生命表是描述种群死亡过程及存活情况的一种有用的工具。可以体现各年龄或各年龄组的实际死亡数、死亡率、存活数目和群内个体未来预期余年(即平均期望年龄)。生命表的意义在于提供一个分析和对比种群个体起作用生态因子的函数数量基础。也可以利用生命表中的数据,描述存活曲线图,说明种群各年龄组在生命过程中的数量;说明不同年龄的生存个体随年龄的死亡和生存率的变化情况。 一、目的要求 1.了解生命表的类型及其结构; 2.通过给定种群各年龄时期的存活个体数,计算生命表各特征值,理解种群生命期望的含义,领会生命表的生态学意义。 二、材料用品 调查或利用已有的资料,如某年某地人口统计数据、电脑或计算器等 三、实验原理

顺序表实验报告

嘉应学院计算机学院 实验报告 课程名称数据结构实验名称线性表实验地点锡科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语句每次执行操作时都判断一次指令是否正确。 五、实验总结

实验模拟编制生命表

实验模拟编制生命表2011-2012学年第二学期 生态学 年级: 环境科学1001班 学号: 10320104 姓名: 王园园

实验室模拟生命表 摘要:根据生命表内信息,绘制存活曲线和死亡率曲线,科学正确的将龄分配,分析种群大小不同,及不同种群大小各年龄段存活率特点,为种群的发展所带来的影响。 关键词:生命表存活曲线死亡率曲线 引言: 生命表:在生态学中,指死亡表和寿命表,用于简单而直观地反应种群存活和死亡过程的统计表。生命表上所记载的死亡率、生存率是决定的重要依据。是反映一个国家或一个区域人口生存死亡规律的调查统计表。即追踪一批人,逐年记录该人群的死亡人数,得到该人群从出生到死亡为止的各年龄死亡率,并进一步构成表格式模型,称为生命表。 以存活数量的对数值为纵坐标,以年龄为横坐标作图,从而把每一个种群的死亡——存活情况绘成一条曲线,这条曲线即是存活曲线。存活曲线直观地表达了同生群的存活过程。为了方便不同动物的比较,横轴的年龄可以各年龄其占总存活年限的百分数来表示。 1材料与方法 1.1实验材料:骰子、托盘、烧杯、记录纸、绘图纸、笔等。 1.2实验材料: 1.2.1 ⑴. 以骰子数量代表所观察的一组动物的同生群,给每个实验组发30只 骰子,1个烧杯; ⑵. 通过投骰子来模拟动物的死亡过程,每颗骰子代表一个动物,所以开 始时动物数为30,年龄记为0。掷骰子规则为:将烧杯中骰子充分混 匀,一次全部掷出,观察骰子的点数,1,2,5,6点代表存活个体,3、 4点代表死亡个体,投掷一次骰子代表1年。将投掷次数作为年龄记 在表1的最左边一栏(年龄x)中,将显示1,2,5,6点的骰子数作为 一栏中; 存活个体数记在表1中的存活个体数n x ⑶. 将“死亡个体”去除,“存活个体”继续放回烧杯中重复以上步骤, 直到所有动物全部“死亡”。

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include >验目的 掌握顺序栈的基本操作:初始化栈、判栈空否、入栈、出栈、取栈顶数据元素等运算以及程序实现方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)分析问题的要求,编写和调试完成程序。 (3)保存和打印出程序的运行结果,并分析程序的运行结果。 3.实验内容 利用栈的基本操作实现一个判断算术表达式中包含圆括号、方括号是否正确配对的程序。具体完成如下:

(1)定义栈的顺序存取结构。 (2)分别定义顺序栈的基本操作(初始化栈、判栈空否、入栈、出栈等)。 (3)定义一个函数用来判断算术表达式中包含圆括号、方括号是否正确配对。其中,括号配对共有四种情况:左右括号配对次序不正确;右括号多于左括号;左括号多于右括号;左右括号匹配正确。 (4)设计一个测试主函数进行测试。 (5)对程序的运行结果进行分析。 实验代码: #include < > #define MaxSize 100 typedef struct { int data[MaxSize]; int top; }SqStack;

最新实验三 生命表与存活曲线的编制

实验三生命表与存活曲线的编制

实验二生命表与存活曲线的编制 生命表(life table)的概念:生命表是描述种群存活和死亡过程的一种统计表格。记录了生物发育的不同年龄阶段的出生率和死亡率,以及由此计算出的种群生命期望值等特征值。 生命表一般可以分为如下几种类型: 1)特定年龄生命表:以一群同年龄个体为起始点,始终跟踪各年龄阶段的种群动态,记录期繁殖和死亡个体数,直至该年龄群全部死亡为止。适用于世代周期短、世代不重叠的种群。 2)特定时间生命表:假设不同年龄段种群的大小和结构相同的前提下,对一时刻各年龄段个体的调查统计而制成的生命表。适用于世代重叠且稳定的种群。 3)图解生命表:将某世代个体数的动态特征以图解的形式直观地表现出来便成了图解生命表。适用于生活史简单的种群。总之,生命表是描述种群死亡过程及存活情况的一种有用工具,它包括了各年龄组的实际死亡数、死亡率、存活数及平均期望年龄值等。根据生命表绘制的种群存活曲线图可以直观地描述种群的时间动态。 生命表是描述种群死亡过程及存活情况的一种有用的工具。可以体现各年龄或各年龄组的实际死亡数、死亡率、存活数目和群内个体未来预期余年(即平均期望年龄)。生命表的意义在于提供一个分析和对比种群个体起作用生态因子的函数数量基础。也可以利用生命表中的数据,描述存活曲线图,说明种群各年龄组在生命过程中的数量;说明不同年龄的生存个体随年龄的死亡和生存率的变化情况。 一、目的要求 1.了解生命表的类型及其结构; 2.通过给定种群各年龄时期的存活个体数,计算生命表各特征值,理解种群生命期望的含义,领会生命表的生态学意义。 二、材料用品 调查或利用已有的资料,如某年某地人口统计数据、电脑或计算器等 三、实验原理

数据结构线性表实验报告

实验报告 实验一线性表 实验目的: 1.理解线性表的逻辑结构特性; 2.熟练掌握线性表的顺序存储结构的描述方法,以及在该存储结构下的基本操作;并能灵活运用; 3.熟练掌握线性表的链表存储结构的描述方法,以及在该存储结构下的基本操作;并能灵活运用; 4.掌握双向链表和循环链表的的描述方法,以及在该存储结构下的基本操作。 实验原理: 线性表顺序存储结构下的基本算法; 线性表链式存储结构下的基本算法; 实验内容: 2-21设计单循环链表,要求: (1)单循环链表抽象数据类型包括初始化操作、求数据元素个数操作、插入操作、删除操作、取消数据元素操作和判非空操作。 (2)设计一个测试主函数,实际运行验证所设计单循环链表的正确性。 2-22 .设计一个有序顺序表,要求: (1)有序顺序表的操作集合有如下操作:初始化、求数据元素个数、插入、删除和取数据元素。有序顺序表与顺序表的主要区别是:有序顺序表中的数据元素按数据元素值非递减有序。 (2)设计一个测试主函数,实际运行验证所设计有序顺序表的正确性。 (3)设计合并函数ListMerge(L1,L2,L3),功能是把有序顺序表L1和L2中的数据元素合并到L3,要求L3中的数据元素依然保持有序。并设计一个主函数,验证该合并函数的正确性。 程序代码: 2-21(1)头文件LinList.h如下: typedef struct node { DataType data; struct node *next; }SLNode; /*(1)初始化ListInitiate(SLNode * * head)*/ void ListInitiate(SLNode * * head) { /*如果有内存空间,申请头结点空间并使头指针head指向头结点*/ if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL)exit(1);

线性表的链式存储结构实验报告

实验报告 课程名称:数据结构与算法分析 实验名称:链表的实现与应用 实验日期:班级:数媒1401 姓名:范业嘉学号 08 一、实验目的 掌握线性表的链式存储结构设计与基本操作的实现。 二、实验内容与要求 ⑴定义线性表的链式存储表示; ⑵基于所设计的存储结构实现线性表的基本操作; ⑶编写一个主程序对所实现的线性表进行测试; ⑷线性表的应用:①设线性表L1和L2分别代表集合A和B,试设计算法求A和B的并集C,并用 线性表L3代表集合C;②(选做)设线性表L1和L2中的数据元素为整数,且均已按值非递减有序排列,试设计算法对L1和L2进行合并,用线性表L3保存合并结果,要求L3中的数据元素也按值非递减有序排列。 ⑸设计一个一元多项式计算器,要求能够:①输入并建立多项式;②输出多项式;③执行两个多项式相加;④执行两个多项式相减;⑤(选做)执行两个多项式相乘。 三、数据结构设计 1.按所用指针的类型、个数、方法等的不同,又可分为: 线性链表(单链表) 静态链表 循环链表 双向链表 双向循环链表 2.用一组任意的存储单元存储线性表中数据元素,用指针来表示数据元素间的逻辑关系。 四、算法设计 1.定义一个链表 void creatlist(Linklist &L,int n) { int i; Linklist p,s; L=(Linklist)malloc(sizeof(Lnode)); p=L; L->next=NULL; for(i=0;idata); s->next=NULL; p->next=s; p=s; }

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

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

生态学实验五——生命表的编制 山东大学实验报告

生态学实验五——生命表的编制 13生物基地201300140059刘洋2015-04-21 同组者:吕赞苏志国马华峥孙佳孟徐艺菲齐珂心王若仪蔡正琦 一、实验目的 1.通过实验操作,掌握生命表的编制方法。 2.学会分析生命表。 二、实验原理 生命表是表达种群死亡过程的有力工具。通过编制生命表,可获得有关种群成活率、存活曲线、生命期望、世代净增殖率、增长率(综合生命表)等有重要价值的信息。根据生命表所列数字的来源和类型,可将生命表分为动态生命表(又称同生群生命表,追踪同生群存活数和死亡数作为基本数据列入表中)、静态生命表(根据一次大规模调查,以不同年龄个体成活数作为基本数据列入表中)和综合生命表(在上述生命表中加入代表世代繁殖信息的数据)。建立野外生物的动态生命表往往需要结合运用标记重捕技术,而且该方法由于要追踪生物从生到死的整个过程,不太适用于寿命很长的生物的研究。静态生命表的编制需要一次大量采集数据,以便样品能够代表整个种群的构成,而且由于不同同生群之间出生率、死亡率不尽相同,容易出现较大的误差。 依据生物性质划分年龄阶段(如1个发育期、1个月、1年、5年等)作为表中最左边的一列x,观察同一时期出生的同一群生物从出生到死亡各年龄段开始的存活情况,将观测值n x列在x值右边一栏,根据这些观测值即可算出表中其他栏目的数据。动态生命表中数据栏目由左至右一次为x(年龄段);n x(x期开始时存活数目);l x(x期开始时存活率); d x(x到x+1期间的死亡数目);q x(x到x+1期间的死亡率);L x(x到x+1期间的平均存活个体数);T x(超过x龄的总生存余年); e x(x期开始时的平均生命期望或平均余年)。各栏数据的关系如下: l x=n x/n0 d x=n x-n x+1 q x=d x/n x L x=(n x+n x+1)/2 T x=L x+L x+1+L x+2+···+L max e x=T x/n x 三、实验器材 骰子、盒子、记录纸、绘图纸、笔等 四、实验步骤 1.以骰子的数量代表所观察的一组动物(如海豹)的同生群,给每个实验组法50个骰 子,一个盒子。 2.通过掷骰子游戏来模拟动物死亡过程,每只骰子代表一个动物,所以开始时动物数为 50,年龄记为0。掷骰子的规则为:将盒子中骰子充分混匀,一次全部掷出,观察骰子的点数,2、3、5、6点代表存活个体,1、4点代表死亡个体,投掷一次骰子代表1年、将投掷次数作为年龄记在下表中最左边一栏(年龄x)中,将显示2、3、5、6点的骰子数作为存活个体数记在小标存活个体数n x一栏中,以此模拟死亡率为1/3的情景。

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