课程实验报告记录+2
- 格式:doc
- 大小:1.07 MB
- 文档页数:10
北京信息科技大学信息管理学院实验报告课程名称java程序设计实验项目实验二类和对象实验仪器PC、jdk、jcreator专业_______ _________班级/学号________ ___学生姓名_______ __________实验日期实验地点成绩_______________________指导教师_____李春强_____________return p;}int getPower(int q){return q;}}Lab2_2:public class TV {void play(){System.out.println("正在播放动物世界");}}public class Family {TV homeTV;void buyTV(TV tv){tv=this.homeTV;System.out.println("购买一台电视");}}public class MainClass {public static void main(String args[]){ TV haierTV=new TV();Family zhangsanFamily =new Family();zhangsanFamily.buyTV(haierTV);haierTV.play();}}Lab2_3:public class Land {public static void main(String args[]){ Village.WaterAmount=200;System.out.println("水井中有水"+Village.WaterAmount+"升");Village v1=new Village();Village v2=new Village();int m=50;System.out.println("v1从水井中取水"+m+"升");v1.WaterAmount-=m;System.out.println("v2发现水井中有水"+Village.WaterAmount+"升");System.out.println("v2从水井中取水"+m+"升");v2.WaterAmount-=m;System.out.println("v1发现水井中有水"+Village.WaterAmount+"升");}}public class Village {public static int WaterAmount;}Lab2_4:import wukong.xiyou.*;public class SunRise{public static void main(String args[]){SquraEquation sq=new SquraEquation();sq.getRoot(100);System.out.println("此数的平方根为"+"sq.getRoot()");}}package java.wukong.xiyou;public class SquraEquation{public double getRoot(double num){ return Math.sqrt(num);}}1.实验名称、实验目的、实验内容、实验要求由教师确定,实验前由教师事先填好,然后作为实验报告模版供学生使用;2.实验准备由学生在实验或上机之前填写,教师应该在实验前检查;3.实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;4.实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;5.源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。
萃取实验报告记录(二)引言概述本文旨在记录萃取实验的相关过程和结果。
萃取是一种常用的分离和提取技术,通过溶剂的选择性溶解,将目标物质从混合物中分离出来。
本实验采用的是液液萃取方法,通过有机溶剂和水的两相分离特性,进行了目标物质的萃取。
本报告将依次介绍实验的目的、材料与方法、实验步骤与观察结果、实验数据的处理与分析以及总结与结论。
材料与方法1. 实验材料:包括目标物质、有机溶剂(如甲醇、乙醇等)、水溶液等。
2. 实验仪器:玻璃容器、移液管、离心机等。
3. 实验步骤:包括样品的制备、溶剂的选择、溶剂的添加和混合、两相的分离等。
实验步骤与观察结果1. 样品的制备:对目标物质进行处理和准备,如固态物质的研磨或溶液的制备。
2. 溶剂的选择:根据目标物质的特性,选择合适的有机溶剂,并考虑其溶解度和毒性等因素。
3. 溶剂的添加和混合:将样品溶解于有机溶剂中,通过轻轻摇动或搅拌混合,使目标物质均匀分布。
4. 两相的分离:将混合物置于离心机中进行离心分离,利用两相的密度差异将有机溶剂和水分离开来。
5. 观察结果:观察两相的分离情况,记录有机相和水相的颜色、浊度、体积等变化。
实验数据的处理与分析1. 计算萃取率:根据实验前后样品中目标物质的浓度差异,计算萃取率。
2. 数据统计与图表分析:将不同实验条件下的萃取率进行统计和比较,绘制图表展示结果。
总结与结论通过本实验的萃取操作,成功地将目标物质从混合物中分离出来。
根据实验结果,可以判断出最适合萃取的有机溶剂和萃取条件,为后续的科学实验和工业生产提供了依据。
此外,本实验还发现了某些因素对萃取率的影响,对于进一步优化萃取过程具有指导意义。
因此,液液萃取是一种有效的分离和提取技术,可以在不同领域中得到广泛应用。
注:以上内容为虚拟写作,仅供参考。
电子科技大学电子工程学院标准实验报告(二)课程名称:电子雷达对抗实验姓名:张基恒学号:2011029180014指导教师:廖红舒、张花国电子科技大学教务处制表一、实验室名称:信息对抗系统专业实验室二、实验项目名称:典型模拟、数字通信信号调制识别三、实验学时:3学时实验原理:AM、FM模拟通信信号具有不同的包络特征、瞬时频率特征,BPSK、QPSK、FSK、MSK数字通信信号具有不同的频谱特征,如BPSK平方和四次方后的傅立叶变换出现单根离散谱线,QPSK四次方后才有单根离散谱线,而FSK的功率谱有两根离散谱线。
因此针对这些信号特征,可通过设置特征门限区分不同通信信号,达到信号调制识别目的。
因此可让学生通过实际上机Matlab编程实验,对上述通信信号的特征进行仿真验证,加深理解不同通信信号的调制识别方法。
五、实验目的:利用MATLAB软件编程提取通信信号的包络特征、瞬时频率特征和频谱特征,同时使用简单的分类方法进行调制信号的识别。
让学生通过实际上机实验,加深理解不同通信信号的特点。
六、实验内容:1.模拟信号(1) 包络特征把上次实验产生的AM、FM信号分别求取它们的复包络即幅度值(取abs),画包络图。
并利用HIST函数统计它们的分布情况。
取100点做统计,hist(q,100),q代表复包络q=abs(y)。
比较这两种信号的包络特征。
(2) 瞬时频率特征把上次实验产生的AM、FM信号分别求取它们的相位值,(取ANGLE,然后去缠绕UNWRAP),然后取差分,画出瞬时频率图。
并利用HIST函数统计它们的分布情况。
取100点做统计,hist(q,100),q代表瞬时频率,q=diff (unwrap(angle(y)))。
比较这两种信号的瞬时频率特征。
2.数字信号频谱特征把上次实验产生的BPSK和QPSK信号分别求取它们的功率谱、二次方谱和四次方谱,观察它们之间的差异。
七、实验器材(设备、元器件):计算机、Matlab计算机仿真软件八、实验步骤:1、学习MATLAB软件的使用,并学习hist、unwrap、angle等Matlab软件函数的使用;2、在编写的信号源基础上,根据实验内容提取信号特征并进行调制识别。
在实际操作中要实现这样的条件比较困难,因而会导致测量的重复性、稳定性、一致性较差,误差也较大。
为了克服稳态法测量的这些弊端,本实验使用了一种新的测量方法——准稳态法,使用准稳态法只要求温差恒定和温升速率恒定,而不必通过长时间的加热达到稳态,就可以通过简单的计算得到导热系数和比热。
1.准稳态法测量原理考虑如图1 所示的一维无限大导热模型:一无限大不良导体平板厚度为2R,初始温度为t0,现在平板两侧同时施加均匀的指向中心面的热流密度q c,则平板各处的温度t(x, τ )将随加热时间τ 而变化。
以试样中心为坐标原点,上述模型的数学描述可表达如下:式中a = λ/ρc,λ为材料的导热系数,ρ为材料的密度,c 为材料的比热。
可以给出此方程的解为:考察t(x,τ )的解析式(2)可以看到,随加热时间的增加,样品各处的温度将发生变化,而且我们注意到式中的级数求和项由于指数衰减的原因,会随加热时间的增加而逐渐变小,直至所占份额可以忽略不计。
定量分析表明,当以后,上述级数求和项可以忽略。
这时式(2)可简写成:这时,在试件中心处有x = 0,因而有:在试件加热面处有x = R,因而有:由式(4)和(5)可见,当加热时间满足条件时,在试件中心面和加热面处温度和加热时间成线性关系,温升速率都为此值是一个和材料导热性能和实验条件有关的常数,此时加热面和中心面间的温度差为:由式(6)可以看出,此时加热面和中心面间的温度差↵t和加热时间⎜没有直接关系,保持恒定。
系统各处的温度和时间呈线性关系,温升速率也相同,我们称此种状态为准稳态。
当系统达到准稳态时,由式(6)得到根据式(7),只要测量进入准稳态后加热面和中心面间的温度差⊿t,并由实验条件确定相关参量q c和R ,则可以得到待测材料的导热系数λ。
另外在进入准稳态后,由比热的定义和能量守恒关系,可以得到下列关系式:比热为:式中为准稳态条件下试件中心面的温升速率(进入准稳态后各点的温升速率是相同的)。
计算机科学系实验报告
课程名称Linux系统班级11软件2班实验名称grep、make命令及shell编程指导教师XXX
姓名123 学号123456 日期
一、实验目的
1.学习grep工具的使用, 能熟练使用grep进行文本搜索。
学习简单的正则表达式, 能在grep中使用正则表达式进行文本搜索。
二、学习make命令的使用, 能编写简单的Makefile文件。
三、 4. 学习shell编程,掌握的shell语法,能编写简单的shell脚本。
四、实验环境
Win7下vm虚拟机, Linux操作系统
五、实验内容
1.grep的使用
make命令的使用
shell编程
六、实验心得
对于这些命令, 一开始我很迷茫, 直到后面一个同学说直接在百度搜了linux命令大全, 我就去查, 没想到查起来这么方便, 很快就做好了。
集美大学计算机工程学院实验报告实验名称基本静态路由配置课程名称计算机网络班级日期—成绩_________________一、实验目的1、为接口分配适当的地址,并进行记录。
2、根据拓扑图进行网络布线。
3、清除启动配置并将路由器重新加载为默认状态。
4、在路由器上执行基本配置任务。
5、配置并激活串行接口和以太网接口。
6、确定适当的静态路由、总结路由和默认路由。
二、实验场景对一个网络地址进行子网划分以便完成拓扑结构图所示的网络编址。
连接到ISP路由器的LAN编址和HQ与ISP路由器之间的链路已经完成。
但还需要配置静态路由以便非直连网络中的主机能够彼此通信。
实际拓扑图:192.163.2. E伽三、实验器材(1 )直通以太网电缆 3 条(2 )交叉以太网电缆 1 条(3)PC机 3 台(4)路由器 3 台(5)交换器 2 台四、实验内容任务1 :对地址空间划分子网步骤1 :研究网络要求。
在网络设计中,使用192.16820/24 地址空间。
对该网络进行子网划分,以提供足够的IP地址来支持60台主机。
步骤2 :创建网络设计时思考以下问题:需要将192.168.2.0/24 网络划分为多少个子网?_4个___这些子网的网络地址分别是什么?子网0: _192.168.2. 0/26 ___________________________子网 1 : _192.168.2.64/26 __________________________子网2: _192.168.2.128/26 _________________________子网3: _192.168.2.192/26 _________________________这些网络以点分十进制格式表示的子网掩码是什么?255.255.255.192以斜杠格式表示的网络子网掩码是什么?_/26 ___每个子网可支持多少台主机?_62 ______步骤3 :为拓扑图分配子网地址。
自控实验报告实验二一、实验目的本次自控实验的目的在于深入理解和掌握控制系统的性能指标以及相关参数对系统性能的影响。
通过实验操作和数据分析,提高我们对自控原理的实际应用能力,培养解决实际问题的思维和方法。
二、实验设备本次实验所使用的设备主要包括:计算机一台、自控实验箱一套、示波器一台、信号发生器一台以及相关的连接导线若干。
三、实验原理在本次实验中,我们主要研究的是典型的控制系统,如一阶系统和二阶系统。
一阶系统的传递函数通常表示为 G(s) = K /(Ts + 1),其中 K 为增益,T 为时间常数。
二阶系统的传递函数则可以表示为 G(s) =ωn² /(s²+2ζωn s +ωn²),其中ωn 为无阻尼自然频率,ζ 为阻尼比。
通过改变系统的参数,如增益、时间常数、阻尼比等,观察系统的输出响应,从而分析系统的稳定性、快速性和准确性等性能指标。
四、实验内容与步骤1、一阶系统的阶跃响应实验按照实验电路图连接好实验设备。
设置不同的时间常数 T 和增益 K,通过信号发生器输入阶跃信号。
使用示波器观察并记录系统的输出响应。
2、二阶系统的阶跃响应实验同样按照电路图连接好设备。
改变阻尼比ζ 和无阻尼自然频率ωn,输入阶跃信号。
用示波器记录输出响应。
五、实验数据记录与分析1、一阶系统当时间常数 T = 1s,增益 K = 1 时,系统的输出响应呈现出一定的上升时间和稳态误差。
随着时间的推移,输出逐渐稳定在一个固定值。
当 T 增大为 2s,K 不变时,上升时间明显变长,系统的响应速度变慢,但稳态误差基本不变。
2、二阶系统当阻尼比ζ = 05,无阻尼自然频率ωn = 1rad/s 时,系统的输出响应呈现出较为平稳的过渡过程,没有明显的超调。
当ζ 减小为 02,ωn 不变时,系统出现了较大的超调,调整时间也相应变长。
通过对实验数据的分析,我们可以得出以下结论:对于一阶系统,时间常数 T 越大,系统的响应速度越慢;增益 K 主要影响系统的稳态误差。
实验2实验报告在我们探索知识的道路上,实验就像是一个个神秘的冒险,每一次都充满了未知和惊喜。
今天,我要和大家分享的就是实验 2 的奇妙之旅。
这次实验的主题是关于具体实验主题。
为了能顺利完成这个实验,我们可是做了充分的准备。
老师提前给我们讲解了实验的原理和步骤,让我们心里有了个底。
实验开始啦!我紧张又兴奋地摆弄着实验器材,就像一个即将出征的战士在检查自己的武器装备。
我小心翼翼地拿起实验器材名称,眼睛紧紧盯着它,生怕一个不小心就出了差错。
旁边的小伙伴也都全神贯注,教室里安静得只能听到我们紧张的呼吸声。
按照预定的步骤,我先进行了第一步操作。
这一步看起来简单,可真做起来还真不容易。
我得控制好操作的关键因素,稍微有一点偏差,可能就会影响整个实验结果。
我深吸一口气,告诉自己要稳住。
经过几次尝试,终于成功地完成了这一步,心里不禁小小地欢呼了一下。
接下来的步骤越来越复杂,我感觉自己的大脑在飞速运转。
在进行关键步骤名称的时候,我遇到了一个大难题。
怎么都达不到预期的效果,我急得满头大汗。
这时,我想起老师说过的话:“遇到问题不要慌,要冷静思考。
”于是,我停下手中的动作,重新审视了一遍实验步骤,仔细观察了其他同学的操作,终于发现了自己的错误。
原来是我在错误的具体方面上出了岔子。
找到问题所在后,我迅速调整,终于顺利地度过了这个难关。
在整个实验过程中,我和小伙伴们互相帮助,互相鼓励。
当有人遇到困难时,大家都会停下自己的工作,一起出谋划策。
这种团队合作的氛围让我感到特别温暖,也让我明白了在学习的道路上,我们不是一个人在战斗。
经过一番努力,实验终于接近尾声。
当看到最终的实验结果时,那种成就感简直无法用言语来形容。
我们的努力没有白费,实验成功啦!通过这次实验,我不仅学到了知识,还锻炼了自己的动手能力和解决问题的能力。
更重要的是,我明白了做任何事情都要有耐心、细心,遇到困难不能轻易放弃。
这就是我的实验 2 之旅,充满了挑战和收获。
小学四年级科学实验报告单2尊敬的教师:以下是我根据小学四年级科学实验内容撰写的一份实验报告,共计1200字。
希望能对您的参考有所帮助。
一、实验名称:观察植物的生长过程二、实验目的:通过观察植物的生长过程,了解植物的生长原理,培养对植物的兴趣、爱护植物的意识。
三、实验材料:1.5个水杯2.5个麦子种子3.土壤4.水壶5.标尺四、实验步骤:1.将5个水杯分别标记为A、B、C、D、E。
2.在每个杯子中倒入适量的土壤,高度约为10厘米。
3.在A杯中放入一颗麦子种子。
4.在B杯中放入两颗麦子种子。
5.在C杯中放入三颗麦子种子。
6.在D杯中放入四颗麦子种子。
7.在E杯中不放任何麦子种子,作为空白对照组。
8.为每个杯子浇适量的水,保持土壤湿润。
9.将每个杯子放置在光线充足的地方,温度适宜的环境中。
10.每天观察并记录每个杯子中麦子的生长情况。
11.持续观察约10天。
五、实验记录:第一天:所有杯子中土壤湿润,种子还没有出芽。
第二天:A杯中的麦子种子开始出芽,高度约为0.5厘米。
B杯中的麦子种子也开始出芽,高度约为0.3厘米。
C杯中的麦子种子还没有出芽。
D杯中的麦子种子还没有出芽。
E杯里未放入麦子,什么也没有发生。
第三天:A杯中的麦子继续生长,高度约为1厘米。
B杯中的麦子也继续生长,高度约为0.7厘米。
C杯中的麦子开始出芽,高度约为0.3厘米。
D杯中的麦子开始出芽,高度约为0.1厘米。
E杯里仍然没有任何变化。
……第十天:A杯中的麦子生长到了约10厘米。
B杯中的麦子生长到了约8厘米。
C杯中的麦子生长到了约6厘米。
D杯中的麦子生长到了约4厘米。
E杯里仍然没有任何变化。
六、实验结论:通过观察实验结果,我们可以得出以下结论:1.植物的生长需要土壤、水分、光线和适宜的温度环境。
2.麦子的生长速度随着种子的数量增加而加快。
种子数量越多,植物生长得越快。
3.通过对照组的观察,我们可以发现杯子中没有放置种子的杯子里没有任何生长现象,麦子是通过种子发芽生长的。
南昌理工学院实验报告二O一二年月日课程名称:微机原理与接口技术实验名称:两个多位十进制数相加班级:姓名:同组人:指导教师评定:签名:【一、实验名称】两个多位十进制数相加【二、实验目的】1、熟悉DOS系统命令;学习数据传送和算术运算指令的用法。
2、熟悉在PC机上建立、汇编、链接、调试和执行汇编语言程序的过程。
3、初步练习用DEBUG调试程序运行8086汇编语言程序的过程。
【三、实验内容和原理】将两个5位十进制数相加。
要求被加数和加数均以ASCII码形式各自顺序存放在以DA TA1和DATA2为首地址的5个内存单元中(低位在前),结果送回DATA1处。
另外,程序利用DOS的9号调用功能完成将被加数、加数和最后的和在显示器上的显示。
【四、实验条件】微型计算机一台,软件MASM【五、实验过程】1、用编辑软件,输入以下汇编语言源程序:参考程序如下:data segmentdata1 db , , , , ,'$'data2 db , h, , , , '$'data endsstac segmentsta db 100 dup (?)stac endscode segmentassume cs:code, ds:data, ss:stac, es:datastart proc farpush dsxor ax, axpush axmov ax, datamov ds, axmov es, axmov ah, 9mov dx, offset data1int 21hmov ah, 2mov dl, '+'int 21hmov ah, 9mov dx, offset data2int 21hmov si, offset data1mov di, offset data2mov bx, 5push bxpush siconv1: and byte ptr[si+bx-1], 0fhand byte ptr[di+bx-1], 0fhdec bxjnz conv1mov cx, 5xor ax, axadd1: mov al, [si+4]mov bl, [di+4]adc al, blaaamov [si+4], aldec sidec diloop add1pop sipop bxconv2: or byte ptr[si+bx-1], 30hdec bxjnz conv2mov ah, 2mov dl, '='int 21hmov ah, 9mov dx, siint 21hretstart endpcode endsend start2.通过编译,连接形成可执行文件3.运行。
小孔成像实验活动记录
一、实验目的:
I、通过本实验理解光的直线传播原理;
2、探究小孔成像的规律
3、通过观测使同学们了解成像原理
二、实验材料:
蜡烛、打火机、带小孔的塑料薄片、黑色塑料片
三、实验过程及结果记录:
1、按照活动所示制作三个小孔直径分别为1mm、2mm、3mm的小孔成像仪
2、点燃一根蜡烛并固定,在距蜡烛5cm处上下调整小孔成像仪与蜡烛火焰间位置直到
看到清楚的像为止。
当时可以看到清楚的像。
3、找到合适位置后将三个不同直径的小孔成像仪固定在该处,观测半透明薄纸中的像, 观测
并记录像的清楚限度、亮度和像的大小。
4、探究小孔成像规律:选择其中成像最清楚的一个小孔成像仪,在距蜡烛5cm处固定小孔成
像仪,前后移动纸筒位置,改变光屏和小孔成像仪间的距离,观测像的大小有如何的变化?像是正立的还是倒立的?
1、通过实验,我认为要制作一个成像清楚的小孔成像仪有以下几个注意事项:
2、小孔成像的规律有:当时呈放大倒立的像,当时呈缩小倒立的像,当时呈等大倒立的像。
五、实验反思实验结束后我尚有以下问题:。
《发电厂电气部分》课程实验报告
姓名: xxx 学号: xxxx
3、重新设置各断路器与隔离开关的动作时间,使出线L1在不断电的情况下对QF1进行检修;要求各开关动作顺序符合倒闸操作要求,倒闸操作在0.3s 开始、并在0.5s内完成;给出QF1、QF2、QFP、QSPⅠ、QSPP、QSP1的动作时序图,给出i1、i QF及i P的仿真波形图。
三、实验步骤及结果
1、按照图1所示,在PSCAD/EMTDC软件中搭建的仿真模型如图2所示。
图2 仿真模型图
图2中,QF1、QF2、QFP、QSPⅠ、QSPⅡ、QSPP、QSP1、QSP2的初始状态如表1所示。
表1 各开关的初始状态
开关名称QF1QF2QFP QSPⅠQSPⅡQSPP QSP1QSP2
初始状态合合分分分分分分
2、仿真1s,得到i1、i QF及i P的仿真波形图如图3所示。
图3 正常运行时各电流仿真波形图
3、重新设置各断路器与隔离开关的动作时间,QF1、QF2、QFP、QSPⅠ、QSPP、QSP1的动作时序如图4所示。
图4 QF1、QF2、QFP、QSPⅠ、QSPP、QSP1的动作时序图
4、仿真1s,得到i1、i QF及i P的仿真波形如图5所示。
图5 倒闸操作时各电流仿真波形图
从图4、图5可以总结单母线分段带旁路母线接线的运行特点如下:
1)检修任一接入旁路母线的进出线的断路器时,可以用旁路断路器代替
其运行,使该回路不停电。
2)供电可靠性较高,可以保证重要用户不间断供电。
3)分段单母线运行时QFd起分段断路器的作用,在检修断路器时,QFd
起旁路断路器的作用。
课程实验报告记录+2————————————————————————————————作者:————————————————————————————————日期:课程实验报告专业年级2012级软件工程课程名称数据结构C语言描述指导教师申红婷学生姓名王晓霞学号20122205041002 实验日期2012.11.7实验地点A3笃行楼A栋306 实验成绩教务处制2013年10月07日实验项目名称栈和队列实验实验目的及要求一.目的:1.使学生对栈和队列的顺序存储结构和链式结构、基本操作和应用,能通过实验达到掌握和应用的目的。
2.要求学生对栈和队列的顺序存储结构和链式结构的基本操作均作验证性实验,对栈和列的应用各作一个设计性实验,并写出实验报告。
二.要求:实验前认真预习实验内容,实验时自觉遵守课堂纪律,严格按操作规程操作,既要独立操作又要与其他同学配合,在实验过程中必须按照实验内容认真做完实验,并认真填写相关实验报告。
实验内容栈和队列的顺序存储结构和链式结构、基本操作和应用。
实验步骤1、阅读下面程序,将函数Push和函数Pop补充完整。
要求输入元素序列1 2 3 4 5e,运行结果如下所示。
#include<stdio.h>#include<malloc.h>#define ERROR 0#define OK 1#define STACK_INT_SIZE 10 /*存储空间初始分配量*/#define STACKINCREMENT 5 /*存储空间分配增量*/typedef int ElemType; /*定义元素的类型*/typedef struct{ElemType *base;ElemType *top;int stacksize; /*当前已分配的存储空间*/}SqStack;int InitStack(SqStack *S); /*构造空栈*/int push(SqStack *S,ElemType e); /*入栈*/int Pop(SqStack *S,ElemType *e); /*出栈*/int CreateStack(SqStack *S); /*创建栈*/void PrintStack(SqStack *S); /*出栈并输出栈中元素*/int InitStack(SqStack *S){S->base=(ElemType *)malloc(STACK_INT_SIZE*sizeof(ElemType)); if(!S->base) return ERROR;S->top=S->base;S->stacksize=STACK_INT_SIZE;return OK;}/*InitStack*/int Push(SqStack *S,ElemType e){if (S->top-S->base>=S->stacksize){S->base=(ElemType*)realloc( S->base,(S->stacksize+STACKINCREME NT)*sizeof(ElemType) );S->top=S->base+S->stacksize;S->stacksize+=STACKINCREMENT;}*S->top++=e;return 1;}/*Push*/int Pop(SqStack *S,ElemType *e){if (S->top!=S->base){*e=*--S->top;return 1;}elsereturn 0;}/*Pop*/int CreateStack(SqStack *S){int e;if(InitStack(S))printf("Init Success!\n");else{printf("Init Fail!\n");return ERROR;}printf("input data:(Terminated by inputing a character)\n"); while(scanf("%d",&e))Push(S,e);return OK;}/*CreateStack*/void PrintStack(SqStack *S){ElemType e;while(Pop(S,&e))printf("%3d",e);}/*Pop_and_Print*/int main(){SqStack ss;printf("\n1-createStack\n");CreateStack(&ss);printf("\n2-Pop&Print\n");PrintStack(&ss);printf("\n");return 0;}●算法分析:输入元素序列1 2 3 4 5,为什么输出序列为5 4 3 2 1?体现了栈的什么特性?程序运行结果如下图所示:因为当main函数调用PrintStack(&ss)时,程序转到函数体中,而在该函数体内,又调用了int Pop(SqStack *S,ElemType *e),此函数的功能是栈S的栈顶元素退栈并返回其值。
所以输入元素序列1 2 3 4 5,输出序列为5 4 3 2 1。
而这则体现了栈是只允许在表的一端进行操作的线性表并且具有先进后出的特性。
2、在第1题的程序中,编写一个十进制转换为二进制的数制转换算法函数(要求利用栈来实现),并验证其正确性。
●实现代码void conveshen(SqStack *S){ElemType n,h;int m=0,k=0;InitStack(S);printf("Input element\n"); scanf("%d",&n);while(n){ m++;Push(S,n%2);n=n/2;}while(k<m){k++;Pop(S,&h);printf("%d",h);}}int main(){SqStack S;conveshen(&S);printf("\n");return 0;}验证3、阅读并运行程序,并分析程序功能。
#include<stdio.h>#include<malloc.h>#include<string.h>#define M 20#define elemtype char typedef struct{elemtype stack[M];int top;}stacknode;void init(stacknode *st);void push(stacknode *st,elemtype x);void pop(stacknode *st);void init(stacknode *st){st->top=0;}void push(stacknode *st,elemtype x){if(st->top==M)printf("the stack is overflow!\n"); else{st->top=st->top+1;st->stack[st->top]=x;}}void pop(stacknode *st){if(st->top>0) st->top--;else printf(“Stack is Empty!\n”);}int main(){char s[M];int i;stacknode *sp;printf("create a empty stack!\n");sp=malloc(sizeof(stacknode));init(sp);printf("input a expression:\n");gets(s);for(i=0;i<strlen(s);i++){if(s[i]=='(')push(sp,s[i]);if(s[i]==')')pop(sp);}if(sp->top==0)printf("'('match')'!\n");elseprintf("'('not match')'!\n");return 0;}输入:2+((c-d)*6-(f-7)*a)/6运行结果:输入:a-((c-d)*6-(s/3-x)/2运行结果:程序的基本功能:判断所输入多项式的左右括号是否配对。
实验环境(一)运行环境说明PC计算机,Windows 2000(或Windows XP) 及以上版本,C(二)基础数据设置及说明计算机,Windows 2000(或Windows XP) 及以上版本,C均能正常运行。
实验结果与分析通过这次实验,我已经基本掌握了本章的学习要点和实验的基本要求以及目的。
第一个程序填空题使我学会了栈和队列的结构定义,逻辑特性及其基本操作的使用。
而第二个程序分析则使我明白了栈和队列的顺序存储表示和链式存储表示,这使得我懂得了该在什么情况下分别实用两种存储表示并用程序代码实现它们相应的操作。
虽然我最终顺利完成了实验,但是在实验过程中我也遇到了许多问题,比如说,不清楚栈和队列的结构定义以至于在后续过程中无法使用站和队列,造成了极大的麻烦,还有在实现某些操作时,无法用程序代码将其顺利运行。
然而遇到问题我并没有退缩,我努力去图书馆查阅资料并且请教老师同学,最终将这些问题各个击破。
与此同时,我也取得了极大的进步。
总而言之,这次有关栈和队列的实验使我受益匪浅,弄明白了许多曾经模糊的知识点,也学会了许多以前并不知道的知识。
教师评语注:可根据实际情况加页。