数据结构实验报告线性(精选14篇)
1.数据结构实验报告线性 篇一
实验报告
课程名称:数据结构与算法分析 实验名称:链表的实现与应用
实验日期:2015.01.30 班级: 数媒1401 姓名: 范业嘉 学号 1030514108
一、实验目的
掌握线性表的链式存储结构设计与基本操作的实现。
二、实验内容与要求
⑴定义线性表的链式存储表示;
⑵基于所设计的存储结构实现线性表的基本操作;
⑶编写一个主程序对所实现的线性表进行测试;
⑷线性表的应用:①设线性表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;i s=(Linklist)malloc(sizeof(Lnode)); scanf(“%d”,&s->data); s->next=NULL; p->next=s; p=s; / 8 } } 2.(1)两个链表的合并 void Mergelist(Linklist &La,Linklist &Lb,Linklist &Lc){ Linklist pa,pb,pc;pa=La->next;pb=Lb->next;Lc=pc=La;while(pa&&pb){ if(pa->data<=pb->data) {pc->next=pa;pc=pa;pa=pa->next;} else {pc->next=pb;pc=pb;pb=pb->next;} } pc->next=pa?pa:pb;free(Lb);}(2)两个链表的并集 Linklist unionlist(Linklist &La,Linklist &Lb){ Linklist p1,p2,head,q,s;int flag;head=q=(Linklist)malloc(sizeof(Lnode));p1=La->next;while(p1){ flag=0; p2=Lb->next; while(p2) { if(p1->data==p2->data) { flag=1; break; } p2=p2->next; } if(flag==0) { s=(Linklist)malloc(sizeof(Lnode)); s->data=p1->data; q->next=s; q=s; } p1=p1->next;/ 8 } q->next=Lb->next;return head; } 3.(1)一元多项式的加法 List addpoly(List pa,List pb) //一元多项式的加法 { int n;List pc,s,p;pa=pa->next;pb=pb->next;pc=(List)malloc(sizeof(struct Linklist));pc->next=NULL;p=pc;while(pa!=NULL&&pb!=NULL){ if(pa->expn>pb->expn) { s=(List)malloc(sizeof(struct Linklist)); s->expn=pa->expn; s->coef=pa->coef; s->next=NULL; p->next=s; p=s; pa=pa->next; } else if(pa->expn expn) { s=(List)malloc(sizeof(struct Linklist)); s->expn=pb->expn; s->coef=pb->coef; s->next=NULL; p->next=s; p=s; pb=pb->next; } else { n=pa->coef+pb->coef; if(n!=0) { s=(List)malloc(sizeof(struct Linklist)); s->expn=pa->expn;/ 8 s->coef=n; s->next=NULL; p->next=s; p=s; } pb=pb->next; pa=pa->next; } } while(pa!=NULL){ s=(List)malloc(sizeof(struct Linklist)); s->expn=pa->expn; s->coef=pa->coef; s->next=NULL; p->next=s; p=s; pa=pa->next;} while(pb!=NULL){ s=(List)malloc(sizeof(struct Linklist)); s->expn=pb->expn; s->coef=pb->coef; s->next=NULL; p->next=s; p=s; pb=pb->next;} return pc;} (2)一元多项式的减法 List subpoly(List pa,List pb) //一元多项式的减法 { int n;List pc,s,p;pa=pa->next;pb=pb->next;pc=(List)malloc(sizeof(struct Linklist));pc->next=NULL;p=pc;while(pa!=NULL&&pb!=NULL){ if(pa->expn>pb->expn) / 8 { s=(List)malloc(sizeof(struct Linklist)); s->expn=pa->expn; s->coef=pa->coef; s->next=NULL; p->next=s; p=s; pa=pa->next;} else if(pa->expn expn){ s=(List)malloc(sizeof(struct Linklist)); s->expn=pb->expn; s->coef=-pb->coef; s->next=NULL; p->next=s; p=s; pb=pb->next;} else { n=pa->coef-pb->coef; if(n!=0) { s=(List)malloc(sizeof(struct Linklist)); s->expn=pa->expn; s->coef=n; s->next=NULL; p->next=s; p=s; } pb=pb->next; pa=pa->next;} } while(pa!=NULL){ s=(List)malloc(sizeof(struct Linklist));s->expn=pa->expn;s->coef=pa->coef;s->next=NULL;p->next=s;p=s;pa=pa->next;} / 8 while(pb!=NULL){ s=(List)malloc(sizeof(struct Linklist)); s->expn=pb->expn; s->coef=-pb->coef; s->next=NULL; p->next=s; p=s; pb=pb->next;} return pc;}(3)一元多项式的乘法 void mulpolyn(polynomail pa,polynomail pb,polynomail &pc){ LNode *p,*q,*s,*hc;p=pa->next;q=pb->next;hc=pc;while(p!=NULL){ while(q!=NULL) { s=(polynomail)malloc(sizeof(LNode)); hc->next=s; hc=hc->next; hc->coef=q->coef*p->coef; hc->expn=q->expn+p->expn; q=q->next; } p=p->next; q=pb->next;} hc->next=NULL;} / 8 五、测试结果 2.3.7 / 8 六、心得体会(包括对于本次实验的小结,实验过程中碰到的问题等) 1.首先书上给的链表输入是倒序的,写的时候想都没想就抄上去了,结果运行时发现问题,可是上网百度依然没有把问题解决,导致最后输出链表倒序的,并且链表的合并并集依旧是倒序的。 2.当写一元多项式的加减时,前提是弄清楚各种情况,系数相同时就相加减,系数不同就保留原有多项式;当系数相加减为0时,就free这个节点。在做减法时,我考虑到了减数与被减数之间的关系。 3.在做多项式时,我准备按照书上的算法一个一个写小函数,结果到最后发现写不下去了,就去问问同学和上网看看,结果感觉写这个数据结构的程序其实不必想麻烦了,只是指针,数组的高级运用。 / 8 一、线性代数课程体制的不足与实验化教学的内涵 就目前来看, 线性代数课程对于教师和学生都有不同的难题。课程体制高度概括, 教学内容复杂抽象, 不利于掌握知识点, 教学内容落后, 教师过于注重理论知识忽略了实际应用, 教材也没有注意到了概念、原理和模型的实际意义。对线性代数的方法和应用方面重视不够, 在数学分支上面没有突出联系, 体现建模思想也不够专业。学生对学习兴趣不大, 普遍感到抽象、枯燥、学习难度大, 很难领会线性代数所体现的主要思想方法, 从而导致学生失去学习的兴趣和热情, 更别提对线性代数的重难点提出问题, 最终造成课堂枯燥、氛围差, 学生学习效率低, 成绩差。 开设线性代数课程的目的, 不仅是要求学生能够熟练运用工具和算法来提高成绩, 而且注重学生在想象力方面的培养, 加强学生的逻辑思维能力, 有利于学生转变思维方式, 在他们后续课程的学习上也有一定的帮助作用。由于线性代数这门课程较抽象难懂等各方面的原因, 在教学中引入Matlab软件及生活实例是非常有必要的。我国著名教育学家姜伯驹教授曾经说过:“组织数学实验课程应当在教师的指导下和帮助下, 探索带有研究性的课题。实验过程中学生的开创性思维通过数学软件完成, 帮助学生在探索的道路上感悟真知。这种教学方式将学生被动接受转变为主动的学习, 大大培养了学生的自主能动意识和创新性思维”。 二、线性代数教学实验的设计 在线性代数实验课上我们分为以下三个模块: 1.准备实验。简单讲解MATLAB软件的操作, 包括MATLAB软件的启动、MATLAB常用命令和符号、数组及其运算、MATLAB文件与编程、符号运算初步、MATLAB作图初步、MATLAB帮助系统等。 2.基础性实验。在线性代数课程的教学过程中, 传统教学中有大量的手工计算, 需要学生掌握一定的计算技巧并按照计算步骤进行运算, 是学生过于注重计算, 对于方法原理掌握的不够到位, 最后造成的结果就是计算没有失误得出的结果却是错误的。使用现代计算机技术演示线性代数学的知识点, 经过验证、模拟实验, 帮助学生加深对知识的理解、正确认识数学规律、准确掌握知识要点。比如:教师在教授定理、公式以及空间图形结构时, 将实验分层异步, 采取讲练结合的方法, 将知识内容循序渐进的教给学生, 将重难点代入实验教学中, 引导学生加深理解。 实验1:向量、矩阵与行列式:学生利用MATLAB命令输入矩阵, 并对矩阵进行转置、加、减、数乘、相乘、乘方等运算, 以及求逆矩阵和计算行列式。 实验2:矩阵的秩与向量组的最大无关组:学习利用MATLAB命令求矩阵的秩, 对矩阵进行初等行变换, 求向量组的秩与最大无关组。 实验3:线性方程组:学习利用MATLAB命令求线性方程组的解, 以及解决有关问题。 实验4:矩阵的特征值、特征向量、相似变换和二次型:学习利用MATLAB命令求方阵的特征值和特征向量;利用特征值求二次型的标准形。 3.综合性实验。高等教育必须重视学生综合素质和创新能力的培养, 综合性实验是培养学生综合素质和创新能力的最有效途径之一。对学生的综合性实验能力培养主要在于学生实验兴趣的调动, 使学生能主动的、自愿的参加综合性实验, 也就是使学生能在综合性实验过程中得到实际的、明显的益处.促进学生的自主学习、合作学习和探究性学习, 并在学习过程中, 不断提高学生的实践能力和创新能力, 使学生在实验中验证自己的理论并不断演示加深理解。与验证性实验不同, 学生在综合性实验中经历“三个全面”的学习和指导:在对问题的研究上全面分析从而得出自己的理论, 在实验过程中全面锻炼技能, 经过分析、实验、总结全面提升自身的专业知识。综合性实验的题目要体现内容新、难度适中和可操作性强。实验时数一般控制在36学时之内比较合适。实验人数一个小课题以三人左右为宜, 最多不超过五人。综合性实验是通过案例讲解如何用线性代数方法与MATLAB软件相结合解决实际问题。具体可以开设:小行星轨道问题、矩阵相似变换在控制理论中的应用、三元二次方程的三维图形判定、线性规划方法建模、储层孔隙度的准确计算、隧道围岩监测位移前推、艾滋病疗法的评价及疗效的预测等。 结语:根据目前经济建设和社会发展对高素质应用型人才培养的需求, 对原有的线性代数课程体系及教学模式进行改革是很必要的, 只有不断改革、不断创新, 才能培养出社会需要的高素质人才。先进的软件工具为线性代数解决专业实际问题提供了条件, 在一些软件图像中将抽象问题形象德的表现出来, 配上生动的动画效果, 以此来刺激学生的抽象思维;在一些不容易掌握的计算题上, 只需要输入相应的程序和命令就可以解决, 大大节省时间和精力;并且在这个过程中, 将信息技术与线性代数完美融合, 提高学生学习质量的同时让他们充分了解计算机的作用, 提升学生学习数学的兴趣, 使得学生在数学领域不断的钻研, 可以大幅度的提高教学质量。 参考文献 [1]李大潜.素质教育与数学教学改革[J].中国大学教学, 2000 (3) :9-11. [2]薛长虹.大学数学教育改革的实践[J].工科数学, 2001, 17 (4) :77-80. [3]李尚志.线性代数教学改革漫谈[J].教育与现代化, 2004 (1) :3-6. [4]吴赣昌.线性代数[M].中国人民大学出版社, 2010. 关键字:桥梁 非线性 颤振 时程分析方法是桥梁风工程中的主要方法之一。过去的非线性时域分析方法都局限于抖振。其基本流程是首先模拟桥梁风场的脉动风速时程,根据脉动风速计算抖振力和自激力,然后将抖振力和自激力的计算编入非线性有限元程序中,最后再运用这样的程序进行计算。在这个流程中,非线性有限元程序是比较成熟的,但在脉动风速模拟和自激力的计算方面都还存在着对分析有重要影响的缺陷。由于时域中耦合自激力的计算比较困难,过去的时程分析中都没有考虑耦合的自激力,因此,这样的分析方法不能用来分析耦合颤振。 一.脉动风速的模拟试验 要进行抖振时程分析就必须首先模拟作用在桥梁上的脉动风速时程。本文采用经改进的谐波合成系列中的一种方法,大大提高了模拟效率,为在后文进行颤振时程分析中不断变换风速计算节约了时间。作用在大跨度桥梁上脉动风速可视为一维多变量随机过程。众所周知,用谐波合成法模拟一维多变量随机过程需要计算互谱密度矩阵的Cholesky分解。该分解通常采用迭代法求借,计算最大,常常影响模拟的规模的效率。本文作者利用桥梁上各点的互谱密度近似相等的特点,导出了显式的分解公式,并且采用了FFT技术,从而极大地提高了模拟效率。 二.风荷载计算 引起桥梁风振的荷载可以分为静力风荷载、抖振力和自激力。其中静力荷载按常规静力三分力系数计算,抖振力常按scanlan的准定常理论计算。 自激力的计算一直是研究得较多的课题之一。传统频域抖振和颤振分析方法中的自激力都采用scanlan提出的气动导数的线性表达式。由于该表达式是频域和时域的混合表达式,不能在时域中求解。为了在时域中顺利计算耦合自激力,Lin提出了一种用单位脉冲响应函数表达的统一自激力表达式。本文按Lin的理论计算耦合自激力。 Lin的理论基于二自由度耦合。然而,三自由度耦合对结构振动的影响最近也引起了一些学者的关注。虽然并非所有的自由度之间都具有耦合特性,但从理论和形式完备的角度出发,本文将Lin的理论从二自由度推广到三自由度,成功地实现了时域内三自由度耦合自激力的计算。 用脉冲响应函数表达的自激力适合于任意形式的振动,也适用于正余弦振动(颤振)。根据在正余弦振动形式下,脉冲响应函数表达的自激力与气动导数表达的自激力相等价的关系,Lin导出了用脉冲响应函数表达的自激力的具体表达形式。 三、统一的额报和抖报时域分析方法 在传统的步域分析方法中,抖振和颜振是通过完全不同的方法来分析的。其中,抖振分析用的是基于随机振动理论的响应谱方法,颤振分析用的是与特征值问题有关的半逆解法或复模态解法。风振时程分析的初衷是为了解决非线性情况下的抖振响应计算。但是颤振分析中所需要的计算自激力的公式在抖振时程分析中都要用到,所以从理论上讲,利用计算抖振时程分析的方法同样可以在时域中计算颤振。实际上,抖振和颤振并不是完全独立的。在任何风速之下,桥梁都受到抖振力和自激力的作用。当风速较低时,自激力很小,不起控制作用,桥梁的振动就体现为抖振。当风速增加到一定程度时,自激力逐渐发散,并控制桥梁的运动,桥梁就发生了颤振。因此,只要正确地描述了抖振力和自激力,运用时程分析这一仿真的分析方法,就可以算出一定风速之下桥梁的真实运动状态。如果表现为随机振动,则说明是抖振,我们就可以得到响应时程统计指标。如果是发散振动,就说明桥梁发生了颤振。只要不断进行搜索计算,我们就能在时域中找到桥梁的颤振临界风速。 根据以上设想,本文设计并首次成功地实现了时域中统一的颤振和抖振分析算法。 流程中,耦合自激力的计算是个关键。过去的一些抖振时程分析方法中常只近似考虑非耦合的自激力。而大跨度桥梁的颤振发散大多是受耦合自激力控制的,因此,过去的抖振时程分析方法不能用于计算颤振的原因就在于此。颤振发散的判断依据也是关键之一。考虑到结构在接近颤振临界状态时,振动形式逐渐从随机振动过渡到谐波发散振动,其振幅将逐渐增大,相应振动的阻尼将逐渐减小。因此,本文先通过位移时程曲线观察振幅的变化规律,当结构的振动明显过渡为谐波振动时,则根据计算结构的阻尼系统,当阻尼系统为负时,则认为结构进入颤振临界状态。 四.非线性颤振和抖振时程分析的程序设计 除了在时域中统一颤振和抖振分析方法以外,本文研究时程分析方法的目的还在于分析不同非线性因素对桥梁颤振和抖振响应的影响。与大跨度桥梁抖振和颤振有关的非线性现象主要有: (1)几何非线性,包括平均风荷载引起的位移:由于大跨度桥梁相对细长,几何非线性现象不能忽视; (2)有效攻角效应:由平均风荷载引起的位移使风对桥梁的攻角发生变化,从而使静力三分力系统和气动导数发生变化,因此附加攻角对桥梁的影响不能忽视。 根据以上分析流程并考虑这些非线性因素,借鉴一些通用有限元程序的理论和源代码。 大跨度桥梁在非线性情况下的颤振和抖振分析是目前桥梁风工程研究的热点之一。本文着重提出了时域中统一的颤振和抖振方法,同时解决了脉动风速的高效率模拟、结构几何非线性和气动非线性的处理方法。在此基础上,本文编制了计算程序Nbuffet并用该程序分析了江阴长江大桥非线性颤振和抖振响应。结果表明本文提出的方法及所编制的程序在理论和实践上都是正确的。 在此基础上,我们就可以在时域中增加考虑各种非线性因素对结构进行分析从而寻找结构对这些因素的敏感性;我们也可以根据时程计算来进行非线性的振动控制。而这些研究工作在頻域范围内是难以开展的。如果与CFD技术相结合,将可望实现从参数识别到结构宏观计算和控制的全过程分析。从而达到与风洞试验互为补充的目的。 实验(实习)名称数据结构实验(实习)日期 2011-11-2得分指导教师周素萍 系公共管理系专业信息管理与信息系统年级10级班次1姓名常玲学号2010230700 3实验一顺序表的基本操作及C语言实现 【实验目的】 1、顺序表的基本操作及 C 语言实现 【实验要求】 1、用 C 语言建立自己的线性表结构的程序库,实现顺序表的基本操作。 2、对线性表表示的集合,集合数据由用户从键盘输入(数据类型为整型),建立相应的顺序表,且使得数据按从小到大的顺序存放,将两个集合的并的结果存储在一个新的线性表集合中,并输出。 【实验内容】 1、根据教材定义的顺序表机构,用 C 语言实现顺序表结构的创建、插入、删除、查找等操作; 2、利用上述顺序表操作实现如下程序:建立两个顺序表表示的集合(集合中无重 复的元素),并求这样的两个集合的并。 【实验结果】 [实验数据、结果、遇到的问题及解决] 一. Status InsertOrderList(SqList &va,ElemType x) { } 二. Status DeleteK(SqList &a,int i,int k) {//在非递减的顺序表va中插入元素x并使其仍成为顺序表的算法 int i;if(va.length==va.listsize)return(OVERFLOW);for(i=va.length;i>0,x } //注意i的编号从0开始 int j;if(i<0||i>a.length-1||k<0||k>a.length-i)return INFEASIBLE;for(j=0;j<=k;j++)a.elem[j+i]=a.elem[j+i+k];a.length=a.length-k;return OK; 三.// 将合并逆置后的结果放在C表中,并删除B表 Status ListMergeOppose_L(LinkList &A,LinkList &B,LinkList &C) { LinkList pa,pb,qa,qb;pa=A;pb=B;qa=pa;qb=pb;// 保存pa的前驱指针 // 保存pb的前驱指针 pa=pa->next;pb=pb->next;A->next=NULL;C=A;while(pa&&pb){} while(pa){} qa=pa;pa=pa->next;qa->next=A->next;A->next=qa;if(pa->data data){} else{} qb=pb;pb=pb->next;qb->next=A->next;//将当前最小结点插入A表表头 A->next=qb;qa=pa;pa=pa->next;qa->next=A->next;//将当前最小结点插入A表表头 A->next=qa; } } pb=B;free(pb);return OK;qb=pb;pb=pb->next;qb->next=A->next;A->next=qb; 顺序表就是把线性表的元素存储在数组中,元素之间的关系直接通过相邻元素的位置来表达。 优点:简单,数据元素的提取速度快; 缺点:(1)静态存储,无法预知问题规模的大小,可能空间不足,或浪费存储空间;(2)插入元素和删除元素时间复杂度高——O(n) 求两个集合的并集 篇一:数据结构实验报告范例 《数据结构与算法》实验报告 专业 班级 姓名 学号 实验项目 实验一 二叉树的应用 实验目的 1、进一步掌握指针变量的含义及应用。 2、掌握二叉树的结构特征,以及各种存储结构的`特点及使用范围。 3、掌握用指针类型描述、访问和处理二叉树的运算。 实验内容 题目1:编写一个程序,采用一棵二叉树表示一个家谱关系。要求程序具有如下功能: (1)用括号表示法输出家谱二叉树, (2)查找某人的所有儿子, (3)查找某人的所有祖先。 算法设计分析 (一)数据结构的定义 为了能够用二叉树表示配偶、子女、兄弟三种关系,特采用以下存储关系,则能在二叉树上实现家谱的各项运算。 二叉树型存储结构定义为: typedef struct SNODE {char name[MAX]; //人名 struct SNODE *left;//指向配偶结点 struct SNODE *right; //指向兄弟或子女结点 }FNODE; (二)总体设计 实验由主函数、家谱建立函数、家谱输出函数、儿子查找函数、祖先查找函数、结点定位函数、选择界面函数七个函数共同组成。其功能描述如下: (1)主函数:统筹调用各个函数以实现相应功能 void main() (2)家谱建立函数:与用户交互建立家族成员对应关系 void InitialFamily(FNODE *&head) //家谱建立函数 (3)家谱输出函数:用括号表示法输出家谱 输出形式为:父和母(子1和子妻1(孙1),子2和子妻2(孙2)) void PrintFamily(FNODE *head) //家谱输出函数 (4)儿子查找函数:在家谱中查找到某人所有的子女并输出,同时也能辨别出其是否为家族成员与是否有子女 void FindSon(FNODE *b,char p[]) //儿子查找函数 (5)祖先查找函数:在家谱中查找到某人所有的祖先并输出,同时也能辨别出其是否为家族中成员。 int FindAncestor(FNODE *head,char son[ ]) //祖先查找函数 (6)结点定位函数:在家谱中找到用户输入人名所对应的结点。 FNODE *findnode(FNODE *b,char p[]) //结点定位函数 (7)选择界面函数:为便于编写程序,将用户选择部分独立为此函数。 void PRINT(int &n) (三)各函数的详细设计: void InitialFamily(FNODE *&head) //家谱建立函数 1:首先建立当前人的信息,将其左右结点置为空, 2:然后让用户确定其是否有配偶,如果没有配偶,则当前程序结束, 3:如果有则建立其配偶信息,并将配偶结点赋给当前人的左结点; 4:再让用户确定其是否有子女,如果有则递归调用家谱建立函数建立子女结点,并将其赋给配偶结点的下一个右结点。 5:如无,则程序结束 void PrintFamily(FNODE *head) //家谱输出函数 1:首先判断当前结点是否为空,如果为空则结束程序; 2:如果不为空,则输出当前结点信息, 3:然后判断其左结点(配偶结点)是否为空,如不为空则输出“和配偶信息。 4:再判断配偶结点的右结点是否为空,如不为空则递归调用输出其子女信息,最后输出“)”; 5:当配偶结点为空时,则判断其右结点(兄弟结点)是否为空 6:如果不为空,则输出“,”,并递归调用输出兄弟信息 7程序结束 FNODE *findnode(FNODE *b,char p[]) //结点定位函数 1:当前结点是否为空,为空则返回空; 2:如果和查找信息相同,则返回当前结点; 3:如不然,则先后递归访问其左结点,再不是则递归访问右结点 void FindSon(FNODE *b,char p[]) //儿子查找函数 1:在家谱中定位到要查找的结点,如无则输出“查找不到此人” 2:判断其配偶结点与子女结点是否为空,为空则输出“无子女” 3:不为空则输出其配偶结点的所有右结点(子女结点)。 int FindAncestor(FNODE *head,char son[ ]) //祖先查找函数 1:先在家谱中定位到要查找的结点,如为空输出“不存在此人”,程序结束 2:先将父母结点入栈,当栈为空时程序结束, 3:栈不为空时,判断栈顶元素是否已访问过, 4:访问过,再判断是否为查找结点,如是则输出栈中保存的其祖先结点,并滤过其兄弟结点不输出;不是查找结点,则退栈一个元素 5:未访问过,则取当前栈顶元素,置访问标志——1,同时取其右结点 6:栈不为空或当前所取结点不为空时,转到2; 实验测试结果及结果分析 (一)测试结果 (二)结果分析 (略) 实验总结 班级: 信管 专业 班 姓名: 学号: 实验时间: 2016 年 5 月 6 日 指导教师: 宋泽源 实验七:线性查找操作与应用 一、实验目的: 1、掌握顺序查找、折半查找的基本方法和操作过程 2、掌握二叉排序树的基本方法和操作过程 3、掌握查找效率的分析方法 二、实验内容: 1、编写程序,实现顺序查找操作,可参考书本P260/P25示例程序。 实验步骤: ①、在Java语言编辑环境中新建程序,建立一个顺序表(表长10),依次输入10个数据元素(对元素存放的先后顺序没有要求),并按照存储顺序输出所有元素; ②、输入待查找关键字,在顺序表中进行顺序查找; ③、输出查找结果。 2、编写程序,实现有序表折半查找操作,可参考书本P263/P218示例程序。 实验步骤: ①、在Java语言编辑环境中新建程序,建立一个顺序表(表长10),依次输入10个数据元素(要求所有元素按照递增顺序排列),并按照存储顺序输出所有元素; ②、输入待查找关键字,在有序表中进行折半查找; ③、输出查找结果。 3、编写程序,实现二叉排序树查找操作,可参考书本P277/P235示例程序。 实验步骤: ① 在Java语言编辑环境中新建程序,依次输入10个数据元素,建立一个二叉排序树,并按照中序遍历输出所有元素; ②、输入待查找关键字,在二叉排序树中进行查找; ③、输出查找结果。 三、操作步骤: 实验1:package search; import java.util.Scanner; public class Sequence { public static void main(String[] args)throws java.io.IOException{ SeqList System.out.println(list.toString());System.out.println(“输入要查找的数:”);Scanner scan = new Scanner(System.in);while(true){ int key = scan.nextInt();System.out.println(list.search(key)+“在数组中下标为 list.append(value[i]);”+list.indexOf(key)+“的位置”); } } System.out.println(“输入10个数:”);byte buffer[]=new byte[512];int count =System.in.read(buffer);if(count<2){ return null; public static int[] readInt()throws java.io.IOException{ } String s=new String(buffer,0,count-2);String str[]=s.split(“ ”);int value[]=new int[str.length];int i=0,j=0;while(i try{ } catch(NumberFormatException e){ System.out.println(str[i]+“不能转换为数组”);} finally{i++;} if(i==j){ value[j]=Integer.parseInt(str[i]);j++; return value;} int keys[]=new int[j];System.arraycopy(value, 0, keys, 0, j);return keys;} } 实验二 package search; import java.util.Scanner; public class BinarySearch { public static void main(String[] args)throws java.io.IOException{ SeqList System.out.println(list.toString()); System.out.println(“使用折半查找方法,输入要查找的数:”);Scanner scan = new Scanner(System.in);while(true){ int key = scan.nextInt();list.append(value[i]); System.out.println(key+“在数组中的下标为”+list.binarySearch(value, key)); } public static int[] readInt()throws java.io.IOException{ System.out.println(“输入10个升序数:”);byte buffer[]=new byte[512];int count =System.in.read(buffer);if(count<2){ } String s=new String(buffer,0,count-2);String str[]=s.split(“ ”);int value[]=new int[str.length];int i=0,j=0;while(i try{ } catch(NumberFormatException e){ System.out.println(str[i]+“不能转换为数组”);} value[j]=Integer.parseInt(str[i]);j++;return null;} finally{i++;} if(i==j){ return value;} int keys[]=new int[j];System.arraycopy(value, 0, keys, 0, j);return keys;} } 折半查找方法的实现: } } } public static int binarySearch(int [] value, int key){ return binarySearch(value,key,0,value.length-1);} public static int binarySearch(int [] value,int key,int min, int if(min>max){ } else{ int mid=(max+min)/2;if(value[mid]==key){ return mid;return binarySearch(value,key,mid+1,max);return binarySearch(value,key,min,mid-1);}else if(value[mid] 验三 package search; import java.util.Scanner; public class BinarySortTree_ex { public static void main(String args[])throws java.io.IOException{ BinarySortTree bstree.inOrder();//中根次序遍历二叉树 //System.out.println(“中序遍历输出二叉排序树”+bstree.toString()); System.out.println(“输入查找的数字:”);Scanner scan = new Scanner(System.in);while(true){ int key = scan.nextInt();System.out.println(“查找”+key+“,”+(bstree.search(key)!=null?“":”不“)+”成功“); } } System.out.println(”输入10个数:“);byte buffer[]=new byte[512];int count =System.in.read(buffer);if(count<2){ public static int[] readInt()throws java.io.IOException{ } return null;String s=new String(buffer,0,count-2);String str[]=s.split(” “);int value[]=new int[str.length];int i=0,j=0;while(i try{ } catch(NumberFormatException e){ // System.out.println(str[i]+”不能转换为数组");} finally{i++;} if(i==j){ value[j]=Integer.parseInt(str[i]);j++; return value;} int keys[]=new int[j];System.arraycopy(value, 0, keys, 0, j);return keys;} } 四、实验收获和建议: 《自动控制原理》是自动化、电气工程及其自动化和电子信息工程类各专业的教学计划中一门重要的专业基础主干课程, 实验课程安排与理论教学紧密结合。实验课的开设有助于理论与实践的统一, 培养学生分析问题、解决问题的能力。 目前大多高校开设的《自动控制原理》实验课程都是验证性实验, 对培养学生分析问题、解决问题的能力有一定的局限性。本文提出线性定常系统的串联校正实验教学方法探讨, 希望实验课程能加强学生能力的培养。 2. 实验原理 2.1 系统校正原理 串联校正系统的方块图如图1所示。图中Gc (S) 是校正装置, G0 (S) 是需校正的实验电路, 两者相串联。 串联校正装置有两种:一种是超前校正, 它是利用超前校正装置的相位超前特性来改善系统的动态性能, 另一种是滞后校正, 它是利用滞后校正装置的高频幅值衰减特性, 使系统在满足静态性能的前提下又能满足其动态性能的要求。本实验采用串联超前校正, 使校正后的系统同时能满足动态和稳态性能的要求。 2.2 期望特性校正法 根据给定的性能指标, 确定期望的开环对数幅频特性L (w) , 并令它等于校正装置的对数幅频特性Lc (w) 和未校正系统开环对数幅频特性L0 (w) 之和, 即L (w) =Lc (w) +L0 (w) 。 当知道期望开环对数幅频特性L (w) 和未校正系统的开环幅频特性L0 (w) , 就可以求出校正装置的对数幅频特性Lc (w) =L (w) -L0 (w) 。 2.3 未校正系统分析 未校正系统如图2所示, 其传递函数为:。 图中T1=1s, T2=0.2s, K=K1K2=2, 则相应的模拟电路如图3所示。 要求校正后系统具有下列的性能指标:Mp≤10%, Kv≥2。 2.4 实验教学方法分析 在验证性实验中, 一般实验指导手册会给出具体的校正步骤, 给出设计好的校正环节, 学生按要求连接电路, 得到校正前和校正后的输出图形, 做比较分析即完成实验了。很多学生没有认真去学习如何设计校正环节, 从而错过了提高分析问题、解决问题能力的机会。 本文认为, 实验指导手册应给出校正环节设计步骤的五个步骤, 如下所示: 设计步骤: (1) 绘制未校正系统的开环对数幅频特性L0 (w) ; (2) 绘制期望的开环对数幅频特性L (w) (取ω1=51/s, ωc=2.3, Kv=2.5) ; (3) 求Lc (w) ; (Lc (w) =L (w) -L0 (w) ) (4) 确定校正装置GC (S) 的参数; (5) 画出校正后系统的结构图。 设计步骤中的第一、第二和第三步, 均是理论课中频域分析法要求学生必须掌握的基础知识, 因此线性定常系统校正前、校正后的幅频特性曲线 (如图4所示) 完全可以让学生自己动手完成。第四步, 校正装置GC (S) 参数的求解是纯理论的计算, 为提高学生解决问题的效率, 可以为学生提供设计校正环节时所需的公式后让学生自己计算。第五步, 校正后系统的结构图 (如图5所示) 可以为学生提供应相应环节所对应的模拟电路, 在此基础上让学生自己动手、动脑完成, 这样才能真正达到培养学生理论联系实际能力的目的。 2.5 实验结果分析 最后, 让学生自己连接电路, 得到校正前和校正后的输入输出信号图形, 如图6和图7所示。对照校正后系统性能指标要求:Mp≤10%, Kv≥2, 进行分析可知系统校正前不满足性能指标要求, 校正后达到性能指标要求。 3. 结语 线性定常系统的串联校正实验中如果实验指导手册全部给出了系统校正前、后的模拟电路图, 实验过程中学生就仅仅是连接电路, 获取实验图形, 无法真正学会系统校正的方法。如果让学生自己在指导下完成设计校正环节, 就能提高学生生理论联系实际的能力。 参考文献 关键词:框架结构;再生混凝土;非线性 经回收处理后的废弃混凝土可以用于混凝土再生产,是解决环境保护问题和基础设施建设的有效办法,其既能减少环境污染,又能减少资源浪费。当前关于混凝土再生的材料性能国内外已经相继展开了研究,但主要集中在混凝土再生构建的研究上,相对来说关于其结构性能的研究较少。本文探讨了ANSYS有限元分析程序与已有的钢筋混凝土非线性分析理论,对再生混凝土框架结构的抗震性能非线性进行了分析,对再生混凝土框架结构抗震性能进行了深入了解。 一、在ANSYS中建立有限元模型 本文所建立的是混凝土和钢筋分离式有限元模型,忽略混凝土和钢筋的粘结滑移因素,可以分别获得混凝土和钢筋的变形情况和应力,这是该模型的优点。 (1)混凝土材料模拟 在模拟过程中,采用多线性和屈服准则等向强化模型考虑混凝土的塑性发展,用单元模拟混凝土材料的塑性、弹性以及破坏等各种力学行为。混凝土的本构模型所采用的是下列适合普通混凝土的本构方程。 (2)钢筋材料模拟 在有限元模型中,单元实常数主要是用来设置钢筋初始应力和截面面积,采用单元模拟框架中的纵向钢筋压和拉行为,在该分析中初始应力为零,纵向钢筋截面积为15.39平方厘米。钢筋的弹性效应和性质采用两折线和屈服准则等向强化弹塑性模型来考虑。以下为钢筋本构关系公式: 将所得到的数据通过统计回归,得到再生粗骨料取代率r与参数a和b的关系: (3)模型网格的划分 柱顶、粱端、跨中三等分位置在建立有限元模型时,分别设置了刚性垫块,为避免该区混凝土因应力集中而过早的发生破坏,用以分布施加在该处的集中荷载。此外,为了避免混凝土和钢筋的交界面上由于划分过小的混凝土单元,而造成混凝土过早发生破坏,施加了柱底支座的框架自重、跨中竖向荷载、位移约束、粱端水平荷载、柱端竖向荷载的有限元模型(如图一),钢筋单元(如图二)。 图一 图二 二、试验结果和计算结果对比分析 由单调加载得到的荷载位移曲线与荷载位移滞回曲线的包络线形成的骨架曲线,在低调反复荷载的作用下,是极为相似的。所以,我们可以由滞回曲线的包络线,得到在单吊荷载作用下结构的近似荷载位移曲线,为有限元模拟提供了对比的数据。另外,一些偶然因素对框架受力性能的影响可以通过反复加载进行降低,试验结果相对较为稳定,得到的荷载位移骨架曲线较为平滑。 通过在ANSYS中对上述有限元模型进行求解,在单调加载情况下可以模拟混凝土框架结构的受力性能,可以得到粱端的荷载位移曲线,以及混凝土与钢筋在受力过程中的变形和应力。 三、分析有限元计算结果 (1)在不同加载阶段混凝土和钢筋各部分的应变和应力状态,可以通过钢筋混凝土分离式模型得到。通过计算结果我们可以得出:柱端、粱端混凝土在最大荷载时可达到0.0086压应变,已经超过其极限压应变,柱端和粱端的混凝土将会发生较为严重的压溃破坏,此外与试验结果一致,梁柱端钢筋已经达到屈服,梁柱端钢筋应力全部达到448MPa。分离式模型可以查看钢筋和混凝土某点的应力随荷载变化趋势,还可以在不同荷载作用下精确地查看混凝土和钢筋的应力状态,可以提供结构细部设计的依据。 (2)柱端和粱端受拉区钢筋在最大荷载时,通过框架中钢筋的应力分布我们可以看出,都已经屈服强度,此外,与试验建构相对一致的还有,相对较小的受压区钢筋应力。 (3)通过计算模拟和试验结果的比较我们可以看出,计算模拟得到的各项指标(各组成部分的应力、荷载位移骨架曲线、结构裂缝分布、特征荷载等)都与试验结果较为吻合,这就说明,对于试验中再生混凝土框架结构所表现出的非线性性能,该有限元模型能够较好的进行模拟。主要由于混凝土和钢筋材料的非线性性能造成了结构的非线性性能,因此,对于钢筋和再生混凝土的非线性力学性能,有限元计算模型中所采用的钢筋与混凝土材料的非线性本构关系模型、相关材料参数、破坏准则的取值都做出了较为准确的反映。 (4)试件在单调荷载作用下的荷载位移骨架曲线,钢筋混凝土分离式模型能够比较准确的进行模拟。单元Solid65由于具有开裂的功能,考虑了对结构整体性能混凝土开裂造成的影响,为了更直观地确定在荷载作用下结构的危险区域,可以绘制结构裂缝的相关示意图。 (5)粱端截面上开裂混凝土拉区混凝土正应力基本为零,失去了抗拉能力。截面对称配筋,混凝土计算模型的保护厚度为5厘米,一般为10厘米左右的受压区高度,这与假定的受压区高度一般对称配筋截面设计时所取保护层厚度的两倍相同。 (6)分离式模型对于结构各个特征荷载都能够较为准确的进行模拟,相对误差一般都在5%以下,特征荷载的大部分计算值与实验值都没有过大差距。与试验结果相比各特征的荷载模拟值都普遍要小,这与结构中材料的强度实际值和材料的强度测试值的差距有关联,此外,还有一个使模拟值比试验值低的原因是分离式模型中没有考虑箍筋的影响。 总结:本文所采用的再生混凝土材料的相关材料参数数值和本构关系模型能够对再生混凝土的非线性力学特性做出较好的反映,可以用于再生混凝土结构的计算。钢筋混凝土分离式有限元模型能够描绘出与实验结果相对吻合的荷载位移骨架曲线,受力过程中的各特征荷载都能够较为准确的计算出来。能够直观的显示在不同加载阶段结构各细部的应变和应力状态,能够从宏观上反映结构的整体性能,可以分别给出荷载作用下混凝土与钢筋追加载过程和内力量值的变化规律。由于试验结果与计算结果相对吻合,所以,其可以作为结构设计的依据。 参考文献: [1]曹万林,尹海鹏,张建伟,董宏英,张亚齐.再生混凝土框架结构抗震性能试验研究[J].北京工业大学学报,2011(02). [2]肖建庄,杜睿,王长青,史江涛.灾后重建再生混凝土框架结构抗震性能和设计研究[J].四川大学学报(工程科学版),2009(05). (六)实验名称:数据库及SQL语言 班级_______ 姓名__________ 学号______实验日期: 实验机时:3 学时实验成绩: ----------------- 一.实验目的: 1、学习数据库设计的一般过程及相关技术; 2、学习access数据库管理系统; 3、掌握数据库的输入、查询、更新操作。 二.实验内容: 1、需求陈述:某校图书馆要建立一个图书数据管理系统。该图书馆的图书(书名、分类号、作者、出版社)存放在不同的借阅室(室名),读者(姓名、系名、类别)在书架上找到所需图书后,可以到服务台办理借阅(借阅时间)。 设计要求: 分析需求,建立数据库的概念模型; 将概念模型转换为关系模型(注意:是否需要作规范化处理); 写出创建基本表的SQL语句; 写出以下查询要求的SQL语句: (1)所有“高等数学习题集”书的信息; (2)读者“李林”借了什么书? (3)“社会学原理”在哪个借阅室? 2、在access数据库管理系统中建立所设计的关系表; 3、向各表中输入一组实验数据(元组)(注意:关系完整性); 4、对数据库进行查询。 三.实验结果: 1、实体-关系图; 2、数据库表; 3、创建基本表的语句; 实验项目:选择结构程序设计 实验日期:2012年3月26日 实验原理:利用 if 或switch 语句实现多分支选择结构程序设计 实验仪器:PC 实验内容及步骤: 内容:利用scanf函数读入变量x的值,利用if或switch 语句判断x所在的区间,并求函数在x 处的函数值 步骤: 1、程序设计: (1)定义变量;(2)利用scanf给变量x赋值;(3)利用 if 或 switch 判断x所在范围执行相应计算,以求得函数在x 处的函数值;(4)输出相应函数值 2、输入程序、调试并运行通过。 实验报告 实验目的要求:抄写指导手册上相应章节的目的要求 实验环境:windows XPTC或 VC 实验内容:完整抄写P77页4.5小题 实验步骤:直接写代码 实验结果:根据实验题目自己输入相应值并观察程序输出结果 关键词 应变片;静态应变仪;动态应变仪;电桥;拉伸机 中图分类号 G64 文献标识码 A 文章编号 1673-9671-(2010)082-0141-01 1 标定试验 1.1 利用YE29003B应变标定仪标定动态应变仪 1)将YE29003B应变标定仪接入动态应变仪中:接完后相应的接口通道指示灯变暗,选折合适的拱桥电压和增益。本文选取:10V和2K欧姆,通道为3通道。 2)先将YE29003B应变标定仪拨到0欧姆,然后将动态应变仪选定通道电压调零,按下AUTO按钮机器会自动调零,若没有完全为零,可以用螺丝刀调节左边的微调FINE。 3)将YE29003B应变标定仪拨到1000欧姆,调节动态应变仪选定通道电压,并使其成为整数。 4)将YE29003B应变标定仪分别拨到800、600、400、200、0欧姆,记录每组的电压。 5)处理数据、得到回归曲线,由图可知应变与电压的关系。 1.2 模拟标定动态应变仪 本实验是用固定电阻和可变电阻接好电桥,模拟应变。因为应变片的工作原理就是,在某变形点应变片会随之变形,从而自身电阻改变,导致电桥不平衡。如此标定动态应变仪时完全可以用可调电阻代替应变片。 将可变电阻调到59880欧姆,将动态应变仪调零后接入刚调好的可变电阻,再将接入可变电阻后的电压调到整数。 依次调节可变电阻使分别其为74880欧姆、99880欧姆、149880欧姆、299880欧姆,并照如上操作得到五组电压如下表:,然后和YE29003B应变标定仪得出结论比较。 2 弯曲、拉伸试验 2.1 拉伸试验测量弹性模量E,泊松比v 1)应变片的粘贴、连接仪器。因为要测两个量故使用两片应变片,一片测纵向,另一片测横向,贴片贴好后将两片应变片接入YE2538A程控静态应变仪的两个不同通道中,并接成1/4桥电路,其中纵向应变接入通道1,横向应变片接入通道2。 2)试样加载、数据收集。摇动YE6253多功能材料力学试验台的加力手柄,使试样受拉,同时YE2538A程控静态应变仪会显示拉力和应变,选取合适的数据并记录。本文中以拉力为准,大约隔50N到100N记录一组数据。每次记录时先点通道1,记录纵向应变,再点通道2,记录横向应变。 3)数据处理,计算E和v。用Excel处理得到的数据并绘图,由竖向应变-应力图可得弹性模量E。由竖向应变和横向应变可得泊松比v。 2.2 弯曲试验正应力试验 1)试验用三点弯梁、应变片粘贴及电桥接法。本实验所用材料为已粘贴好五片应变片的三点弯曲梁:五片应变片(至上而下)本别测量上表面、中性层与上表面间、中性层、中性层与下表面间、下表面五个位置的应变,故有五片应变片接入YE2538A程控静态应变仪中,每片接入不同的通道中,规定应变片按至上而下的顺序接入通道1至通道5。 2)测量五点应变并与理论作比较。实验前先调零,测试时将拉力规定为某一特定值,本文使用600N,加载后先按通道1,記录上表面应变片的应变,以此类推测得其他点的应变。为消除误差,此过程复测量三次,每次拉力一定,取三组数据平均值。最后与理论值比较,得应变平均值,实际应力值,应力理论值和相对误差=|σ实-σ|/σ。 3 K片的测定 3.1 试验材料及方法描述 本实验用的是截面为18.1*18.1的正方形梁,简支梁表面放一幅梁,中点受集中力并用千分尺测梁中点位移。应变片贴在上下表面,测出梁上下表面的应变量。由《力学CAT基础》推导K片的值。 3.2 K片的推导 根据《力学CAT基础》,纯弯梁应变与应变片电阻率测量装置如下图所示。供货应变片粘贴在梁的纯弯区段内下表面,应变片纵向与梁的轴线方向重合,给定载荷后通过绕度计测量纯弯梁在加力线上的位移f,并由材料力学梁弯曲公式计算出应变片粘贴处梁的应变: ε纵=fh/(l2+f2+fh) 1)用电阻仪表在贴片前测出应变片的阻值R; 2)将应变片和温度补偿片接入应变仪桥路调零后,按给定载荷P加载到位后测出应变仪的电压输出V; 3)将载荷卸去并使应变仪调零,随后对测量应变片电阻并联一个可调电阻仪,而后调并联电阻值到Rn,使对应应变仪的输出电压仍为V。此时应变片和外并电阻Rn的总电阻为:RRn/(R+Rn); 4)根据1)、3)步得到的电阻数值可以求出电阻变化率为: ΔR/R=[RRn/(R+Rn)-R]/R=-R/(R+Rn) 5)灵敏系数Κ片的测量结果为: Κ片=|ΔR/R|/ε纵=|ΔR/R|l2/fh 3.3 测量ε仪、千分表读数f 测出数据千分表读数f,ε仪(µε),ε纵(µε),△R/R,拉力(N)。由ε纵(µε)—△R/R曲线可得K片的大小。 4 COD引伸计标定、测量裂纹长度 4.1 COD引伸计侧线 因COD引伸计的五条输出线是混乱的我们必须对此整理,方法如下: 首先,COD引伸计内部桥路如下: 引线是4条桥线加一条地线,每个电阻120欧姆 如对于1线,将其和其他颜色的先接到欧姆表上若读数为90可知是1、4两端或1、3两端,二若欧姆表上若读数为120可知是1、2两端,这样便知道电桥的内部链接只要将对面的两端接入YE29003A盒中的V+、V—,或IN+、IN—中即可。 4.2 COD引伸计位移与动态应变仪电压的关系 在使用COD引伸计前必须标定引伸计位移与动态应变仪电压的关系,只有这样才可进行下一步试验。 4.3 测量裂纹长度 (本实验使用柔度法来测量裂纹长度,试验在弹性范围内进行,每次试验加载一次并马上卸载同时记录载荷与位移关系。 根据SET柔度公式:a/w=β0+β1µ 其中:β0=1.0056;β1=-2.8744 µ=1/(1+sqrt(E`*BefC));Bef=B-(B-Bn)/B a是裂纹长度;B为式样的厚度,W为其宽度;测得B=2mm,W=18mm,E是弹性模量,C是测得的柔度即本实验的δ。 将数据代入得:a。 参考文献 [1]蔡立勋.力学CAT.西南交通大学. 关键词:线性代数,高校,视频教学 视频教学自20世纪90年代引入高校课堂以来, 深得广大教师的青睐。然而, 视频教学多常用于政治、英语等语言类课堂, 在数学课堂上很少使用, 其实, 数学是门比较抽象的学科, 不能够像语文等学科, 通过优美的语言来让学生们产生学习的兴趣, 相反, 数学相对的枯燥, 比较注重计算和过程的理解和推导, 因此稍显乏味。但如果能够将多媒体的多样性教学与数学教学结合起来, 利用多媒体的影音, 对数学的思路和步骤进行演练模拟, 不仅让学生更容易理解, 也让学生更感兴趣。因此, 我校将一系列数学课程列入教学改革计划, 寻求视频教学与高校数学课的完美结合, 从而改变传统数学课由老师板书授课, 学生看书听课的单一教学模式, 变单调的黑白图案为动态的视频影音。这样能够让同学们生动形象地对教学内容有感性的认识, 提高学生的学习积极性, 吸引学生的注意力, 提高学生的学习兴趣, 并且让学生的学习效率得到提高。 本学期我对2013级计算机专业的学生率先进行了视频教学实验, 实验课程为线性代数, 总学时32, 共计126人。 1 实验教学目的 利用多媒体进行视频教学改革, 以达到提高学生的学习积极性, 吸引学生的注意力, 提高学生的学习兴趣, 提高学生的学习效率, 培养学生的抽象思维能力、逻辑推理能力、空间想象能力和自学能力。 2 课堂设计和教学效果 2.1 课堂教学环节设计 2.1.1 首先选择合适的视频资料, 参考标准如下: (1) 视频的内容:尽量选择与学生所使用教材一致的视频资料, 每段视频为一个知识点, 这样即使所选视频与学生使用教材的个别章节有差异, 也不影响学生理解。 (2) 视频的长度:视频长度以15分钟左右为宜, 若某个知识点较长, 可在中间选择适当位置停顿进行讲解, 避免学生产生视觉疲劳, 反而影响听课效果。 基于以上原则, 本次实验选用了沈阳师范大学罗敏娜老师的线性代数视频课资料。 2.1.2 视频教学模式包括学习、讨论、练习、回顾四个基本的教学时间段。 在课堂上采用视频播放与教师讲解、学生提问相结合的方式。播放视频时, 教师应注意观察学生反应, 一段视频结束后, 应对其中的难点及时讲解, 并留时间给学生提问, 对有争议性的问题可发起课堂讨论, 调动学生的课堂积极性。教师应根据学生学习的进度状况, 掌控不同教学时间段的合理转换, 持续激发学生的学习兴趣, 引导学生全程参与教学过程。教师成为教学过程的调度者、学生学习过程的引导者。 2.2 教学效果 多媒体视频的应用提高了学生的课堂积极性, 基本杜绝了以往课堂溜号、睡觉的现象。学生都能积极参与到课堂讨论中, 培养了学生的思维能力, 提高了学生的实践能力, 从而促进了学生对所学知识的理解和深化。 3 学生反馈 课后通过问卷调查获得学生反馈情况如下表1: 从调查结果可以看出, 学生普遍认为多媒体视频教学可以调动学习积极性, 提高自主学习能力, 与传统教学模式相比, 对学生具有更大的吸引力, 通过课堂讨论的方式, 可以使数学知识掌握的更加扎实深入。但同时也存在一定问题, 从问卷中以及课后随访了解到, 仍有个别地方不易理解, 而视频播放速度过快, 导致这个问题被忽视。在以后的视频教学中, 仍需小心把握视频播放的速度。 4 期末成绩分析 本学期实验班及两个教学参考班级成绩如下表2: 从上表可看出, 实验班考试成绩整体优于参考班级 5 总结 本次线性代数视频实验教学取得了较好的成果。通过多媒体视频教学, 提高了学生对数学的学习兴趣, 加深了对数学知识的理解, 提高了应用数学解决实际问题的能力.因此实验班学生在考试过程中对一些难以理解的内容要比其他班级解决的好.在后继课学习中, 实验班学生比其他学生具有明显的优势, 能够利用所学的数学知识、数学方法解决相应的问题。 数学不像语文等学科那么感性, 而是比较理性的抽象的学科。因此, 数学教学需要多媒体辅助来让数学的学习过程变得更加的容易, 更加的形象和具体, 便于学生的理解和运用。多媒体能够为学生进行演示和操作, 让学生能够从图像和影音资料获得更多的知识。但需要坚持的是, 多媒体只是起到辅助作用, 重点还是教师对教授内容的把握和讲授, 不能让教师和学生形成依赖的心理, 着重培养学生的逻辑思维能力, 这样才能提高学生的学习能力和学习效率, 让教学达到更好的效果。 参考文献 [1]王芳.概论课视频运用的科学性与艺术系探索[J].时代教育, 2008 (8) :11-13. [2]黄立新.透析网络课程中教学视频的问题[J].电化教育研究, 2006 (3) :26-28. [3]李振亭, 陈中.从视觉文化的角度论网络教学视频的应用[J].中国电化教育, 2006 (11) :46-48. [4]欧阳丽.基于能力发展核心的高职课程建设研究[J].职教论坛, 2011 (9) :12-15. 班号: 学号: 一、实验目得 (1)熟悉并掌握数据选择器得功能.(2) 用双 4 选 1 数据选择器 74LS153 设计出一个 16 选 1 得数据选择器。 (3)用双 4 选 1 数据选择器 74LS153 设计出一个全加法器。 二、实验设备 数字电路实验箱,74LS00,74LS153.三、实验内容(1) 测试双 4 选 1 数据选择器74LS153 得逻辑功能。 74LS153 含有两个 4 选 1 数据选择器,其中 与 为芯片得公共地址输入端,与 分别为芯片得公共电源端与接地端.Figure1 为其管脚图: Figure 错误 错误!未定义书签。 未定义书签。 :路电接连图下按ﻩ Figure 错误 错误!未定义书签。 (2)设某一导弹发射控制机构有两名司令员 A、B 与两名操作员C、D,只有当两名司令员均同意发射导弹攻击目标且有操作员操作,则发射导弹 F.利用所给得实验仪器设计出一个符合上述要求得16选1数据选择器,并用数字电路实验箱上得小灯与开关组合表达实验结果。 思路 : 由于本实验需要有四个地址输入端来选中 16 个数据输入端得地址之中得一个,进而实现选择该数据输入端中得数据得功能,即 16选1。而公共得、两 个地址输入端与 使能端(用于片选,已达到分片工作得目得,进而扩展了一位输入)一共可以提供三个地址输入端,故需要采用降维得方法,将一个地址输入隐藏到一个数据输入端 中。本实验可以降一维,也可以降两位。由于两位比较复杂,本实验选择使用降一维得方式。 做法 : :图诺卡得能功需所现实中题用应如出画ﻩ 00 01 11 10 00 01 0 0 0 0 0 0 1 0 11 0 0 1 0 10 0 0 1 0 将 D 降到数据输入端中。对应得卡诺图如下: 00 01 1 0 0 D 0 0 0 1 0 按上述卡诺图连接电路,用开关控制送给各输入高低电平。其中,“1”表示高电平,“0”表低电平,均由开关上下拨动来控制;A、B、C、D分别为题中得两个司令员得同意情况与两个操作员得操作情况;F 为导弹发射情况,将F接到小灯上即可。电路如 Figure 1 所示(图中 即,后面得图均为如此): Figure 3 AB CD C AB (3)用 74LS00与 74LS153 设计一位全加器,并用数字电路实验箱上得小灯与开关组合表达实验结果。 一位全加器得功能如下面两个卡诺图所示。其中 A、B 分别表示被加数与加数,CI 表示低位向本位得进位,S 表示运算结果,CO 表示向高位得进位。 CO: S: 00 经分析,此全加器有三个输入,而公共得、两个地址输入端与 使能端(用于片选,已达到分片工作得目得,进而扩展了一位输入)刚好一共可以提供三个地址输入端。故按上面得卡诺图,分析后应采用下面得端口解法: 按上面得接法连接电路。用开关控制送给各输入高低电平,“1“表示高电平,“0”表低电平,均由开关上下拨动来控制; 表示低位送进来得进位信号,A、B分别表示被加数与加数;S 与 分别表示加法结果与向高位得进位信号。电路如Figure 4 所示: Figure 4 四、实验结果(1) 测试双 4 选 1 数据选择器74LS153 得逻辑功能: :下如录记果结将,)亮灯小或(平电高示表”1“,)灭灯小或(平电低示表”0“用ﻩ 0 0 1 0 1 B A A B 1Q 0 0 0 0 0 1 0 1 0 0 1 10 0 0 1 0 1 0 1 1 0 0 1 1 1 0 2Q 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0(2) 设计出一个符合题目要求得 16 选 1 数据选择器 :下如录记果结将,)亮灯小或(平电高示表”1“,)灭灯小或(平电低示表”0“用ﻩA B C D F 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 。能功辑逻得出计设求要所足满以可路电此,得可表值真得面上由ﻩ(3) 设计一位全加器 :下如录记果结将,)亮灯小或(平电高示表“1“,)灭灯小或(平电低示表"0“用ﻩA B CI S CO 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 由上面得真值表可得,此电路可以满足所要求设计出得逻辑功能。 五、故障排除 在实验(1)中,发现所连接电路与预期得逻辑功能不一致.在检验了导线与小灯都正常后,发现将芯片得管脚接错了,误将 Q 与 接错地方。分析原因,就是由于芯片管脚设置得位置与管脚图上面不一致,两侧均有两个管脚接口.六、心得体会 连了道知中除排得障故在且并,计设得路电辑逻了握掌地好更我,验实次这过通ﻩ接时要瞧引脚上面得标号而不能一味地只认准位置。 成绩:_________ 实验七 二叉树操作验证 一、实验目的 ⑴ 掌握二叉树的逻辑结构; ⑵ 掌握二叉树的二叉链表存储结构; ⑶ 掌握基于二叉链表存储的二叉树的遍历操作的实现。 二、实验内容 ⑴ 建立一棵含有n个结点的二叉树,采用二叉链表存储; ⑵ 前序(或中序、后序)遍历该二叉树。 三、设计与编码 #include void inorder(void visit(BTreeNode void postorder(void visit(BTreeNode static void fun(BTreeNode data;}//访问结点 protected: BTreeNode //***********************建树******************************* template template //***********************遍历******************************* template {cout <<“递归先序遍历二叉树:”;s.preorder(s.fun);cout < 答:经常忘记对头结点的定义,以至于程序出错,经定义头结点,使程序正常运行。 b)程序运行的结果如何? 【数据结构实验报告线性】推荐阅读: 数据结构实验报告12-17 数据结构实验报告-查找算法10-07 数据结构实验六11-08 数据结构实验111-10 数据结构实验顺序表09-17 东北大学数据结构实验11-02 课设报告数据结构08-28 数据库实验5实验报告09-20 数据库实验报告实验四10-062.数据结构实验报告线性 篇二
3.数据结构实验报告线性 篇三
4.数据结构实验报告 篇四
5.数据结构实验报告 篇五
6.数据结构实验报告7 篇六
7.数据结构实验报告线性 篇七
8.数据结构实验报告线性 篇八
9.数据结构实验报告线性 篇九
10.选择结构实验报告 篇十
11.实验力学实验报告 篇十一
12.数据结构实验报告线性 篇十二
13.数据选择器实验报告 篇十三
14.数据结构二叉树操作验证实验报告 篇十四