土木工程实习报告--建筑施工和结构实验

2024-10-20

土木工程实习报告--建筑施工和结构实验(通用8篇)

土木工程实习报告--建筑施工和结构实验 篇1

结构工程实验报告

实验名称:结构的动力特性试验

实验类型:(3) (1)演示;(2)验证;(3) 综合;(4)设计;(5)其他

学 院:环境与安全工程学院

学生姓名:孙奥伟

专业班级:土木101

学 号:10434217

指导老师:王新杰、谢静静

20XX~20XX学年第二学期第4次实验

同实验者:申元畅、盛晓青、祁向楠

实验时间20XX年4月23日

实验四 结构的动力特性试验

一、试验目的

(1)了解振动测试与控制实验系统的组成、安装和调整的方法。

(2)学会激振器、传感器与数采分析仪的操作、使用方法。 (3)学会测量钢梁的强迫振动频率。 本实验属于综合性实验。

二、实验仪器及设备

(1)振动与控制实验台包括简支梁、悬臂梁、薄壁圆盘、单自由度系统、二自由度系统、多自由度系统模型,配以主动隔振、被动隔振的`空气阻尼减震器、单式动力吸振器、复式动力吸振器等组成。

(2)激动振系统与测振系统,激振系统包括DH1301正弦扫频信号源,JZ-1接触式激器,JZF-1非接触式激振器,偏心电动机,调压器,力锤; MT-3T型磁电式振动速度传感器,DH130压电式加速度传感器,WD302电涡流位移传感器、测力传感器;动态采集分析系统包括信号调理器、数据采集仪、计算机系统、控制与基本分析软件、模态分析软件。

三、实验原理及操作步骤

(1)安装偏心电动机。偏心激振电机的电源线调接到调压器的输入端(电源使用三芯接地插座),一定要小心防止接错,把调速电机通过安装底板安装在简支梁中部,电机转速可用调压器电压调节旋钮来调节,调节输出电压到110v左右,调好后在实验过程中不要改变电机转速。

(2)安装DH1301正弦扫频信号源。将DH1301正弦扫频信号源的输出电压调节旋钮左旋到最小位置,把激振器与输出接线柱相连。

(3)接测试系统。将扫频信号源的输出信号接到采集仪的1-1通道。将速度传感器布置在偏心激振电机附近,速度传感器测得的信号接到数采仪的1-2通道。设置频率类型,正弦扫频的起、止频率后按“确认”,设置好后按“开始”,调节电压信号到875mv.频率扫频点开始移动,此时观察梁的振动情况。按压电式加速度传感器DH187,选AC方式,量程

(4)打开仪器电源,进入控制分析软件,新建一个项目,设置采样频率1K量程范围、工程单位和传感器灵敏度等参数(按压电式加速度传感器DH187,选AC方式,量程927,灵敏度系数5.394,磁电式速度传感器610、620选SIN-DC,灵敏度系数选210mv/mm?s),然后平衡、清除零点、启动采样,在曲线显示窗口内点击鼠标右键,选择信号,选择波型1-1和1-2,选择X-Y记录仪显示方式。开始采集数据,数据同步采集显示在图形窗口内。

(5)调节DH1301 扫频信号源的输出功率,第一步使用线性扫频找出振动频率的大致值,然后利用正弦定频找出利萨如图形的频率,使屏幕上出现一直线或椭(正)圆,此时信号源显示频率即为简支梁的强迫振动的频率f。

(6)注意采集仪器在采集数据的过程中,不允许关掉仪器。

加强,在80~90Hz之间一直减弱,定出振动频率的大致值在74~85Hz之间。 然后利用正弦定频仔细查找共振频率,由于频率是以0.1Hz增加的,通过手触感觉共振频率大致在79~80Hz之间。由于是通过自己的手感觉的,所以只能确定大概的值。

五、结果与讨论

(1)电源电压为110V时,梁的强迫振动的频率是多少?

实验结果测得的电压为110V时,梁的强迫振动在79~80Hz左右,由于通过人体的感觉,所以无法确定数据。

(2)振动与控制实验台由哪几部分组成?

振动与控制实验台包括:简支梁,悬臂梁,薄壁圆盘,单自由度系统,二自由度系统,多自由度系统模型,配以主动隔振,被动隔振的空气阻尼减震器,单式吸震器,复式吸震器组成。

(3)控制分析软件的使用步骤?

新建一个项目,设置采样频率1K量程范围、工程单位和传感器灵敏度等参数(按压电式加速度传感器DH187,选AC方式,量程927,灵敏度系数5.394,磁电式速度传感器610、620-1

选SIN-DC,灵敏度系数选210mv/mm?s),然后平衡、清除零点、启动采样,在曲线显示窗口内点击鼠标右键,选择信号,选择波型1-1和1-2,选择X-Y记录仪显示方式。开始采集数据,数据同步采集显示在图形窗口内。

(4)写出实验过程中扫频信号给的电压及其出现利萨如图形时的频率

第一步,使用线性扫频扫出振动频率的大致值,在75~85Hz之间。然后利用正弦定频找出共振频率大概在79~80Hz之间。

实验过程中,要仔细调节,避免由于按键的过快而导致仪器短时故障。 服从老师安排,听从老师指导。 原始数据记录:

土木工程实习报告--建筑施工和结构实验 篇2

1 建筑工程后浇筑带分类及作用

1.1 分类

后浇带分为沉降后浇带和伸缩后浇带, 其中沉降后浇带一般用于高层建筑主楼与裙楼之间, 主要为避免基础沉降对结构的不良影响。在主体结构完工后沉降后浇带在进行施工, 由此以来基础部分逐渐趋于稳定, 补齐后浇带后剩余沉降产生的结构应力整体结构才能承受, 一定程度也使结构产生的附加应力和破坏性不会影响后浇带。伸缩后浇带, 其设计目的主要为混凝土后期因温度导致裂缝变形。留置缝道会沿着基础方向, 大约距离为30~40米, 用两个月左右时间完成浇筑混凝土后开展后浇带施工。混凝土早期温差及收缩在此过程中已经形成较好的浇筑条件, 通过对结构受力程度的改善, 避免混凝土收缩及温差应力影响整体结构。

1.2 功能

总的来说, 后浇带的主要功能及应用有以下两方面: (1) 解决沉降差。通常对高层建筑和裙房基础结构进行设计时, 如果建筑与基础形成整体, 需将二者相连的部分断开, 在对建筑主体施工完毕后将高低层与浇灌混凝土连接成一个整体。设计相关部分时刻从全面解决后期后造成的额外内部力量及强度校核等, 可以连接前后两次力量对压力进行调整, 便于恶劣环境施工。 (2) 减小温度收缩影响。温差会因建筑结构变形所遭到的约束引起热应力, 严重的裂缝会出现在产生应力及不同的设计效果方面, 使施工整体性能受到严重影响。设置后浇带能有效减小温度收缩因不想, 主要由于混凝土可施工过程中可自由收缩, 进而降低不同方向的不不均匀散热, 减少收缩应力, 在此过程中, 混凝土的抵抗温度因得到其抗拉强度而得以满足, 实现提高结构抵抗温度变化能力。

2 建筑工程后浇带结构设计和施工技术

2.1工程概况

某建筑工程总面积45600平方米, 工程包括两栋塔楼和连接大楼的裙房, 塔楼一栋为15层, 一栋为12层。采用框架结构, 工程基底标高为—17.5m, 基坑开挖较深。

2.2建筑工程后浇带结构设计

(1) 对结构伸缩缝最大间距要求要通过合理设计后浇带实现。大部分后浇带的间距不会超过30mm, 因为要充分考虑结构收缩变形的可能性及不均匀沉降等方面问题。通过对多个大型楼房建筑研究得知, 主楼产生的压力会逐渐平稳, 第二柱距内也会接受到来自主楼的平稳, 所以在主楼边注外的第二跨内是设计后浇带的最佳位置。 (2) 后浇带有企口缝、直缝及凹凸缝等不同接缝方式。本工程中钢筋混凝土结构由板和梁组成整体框架。部分露天或有防水要求的结构部件必须加止水钢板的直缝或企口缝。应在结构设计图纸上用详图明确表现后浇带的断面形式。当墙板厚度>600mm时可做成企口缝, 当、墙厚度<300mm时可做直缝及当厚度<600mm及>300mm时可做成凹凸缝。后浇带的浇灌时间因为不同类型的混凝土而有不同, 通常后浇带内后对混凝土浇灌时间要间隔2个月。根据先浇灌混凝土的收缩观察伸缩后浇带。沉降后浇带适合在基本完成对建筑物沉降后再浇筑后浇带, 一般不同水泥、水灰比及养护条件混凝土要控制在6h内。 (3) 应连续贯通后浇带处的钢筋保证结构的整体性, 通常应让钢筋连续通过, 不宜断开, 主要指临时断开后浇带处的混凝土。然而有时实际工况不允许留置后浇带, 如大型建筑中的地下车库通道的底板、顶板会与主楼连接, 之所以无法在此区域设置后浇带, 主要因为施工场地区域狭小。针对上述情况, 在施工过程中, 结构主体是首要施工区域, 对车道部分进行施工时要在结构主体施工完毕后。其中必须预留施工单位在施工中连接主体的钢筋, 之后焊接相同截面的钢筋, 需强调的要保证连接率不大于50%。

2.3建筑工程后浇带结构施工

(1) 垂直施工缝处理:结构混凝土浇筑会让混凝土达到初凝状态, 此时需要用高压水冲洗浇筑结构混凝土的垂直施工缝, 以此去除杂物、浮浆和冲洗暴漏总额的部分。之后再用高压水冲洗钢丝网混凝土终凝后的施工缝表面。本工程中还使用了高压水冲洗木模板的垂直施工缝。尽可能的根据监管要求和施工现场条件光滑处理拆模并及时对于已硬化的混凝土表面。 (2) 做好混凝土选料与浇筑工作选料工作:保障后浇带施工在于选择优质的混凝土材质, 因此必须严格把关材质选料关。后浇带的浇筑在整个混凝土浇筑过程中, 为避免三者接触引起集中应力导致后浇带两边自由伸缩或沉降, 会在通过建筑物整个横截面时断开桥梁、楼板会与墙体, 不能采用要断不断或藕断丝连形式处理后浇带, 上述两种形式极易造成破坏后浇带应力现象。为使浇筑养护能力强度提升, 应先均匀拌合混凝土并采用振捣密实的方式提高后浇带施工质量。 (3) 后浇带防水处理:整个后浇带施工技术的重点为后浇带防水处理, 可采用在后浇带中部设置钢板止水带的方法做底板后浇带和外墙及两侧混凝土接缝的防水处理。钢板止水带宽度300mm, 厚3mm, 在已浇筑混凝土留置大约150mm并露出150mm。在施工中为抵抗差异沉降和停止降水后浇带需承受土压力应沿后浇带设置一定长度的钢板, 底板后浇带应设置钢筋混凝土抗压板。在施工以后应对外墙后浇带做外防水处理。之后采用墙外预制挡土板所采用的配筋和规格要符合地板抗压板相关设置要求。将防水卷材贴在挡土面上, 均匀涂抹1.2mm聚氨酯防水涂膜后再做50mm厚聚苯板保护层。

3 结束语

土木工程实习报告--建筑施工和结构实验 篇3

摘要:水务工程建设中,在一些关键部位往往采用钢结构,与其他类型的结构相比,钢结构有许多优势,但也存在它自身的弱点,这就是钢结构的现场手工电孤焊和局部防腐的质量控制问题。根据全面质量管理的要求,我们必须从全过程来控制现场手工电孤焊和防腐施工质量。

关键词:水务;钢结构;手弧焊;防腐;质量控制

1准备工作的质量控制

(1)设计交底评定。

(2)施工单位根据施工图设计出组织施工方案,交监理工程师审批。

(3)焊接和防腐材料的管理。

(4)施工设备和工具的检查管理。

2施工过程中的质量控制

2.1手弧焊接的质量控制

(1)坡口施工的控制。根据评定的工艺要求,开好坡口,对于一类焊缝如采用气割方式开的坡口除满足JB/T1045.3—1999《热切割、气割质量和尺寸偏差》要求外,还要磨平坡面,并经质量检测员量测,坡角和钝边的度量值公差均满足设计的工艺要求,并在施工原始记录相应栏里签字认可才允许进行下一道工序。

(2)对口装配的质量控制。相同厚度钢板对口时,根据SL36—2006《水工金属结构焊接通用技术条件》,允许对口错边量:a-类焊缝:10%板厚且小于等于2mm;a二类焊缝:15%板厚且小于等于3mm;a三类焊缝:20%板厚且小于等于4mm。焊件组对间隙一方面要考虑焊透,另一方面注意不要烧穿或产生焊瘤,大小约等于打底小焊条金属部份的直径,这是考虑了定位焊冷却收缩的量,常控制在2~3mm左右。详细参考GB985—88《气焊、手工电弧焊及气体保护焊焊缝坡口的基本形式和尺寸》。在组对时还要考虑“V”型坡口在焊后冷却收缩过程中产生的角度变形和残余应力的影响。对好焊口后,就必须用相应的夹具夹住,并用点焊进一步固定。有许多焊工认为夹具是临时的,焊接粗糙,用完后用锤敲掉。严重损伤了母材。规范要求气焊割掉,并打磨与母材一样平整。

(3)施焊过程的质量控制。施焊过程分为打底焊、中间层焊、盖面焊。

2.2防腐施工的质量控制

(1)表面预处理控制。表面打磨前应仔细清除焊渣、飞溅及其他污染物,磨平焊疤、毛刺等。大面积防腐施工用喷射法,小面积防腐施工用砂布和手磨钢刷进行表面预处理。根据GB8923—88《涂装前钢材表面锈蚀等级和除锈等级》,金属表面清洁度按对比法比对,涂料涂装应达到Sa2级,局部难施工须用手工打磨的部位允许放宽至St3级。根据GB/T13288—91《涂装前钢材表面粗糙度等级的评定(比较样块法)》,表面预处理后的粗糙度值:涂料涂装的Ry应在40~70m范围内,金属涂装的Ry应在60~90 m范围内。由于现场条件复杂,要注意湿度、露点、雨等天气的影响,对表面预处理这一隐蔽工序,一定要严格检查把关。

(2)涂装质量控制。正式涂装前应检查防腐材料的品种、型号、规格是否符合设计工艺要求,质量不合格或变质的防腐材料不能使用。然后根据设计工艺要求选择涂装方法和相应的工具,并视组分要求搅拌均匀,并作稠度(或粘度)测试。

3最终的质量检查

现场手弧焊和防腐涂装分别完成后须进行最终的质量检查和评定,为整个工程的验收提供相应的质量检查报告。

(1)手弧焊最终质量检测。焊缝检测分破坏性检测和非破坏性检测。破坏性检测中的力学性能试验、化学成分试验、金相检验、耐腐蚀性能试验在工艺评定试验中进行。非破坏性检测包括的目视外观检测、超声波探伤、射线照相、磁粉探伤、渗透探伤、涡流探伤、水压试验、致密性泄漏试验等在现场做。

(2)防腐涂装完成后的检测有复合涂层厚度的测定,附着力的检测、针孔电火花的检测等。复合涂层的厚度在钢质基材上用磁性测厚仪进行测定,如未达到设计要求须返工。附着力检测采用划格法或刀切法。划格法的试验结果须好于2级才算合格;刀切法须不出现整层挑起,并不露出金属为合格。电火花检测时须在设计要求的电压下,没有电火花则合格,如发现电火花,须分析原因,扩大抽检范围再检,并返工出现电火花的防腐层。

4结语

土木工程实习报告--建筑施工和结构实验 篇4

摘要:钢管混凝土属于钢混结构的一种重要组合形式,将普通混凝土灌入约束钢管中,待混凝土凝结后形成具备高强度、轻质、抗冲击性能好的组合结构。而钢结构由于其具备强度高、质量轻、便于装配的特点,被广泛应用于高层建筑结构中。

关键词:钢混结构;钢结构;高层建筑;施工特点

1.钢混结构在高层建筑施工中的应用

钢管混凝土属于钢混结构范畴,其主要特点是充分发挥了混凝土和钢材的优势,钢管由于灌入混凝土,其稳定性得到提升;混凝土受到周围钢管的约束,其抗压能力获得提高。该组合结构具有高强度、轻质、抗冲击性能优良及耐腐蚀等诸多优点。钢管混凝土除了具备以上优良特性外,在施工方面同样优势显著,由于钢管的约束作用,可不搭设模板;钢管能够代替混凝土柱中的主筋及箍筋,省去了钢筋笼的焊接工作,因此,极大地降低了施工周期。最适合应用在高层建筑、大跨度桥梁等工程结构的承压构件中。

钢混结构对于钢管的要求较低,钢管既可选用无缝形式也可选用焊缝形式,其中钢管混凝土最小直径应不低于10cm,直径过小的钢管增加了混凝土的灌注振捣难度;为了保证浇筑过程中钢管的`约束强度,壁厚应不低于0.4cm。为了保证钢管混凝土的刚度,所灌注混凝土标号不应低于C40。钢管混凝土融合钢筋和混凝土的各自优势,在具体施工过程中应兼具二者的特性。以下是具体施工特点分析。

1.1钢管

绝大部分钢混结构中,均选用卷焊钢管,对焊缝的要求较低,一般选用直缝,保证焊缝在受力条件下不容易出现应力集中问题,卷制方向应用钢板的轧制方向相同。卷制内径根据钢材类型而定,高层及大跨桥梁结构中使用最广泛的16Mn钢板,其卷制内径应不低于钢板厚度的40倍。卷制前应先开坡口,坡口位置应与卷轴正交。

1.2钢管拼装

为了保证运输不受限制,单个钢管单元长度不应大于10m,对于高层建筑中的钢管混凝土拼装作业,钢管预制长度应该根据施工现场的吊装能力而定。钢管单元在焊接过程中,必须保证钢管内肢管平顺,应严控焊接应力引发的钢管内肢管变形问题,为了尽可能降低焊接对肢管的干扰,应采取反向焊接的方式,在钢管两侧对称施焊,以冲抵焊接带来的微变形。对于直径较小的钢管,应选择固定点焊;直径较大的钢管,可选用光圆钢筋焊接于钢管接口处,起到支撑作用,为了提升焊接质量,可在钢管内壁加设内衬。焊接顺序的确定要以尽可能降低变形为主要目的,焊缝通过检测后方可在焊缝处进行防腐蚀保护。

1.3钢管混凝土结构灌注

由于钢管混凝土结构省去了柱内钢筋笼的编制,因此,便于进行混凝土现浇作业。为了确保钢管内混凝土完全密实,浇筑面应略高于钢管端口,并采用振捣棒均匀插捣。当钢管混凝土直径大于40cm时,除进行必要的插捣外,应采用板式振动器均匀振捣。对于少部分直径过大的钢管混凝土,为了保证内部混凝土密实,还应采用加速振实法。钢管混凝土结构一个施工单元内,混凝土浇筑作业必须一次性连续完成,需要加设施工缝时,应临时关闭管端,以防异物坠入。

当混凝土浇筑作业临近尾声时,应使得浇筑面略高于端口,并将预留的排气孔板贴实于端口,并迅速焊接,待所浇筑混凝土强度达到设计强度的70%以上时,再将压实于端口的排气孔板同端口焊接。

2.高层钢结构施工应用

2.1钢筋及型钢

为了确保框架结构中梁柱交叉位置末端钢筋的相互独立,在柱结构型钢施工中,在型钢腹板位置应预先钻孔,保证梁端钢筋顺利穿入且互不影响。钻孔大小既要满足梁端钢筋的最大直径,还应尽可能减小腹板开孔对型钢承载力的削弱作用,工程实际中,腹板开孔直径一般介于5-6mm。对于梁柱交叉位置及型钢翼缘附近,在浇筑混凝土的过程中不易排尽空气,因此,在浇筑前应预设若干排气孔道。

2.2混凝土模板架设及现浇作业

为了保证混凝土模板的稳定性,应将梁底部的固定螺栓置于钢梁下弦处,盖板应选用可拆解模板搭设,从而提高模板的利用率,g接降低施工费用。在具体的钢结构施工中,必须严格依照钢结构行业规范中要求的施工顺序进行,混凝土浇筑也应遵照相关混凝土施工规范,对于型钢翼缘等容易出现混凝土不密实的位置,应加强振动操作,保证混凝土结构整体质量安全可靠。

3.高层建筑钢结构施工中的独特要点

高层建筑钢结构工程不同于普通的钢结构施工作业,必须引起足够的重视。首先,考虑到钢结构的繁杂性,必须在装配前做好施工组织规划,加之钢结构对施工精度要求苛刻,其拼装工作必须做到严丝合缝。相反,高层建筑选用钢混结构形式时,混凝土应采用现浇形式,其精度要求降低,若两种结构形式并存时,将给施工过程带来诸多不便。再者,高层建筑钢结构施工中,其作业平台较高,其施工进程必然受到外界不良天气的干扰,比如遇到大风、暴雨等强对流天气时,钢结构的起吊作业将无法开展。所以,在安排施工进度时,应充分考虑这一方面。

4.结语

数据结构实验报告 篇5

实验(实习)名称数据结构实验(实习)日期 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)

求两个集合的并集

土木工程实习报告--建筑施工和结构实验 篇6

1 水利工程建筑结构设计意义

水利工程建筑结构设计的水利工程施工的先决条件, 某种意义上, 没有设计就没有施工, 所以其对工程质量有着举足轻重的地位, 因此, 为确保工程质量, 必须对工程建筑结构设计给予充分的重视, 将统筹设计和细微设计相结合, 将整个结构设计与实际工程状况、环境相结合, 所以, 制作的方案必须准确细致, 否则势必造成施工困难, 所以, 水利工程建筑物结构设计在实际施工过程中格外重要, 水利工程建筑的研究也变得十分有意义。水利工程建筑物结构设计的好坏, 对建筑物的功能、使用年限以及安全性能等都有很大的影响。

与此同时, 水利工程的建设包括三个方面:项目计划、项目决策以及项目实施。通过在水利工程实际建设过程中把握好设计与决策的合理性, 进而合理控制投资, 同时, 这两大部分更是水利工程建筑物结构设计的重中之重, 并直接影响着施工建设成果。而且通过水利工程建筑物结构设计, 对施工过程中的预算进行合理设计, 设计的越精准产生的经费就会越低, 以此提高建筑物的性价比。

2 水利工程建筑物结构设计概述

水利工程建筑物结构设计包含三个方面, 既水利建筑整体设计、混凝土结构设计、水闸设计, 通过三者之间的关系衔接, 并妥善处理设计方案, 这一设计理念广泛应用于当前绝大部分水利工程设计师。水利建筑的整体设计, 不仅仅可以完善当前水利工程建设的方式, 更可以妥善处理建筑主体和相应配套设施的若干联系。

其中, 水利工程中建筑物主体主要包括闸和大坝两种大型结构, 管理用房为主要配套设施。这一整体设计方案是构筑水利工程建筑物结构的框架, 与此同时, 水利建筑混凝土设计亦是水利工程中的另一个重要设计方案, 混凝土结构质量的好坏将直接影响着水利工程建筑物的整体质量, 通常情况下, 混凝土结构非常容易出现裂缝问题, 所以我们在设计过程中, 要针对混凝土结构极限, 进行科学试验进行验证, 确保本身固有承载力能够承担外部压力, 而不至于产生裂缝。

水闸设计的主要因素主要是为了保障水利工程的防水以及排水性能, 如果水闸出现质量问题, 不仅会极大缩短水利工程建筑物的使用寿命, 更会造成一系列重大的经济损失以及安全隐患。所以, 在进行水闸设计时, 应该充分考虑到排水孔以及止水压缩缝等问题的出现。

3 水利工程建筑物结构设计问题

3.1 工程设计等级标准模糊

水利工程等级标准模糊对工程设计有着直接作用。若等级标准过高, 则不但会造成严重的资源浪费, 而且充足的资金投入很容易产生结构设计中的“画蛇添足”, 而若等级标准较低, 则直接会导致资金不足, 工程设计只能围绕有限的资金进行, 可以预见这种捉襟见肘的设计心态, 其质量和进度自然很难保证, 根本无法满足预期要求。

因此, 水利工程建设的等级划分是十分重要的, 在进行等级划分过程中, 通常考量的因素较多, 比如施工地的水文资料、工程规模大小、可能产生的效益等等, 对此, 我国有严格的规定, 各施工单位应严格遵守相关标准进行。

3.2 工程设计所需资料欠缺

所谓“兵马未动、粮草先行”, 通常工程设计前, 首要的对基础资料的要求, 确保前期准备工作稳定进行, 材料的是否完备, 是否符合实际, 是否足够准确, 对工程设计是否合理及其后续施工质量是否满足要求都有直接影响。因为工程质量的设计方案、计算公式以及参数都需要以实际现场的地质、气象、水文等诸多情况进行统筹设计, 例如:1) 根据某地气象局60年统计资料显示, 该地常年平均最大风速14.2m/s, 设计洪水位2.58km, 校核洪水位3.04km。2) 最大冻土深度1.24m。只有通过准确的材料收集, 才能够做出合理的设计方案。如果收集资料不准确, 设计的结果自然脱离实际而作废, 所以哪怕极为细微的差错也会造成非常大的影响。因此, 进行水利工程设计时不能脱离实际, 对材料准确度要进行反复认证, 检验其真实性后方可以进行水利工程设计。

3.3 经济观念的缺失

一些水利工程设计者在进行设计时缺乏经济观念, 且对该实验的管理把关疏漏较大, 致使造成诸多不良后果以及经济损失。水利工程设计单位以及设计者在制定设计方案时, 要尽可能的将方案详实, 增强经济观念, 纠正错误, 确保工程建设进程顺利。所以, 必须要加强经济理念。

3.4 水利工程设计中存在偷工减料行为

水利工程设计具有工程量大、施工复杂等特点。致使设计者在进行设计过程中需要逐渐发现设计中的问题, 并加以改正, 无法做到一蹴而就的完成整个设计方案。这样就意味着难以将工程量和工程经费全部设计出来, 需要一个完善的过程, 所以, 有些不法施工分子借此漏洞偷工减料。这种做法不但浪费资源, 还会对水利工程建筑造成安全隐患。

4 解析水利工程混凝土结构的特性

水利工程建筑物结构所用的混凝土具有很高的复杂性, 仅仅是将一般的混凝土结构原理应用于水利工程建筑物结构中来, 是万万不可的, 水利工程建筑物结构施用的混凝土一般包括以下五个特性:

1) 结构尺寸大, 通常选用大体积结构或者是跨高比相对较小的短杆结构件。

2) 为了满足水下混凝土结构的强度需要, 通常保证配筋率小于一般混凝土结构理论中规定的最小配筋率, 与此同时保证较大的配筋量。

3) 因为水利工程所用的混凝土体积较大, 所以水化热也相对较大, 如果这时外界温度发生变化, 会因为温度差异导致裂缝的发生, 为了更好的限制裂缝宽度, 我们通常对混凝土配置非常多的温度钢筋, 保持一定的伸缩性。

4) 因为水利工程建筑物结构有一部分完全浸在水里, 有一部分处于干湿状态, 还有一部分处于承重状态, 为了避免因这些情况造成结构的冻融、气蚀、冲刷等危害现象发生, 在进行工程建筑物设计的过程中多注意结构的耐久性。

5) 在水利建筑物结构中存在不少非杆件体系, 这些体系较为脆弱, 无法进行弯、压、拉等极限操作, 所以无法用极限理论进行配筋。

5 水利工程建筑结构设计对策

5.1 设计基础资料要准确可靠

对水文基础资料认真、仔细审查, 确保基础资料的准确真实。

5.2 充分重视工程设计的招投标

对于水利工程施工设计, 其要求较为严格, 设计的施工作业种类亦较多, 所以为确保施工质量达到预期要求, 必须采用招投标制, 以提升相关企业间的竞争意识, 使该工程设计在充分掌握主动权的前提下, 实现利益和质量综合利益的最大化, 如此, 不但可以有效提升水利工程设计单位的积极主动性, 而且还可以更好的进行细节设计和优化设计。与此同时还要避免形成恶性竞争, 在进行设计竞争时, 可将可行性研究和初步设计分别招标, 这样效果更佳。

5.3 必须根据标准设计

为了将建筑的安全性与造价的经济性有机地结合, 必须根据工程实际情况进行等级划分, 即按工程的大小规模、产生效益以及在国民经济中所占比例, 以此将水利枢纽分等, 随后根据其作用和重要性将枢纽中的建筑进行分级。在进行水利工程建筑物结构设计中一定要根据相关规定, 依照建筑物的级别、结构类型、规模等, 根据实际情况采用不同的设计标准, 确保建筑物的安全稳定性。

5.4 加强水利工程设计的硬件建设

目前的水利工程建设过程中, 经常发现个别施工单位对硬件重视程度不足, 甚至有基本硬件设施缺失的情况, 显然, 在这种基本设备和仪器不足的情况下, 相应的技术资料及施工质量都很难得到保证。鉴于此, 设计及施工单位必须配备相应的专业硬件设施, 确保设计施工顺利进行。

5.5 健全并落实设计监理制度

当前, 工程监理制度已经得到快速发展和应用, 工程监理人会以资金投入、进度进展情况, 以及施工质量对工程予以管控。有效的监理制, 不但不会在整个工程中出现断点, 保证工程顺利实施, 而且还会显著提升设计的精准合理性, 与此同时加大对施工单位的质量监理, 从而将一些因管理不当产生的问题扼杀于襁褓之中, 对水利工程结构设计的质量起到很大的作用。

6 总结

随着科技的不断创新, 水利工程技术也在不断完善, 但是无论技术多么成熟可靠, 都不能忽视对基本规范的遵守, 并时时刻刻保证施工及设计人员的责任心和荣辱观, 更好的为社会服务。

参考文献

[1]李曼.浅谈水利工程建筑物结构设计与处理方式[J].科技创新与应用, 2013.

[2]段丽知, 李光森.水利工程建筑物结构设计与处理方式[J].中华民居, 2014.

[3]李曼.对水利工程建筑物结构设计关键问题的研究[J].科技创新与应用, 2013.

[4]随丽, 林杰克.水利工程建筑的施工技术及管理探讨[J].中华民居, 2014.

土木工程实习报告--建筑施工和结构实验 篇7

摘要:随着我国经济水平的提升,建筑领域也是迅猛发展。在这其中,土木工程技术也是不断的进步。我们对土木工程的施工质量要求不断提高。混凝土结构的施工技术是土木工程建筑中的一个重要内容。本文首先对混凝土出现各种问题各种方案的选择进行了概述,再对影响混凝土结构施工技术的因素进行了简要的概述,最后再对土木工程建筑中混凝土结构的施工技术进行分析和阐述。

关键词:土木工程;混凝土结构;施工技术

在土木工程建设中,混凝土材料一直在发挥着不可替代的重要作用。混凝土施工技术的好坏直接决定了整个工程建设的质量。所以在土木工程建筑当中,对混凝土施工技术必须严格要求,严格规范。严把混凝土结构的质量关,这样才能保证整个土木工程建设完美收工。

1 混凝土加固工程方案的选择

混凝土加固工程方案的优劣,首先要把是否具有施工作业方便作为必要因素,有的加固方案虽然具有解决问题的可行性,但是由于其方案在施工过程中增加了一定的施工难度,而造成施工工期长,劳动用工量大,安全系数低的弊端,结果影响到加固质量。例如,某公司办公楼因冬季施工,掺和不合格防冻剂,超标的氯离子破坏了钢筋钝化膜,致使十根钢筋混凝土梁产生严重裂缝,需要进行加固。混凝土加固方案有三种:方案之一是采取简易修补法,即将梁裂缝处出现的酥松混凝土凿除,露出钢筋后,将锈蚀的钢筋周围进行除锈后,用环氧砂浆进行封闭,达到加固目的:方案二是采取加大截面加固法,即通过增大构件的截面和配筋,用以提高构面的强度、钢度、稳定性和抗裂性,并达到修补裂缝的目的;方案三是采用先进的外包钢加固使用方法,应用QR型建筑工程结构胶粘锚技术,对这十根钢筋混凝土梁进行加固。

2 不同类型混凝土加固工程与加固方案分析

混凝土加固工程常采用的方法有加大截面加固法、外包型钢加固法、预应力加固法、玻璃钢加固法、增加支点加固法等,随着科学技术的不断进步,应用新技术、新材料、新工艺进行工程加固的方法。1)对于框架梁的加固,较为合理、经济、寄书先进的加固方案当属粘钢锚固法和碳纤维加固法,前者以造价低,施工简单,占用空间小,加固方法好,明显优于加大截面法和预应力加固法,后者除材料费用高外,则各种优势尽显其中,重要表现在自重轻,材料自身几乎不增加重量;强度高,固化后的碳纤维强度比刚才高达十几倍;劳动强度小。但是,应用其在负弯矩部位进行加固效果不如钢板性能好。2)对于框架柱的加固,常见的方法有外包型钢加固法,即在混凝土柱四周包以型钢进行加固,这样既不增大混凝土截面尺寸,又大幅度的提高混凝土柱的承载力,具体方法又分干法作业与湿作业法两种形式;干式加固法是将型钢直接外包于需要加固的混凝土柱四周,型钢与混凝土之间无连接,由于混凝土没有形成一个整体,所以不能确保结合面传递剪力。湿式加固法:一是用乳胶水泥浆或环氧树脂化学灌浆等材料,将角钢黏贴在混凝土柱上;二是角钢与混凝土之间留一定间距,中间浇筑混凝土,达到外包刚才与混凝土相结合。两种作业方法相比较,干式作业法施工更为简单,价格低,施工时间短,但其承载力提高不如湿式作业法好。在方案选择时,应根据加固要求和原构件情况,合理挑选适当的方案进行加固。3)碳纤维加固方法也可用于局部的修复加固。某居民楼业主对室内部分格局改动,使得原来预留的厨房、卫生间的上下水暖管道和排烟风洞移位,需要根据新的洞口位置用水钻开洞,并根据设计要求,需要补强加固。对已按原设计预留的孔洞需要封堵,封堵采用在洞口处植筋用比原楼板砼高一强度等级的微膨胀细石混凝土。因为业主对加固方案的要求是在满足工艺要求的前提下,尽可能缩短工期,提早交付工程。

3 混凝土裂缝形成的主要原因

首先温度和湿度的变化是引起混凝土裂缝的主要原因。混凝土在硬化期间,水泥会放出大量水化热,内部温度不断上升,在表面引起拉应力;在后期降温过程中,由于受到基础或老混凝土的约束他会在混凝土内部出现拉应力;同时气温的降低也会在混凝土表面引起很大的拉应力。当这些拉应力超出混凝土的抗裂能力时,便会出现裂缝,即混凝土裂缝。许多混凝土的内部湿度变化很小或变化较慢,但表面湿度可能变化较大或发生剧烈变化。表面干缩形变受到内部混凝土的约束,往往也会导致裂缝。由于原材料不均匀,水灰比不稳定及运输和浇筑过程中的离析现象,在同一块混凝土中其抗拉强度又是不均匀的,存在着许多抗拉能力很低,易于出现裂缝的薄弱部位。在钢筋混凝土中,拉应力主要是由钢筋承担,混凝土只是承受压应力。在混凝土内或钢筋混凝土的边缘部位,如果结构内出现了拉应力,则必须依靠混凝土自身承担。一般设计中均要求不出现拉应力或者只出现很小的拉应力。但是在施工中混凝土由最高温度冷却到运转时期的稳定温度,往往在混凝土内部引起相当大的拉应力。有时温度应力可超过其它外荷载所引起的拉应力,因此掌握温度应力的变化规律对于进行合理的结构设计和施工极为重要。

4 大体积混凝土裂缝形成的主要防治措施

1)水泥的品种及用量选择,水泥释放温度的大小及速度取决于水泥内矿物成分的不同。水泥矿物中发热速率最快和发热量最大的是铝酸三钙(C3A),其他成分依次为硅酸三钙(C3S)、硅酸二钙(C2S)和铁铝酸四钙(C4AF)。另外,水泥越细发热速率越快,但是不影响最终发热量。充分利用混凝土的后期强度,以减少水泥的用量。

2)控制温度。①减少混凝土中的水泥用量,改善骨料级配,优化混凝土配合比。在大体积混凝土中掺入一定量的粉煤灰,可以增加混凝土中的密实度,提高抗渗能力,利用粉煤灰作混凝土的掺合料,降低大体积混凝土的水泥水化热引起的内部温升,提高混凝土的后期强度及其抗裂能力;②降低混凝土的浇筑温度,拌合混凝土时加水或用水将碎石冷却;③减少浇筑厚度,利用浇筑层面散热;④埋设水管,冷水降温;⑤规定合理拆模时间,气温骤降时做好混凝土表面保温措施,避免混凝土表面发生急剧温度梯度;⑥在寒冷季节,对在施工中长期暴露的混凝土浇筑块表面或薄壁结构,采取保温措施。

3)添加外加剂,改善混凝土的性能,提高抗裂能力,加强养护,防止表面干缩,防止开裂,提高混凝土的耐久性。混凝土中存在大量的毛细孔道,水蒸发后会使毛细管中产生张力,导致混凝土干缩变形。若增大毛细孔径可降低表面张力,但会影响混凝土强度,这就是表面张力理论;水灰比也是影响混凝土收缩的重要因素之一,使用减水防裂剂可使混凝土用水量减少25%;此外,水泥用量也严重影响了混凝土收缩率,掺加减水防裂剂的混凝土在保持混凝土强度的条件下可减少15%的水泥用量,其体积用增加骨料用量来补充,用减水防裂剂改善水泥浆稠度,控制混凝土泌水,以减少沉缩变形。

4)混凝土养护的核心是防止混凝土早期表面失水,同时养护可以补充混凝土早期水化需要的水分,有助于水泥水化的进行。混凝土路面、桥面或地面施工,塑性收缩裂缝是长期困扰的问题。过去混凝土泌水量大,一般采用二次收浆,然后开始养活,防止塑性收缩裂缝。現代高性能混凝土基本没有泌水,如果风大或温度高,水分蒸发量大,混凝土表面很快就会出现裂缝,必须在终凝前再次抹面闭合裂缝。

总结

随着人们对土木工程建筑的要求不断加深。而建筑产品的质量主要取决于混凝土施工技术的质量。所以,我们在混凝土结构的施工过程中,要不断完善施工技术要有强烈的责任心和安全质量意识才能有效的解决在施工过程中所遇见的各类技术难题。制定一个完善的监管制度和体系,及时对工程施工中所遇到的问题进行反馈,在不断提升施工技术的同时建立一个严谨的施工氛围,这样才能高效优质的完成各类土木建筑工程项目。

参考文献:

[1]张庆颖.房屋建筑工程的混凝土施工质量控制[J].中小企业管理与科技(下旬刊),201l(03).

[2]黄朝福,庞友升.浅谈土木工程建筑中混凝土结构的施工技术.价值工程,2010(31).

数据结构 队列实验报告 篇8

小组成员:xxxxxxxx日期:xxxxxxxx

一、需求分析(xxx)

1.链队列

1)在本演示程序中,首先要链队列添加一个头结点,并判断队列是否为空,它只允许在表的一端进行插入,而在另一端删除元素,允许插入的一段叫队尾,允许删除的一端则为对头,接着访问队列中所有元素,并输出,输出是每个元素之间用空格来完成。最后销毁队列,释放空间。2)演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“欢迎来到链队列”“元素入队”“元素出队”“销毁队列”“清空队列”之后。由用户在键盘上输入演示程序中规定的运算命令,相应的运算数据和显示结果显示在其后。3)程序执行的命令包括: 欢迎来到链队列 1输出队列长度 2元素入队 3元素出队 4销毁队列 5清空队列 6对头元素 7退出链队列 4)测试数据 入队 1 2 3 4 5 分别执行“元素入队”“元素出队”“销毁队列”“清空队列”等操作。2.顺序队列

1)在本演示程序中,首先要顺序队列添加一个头结点,并判断队列是否为空,它只允许在表的一端进行插入,而在另一端删除元素,允许插入的一段叫队尾,允许删除的一端则为对头,接着访问队列中所有元素,并输出,输出是每个元素之间用空格来完成。2)演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“欢迎来到链队列”“元素入队”“元素出队”“取得头结点”“输出显示”之后。由用户在键盘上输入演示程序中规定的运算命令,相应的运算数据和显示结果显示在其后。3)程序执行的命令包括: 欢迎来到顺序队列 1入队 2出队

3判断是否为空 4取得头结点 5输出显示 6退出顺序队列 4)测试数据 入队 1 2 3 4 5 分别执行“元素入队”“元素出队”等操作。3循环队列

1)在本演示程序中,首先要顺序队列添加一个头结点,并判断队列是否为空,初始化建空队列时,令front=rear=0,每当插入新的队列尾元素时,“尾指针增1”;每当删除队列头元素时,“头指针增1”。接着访问队列中所有元素,并输出,输出是每个元素之间用空格来完成。2)演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“欢迎来到链队列”“元素入队”“元素出队”“取得头结点”“输出显示”之后。由用户在键盘上输入演示程序中规定的运算命令,相应的运算数据和显示结果显示在其后。3)程序执行的命令包括: 欢迎来到循环队列 1入队 2出队

3判断是否为空 4取得头结点 5输出显示 6退出顺序队列 4)测试数据 入队 1 2 3 4 5 分别执行“元素入队”“元素出队”等操作。

二.概要设计(xxxx)

⒈ 为实现上述算法,需要顺序表的抽象数据类型,抽象数据类型定义如下:

ADT Queue { 数据对象:D={ ai|ai∈ElemSet, i=1,2,3...,n, n>=0 } 数据关系: R={ |ai-1,ai∈D,i=2,...,n } 基本操作: InitQueue(&Q)操作结果:构造一个空队列。DestroyQueue(&Q)初始条件:队列Q已存在。

操作结果:队列Q已被销毁。ClearQueue(&Q)初始条件:队列Q已存在。

操作结果:将Q清为空队列。QueueEmpty(Q)初始条件:队列Q已存在。

操作结果:若Q为空队列,则返回TRUE,否则FALSE。QueueLength(Q)初始条件:队列Q已存在。

操作结果:返回Q元素的个数,即队列的长度。GetHead(Q,&e)初始条件:Q为非空队列。

操作结果:用e返回Q的队头元素。EnQueue(&Q,e)初始条件:队列Q已存在。

操作结果:插入e返回Q的新的队尾元素。DeQueue(&Q,&e)初始条件:Q为非空队列。

操作结果:删除Q的队头元素,并用e返回其值。}ADT Queue

2.单链队列

typedefstructQNode { QElemType;structQNode *next;//指针域 }QNode,*QueuePtr;Typedefstruct{ QueuePtr front;QueuePtr rear;}LinkQueue;Status InitQueue(LinkQueue&Q)//构造一个空队列。

Status DestroyQueue(LinkQueue&Q)//销毁队列Q,Q不存在。

Status ClearQueue(LinkQueue&Q)//将Q清为空队列。

Status QueueEmpty(LinkQueueQ)//若Q为空队列,则返回TRUE,否则FALSE。intQueueLength(LinkQueueQ)//返回Q元素的个数,即队列的长度。

Status GetHead(LinkQueueQ,QElemType&e)//若队列不为空,则用e返回Q的队头元素,并返回OK;否则返回ERROR。

Status EnQueue(LinkQueue&Q,QElemType e)//插入e返回Q的新的队尾元素。

Status DeQueue(LinkQueue&Q,QElemType&e)//若队列不空,则删除Q的队头元素,并用e返回其值,并返回OK;否则返回ERROR。

三.详细设计(xxx)

1.顺序队列的实现和运算

1)元素的类型 typedefstruct { Datatypedata[MAXSIZE];intfront,rear;}Squeue;2)空的队列的构造

void InitSqueue(Squeue *p)/*初始化队列*/ { p->front=0;p->rear=0;} 3)元素的入队

int Ensqueue1(Squeue1 *q, Datatype e)/*入队*/ { if((q->rear+1)% MAXSIZE == q->front){ printf(“n队列已满n”);return 0;} 4)元素的出队

int DeSqueue1(Squeue1 *q,Datatype *e)/*出队*/ { if(q->front==q->rear){ printf(“队列已空,无法出队!”);return 0;} *e=q->data[q->front];q->front=(q->front+1)%MAXSIZE;return 1;} 5)判断队列是否为空

int QueueEmpty1(Squeue1 q)// 判断是否为空 { if(q.front==q.rear)return 1;else return 0;} 6)队头元素的取值的算法

int Gethead1(Squeue1 *q,Datatype *e)// 取对头元素 { if(q->front==q->rear){ printf(“队列已空,无法出队!”);return 0;} else *e=q->data[q->front];return 1;} 7)遍历顺序队列的算法

void display1(Squeue1 q)//遍历顺序对列 { printf(“此队列数据为:n”);if(q.front==q.rear)printf(“此队列为空!”);else { while(q.front

void InitQueue2(LinkQueue *q){ // 构造一个空队列Q q->front=q->rear=malloc(sizeof(QNode));if(!q->front)exit(1);q->front->next=NULL;} 2)元素的入队算法

void EnQueue2(LinkQueue *q, QElemType e)//将元素e进队 { QueuePtr p;p=(QueuePtr)malloc(sizeof(QNode));//创建新节点

if(!p)//如果内存分配成功

exit(1);

p->data=e;//初始化新节点数据为e p->next=NULL;

q->rear->next=p;

q->rear=p;} 3)元素的出队的算法

int DeQueue2(LinkQueue *q,QElemType e)//队头结点出队,将出队的元素存入e { QueuePtr p;if(q->front==q->rear)//队列为空

return 0;p=q->front->next;//初始化temp为要出队的结点指针

if(q->front->next==q->rear)//要出队的结点为最后一个结点

q->rear=q->front;e=p->data;//要出队的数据元素为e q->front->next=p->next;//使下一个结点变为对头

free(p);//删除要出队的结点

return e;} 4)队列的长度算法

void QueueLength2(LinkQueue *q)//返回队列长度 { QueuePtr p;int i=0;p=q->front->next;while(p){

++i;

p=p->next;} printf(“链队列长度为:%dn”,i);} 5)队列的销毁

void DestroyQueue2(LinkQueue *q){ while(q->front){

q->rear=q->front->next;

free(q->front);

q->front=q->rear;

if(!q->rear)

free(q->rear);} free(q->front);} 6)队列的输出算法

void output2(LinkQueue *q)//输出队列 { QueuePtr p;p=q->front->next;printf(“链队列元素依次为:”);while(p){

printf(“%d->”,p->data);

p=p->next;} printf(“n”);} 7)队列的清空的算法 void Clear2(LinkQueue *q)//清空队列 { QueuePtr temp=q->front->next;while(temp){

QueuePtrtp=temp;

temp=temp->next;

free(tp);} temp=q->front;

q->front=q->rear=NULL;free(temp);} 8)返回对头元素的算法

int GetHead2(LinkQueue *q, int *e)//返回对头结点元素,存入e { if(q->front==q->rear)

return 0;*e=q->front->next->data;return 1;} 3.循环队列的实现和运算 1)队列的初始化算法

void InitSqueue3(Squeue3 *p)/*初始化队列*/ { p->base=(Datatype *)malloc(sizeof(Datatype)* MAXSIZE);p->front=0;p->rear=0;} 2)入队的算法

int Ensqueue3(Squeue3 *q, Datatype e)/*入队*/ { if((q->rear+1)% MAXSIZE == q->front){ printf(“n队列已满n”);return 0;} else q->base[q->rear]=e;/*将接收到得值付给队尾所指的节点*/ q->rear=(q->rear+1)% MAXSIZE;/*队尾向后移一位完成入队*/ return 1;} 3)出队的算法

int DeSqueue3(Squeue3 *q,Datatype *e)/*出队*/ { if(q->front==q->rear){ printf(“队列已空,无法出队!”);return 0;} *e=q->base[q->front];q->front=(q->front+1)%MAXSIZE;return 1;} 4判断队列是否为空的算法

int QueueEmpty3(Squeue3 q)// 判断是否为空 { if(q.front==q.rear)return 1;else return 0;} 5)对头元素的返还的算法

int Gethead3(Squeue3 *q,Datatype *e)// 取对头元素 { if(q->front==q->rear){ printf(“队列已空,无法出队!”);return 0;} else *e=q->base[q->front];return 1;} 6)遍历循环队列的算法

void display3(Squeue3 *q)//遍历循环对列 { int tail;tail=q->front;printf(“此队列数据为:n”);if(q->front==q->rear)printf(“此队列为空!”);else { while(tail!=q->rear){ printf(“%dt”, q->base[tail]);tail=(tail+1)%MAXSIZE;} printf(“n”);} } 4.主函数的算法 void main(){

int choice;Datatype e1;int i1,a1,x1,s1,j1;//顺序队列定义的量 int e2,i2,n2,s2,a2;//链队列定义的量

int i3,a3,x3,s3,j3;//循环队列定义的量 Datatype e3;

Squeue1 Q1;

//******************************* LinkQueue q;

//******************************** Squeue3 Q;

//**************************** choice=-1;Begin();while(choice!=0){ scanf(“%d”,&choice);switch(choice){ case 1://顺序队列

{

system(“cls”);InitSqueue1(&Q1);printf(“创建队列完成!n”);printf(“请输入数据个数j1=”);scanf(“%d”,&j1);for(i1=1;i1<=j1;i1++)//输入的数据个数不要超过MAXSIZE,多了的部分没有插入队列

{ printf(“请输入第%d个数据:”,i1);scanf(“%d”,&a1);Ensqueue1(&Q1,a1);

} printf(“对头为:%dn”,Q1.data[Q1.front]);printf(“队尾为:%dn”,Q1.data[Q1.front+j1-1]);display1(Q1);s1=-1;start1();while(s1!=0)

{

scanf(“%d”,&s1);switch(s1)

{ case 0:

system(“cls”);

choice=-1;

Begin();

break;case 1:

{

system(“cls”);printf(“请输入入队元素:n ”);scanf(“%d”,&x1);Ensqueue1(&Q1,x1);display1(Q1);

s1=-1;

start1();break;

} case 2:

{ system(“cls”);DeSqueue1(&Q1,&e1);display1(Q1);s1=-1;

start1();break;

} case 3:

{

system(“cls”);if(QueueEmpty1(Q1))printf(“此队列为空!n”);else printf(“此队列不为空!n”);

}

s1=-1;

start1();break;case 4:

{ system(“cls”);

Gethead1(&Q1,&e1);printf(“对头元素为:%dn”,e1);

s1=-1;

start1();break;

} case 5:

{ system(“cls”);display1(Q1);s1=-1;

start1();break;

}

}//switch

} //while

}//case1

break;//************************************************* case 2:

{

system(“cls”);

InitQueue2(&q);printf(“创建队列完成!n”);printf(“输入将建立链队列元素的个数:n2=”);scanf(“%d”,&n2);printf(“请输入队列的元素:n”);for(i2=1;i2<=n2;i2++)

{

printf(“请输入第%d个元素:”,i2);

scanf(“%d”,&e2);

EnQueue2(&q,e2);

} a2=-1;start2();while(a2!=0)

{

scanf(“%d”,&a2);

switch(a2)

{

case 1:system(“cls”);

QueueLength2(&q);

a2=-1;start2();

break;

case 2:{

system(“cls”);

printf(“请输入入队元素:”);

scanf(“%d”,&e2);EnQueue2(&q,e2);

output2(&q);a2=-1;start2();

}break;

case 3:

system(“cls”);

e2=DeQueue2(&q,e2);

output2(&q);

printf(“出队元素为:%dn”,e2);a2=-1;start2();

break;

case 4:DestroyQueue2(&q);printf(“队列已销毁!n”);

a2=0;system(“cls”);

choice=-1;

Begin();

break;

case 5:

Clear2(&q);printf(“队列已清空n”);

a2=0;system(“cls”);

choice=-1;

Begin();

break;

case 6:

system(“cls”);GetHead2(&q,&e2);

printf(“队头元素为:%dn”,e2);s2=-1;

start2();

break;

case 0: system(“cls”);

choice=-1;

Begin();

break;

}//switch }//while

}//case2

break;//**************************************************

case 3:

{

system(“cls”);

InitSqueue3(&Q);printf(“创建队列完成!n”);printf(“请输入数据个数j3=”);scanf(“%d”,&j3);for(i3=1;i3<=j3;i3++)//输入的数据个数不要超过MAXSIZE,多了的部分没有插入队列

{ printf(“请输入第%d个数据:”,i3);scanf(“%d”,&a3);Ensqueue3(&Q,a3);

} printf(“对头为:%dn”,Q.base[Q.front]);printf(“队尾为:%dn”,Q.base[Q.front+j3-1]);display3(&Q);s3=-1;start3();while(s3!=0)

{

scanf(“%d”,&s3);switch(s3)

{ case 0:

system(“cls”);

choice=-1;

Begin();

break;case 1:

{

system(“cls”);printf(“请输入入队元素:n ”);scanf(“%d”,&x3);Ensqueue3(&Q,x3);display3(&Q);

s3=-1;

start3();break;

} case 2:

{ system(“cls”);DeSqueue3(&Q,&e3);display3(&Q);s3=-1;

start3();break;

} case 3:

{ system(“cls”);if(QueueEmpty3(Q))printf(“此队列为空!n”);else printf(“此队列不为空!n”);

}

s3=-1;

start3();break;case 4:

{ system(“cls”);

Gethead3(&Q,&e3);printf(“对头元素为:%dn”,e3);

s3=-1;

start3();break;

} case 5:

{ system(“cls”);display3(&Q);s3=-1;

start3();break;

}

}//switch

} //while

}//case 3

break;

case 0:

printf(“ 谢谢使用!!n”);

break;

//***************************

}//switch }//while }//main

四.调试分析(xxx)

顺序队列

1.编译并调试,运行程序。

2.设计测试用例,分析测试结果,以验证所完成的系统是否达到预期效果。3.判断队列是否为空。队列是否为空的标志就是队头指针和队尾指针是否同时指向队列中的同一个位置,即队头指针和队尾指针是否相等。

4.队列满时候不能入队列,否则会出现溢出现象。即先要判断队列是否已经已满,因为队尾指针的最大值是MAXQSIZE,所以通过检查队尾指针rear是否等于MAXQSIZE来判断队列是否已满。在删除队首元素时,应首先通过队头指针和队尾指针是否相等判断队列是否已空。

5.在元素出队操作,先通过队头指针和队尾指针是否相等判断队列是否已空,空时不能操作,这是要注意的。

6.程序满足了本次试验的目的和任务要求,可以进行人机交互,在后来的程序中将会做些改进,以增强人机交互性。

7.本程序存在较多不足,如有问题,参考用户手册。

8.在程序语句中,原本使用了大量的生僻的函数名,经过改进,目前使用都是通俗易懂的函数名称,方便用户理解。

链队列

1.编译并调试,运行程序。2.设计测试用例,分析测试结果,以验证所完成的系统是否达到预期效果。

3.要注意设定一个在链队列添加一个头结点并令指针指向头结点。同时,删除不可以在最后面进行删除,但是插入可以最后一个进行插入,这点需要注意 4.需要分别指向队头和队尾的指针。

5.程序满足了本次试验的目的和任务要求,可以进行人机交互,在后来的程序中将会做些改进,以增强人机交互性。

6.本程序存在较多不足,如有问题,参考用户手册。

7.在程序语句中,原本使用了大量的生僻的函数名,经过改进,目前使用都是通俗易懂的函数名称,方便用户理解。

循环队列

1.编译并调试,运行程序。

2.设计测试用例,分析测试结果,以验证所完成的系统是否达到预期效果。

3.为了避免顺序队列造成的“假溢出”现象,我们通常采用顺序循环队列实现队列的顺序存储。4.队头指针和对尾指针与队列元素之间关系和顺序队列一样,不变。5.先判断队列是否为空。就是看队头指针和队尾指针是否同时指向队列中的同一个位置,即队头指针和队尾指针是否相等,空时不能操作,这是要注意的。

6.在将元素插入到队列之前首先要判断队列是否已经已满,根据顺序循环队列队满条件front==(rear+1)%MAXQSIZE来判断队列是否已满。在删除队首元素时,应首先通过队头指针和队尾指针是否相等判断队列是否已空。

6.程序满足了本次试验的目的和任务要求,可以进行人机交互,在后来的程序中将会做些改进,以增强人机交互性。

7.本程序存在较多不足,如有问题,参考用户手册。

8.在程序语句中,原本使用了大量的生僻的函数名,经过改进,目前使用都是通俗易懂的函数名称,方便用户理解。

五、用户手册(xx)1.链队列

(1)本程序的运行环境为DOS操作系统,执行文件名为:j.exe.(2)进入演示程序后即显示文本方式的用户界面,输入元素1,2,3,4,5创建队列。

(3)根据提示,选择操作2执行元素入队操作。回车,输入入队元素0,回车,将0插入到队列中。

(4)选择操作3执行元素出队操作,回车,队首元素1出队。

(5)选择操作1执行输出队列长度操作,回车,输出队列长度为5.(6)选择操作5执行清空队列操作,回车,清空。

(7)选择操作6执行输出队头元素操作,回车,输出元素2。

2.顺序队列

(1)创建队列,输入数据

1,2,3,4,5.(2)选择操作1,执行入队操作.输入入队元素0

(3)选择操作2,执行出队操作。

队首元素1出队.(4)选择操作3,判断对是否为空

(5)选择操作4,输出对头元素2.(6)选择操作5,显示队列元素

3、循环队列

(1)创建队列,输入数据 1,2,3,4,5.(2)选择操作1,执行入队操作.输入入队元素0

(3)选择操作2,执行出队操作。队首元素1出队.(3)选择操作3,判断对是否为空

(5)选择操作4,输出对头元素2.(6)选择操作5,显示队列元素为,2,3,4,5,0

六.测试结果(xxx)1.顺序队列的实现和运算

1)输入1即可进行进入到顺序队列

2)顺序队列的建立,输入元素的个数为5,输入的数据分别为1,2,3,4,5,对头为1,队尾为5,此时队列的数据为1 2 3

3)输入2即可进行入队运算,输入的入队元素为0,此时的队列的数据为1 2 3 4 5 0

4)输入3即可进行判断队列的是否为空,如下图:

5)输入4即可进行去的对头元素的算法,如下图所示:

6)此时的队列的数

0,如

7)输入0即可退出顺序队列,如下图:

8)输入3即可进行顺序队列的算法,如下图所示:

9)输入1即可进

应的入

算,如

10)输入2即可进行队列的出队运算,如下图所示:

:11)输入3

即可判断顺序队列是否为空的算法,如下图所示:

12)输入4即可进行去的头结点的运算,如下图所示:

13)输入5即可进行队列的输出显示的运算,如

14)输入0即可进行退出顺序队列的算法,如下图所示:

下图所示:2.链式队列的实现和运算

1)队列的建立以及队列的个数输入为5,输入的数据分别为1,2,3,4,5.如下图:

2)输入2即可进入到元素的入队运算,输入入队的元素的为0,输入3即可进行相应的元素的出队运算,出队元素为1.如下图:

3)则此时的队列的长度为5,输入4即可进行队列的销毁以及输入5即可进行队列的清空运算,如下图:

4)输入6即可进行输出队列的对头元素,输入0即可进行退出链队列的运算

3.循环队列的实现和运算

1)输入3即可进行循环队列的操作,输入5个数据,它们分别为1 2 3 4 5,输入1,即可进行入队操作,输入入队的元素为0,则此时的数据为1 2 3 4 5 0,如下图所示:

2)输入2即可进行出队运算,如下图所示:

3)输入3即可进行判断队列的是否为空,如下图所示:

4)输入4即可进行取得对头元素,如

5)输入5即可进行输出所有的数据显示,如下图所示:

所示图:

七.心得体会(xx)

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

上一篇:保护校园倡议书300字作文下一篇:毕业设计明细