数据结构实验报告(精选7篇)
数据结构实验报告 篇1
人体结构学实验报告
班级
姓名
学号
总成绩
任课老师
护理职业学院医学基础部解剖教研室
实践技能训练一
一、实验内容
显微镜的使用、细胞的观察
二、实验要点
1.认识显微镜的构造,熟练使用光学显微镜。
2.能在镜下辨认细胞。
三、实验材料
1.显微镜。2.单层立方上皮(肾切片,HE染色)。
四、实验方法
(一)显微镜的使用(示教、学生自己操作)
(二)细胞(学生自己观察)
五、作业
用红蓝铅笔绘高倍镜下的细胞图,注明细胞质、细胞核。
图:细胞
材料染色放大日期
数据结构实验报告 篇2
扬州话是江淮官话的代表方言, 她的存在至少也有三、四百年的历史了。方言学上的“扬州话”一般指扬州城区及毗邻的双桥、城东等乡村的方言, 扬州四乡又称其为“街上话”。它曾经是明朝时期的官话, 至今还有很多古汉语词汇, 以及一些生动的、有意思的口头语。以扬州方言为载体的曲艺有扬州清曲、扬州评剧、扬剧等。这些曲艺已经被列入国家非物质文化遗产。而广义上的扬州话还包括邗江全境20多个乡镇以及仪征北部数乡镇的方言。地级扬州市所辖县的高邮、仪征、宝应等方言, 通常不将其看作扬州方言来研究。本次实验主要是调查扬州话单字字调的发音情况。
1.实验材料和过程
1.1实验目的
(1) 学会独立完成扬州方言单字调的实验研究, 熟悉整个实验的步骤, 运用相应的仪器和软件, 得到声调数据结果, 与传统方言数据进行比较。
(2) 用学习到的声调理论知识将实验数据进行分析讨论, 能够在实际的操作中掌握理论。
(3) 学会编制录音底本, 选取有效的调查字表, 合适的发音人。
(4) 自主完成使用Audition软件录制方言单字调的过程, 在不断调试后, 获取有效音频文档。
(5) 在前次实验的基础之上, 对自己完成的录音文档用Praat软件进行标注和提取数据, 对声调承载段问题有更深入的认识。
(6) 利用Excel表格得出的数据结果描绘出扬州方言声调格局图, 比对传统值和老师实验值的出入, 找出自己实验问题在哪里。
1.2实验准备
1.2.1调查点
(1) 调查点:江苏省扬州市维扬区
(2) 扬州市东经:119°26北纬度:32°24′
(3) 扬州市市区人口 (不算下级单位) :100万左右
(4) 扬州市民族和其人口:90%以上是汉族, 同时有少数各族人民。
(5) 扬州市少数民族语言:无
(6) 方言种类:江淮官话洪巢片扬州话
(7) 方言艺术:扬剧、扬州评话、扬州清曲
1.2.2发音人
(1) 姓名:滕惟茜 (2) 性别:女 (3) 民族:汉
(4) 出生年月:1965年6月 (5) 出生地:扬州市广陵区
(6) 主要经历:一直在扬州生活与工作
(7) 文化程度:高中 (8) 职业:会计
(9) 会说的话:扬州话、不标准普通话
(10) 现在主要说什么话:扬州话
(11) 父亲是哪里人:扬州人
(12) 母亲是哪里人:泰州黄桥人
1.2.3调查人
(1) 姓名:滕菲 (2) 性别:女
(3) 单位:南京师范大学文学院
1.2.4调查人
(1) 调查时间:2012年1月30号
(2) 调查地点:扬州市五台山医院特别检查室
(3) 背景噪音:较为安静, 但笔记本不插电源时本身有声音
1.2.5调查人
(1) 调查字表的确定过程
根据资料的查找, 确定了扬州方言共有五个调类, 分别是阴平、阳平、上声、去声和入声。
以方言声调采录底本为参照, 单字每个调类取12个字, 尽量避免送气音、多音字和在日常生活中不能单说的字。
让发音人检查字表, 检查有没有读音不准确的字, 进行剔除重选, 最终选定调查字表如下:
1.3录音
阴1平.3.1器材方阳案:平笔记本电脑上+声简易录音话去筒声入声
(1) 笔记本电脑:东芝 (M833) —1G内存、Window7系统
(2) 话筒:简易有底座的话筒
1.1.3.2准备工作
(1) 场所:较为安静的办公室, 关闭门窗, 关掉所有交流电源, 包括笔记本电脑的话筒。
(2) 话筒:使用时, 嘴巴不能正对话筒, 要与话筒成斜角, 保持固定的3~5cm, 防止“扑麦”和“爆音”。
(3) 提示和方式:事先和发音人明确“开始录音”和“停止录音”的手势。
(4) 试音:为了让录音人熟悉录音的过程和要求、测试录音效果, 在正式录音前, 让发音人试录部分调查单字调。
1.3.3录音软件
阴平本次调查运阳用平了老师推荐上声的Adobe Au去di声tion3.0版录入音声和音频处理软件。
点12.和34音986频484处43理软2.2件89。71356992.3136445782.34099310032.3738757367点22.345311.439.0483基本2.2录85音193参49数092.30340897892.34233435182.371964342点32.3334 (2616) 25声3道2:.2单81声530道94772.29721084672.3491326522.3722301751点42.3187 (026) 27采8样2.率2:9247411809508H5z2.29315093472.35675664042.3702818893点52.2984 (3632) 34分7辨2.率3:1416669位15082.28814919492.36595672.3681207176点62.2782 (4642) 64音2频2.格35式79:95W1i5n6d3ow2s.P28C3M30 (8*3.3w9a6v) 2.37394561482.3697722777点72.256411.816.033.75录2.音39过549程685412.27452097592.37464350852.3678108741点82.2399 (2410) 68选7择2“.4文07件66”36—55“2新建2.”26选811择37相56应的2.3参669数18和111保1存2文.36件87的688824点92.类21型608—911按14下红2.4色10按255钮032开5始2.录25音71, 882查996看背2.3景63噪780音83和81观2察.36录89音265855点102.人18发86音498后76的波2.4形14, 27及09时808进行2.调252整45。352432.36553438632.367250869
(2) 试音之后, 开始正式录音。按照讲好的手势开始, 因为字较多, 所以四个字一录, 避免发音人因喘气或呼气造成的失败。
(3) 录完之后, 按照声调类别进行归类, 用“混合型粘贴”将每个调类的字剪切在一起, 形成一个整的12个发音字的文件。
(4) 全部结束后进行试听, 查看背景噪音—选中一段无用的过渡段—“效果”—“修复”—“降噪器”, 选择相应的参数, FFT6000, 衰减12DB—“获取特性”—“确定”—再次进入降噪器—“波形全选”—“确定”—二次试听, 达到要求后, 分别保存在F盘的temp文件的五个调类文件中 (文件类型是
(5) 由于第一次操作不熟练, 在进行提取基频时, 发现音频的波形出现问题, 于是再次录音, 但这次的背景没有上次安静, 电平为-40DB———-42DB, 经过降噪之后 (12DB) , 为-52DB———-57DB, 听时仍会感到电脑电池运行的声音。
1.4提取基频和做声调格局图
1.4.1工具:
Praat音频处理软件。
1.4.2提取基频:
(1) 打开声音文件, 由于电脑运行速度慢, 没有将五个声音文件粘贴在一起, 而是分调类依次打开和修改基频。
(2) 选中声音文件Sound—Periodicity—Topitch在对话框中修改:女声:最小Pitchfloor (Hz) :75.0, 最大Pitchceiling (Hz) :600.0, 生成Pitch文件。打开Pitch, 发现呈现的声调再次范围之类, 就不需要再修改Periodicity。
(3) 选中Pitch—Edit进行调整, 去除野点, 补足空余段。首先选中一个声调, 记住其图形特征, 按in不断放大, 直到删除野点时能够不影响其他的声调段, 然后选中要删的点, 选Selection-Unvoice去除野点。而补足空余时, 只能在有数字显示的地方补。
(4) 做好之后, 选中Pitch中的Down to pitch tier, 生成pitch tier文件, 保存在C盘Temp文件夹中。
1.4.3标注文件:
(1) 选中Sund—Annotate—To TextGrid修改All tier name Mary John (说明标注有两层内容) , 下面的不改, 生成TextGrid。
(2) 将Sound和TextGrid关联起来, 点击Edit进行标注。
(3) 我选择的方法是先选中一个字的读音, 将其放大到能看清蓝线的每一点, 逐字进行标注。
标注第一层音节时, 选取用拼音表示, 因为标汉字时, 发现软件有不识别的情况。
标注时, 发现听感和图像显示有较大区别, 按图像说, 有蓝线的地方才应该有声, 但放大到一定限度时, 实际听到的超过蓝线范围, 尤其是遇到送气的辅音。笔者没有选择完全按照图像显示, 而是根据听感, 选择清晰地一段, 因为音节的标注对于最后数据处理没有影响。
标注第二层声调承载段时, 一开始用“主要元音及过渡段”法, 但是多次尝试之后发现, 听耳很难分辨出, 尤其是有韵尾或多音节的情况, 所以最终选择“韵母段”, 同时仍然处理了“弯头”、“降尾”。在标注时, 选择用数字1-7来表示声调, 奇数为阴调, 偶数为阳调, 分别为:阴平-1、阳平-2、上声-3、去声-5、入声-7。
说明:在标注入声时发现, “百”、“读”在蓝线后的一段上有较为清晰的声调出现, 如果不选, 声音显得无力 (后补录, 发现还是这样, 可能是发音人的问题) , 就将后面一段清晰地声音也算在范围之类, 可能对数据有影响。最终T值里, 入声的值有几个基频点不到4, 其余的在4-5之间, 但都偏向4, 就将入值归为4, 与传统值和刘利李老师的实验值5不同。
标注完成之后, 保存文件。
1.4.4提取基频值:
点击Control-Open Praat Script选择脚本:提取音节或声韵母的音高数据, 运行Run将标注层数设为2, 将每个样本提取的数据数设为10。
1.4.5用Excel表格进行数据分析和做声调格局图:
(1) 新建Excel表格, 导入外部数据, 数据为来自C盘temp文件夹中的Pitch (txt) 文档。
(2) 复制数据到Sheet2, 整理数据, 标注顺序排序, 留下标注内容、时长和各基频点值。
(average) 和对数值 (log10) 和标准差 (stdev) 。
(4) 利用Excel表的“公式”, 选取所有对数值中得最大值和最小值阴 (平设最大值刚为、a专, 、尊最、丁小、边值、安为、b开, 、粗对、昏数、商值、三变、飞量为x) 。
(5) 根阳平据公式T=穷 (、l床gx、才-l、g平b、) 寒, 、鹅计、娘算、人出、龙相、难应、麻的、云五度值, 并保
上声纸、l走ga、短-l、g草b、好、受、五、女、老、武、买、有阴平刚、专、尊、丁、边、安、开、粗、昏、商、三、飞
留两位小去数声。帐、正、对、汉、送、放、大、数、饭、岸、漏、用
阳平穷、床、才、平、寒、鹅、娘、人、龙、难、麻、云
(6) 将入声计算出来曲的、出五、突度、各值、桌绘、百制、尺成、拍折、药线、杂图、读, 、修舌改刻度。
上声纸、走、短、草、好、受、五、女、老、武、买、有
要检查数据是否合格, 就要算出基频点的标准差, 单字调<或=25时, 说明数据是可靠的。在本次试验中, 所有数据只有阴平的点9为25.96和点10的标准差为28.88, 其余都合格。
点1-0121
2.1.1.1与已有实验值相比
(1) 阴平和上声的调值完全一样。
(2) 阳平都显示为升调, 上升的幅度大致相同, 但此实验值略高于已有的实验值。
(3) 去声和入声都是高平调, 但此实验值略低。
(4) 相比较, 二次实验值虽有具体数据的不同, 但显示的调型和声拱特征是一样, 此次实验的数据具有可采纳性。
2.1.1.2与传统值 (听感描写) 的相比
对于扬州方言单字调的研究成果, 主要记录在《江苏省志·方言志》与《扬州方言词典中》, 也就是所列出的传统值。实验结果与听感描写基本一致, 但也存在差异:
(1) 阴平的实验结果是41, 但听感描写分别是21和11, 存在较大差异。实验值41是一个全降调, 传统值21也是降调, 数据的不同可能与发音人有关, 同时听觉毕竟只是一个大概感知, 与数据计算会有一定的差别。但另一传统值11, 就完全不同, 这是个低平调, 而不是降调, 可能作为本地人听本地音, 又受到普通话阴平55值的影响, 觉得扬州方言的阴平发音与之相似, 只是低了个调。但两次实验值和传统值1都
认为是降调, 只是调域不同, 那11这个值就有待斟酌。
(2) 阳平的描写较为一致, 都是一个升幅不大的声调实验值与传统值分别是35、24和34、35, 没有多大出入。
(3) 上声的实验值是32, 传统值是42, 只是调域起点的不一样, 都是一个中降调, 结果基本一致。
(4) 去声的已有实验值和传统听感值都是55, 一个高平调。本次实验结果是44, 也是一个高平调, 但发音较低, 可能与发音人本身有关, 但并不与55值冲突。
(5) 入声已有实验值是5, 本次实验和传统值是4, 都是短促的高平调, 同时听感上都能感到短促的收缩。
综上, 实验的结果与听感描写是相一致的, 不同大多是具体数值的差异, 调类、调型也是相同的。可见实验的手段是对传统语音学“口说耳辩”的补充, 利于更加细致的比较研究。
2.1.1.3声调的声学空间
“每一种声调语言或者方言, 都具有一个特定的声调格局。声调格局是由该语言或方言中全部单字调所构成的格局, 是各种声调变化的基础形式。而每一种声调在声调格局中不仅是一条曲线, 而且是一条的带状的声学空间。可以采用带状的包络线来表示声调调位的声学空间。只要一条声调曲线位于这个声学空间中, 就符合这个声调的特征, 就不会为其他的声调。”虽然两次实验值有数据差异, 与传统值也有差别, 但从声调的声学空间来看, 是在范围之内, 也反过来证明了声学空间的存在。
2.2声调承载段讨论
声调承载段的认识发端于声调与音段的认识关系。中国语音学界主要有三说:1.音节说:声调由整个音节承载;2.带音说声调由音节的带音部分承载, 包括带音声母;3.韵母说:声调附着于音节的韵母之上。1995-1996林茂灿的讲话提出“主要元音及过渡段”是声调的承载段。从语图和“弯头”、“降尾”来看, 这种说法更为准确, 但实际操作困难。到底哪里是主要元音, 切分不易, 所以本次实验采取了“韵母段”的做法。在实际操作中, 听感与语图会有差异, 本人将窄带语图不断放大, 但有时还是很难分清, 采取了往韵母段靠的方法, 保证承载段的稳定性。最后结合语图, 处理“弯头”和“降尾”。
原始数据表格:
去声220.44222.98220.93221.10222.32218.86218.15219.44219.70219.92
参考文献
[1]宋益丹.南京方言声调实验研究, 2006.
[2]丁琳.姜堰方言声调实验研究, 2005.
[3]刘利李.江淮方言声调实验研究和折度分析[M].巴蜀书社, 2007.
[4]石峰.语音格局——语音学与音系学的交汇点[M].商务印书馆, 2008.
[5]南开大学语言研究所.语音学实验研究报告写作规范 (草案) [J].南开语言学刊, 2009 (1) .
[6]刘俐李.汉语声调的曲拱特征和降势音高[J].中国语文, 2005 (3) .
数据结构实验报告 篇3
【关键词】教材整合; 教与学;能力培养;有效课堂
【中图分类号】G623.31 【文献标识码】B 【文章编号】2095-3089 (2012)02-0057-02
1 课题的提出
针对传统教学重知识的传授,轻能力的培养,重视教师的教,忽视学生的学,重教法、轻学法的特点和弊端,对于实践性极强的语言学科来说,实施传统教法无疑有碍于学生语言一种正确处理教与学关系的新途径,从课文教学人手,找准外语教学教法的最佳结合点,改变“重教轻学”的现象,摆正教师的位置和学生的地位,更充分地发挥教师的主导作用与学生主体作实践活动,限制了学生的言语活动量,不利于语言运用能力的培养,造成了教与学的严重失调。
课堂教学质量的提高,需要教与学双边的完美结合,需要教与学的有机协调,因此,保证教学双边的协调性与完整性是本实验的重点和焦点。由于课文教学为外语教学的主渠道,占据了课堂教学的大部分时间,因此,以改革英语课文教学为突破口,努力探索课文教学教与学的协调性为本课题研究的核心,旨在寻求用,以获得大面积提高教学质量的效果,进而达到培养学生的言语能力和自学能力的目的。
2 实验目的
从课文教学入手,找准外语教学教法与学法的最佳结合点,改变“重教轻学’的现象,正确处理教与学之间的关系,摆正教师的位置和学生的地位,更充分地发挥教师的主导作用和学生的主体作用,以获得大面积提高教学质量的效果,进而达到培养学生的言语能力和自学能力的目的。
3 实验原则与指导思想
3.1 坚持教师为主导、学生为主体的原则。 本原则要求在实验的整个过程中,必须坚持教师的示范作用。教师要根据教学大纲决定外语教学的指导思想、目的、内容、方法、进度和考核教学质量的方法,面向全体学生、针对不同程度的学生安排不同的训练内容,处理好教材中难点、知识之间的联系;学生应在教师的指导下,遵循学习和运用英语的心理认识规律,在掌握了一些语言知识和能力的基础上,应积极主动地自学,进行预习,基本上理解新知识和课文的内容,划出重点、难点、疑难问题,以便上课时重点听讲、质疑,进一步理解所学内容。在理解的基础上,要主动积极地进行听、说、读、写全面操练,变知识为自动化的熟练技巧并形成技能。
3.2 坚持外语教学与能力培养的指导思想。 本原则要求各种能力的培养应贯串外语教与学的始终。外语学习方法论认为,外语学习应分为呈现、实践、迁移三个阶段。呈现阶段是认识和熟悉课文,给学生提供外语素材及外语经验的阶段;实践阶段是逐渐缩小控制以进入交际的阶段,包括控制套用,类推使用和整理创新三步。无论是语言学家H.帕默、w.里弗斯、J.佩克还是w.斯威特对外语学习持有不同的观点和看法,但都认为其与各种能力的培养具有密切的关系。毫无疑问,应坚持外语教学中模仿力,观察力、想象力、类比力、概括力、逻辑思维和分析力、归纳——演绎力、综合力和创造力的培养同时注重能力培养的阶段性。
4 实验步骤与内容
学生学习和运用英语的心理认识过程有三个层次:了解、操练和运用。了解是指理解所学语言知识及其规律和机械地记忆套用语言知识。操练是指有意义的听、说、读、写言语操练,并通过操练培养听、说、读、写技能。运用是指灵活运用所学语言知识进行听、说、读、写言语交际活动。
从哲学的观点来看,教师的教是外因,学生的学是内因,外因要通过内因起作用。我们高九七级三位外语教师遵循外语教育规律和学生学习和运用英语的心理认识规律,从课文教学改革人手,改变原有的教学程序和方法,将课文教学分为词汇学习,课文处理和检测验收三部分,用十个课时的时间完成从知识的识记、知识的运用到技能的形成的教学全过程。步骤如下:
4.1 教学过程划分
第一部分词汇学习
本步骤重点解决词的音、形、义、性及用法。课时一,在语音室上,要求学生掌握词的拼读,并做到发音准确,书写合格。采取学生预读、听录音仿读,同学领读、教师
教读,全班齐读,个别朗读和结合课文读单词的方式,将加大读词的密度和强度,加强对词形的意识。单一要求实施多种形式的教学手段必将活跃课堂气氛,激发学习兴趣。课时二和课时三,要求学生着重掌握词的义、性及用法并加强自学能力的培养。教师提供教案(材料)给学生。学生自学为主,教师指导学习为辅,识记、理解和初步运用重点词、短语、句型、词语比较等语言知识,同时做好重点语言知识运用的准备工作,如(菲)控制性造句,上下文的填空,释义等,规定先做在“预习本”上。
第二部分课文处理
本步骤着重处理课文内容及语言点的理解、归纳和运用。课时四,学生略读课文,完成“目标检测题,和所提供的阅读理解题,师生讨论,老师评讲以获取学生理解课文程度的信息。课时五,学生细读课文,将重点句、难句(一般是复合句)的分析(用英语表述)、翻泽及改写做在预习本上。以学生先宣讲,老师后讲评的方式共同排除阅读中又一障碍——语句结构的理解。课时六,答疑课。疑难问题由以小组为单位用书面的形式课前呈交和当堂提出的两部分组成。课时七,学生精读课文,对课文进行归纳、总结。写出主题句、段意和中心思想,就课文进行答问。将课文复述、改写、缩写或命题书面表达做在预习本上。
第三部分检测验收
本步骤通过各种检测手段加强对学生进行听、说、渎、写能力的培养。课时八,复述课文,听写短文,完成就词汇、课文内容的测试题。课时九和课时十,评讲“课课练”高考模拟试题(讲评前得用两节辅导的时间完成此卷,送微机室统一评分,成绩保存)。
说明:
l、老师需要提供一份全课的教案材料,内容包括本课重点词和短语的用法举例和比较;一份有关词汇和课文的检测题:一套“课课练”高考模拟试题。
2、学生需要一个“预习本”,学完一课检查一次。
3、针对某一问题布置课文后的练习题。
4、学生将获得三个半课时的自学时间,能改变老师占用舍登时间、“满堂灌”的局面,为学生自学能力的培养提供条件。
4.2 教学程序划分。
课文教学教与学程序三段示意图
(按照外语学习分段说、学生心理认识过程和师生参与顺序)
5 实验对象和时间
实验班和对比班均由高97级六个平行班共328人组成,采用单组实验法进行纵向比较,将从第六课后“课课练”考试成绩与第六课前的某些“课课练”考试进行对比。由于考题出自于同一本资料,其难度系数的一致性可保证比较的可靠性。
實验时间:第一阶段(准备阶段)(1995年12月),收集高一册第一课到高二册第五课的“课课练”考试成绩,进行第二次“自学能力”现状的“民意测验”。
第二阶段,(实验和调查阶段)1996年1月一1996年6月),进行课题实验,收集各种资料和考试成绩,进行第二次“自学能力”现状的“民意测验”。
第三阶段(实验和分析总结阶段)(1996年7月一1996年9月)实验的分析和总结,写出实验报告、经验总结或课堂实录。
6 制度管理
本实验得到校方的大方支持。由本年级的三位外语教师(林安学、郭宗玉、于天伟)共同承担和组织课题实验,共同商讨教案,轮流撰写,随时研讨存在的问题和研究解决问题的措施和对策,定期检测。成绩、资料由郭宗玉老师管理;学生的“预习本”定期检查,统一保管。
7 实验效果
1997年6月,荣昌县分管局长、教研室、全县高中年级大部分兄弟学校的英语教师、荣昌中学外语组组员及校领导对本课题实验进行验收评定,现场听了由林安学在高九七级一班主讲的“检测验收’部分的一堂课,课后听取了就此实验所做的汇报和总结。让学生填写了调查问卷、查阅、统计、分析与实验有关的各种资料、数据、展开了充分的实事求是的评论。大家一致认为。该实验在课文教学中如何正确处理教与学双边关系及对学生的能力培养等方面取得了良好的教学效果,具有很强的可行性、推广性的特点。
数据结构实验报告 篇4
指导教师 姓
名班
级学
号实
验 室
黄梅根
钟志伟 0140703 07310325 S331-B
2008-11-29
单链表的插入和删除实验日志
指导教师:黄梅根
实验时间:2008年10月14日 学院 通信学院 专业信息工程
班级0140703 学号07310325姓名 钟志伟 实验室S331-B
实验题目:
单链表的插入和删除 实验目的:
了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。实验要求:
建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。实验主要步骤: 分析、理解程序。调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。3 修改程序:
增加插入结点的功能。
将建立链表的方法改为头插入法。
实验结果:
心得体会:
通过本次实验,我了基本上掌握了线性表的逻辑结构和链式存储结构,从中也发现自己在这方面的知识掌握的还不是很扎实,下来要多看书,将基本的知识要掌握牢固。
二叉树操作实验日志
指导教师:黄梅根
实验时间:2008年 10 月28 日 学院 通信学院 专业信息工程
班级0140703 学号07310325姓名 钟志伟 实验室S331-B 实验题目: 二叉树操作
实验目的:
掌握二叉树的定义、性质及存储方式,各种遍历算法。
实验要求:
采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历的操作,求所有叶子及结点总数的操作。
实验主要步骤;1.分析、理解程序。
2.添加中序和后序遍历算法.3.调试程序,设计一棵二叉树,输入完全二叉树的先序序列,用#代表虚结点(空指针),如ABD###CE##F##,建立二叉树,求出先序、中序和后序以及按层次遍历序列,求所有叶子及结点总数。
实验结果:
心得体会:
通过此次实验,我基本掌握了建立二叉树,并且掌握了先序、中序和后序以及按层次遍历的操作,更好的掌握了书本上的知识。
图的遍历操作实验日志
指导教师:黄梅根
实验时间:2008年 11 月 11 日 学院 通信学院 专业 信息工程
班级 0140703 学号 07310325姓名 钟志伟实验室S331-B 实验题目:
图的遍历操作 实验目的:
掌握有向图和无向图的概念;掌握邻接矩阵和邻接链表建立图的存储结构;掌握DFS及BFS对图的遍历操作;了解图结构在人工智能、工程等领域的广泛应用。实验要求:
采用邻接矩阵和邻接链表作为图的存储结构,完成有向图和无向图的DFS和BFS操作。实验主要步骤:
1、分析、理解程序。
2、调试程序。设计一个有向图和一个无向图,任选一种存储结构,完成有向图和无向图的DFS(深度优先遍历)和BFS(广度优先遍历)的操作。
实验结果:
心得体会:
通过本次实验,我掌握了有向图和无向图的一些概念,了解了DFS和BFS对图的遍历操作。
循环链表实验日志
指导教师:黄梅根
实验时间:2008年 11 月 25 日 学院 通信学院 专业 信息工程
班级 0140703 学号 07310325 姓名 钟志伟 实验室S331-B 实验目的:
了解和掌握线性表的逻辑结构和链式存储结构,掌握循环链表的基本算法及相关的时间性能分析。
实验要求:
1.实现循环链表的建立
2.输出循环链表节点的指针序列,要求先输出自身的指针,再输出其指向的 节点的指针。如一个有五个节点的循环链表,各节点地址依次为3109,3290,3106,3595,3390,则输出应为:
3109
3290
3290 3106
3106 3595
3595 3390
3390
3109 3.对链表进行由大到小的排序,输出排序完成后的链表和链表的指针序列。
源代码:
#include“stdio.h” #include“string.h” #include“stdlib.h” #include“ctype.h” typedef struct node
//定义结点
{ char data[10];
//结点的数据域为字符串
struct node *next;
//结点的指针域
}ListNode;typedef ListNode * LinkList;
// 自定义LinkList单链表类型 LinkList CreatListR1();
//函数,用尾插入法建立带头结点的单链表 ListNode *LocateNode();
//函数,按值查找结点 void DeleteList();
//函数,删除指定值的结点 void printlist();
//函数,打印链表中的所有值
void DeleteAll();
//函数,删除所有结点,释放内存
//==========按值查找结点,找到则返回该结点的位置,否则返回NULL========== ListNode *LocateNode(LinkList head, char *key){
ListNode *p=head->next;//从开始结点比较
while(p&&strcmp(p->data,key)!=0)//直到p为NULL或p-> data为key止
p=p->next;
//扫描下一个结点
return p;
//若p=NULL则查找失败,否则p指向找到的值为key的结点 }
//==========用尾插入法建立带头结点的单链表=========== LinkList CreatListR1(void){
char ch[10];
LinkList head=(LinkList)malloc(sizeof(ListNode));//生成头结点
ListNode *s,*r,*pp;
r=head;
r->next=head;
printf(“Input # to end ”);//输入“#”代表输入结束
printf(“Please input Node_data:”);
scanf(“%s”,ch);
//输入各结点的字符串
while(strcmp(ch,“#”)!=0){
// pp=LocateNode(head,ch);
//按值查找结点,返回结点指针
// if(pp==NULL)
{
//没有重复的字符串,插入到链表中
s=(ListNode *)malloc(sizeof(ListNode));
strcpy(s->data,ch);
r->next=s;
r=s;
r->next=head;
}
printf(“Input # to end ”);
printf(“Please input Node_data:”);
scanf(“%s”,ch);
}
return head;
//返回头指针 } //==========删除带头结点的单链表中的指定结点======= void DeleteList(LinkList head,char *key){
ListNode *p,*r,*q=head;
p=LocateNode(head,key);
//按key值查找结点的 if(p==NULL){
//若没有找到结点,退出
printf(“position error”);
exit(0);
}
while(q->next!=p)
//p为要删除的结点,q为p的前结点
q=q->next;
r=q->next;
q->next=r->next;
free(r);
//释放结点 } //===========打印链表======= void printlist(LinkList head){
ListNode *p=head->next;
//从开始结点打印
while(p!=head){ printf(“%s,%sn ”,p->data,p->next);
p=p->next;
}
printf(“n”);} //==========删除所有结点,释放空间=========== void DeleteAll(LinkList head){
ListNode *p=head,*r;
while(p->next){ r=p->next;
free(p);p=r;
}
free(p);}
//==========主函数============== void main(){
char ch[10],num[10];
LinkList head;
head=CreatListR1();
//用尾插入法建立单链表,返回头指针
printlist(head);
//遍历链表输出其值
printf(“ Delete node(y/n):”);//输入“y”或“n”去选择是否删除结点
scanf(“%s”,num);
if(strcmp(num,“y”)==0 || strcmp(num,“Y”)==0){
printf(“Please input Delete_data:”);
scanf(“%s”,ch);
//输入要删除的字符串
DeleteList(head,ch);
printlist(head);
}
DeleteAll(head);
//删除所有结点,释放内存 }
实验结果:
心得体会:
计组实验数据通路实验报告 篇5
预习实验报告
疑问:
1、数据通路是干嘛的?
2、数据通路如何实现其功能?
3、实验书上的存储器部分总线开关接在高电平上,是不是错了?
一、波形图:参数设置:
信号设置:
clk:
bus_sel:
alu_sel:
ld_reg:
pc_sel:
we_rd:
k:
d:
d~result:
ar:
pc:
仿真波形
实验报告
Endtime:2.0us
Gridsize:100.0ns
时钟信号,设置周期为100ns占空比为50%。
sw|r4|r5|alu|pc_bus的组合,分别代表的是总线(sw_bus)开关,将
存储器r4的数据显示到总线上,将存储器r5的数据显示到总线上,将alu的运算结果显示到总线上,将pc的数据打入AR中二进制输入,低电平有效。
m|cn|s[3..0]的组合,代表运算器的运算符号选择,二进制输入,高
电平有效。
lddr1|lddr2|ldr4|ldr5|ld_ar的组合,分别表示将总线数据载入寄存器
r1,r2,r4, r5或AR中,二进制输入,高电平有效。
pc_clr|ld|en的组合,分别代表地址计数器PC的清零(pc_clr)、装
载(pc_ld)和计数使能信号(pc_en),二进制输入,低电平有效。信号we和rd的组合,分别代表对ram的读(we)与写(rd)的操作,二进制输入,高电平有效
k [7]~ k [0],数据输入端信号,十六进制输入。
d[7]~d[0],数据输出中间信号,十六进制双向信号。
d [7] result ~d[0] result,最终的数据输出信号,十六进制输出。ar[7]~ ar[0],地址寄存器AR的输出结果,十六进制输出。pc [7]~ pc [0],地址计数器PC的输出结果,十六进制输出。
以在01H单元中写入05H、02H单元中写入0AH并进行【(A加B)减(非A与B)加B】为例:
1)初始状态:bus_sel=11111,alu_sel=00000,ld_reg=00000,pc_sel=100,we_rd=00,k=00H,总线上无数据,呈高阻态。2)读取01H单元的05A:
① 置数法PC=01H:bus_sel=01111,pc_sel=101 ② PC->AR:bus_sel=11110,ld_reg=00001 ③ 读01H单元的数据放入R1中:bus_sel=11111,ld_reg=10000,we_rd=01 3)读取02H单元的0AH:
① PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 ② 读01H单元的数据放入R2中:bus_sel=11111,ld_reg=01000,we_rd=01 4)将地址加到03H :bus_sel=11110,ld_reg=00001,pc_sel=111 5)验证数据并运算: bus_sel=11101 ① 读取R1中的数据:alu_sel=010000,得到R1=05H ② 读取R2中的数据:alu_sel=101010,得到R2=0AH ③ 计算(A加B)结果存于R4中:alu_sel=011001,ld_reg=00100,结果为0FH ④ 计算(非A与B)结果存于03H单元中:alu_sel=100010,we_rd=10,结果为0AH ⑤ 计算((A加B)加B)结果存于04H单元中:
R4->R1:bus_sel=10111,ld_reg=10000 PC+1,PC->AR:bus_sel=11110,ld_reg=00001,pc_sel=111 计算((A加B)加B)结果存于04H单元中:bus_sel=11101,alu_sel=011001,we_rd=10 ⑥ 计算(((A加B)加B)减(非A与B))结果存于05H中:
((A加B)加B)->R1:bus_sel=11111,ld_reg=10000,we_rd=01 (非A与B)->R2:
PC=03H:k=03H,bus_sel=01111,pc_sel=101 PC->AR:bus_sel=11110,ld_reg=00001 (非A与B)->R2:bus_sel=11111,ld_reg=01000,we_rd=01 PC=05H:
PC=05H:k=03H,bus_sel=01111,pc_sel=101 PC->AR:bus_sel=11110,ld_reg=00001
(((A加B)加B)减(非A与B))结果存于05H中:bus_sel=11101,alu_sel=000110,we_rd=10 最后结果为0FH。结论:
本实验的设计能结合了运算器和存储器,能实现在mif文件中进行初始化,将固定地址单元中存储的数据读取到运算器中进行(((A加B)加B)减(非A与B))的运算并将结果存于指定的内存单元中,与实验要求一致,故电路设计正确。
二、实验日志
预习疑问解答:
1.通路是干嘛的?
在数字系统中,各个子系统通过数据总线连接形成的数据传送路径称为数据通路.2.通路如何实现其功能?
在这次的实验中,数据通路主要是由运算器部分和存储器部分组成的,通过运算器的运算结合存储器在mif文件的中的操作进行数据的传输与存储,从而构成一个数据通路.错
3.书上的存储器部分总线开关接在高电平上,是不是错了? 事实证明没有接错.
思考题:
1. 画数据通路电路图时,如何连结单一总线? 如图:
ALU模块的sw_bus依然连接bus_sel,存储器部分的sw_bus连接高电平.2. 如何统一两个模块的总线输入端k[7..0]及inputd[7..0]?
答:如图: 输入放在运算器部分,存储器部分无输入,存储器部分的数据要么来自总线传输,要么从mif文件中读取.实验中遇到的问题:
1.把之前的alu和ram的原理图拷到了当前工程下面。直接生成该工程的符号文件,连接起来,但是仿真有问题。
几乎是在每一次和总线交换数据的时候都得不到正确的值。下面是解决的过程:
我怀疑是两个模块之间通过总线传输的数据没有传输成功,于是把alu模块的d引了一个输出端口d_alu,从ram模块的d引出了一个输出端口d_ram,在仿真波形图上,然后就可以看到了数据到达总线上了,而且这个时候d的值也能看到了,只是后面的最后一个读操作出来的数据不对,本来应该是写进去的07,但现在是17,再仿真就会变成别的数据。
2.在连接电路图的时候,我以为存储器部分的sw_bus连在高电平上是错的,然后又连到了bus_sel[4],所以得到了上一个部分的仿真结果,后来不研究了一下那个高电平,发现是用来处理单一总线问题的,就改成了与书上一样的图,我以为上面出现的错误结果和这个有关,改了之后波形图有变化,但是,还是是错误的.但是在两种情况下功能仿真的结果都是正确的:
问题解决了~
原因是周期太短,计算结果还来不及存入到内存单元中,把写入内存的时间周期延长一个周期结果就出来了。电路本身没有问题。
结构抗震静力实验方法综述 篇6
1 拟静力试验
拟静力试验方法几乎可以用于各种工程结构或构件的抗震性能的研究, 是目前在结构 (或构件) 抗震性能研究中应用最广泛的一种试验方法。它是以一定的荷载或位移作为控制值对试件进行低周反复加载, , 以获得结构非线性的荷载--变形特性, 故又称为“低周反复加载试验”或“恢复力特性试验”。这种试验方法是在二十世纪六、七十年代基于结构非线性地震反应分析的要求提出的。应用该试验方法可以最大限度地利用试件提供的各种信息.其根本目的是对结构在荷载作用下的基本性能进行深入研究, 进而建立恢复力模型和承载力计算公式, 探讨结构的破坏机制, 并改进结构的抗震构造措施。
1.1 试验设备与加载装置
对工程结构进行拟静力试验常用的设备有加载设备、反力墙、试验台座、荷载架等。其中加载设备近年来谁着经济的发展和科学技术水平的提高, 结构加载设备有了质的改变, 目前许多结构试验室主要采用电液伺服加载系统进行结构的拟静力试验加载, 并采用计算机进行试验控制和数据采集。
1.2 单向反复加载制度
目前国内外较为普遍采用的单向 (一维) 反复加载制度主要有力控制加载、位移控制加载、力—位移混合控制加载。
1.2.1 位移控制加载
位移控制加载是在加载过程中以位移 (包括线位移、角位移、曲率或应变等) 作为控制值或以屈服位移的倍数作为控制值, 按一定的位移增幅进行循环加载。当试件具有明确屈服点时, 一般都以屈服位移的倍数为控制值。当试件不决有明确屈服点时 (如轴压比较大的柱) 或干脆无屈服点时 (如无筋砌体) , 则由研究者根据知识或经验规定一个合适的位移标准值来控制试验加载。在位移控制加载中, 根据位移控制的幅值不同, 又可分为变幅加载、等幅加载和变幅等幅混合加载。
变幅位移控制加载多用于研究构件的恢复力特性, 并建立恢复力模型。一般, 每一级位移幅值下循环二至三次, 由试验测得的滞回曲线建立构件的恢复力模型。等幅位移控制加载主要用于确定构件在特定位移幅值下的特定性能, 例如极限滞回耗能、强度降低率和刚度退化规律等, 混合位移控制加载可以综合地研究构件的性能, 其中包括等幅部分的强度和刚度变化, 以及在变幅部分特别是大变形增长情况下强度和耗能能力的变化。在上述三种位移控制加载制度中, 以变幅等幅混合加载方案使用得最多。
1.2.2 力控制加载
力控制加载是在使用加载过程中以力作为控制值, 按一定的力幅值进行循环加载, 因为试件屈服后难以控制加载的力, 所以这种加载制度较少单独使用。
1.2.3 力—位移混合加载
这种加载制度是先以力控制进行加载, 当试件达到屈服状态时改用位移控制, 一直至试件破坏, 《建筑抗震试验方法规程》 (GBJ101-96) 规定:试件屈服前, 应采用荷载控制并分级加载, 接近开裂和屈服荷载前宜减少级差加载;试件屈服后应采用变形控制, 变形值应取屈服时试件的最大位移值, 并以该位移的倍数为级差进行控制加载;施加反复荷载的次数应根据试验目的确定, 屈服前每级荷载可反复一次, 屈服以后应反复三次。
1.2.4 多点同步加载
多层房屋或多层框架结构是经常遇到的试验对象。这样的试件就需要用多个加载器加载, 如图所示。由于地震荷载在结构上的作用常常近似成为按倒三角形分布的, 所以各质点的加载应由上到下也要按倒三角形分布加载。当结构进入塑性状态后特别是在下降阶段控制作用力是很困难的, 所以目前的控制方法是选择一个上部的电液伺服加载器为主控加载器。主控加载器采用位移控制模式但监测的是作用力的大小, 其余的加载器用力控制模式, 作用力数值的大小根据主控加载器量测值的大小按比例确定。现在的主要问题是如何保证几个加载器的同步, 对于多质点体系, 各加载器的作用是耦联的, 一个加载器力值的改变将影响到其他加载器作用力的变化。解决这个问题有两种途径, 这里针对下图中三质点的结构体系来说明。
一种方法称之为“模控方法”即把3号加载器的力信号乘上比例系数后直接作为2号加载器和1号加载器的力控制命令信号。由于模控控制过程是连续反馈的, 所以当3号加载时, 2号加载器和1号加载器将迅速地将3号加载器的量测力值动作。这样计算机只控制3号加载器的加载, 对2号和1号加载器采集力和位移信号并进行安全监视。
另一种方法称为“数控方法”, 是将3号加载器作为主控加载器采用位移控制, 另外两个加载器作为从动加载器采用力控制模式。对于主控加载器采用较小的位移步长进行加载, 由于三个加载器作用力是耦联的。所以, 在主控加载器的每一个加载步长之内, 两个从动加载器的力控制加载需经几次调整迭代, 直到满足给定的误差。然后主控加载器进行下一步的加载。
1.2.5 双向反复加载制度
为了研究地震对结构构件的空间组合效应, 克服采用在结构构件单方向 (平面内) 加载时不考虑另一方向 (平面外) 地震力同时作用对结构影响的局限性, 可在x、y两个主轴方向 (二维) 同时施加低周反复荷载。例如, 对框架柱或压杆的空间受力和框架梁柱节点在两个主轴方向所在平面内采用梁端加载方案加反复荷宰试验时, 可采用双向同步或非同步的加载制度。
(1) x、y轴双向同步加载
与单向反复加载相同, 低周反复荷载作用在与构件截面主轴成α角的方向做斜向加载, 使x、y两个主轴的方向的分量同步作用。
反复加载同样可以采用位移控制、力控制和两者混合控制的加载制度。
(2) x、y轴双向非同步加载
非同步加载是在构件截面的x、y两个主轴方向分别施加低周反复荷载。由于x、y两个方向可以不同步地先后或交替加载。
1.3 优缺点
拟静力试验与其他结构抗震试验相比, 突出优点是它的经济性和实用性, 从而它的应用具有广泛性。同时, 对试验设备和设施的要求比较低, 这也是一个优点。但由于拟静力试验中没有考虑应变速率的影响, 这又是它的不足。
2 拟动力试验
2.1 拟动力试验的基本概念
拟静力加载试验方法虽然是目前工程结构中应用最为广泛的试验方法, 可以最大限度地获得试件的刚度、承载力、变形和耗能等信息, 但是它不能模拟结构在实际地震作用下的反应。虽然地震模拟震动台试验是最理想的再现地震动和结构反应的试验方法, 高精度的多自由度地震模拟震动台的建造和发展为研究结构弹塑性地震反应提供了有效的手段, 但是对于大比例模型结构或构件, 需要有大型的地震模拟震动台, 设备投资很大, 从而影响了许多大型结构进行地震模拟试验。正是由于地震模拟震动台承载能力的限制, 一般的震动台试验只能进行小尺寸的模型试验;而小尺寸结构模型的动力相似律很难满足要求。尤其是在弹塑性范围内, 试验结果往往难以推算到原型结构中去, 这也是地震模拟台试验的不足之处, 因此限制了它的应用。虽然计算机技术有了迅速的发展, 结构的理论分析和计算水平有了很大的提高, 但是对于结构地震作用下的弹塑性响应计算, 需要事先给出结构的恢复力模型, 而这种恢复力模型的选择和参数确定是目前结构理论中还没解决好的问题, 尤其对于具有复杂形体和构造的结构体系更是如此。拟动力试验方法吸收了拟静力加载试验和地震模拟振动台试验两种方法的优点, 同时又考虑了结构理论分析和计算的特色, 可以模拟大型复杂结构的地震反应, 在工程结构抗震试验方面得到了广泛的应用。同时, 拟动力试验方法本身的研究也取得了重大进展, 特别是近年来, 在概念、方法、技术和设备等方面都与最初阶段的拟动力试验有了很大的不同, 应用领域也从最初的研究一般建筑结构扩展到了研究土-结构相互作用、桥梁结构、多维多点结构地震输入和设备抗震等方面。
用于工程结构弹塑性地震反应的拟动力试验系统产生于1974年。当初其目的在于研究目前描述结构或构件恢复力特性的数学模型是否正确, 进一步了解难以用数学公式表达恢复力特性的结构地震反应。此项试验获得了成功, 更为重要的是它标志着工程结构抗震试验方法的重大进展。从此, 拟动力试验方法在工程结构抗震试验研究中确立了它不可替代的地位。
与理论计算相比, 它无需对工程结构作任何假定就能获得结构体系的真实地震反应特征;而与拟静力试验和地震模拟振动台试验相比, 它既有拟静力试验那样经济方便的特点, 又具有振动台那样真实模拟地震作用的能力。
拟动力试验技术把电液伺服试验装置与计算机控制系统结合起来, 利用加载试验给出结构恢复力的实际数据, 利用计算机数据分析技术给出加载试验的逐步控制数据, 从而为原型结构的模拟地震试验开辟了一条新途径。与拟静力试验相比, 拟动力试验的试验周期缩短, 并且由于采用地震动时程作为加载制度, 因此, 试验结果能够良好地指示结构的地震反应过程, 值得指出的是, 尽管对于单层或双层框架结构可以采用更接近实际的位移控制制度, 但对于大型结构, 更实用的是将多自由度体系改变为等效单自由度体系进行联机试验。即对加载力沿高度的分布作出某种假定 (例如倒三角形分布) , 而仅对高度上某一点的加载器按位移控制, 并通过计算机联机控制实现, 其余各点的加载则按上述力分布假定按荷载控制加载器。80年代后, 日美合作进行的七层钢筋混凝土原型结构拟动力试验, 就是采用这种等效技术。拟动力试验技术中的控制难点在于计算误差的扩散, 需进一步研究。
结构抗震静力试验方法是我们研究工程结构抗震性能的常用的重要方法, 本文讨论的是目前实验室常采用的两种方法。但作为研究, 除上述各种试验类型外, 近年来还提出了许多新的模拟地震试验的思想。但目前见诸报道的试验很少, 具有深入研究价值的成功先例更少。但作为方向, 这方面工作是有发展潜力的。
摘要:工程结构抗震试验可分为两大类, 即工程抗震静力试验和工程结构抗震动力试验。而在试验室经常进行的主要有拟静力试验方法、拟动力试验方法.
关键词:抗震,拟静力试验,拟动力试验
参考文献
[1]李忠献.工程结构试验理论与技术.天津大学出版社, 2004.
[2]李顺国, 王学国.工程抗震试验技术现状.国外建材科技, 2003.
数据结构实验报告 篇7
【摘 要】针对在数据结构与算法实验教学中如何提高学生的编程和算法设计能力,分析并指出了在实验教学中普遍存在的问题,结合实验课的教学改革,开发实验平台,以期有效激发学生的学习兴趣和积极性,培养动手和创新能力。
【关键词】数据结构与算法 实验改革 平台建设
【中图分类号】 G 【文献标识码】A
【文章编号】0450-9889(2014)07C-0132-03
数据结构与算法实验是计算机专业学生必修基础课数据结构与算法的配套实验课程,是培养学生程序设计技能必不可少的重要环节。其目标之一是培养学生能运用理论知识与算法技术分析解决实际问题,能运用高级程序设计语言编程实现算法。从近年实验情况来看,在上机编写程序实现具体算法时遇到的种种问题,效果不容乐观,学生很难按时完成实验所要求的内容。
一、实验教学存在的问题与分析
数据结构与算法实验是一门实践性很强的技术基础课,经过多年实验教学分析,发现普遍存在如下主要问题:
(一)课程抽象,实验难度大
数据结构具有一定的抽象性,学生面对抽象概念在学习过程中常会遇到困难,基本每本理论教材在呈现概念时都会受到多方面限制,比如篇幅的限制,省略了算法细节部分或只给出伪代码,由学生自己补充,学生需要将算法用程序设计方法实现,完成有一定难度和技巧的程序设计并上机调试运行。对编程基础稍微薄弱的学生来说,就会出现不小的困难。
(二)实验相关资料偏少
由于学生基础薄弱,实验前又没有更多的相关实验资料进行预习,仅靠看课本理论和实验时的几个学时难以完成实验所要求的任务,也就谈不上创新人才的培养。
(三)学生程序设计语言课程基础薄弱
数据结构与算法课程是第四学期开设,对于很多先修课程要求高,高级程序设计语言是大学生进校第一、二学期学习,第一学期学习过程序设计思想,第二学期学习面向对象程序设计思想,由于大部分同学高中没接触过计算机语言学习,对过程程序设计思想还没掌握透,第二学期的面向对象程序设计学习又开始,学习非常吃力;导致常用的一些语法结构,如指针和结构体等内容难于理解。而这些语法恰恰是程序设计语言教学时的难点,也正好是学生完成数据结构实验必须掌握的内容,这给部分学生学习带来了一定困难。
(四)编程语言难
数据结构与算法编程语言描述主要用到C++语言,并大量用到了指针、链表和结构体等运算,这部分内容正好是大多数学生掌握知识点薄弱的环节,导致学生很难用高级语言将教材中的算法描述出来,由于问题的堆积、实验的欠账,容易使学生丧失学习兴趣和信心,导致学生间抄袭程序或实验报告的现象。
(五)编程技巧差
普通学生在低年级只编写过功能单一、结构简单的程序;而从功能单一的简单程序向涉及算法和稍复杂程序的数据结构编写过渡学习时,需循序渐进的方式和细致的引导,紧密结合理论教学。学生一下从简单编程直接到复杂的程序设计,不仅不适应,且设计技巧性较差。
二、实验教学改革目标的提出
根据以上学生实验时出现的诸多问题,特提出该课程的实验改革目标:
一是紧密配合理论教学,通过相关实验,帮助学生加深对数据的逻辑结构、存储结构、算法思想和具体实现等各个环节的整体理解,强化学生“结构——算法——编程”三者密切相关的意识,让学生思考和发现利用数据结构解决实际应用问题的有效方法,从而使学生分析和解决问题的能力得到锻炼和提高。
二是因材施教,让原本不同水平和能力起点的学生通过数据结构实验,能力和水平都有所提高,并且有兴趣有信心学好数据结构课程。
三是培养学生多方面能力,比如团队精神,口头表达能力,对学生全方面发展起到较好的推动作用。
三、调整实验项目内容,使其更加符合学生的认知规律
数据结构与算法实验内容主要是编程实验,提高学生的实践编程能力,巩固和强化理论课的教学效果。为了保证和提高实验教学质量,加深对课堂知识的理解,培养学生动手能力和思维能力,尝试对数据结构与算法实验项目进行重新设计,主要内容有:
针对编程基础较薄弱的学生,我们开发了数据结构与算法实验教学平台,学生在该平台上可获知实验相关的更多内容,通过平台引导学生重点回顾程序设计语言的基础知识,特别是数组和指针等有关操作。通过这些辅助手段,使学生对将要编写程序的一些语法和程序规则有所复习和掌握。还可通过平台对实验原理的动画演示,得到帮助和启发,从而更好更快地完成实验内容。
每个实验内容以章节为单位安排,依据实验教学目的,针对计算机相关专业所要达到的不同实验教学目标,以及考虑学生个体差异,每个实验项目都设置基础必做题和附加选做题两部分内容。这两类实验都需要紧密结合理论教学。必做题相对简单,目的在于帮助学生掌握基础知识。对于该部分题目,学生容易完成,能提高学生学习积极性并增强学习信心;选做题针对学有余力的学生,各个实验项目中的必做题均设计详细的实验准备内容,用于引导学生更好地进行实验前预习准备工作;主要在于培养和鼓励学生的学习兴趣和扩大知识面,进一步培养学生应用能力和创新意识,保证基础弱的同学学习兴趣,也提高了编程能力强的同学动手能力。例如,与线性表一章理论教学相配合的实验项目是多项式加减法,这个实验是对线性链表的建立、插入、删除、遍历等进行综合运算,对数据结构与算法第一实验内容来说稍有难度,可作为选作题或增加实验学时。在与栈一章理论教学相配合的实验项目是迷宫,这部分实验内容要求掌握回溯法和栈的基本运算等知识,有一定难度;用括号匹配作为必做题,能培养学生独立钻研,有助于学生解决问题能力的训练。
四、实验教学方法探究
实验前学生必须先预习和熟悉实验教学平台,了解实验内容的目的和要求,理解算法,描述语言的语法,查看相关资料,写预习报告。
通过多年实验教学中实验完成情况分析,软件工程专业的学生语言掌握较好,大部分学生能按时完成实验项目,其它专业的学生实验完成情况较差;由此,实验编程语言可以因学生而异,除软件工程专业的学生采用面向对象程序设计C++外,其它专业主要采用C语言描述,并且可增加前期语言学习时间。只有编程语言掌握扎实,数据结构与算法实验才能很好地完成。
开发数据结构与算法实验网络教学平台系统,该平台主要包含有课程介绍、在线课程、互动学习、下载资料等模块。有针对性地对每一个实验项目进行详细讲解和实验原理分析的动画演示,将抽象的数据结构问题制作为教学动画,借助形象的案例理解抽象的概念。教学内容利用Web页面为基本元素出现在站点中,学生通过访问站点来进行交互式学习。以辅助学生自主学习为主要目的,解决学生实验时无从下手的局面,启发学生思维,促进学生程序设计能力的提高。平台系统流程图如图1所示。
在线课程是教学平台核心部分,也是学生对数据结构与算法实验加深理解的重要环节,该平台从实验预习,到实验原理算法的演示,再通过在线课堂的视频教学、在线测试题训练及各种原理进行拓展教学。为了方便学生学习较抽象的数据结构与算法,能顺利进行程序编写,该教学平台还包含有18个flash动画用于原理算法演示,主要包括栈和队列、线性表、递归、查找与排序、树、图等内容,每个flash动画都有实验原理及主要代码实现过程,能更加形象展示数据结构的原理。例如:栈是一种先进后出的数据结构,在对栈原理进行动画设计时,根据用数组实现栈的特点,采取对栈先进行初始化的代码模块来对栈进行初始化,之后运行相应代码模块观察压栈出栈过程,同时还能观察到栈中数据的变化。在大部分flash动画演示过程中,flash页面左侧是代码部分,能体现当前执行的代码,并与右侧的动画演示及讲解分析一一对应。演示过程中如用户需要重新开始,还可点击“重新开始”按钮。这些flash动画演示将代码与动画有机的结合在一起,将抽象的代码转换为有形的动画,大大方便学生学习和对实验内容的理解。
如对栈原理进行动画演示的flash点击界面中压栈代码动画效果,该动画效果包括等待入栈的数字入栈的动画效果和位于等待区域的数字前移的动画效果。等待入栈的数字、入栈的动画效果和位于等待区域的数字前移的动画效果如图3所示。
图3 压栈的动画效果图
该平台互动学习是一个教师和学生互动的场所,实现动态交互的功能,教师能添加、更改、删除各种资源,学生、教师可以查看各种资源库里的资源。同时,学生可从平台上下载练习题和测试练习题资料,练习题有主要算法描述,可帮助学生进一步理解每个章节的算法原理,测试练习题有自动报错功能。
五、改革数据结构实验考核方式
让学生对以前所做实验作一个分析和总结。具体操作方案如下:首先将学生自由分组,小组成员共同从以前做过的实验项目选做题中选择一个进行程序的分析设计和编码实现,要求考虑程序的编写规范,程序的执行效率等方面。考核时,由实验教师从该小组随机抽取学生到讲台进行讲解和演示,根据程序完成情况和学生演示情况,决定该小组成员的平均得分,而每位学生的具体得分由小组成员内部根据该学生在该程序实现中的工作情况决定。通过这种方式,能培养学生的团队意识,达到互学互助的效果,同时也锻炼了学生的表达能力。
数据结构与算法实验环节教学改革的创新之处在于依托一门编程语言以及所开发的实验教学平台,因材施教,根据不同专业实际情况,综合考虑进行实验项目、实验内容和实验准备的合理设置,帮助学生在实验课上找到自己的最好学习方式,提高实验教学质量。
【参考文献】
[1]吴兵.高校计算机文化基础课程网络学习题库的研发[J].实验技术与管理,2011(2)
[2]朱洪浩.数据结构课程“工程化”实践教学模式研究[J].赤峰学院学报(自然科学),2013(15)
[3]马晓波,王翠茹.《数据结构》实践教学改革探讨[J].内蒙古农业大学学报(社会科学版),2010(02)
[4]赵耀红,孙宇.数据结构实验教学的实践与探索[J].长春大学学报,2012(04)
【数据结构实验报告】推荐阅读:
数据结构实验报告三线性表的链式存储09-02
数据结构实验图二05-17
数据结构实验教案12-09
数据结构实验顺序表09-10
数据结构 实验指导书07-28
数据结构的实验指导书08-26
《数据结构》实验教学方法探讨的教育论文12-09
数据结构读书报告08-26
课设报告数据结构10-24