课程实验报告1线性表

课程实验报告1线性表
课程实验报告1线性表

课程实验报告

专业年级 2012级软件工程

课程名称数据结构C语言描述

指导教师申红婷

学生姓名王晓霞

学号 20122205041002 实验日期 2012.10.31 实验地点 A3笃行楼A栋306 实验成绩

教务处制

2013年10月31日

实验报告总结

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

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

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

线性表实验报告

线性表实验报告 一、实验的目的要求 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请输入要插入元素的值:");

实验报告一

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

C语言数据结构线性表的基本操作实验报告

实验一线性表的基本操作 一、实验目的与基本要求 1.掌握数据结构中的一些基本概念。数据、数据项、数据元素、数据类型和数据结构,以及它们之间的关系。 2.了解数据的逻辑结构和数据的存储结构之间的区别与联系;数据的运算与数据的逻辑结构的关系。 3.掌握顺序表和链表的基本操作:插入、删除、查找以及表的合并等运算。4.掌握运用C语言上机调试线性表的基本方法。 二、实验条件 1.硬件:一台微机 2.软件:操作系统和C语言系统 三、实验方法 确定存储结构后,上机调试实现线性表的基本运算。 四、实验内容 1.建立顺序表,基本操作包括:初始化,建立一个顺序存储的链表,输出顺序表,判断是否为空,取表中第i个元素,定位函数(返回第一个与x相等的元素位置),插入,删除。 2.建立单链表,基本操作包括:初始化,建立一个链式存储的链表,输出顺序表,判断是否为空,取表中第i个元素,定位函数(返回第一个与x相等的元素位置),插入,删除。 3.假设有两个按数据元素值非递减有序排列的线性表A和B,均以顺序表作为存储结构。编写算法将A表和B表归并成一个按元素值非递增有序(允许值相同)排列的线性表C。(可以利用将B中元素插入A中,或新建C表)4.假设有两个按数据元素值非递减有序排列的线性表A和B,均以单链表作为存储结构。编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许值相同)排列的线性表C。 五、附源程序及算法程序流程图 1.源程序 (1)源程序(实验要求1和3) #include #include #include #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct arr {

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

北京邮电大学电信工程学院 数据结构实验报告 实验名称:实验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)

用友实验报告

实验报告 项目名称:用友财务链与供应链实训 一、实验目的及要求: 实训目的:通过本课程的学习,使同学们在掌握会计电算化和财务会计的理论知识基础上,理解用友财务软件的设计理念,熟练应用友软件的财务链和供应链的各模块,借助于用友财务软件的操作说明,能独立完成财务核算工作和供应链的处理流程。 实训要求:通过本课程的开设,使同学们熟练完成财务链和供应链的处理流程操作并与财务链连接起来,为同学走向工作岗位奠定基础。 二、实验原理—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)在销售管理系统中,根据发货单生成销售专用发票:单击“增加”,显示“选择订单”窗口,单击“显示”,选择订单后,单击“确定”,并保

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

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

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.线性表基本操作; 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.理解线性表的逻辑结构特性; 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);

线性表的基本操作实验报告

实验一:线性表的基本操作 【实验目的】 学习掌握线性表的顺序存储结构、链式存储结构的设计与操作。对顺序表建立、插入、删除的基本操作,对单链表建立、插入、删除的基本操作算法。 【实验内容】 1.顺序表的实践 1) 建立4个元素的顺序表s=sqlist[]={1,2,3,4,5},实现顺序表建立 的基本操作。 2) 在sqlist []={1,2,3,4,5}的元素4和5之间插入一个元素9,实现 顺序表插入的基本操作。 3) 在sqlist []={1,2,3,4,9,5}中删除指定位置(i=5)上的元素9, 实现顺序表的删除的基本操作。 2.单链表的实践 3.1) 建立一个包括头结点和4个结点的(5,4,2,1)的单链表,实现单链 表建立的基本操作。 2) 将该单链表的所有元素显示出来。 3) 在已建好的单链表中的指定位置(i=3)插入一个结点3,实现单链表插 入的基本操作。 4) 在一个包括头结点和5个结点的(5,4,3,2,1)的单链表的指定位置 (如i=2)删除一个结点,实现单链表删除的基本操作。 5) 实现单链表的求表长操作。 【实验步骤】 1.打开VC++。 2.建立工程:点File->New,选Project标签,在列表中选Win32 Console Application,再在右边的框里为工程起好名字,选好路径,点OK->finish。至此工程建立完毕。 3.创建源文件或头文件:点File->New,选File标签,在列表里选C++ Source File。给文件起好名字,选好路径,点OK。至此一个源文件就被添加到了刚创

建的工程之中。 4.写好代码 5.编译->链接->调试 1、#include "stdio.h" #include "malloc.h" #define OK 1 #define OVERFLOW -2 #define ERROR 0 #define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef int ElemType; typedef int Status; typedef struct { ElemType *elem; int length; int listsize; } SqList; Status InitList( SqList &L ) { int i,n; L.elem = (ElemType*) malloc (LIST_INIT_SIZE*sizeof (ElemType)); if (!L.elem) return(OVERFLOW); printf("输入元素的个数:"); scanf("%d",&n); printf("输入各元素的值:"); for(i=0;i

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 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;

实验报告实验心得

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

实验报告二:线性表及其基本操作实验(2学时)

实验报告 实验二线性表及其基本操作实验(2学时) 实验目的: (1) 熟练掌握线性表ADT和相关算法描述、基本程序实现结构; (2) 以线性表的基本操作为基础实现相应的程序; (3) 掌握线性表的顺序存储结构和动态存储结构之区分。 实验内容:(类C算法的程序实现,任选其一。具体要求参见教学实验大纲) (1)一元多项式运算的C语言程序实现(加法必做,其它选做); (2) 有序表的合并; (3)集合的并、交、补运算; (4)约瑟夫问题的求解。 注:存储结构可以选用静态数组、动态数组、静态链表或动态链表之一。对链表也可以采用循环链表(含单向或双向)。 实验准备: 1) 计算机设备;2) 程序调试环境的准备,如TC环境;3)实验内容的算法分析与代码设计与分析准备。 实验步骤: 1.录入程序代码并进行调试和算法分析; 2.编写实验报告。 实验过程:(一元多项式的加法) 【算法描述】 定义两个指针qa和qb,分别指向多项式A和多项式B当前进行比较的某个结点,然后比较2个结点中的指数项,则有以下三种结果: 1、指针qa所指结点的指数值小于指针qb所指结点的指数值,则应摘取指针qa 所指的结点插入到“和多项式”链表当中去; 2、指针qa所指结点的指数值大于指针qb所指结点的指数值,则应摘取指针qb 所指的结点插入到“和多项式”链表当中去; 3、指针qa所指结点的指数值等于指针qb所指结点的指数值,则将两个结点的系数相加,若和数不等于零,则修改qa所指结点的系数值,同时释放qb所指结点。反之,从多项式A的链表删除相应结点,并释放指针qa和qb所指结点。【源程序】 #include #include typedef struct { float coef;

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

实验报告 课程名称:数据结构与算法分析 实验名称:链表的实现与应用 实验日期:班级:数媒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; }

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.右键单击坐标轴→坐标轴格式→修改格式、边框、数值次序反转、数值最大值以及最小值→确定如图所示

完整版12信管实验报告(线性表基本操作)

管理学院信管专业12(1)班学号3112004734 姓名钟臻华协作者:无教师评定_________________ 实验题目线性表的基本操作 实验评分表

实验报告 一、实验目的与要求 1.本实验通过对线性表各种操作的算法设计,理解和掌握线性表的概 念、存储结构及操作要求,体会顺序和链式两种存储结构的特点; 2.根据操作的不同要求,选择合适的存储结构,设计并实现算法,对 算法进行时间复杂度分析,从而达到掌握数据结构的研究方法、算法设计和分析方法的目的。 二、实验内容 1.分别用顺序表、单链表、单循环链表实现约瑟夫问题的求解,并分 析基于不同存储结构算法的时间复杂度。如果采用顺序表实现时,每个元素出环并不执行删除操作,而将相应位置元素值设置为空,但计数时必须跳过值为空的元素,实现这种算法,并分析执行效率。 1.顺序表的不删除出环元素算法实现 public class Josephus3{ public Josephus3(int number,int start,int distance){//创建约瑟夫环并求解,参数指定环长度,起始位置,计数 //采用线性顺序表存储约瑟夫环的元素,元素类型是字符串,构造方法参数指定顺序表的容量 S eqList list=new SeqList(number); S tring a=new String("null"); f or(int i=0;i

相关文档
最新文档