




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目4空气质量分析——数组《Java程序设计案例教程(微课版)(第2版)》项目导入
借用Java编写程序对家乡的空气质量进行统计分析,以便更好地了解和监测家乡空气质量的变化,从而引起人们关注生态环境变化,并养成环保意识。空气质量指数AQI范围空气质量0-50优51-100良101-150轻度污染151-200中度污染201-300重度污染>300严重污染学习目标•掌握一维数组的定义、初始化及元素访问。•掌握一维数组中元素的移动方法。
•掌握一维数组常用的数据排序算法。
•掌握二维数组的定义、初始化及应用。
•树立数据分析思维,养成良好的环保意识。(素养目标)目录CONTENTS任务4.1一维数组的定义与初始化任务4.2一维数组元素的访问任务4.3
数组元素的移动任务4.4一维数组元素的排序任务4.5二维数组的定义与初始化任务4.6二维数组元素的访问项目实施
空气质量分析项目实训
射击选手的选拔
数组是指一组具有相同数据类型的数据的集合,这些数据可以是基本数据类型,也可以是对象(引用型数据)。
数组中存放的每个数据称为数组的一个元素,这些元素具有先后顺序,元素的数量(个数)称为数组的长度,数组的长度是在数组创立时就固定了的,以后不能更改。
数组按存放元素的复杂程度可分为一维数组、二维数组、多维数组。习惯上将维数大于2的数组统称为多维数组。任务4.1一维数组的定义与初始化4.1.1一维数组的定义
一维数组可以直观地认为是排列成一行或一列的数据列表。要想使用数组,就需要先对数组进行定义,定义数组分为声明与创建两步。1.一维数组的声明一维数组声明的语法格式如下:
数据类型数组名[];或数据类型[]数组名;说明:数组元素的数据类型可以是Java的任何一种类型。例如:intx[];4.1.1一维数组的定义2.一维数组的创建在为数组分配内存空间时,使用关键字new,同时指明数组的长度。为数组分配内存空间的格式如下:数组名=new数据类型[元素个数];例如,对上面声明的一维数组x分配存储空间:x=newint[100];也可以把数组的声明和创建合二为一:intx[]=newint[100]; 4.1.1一维数组的定义第1步声明一维数组“intx[];”在内存中分配一块存储空间给x。内存分布示意图如图所示。第2步创建一维数组“x=newint[100];”则是在内存中分配了100个连续的存储空间,且把首地址给了x,接下来就可以使用变量x引用数组,这时的内存使用状态如图所示。图4-1声明数组x的内存示意图图4-2创建数组x的内存示意图4.1.2一维数组的初始化数组初始化指的是在定义数组时同时为各元素赋初值。例如:intx[]={3,5,7,9,11};或intx[]=newint[]{3,5,7,9,11};则数组x的内存分布示意图如图所示。此时数组的长度由数据元素自动确定。图
数组x的内存分布示意图任务实践4-1定义指定长度的数组【任务描述】接收用户输入的某班学生的Java考试成绩,人数由用户输入指定。【任务分析】1.通过Scanner创建输入对象从键盘读入人数。2.用人数作为数组的长度定义一维数组。3.读入该班的Java考试成绩。目录CONTENTS任务4.1一维数组的定义与初始化任务4.2一维数组元素的访问任务4.3
数组元素的移动任务4.4一维数组元素的排序任务4.5二维数组的定义与初始化任务4.6二维数组元素的访问项目实施
空气质量分析项目实训
射击选手的选拔4.2一维数组元素的访问数组中的每个元素通过下标来引用,格式为:数组名[下标值]下标值从0开始,最大的下标是“数组长度-1”。在Java中,为了方便获得数组的长度,提供了一个length属性,在程序中通过“数组名.length”来获得数组的长度,即元素个数。借用下标可以逐一访问数组中的全部元素,即对数组进行遍历。图4-3数组x的内存分布示意图4.2.1一维数组元素的访问【例】数组x中保存着一批整数,请按顺序输出所有的元素。publicclassExample4_1{publicstaticvoidmain(String[]args){intx[]={3,1,5,8,9,11,42,15};for(inti=0;i<x.length;i++)System.out.print(x[i]+"\t");}}【例题分析】对于数组中的元素进行访问,可以借用下标法实现:x[索引],下标的变化范围:0,1,2,…,x.length-1,是非常有规律的,为此可以借用循环来实现元素访问。【程序实现】4.2.2数组元素的查找借用一维数组,可以非常方便地处理具有相同数据类型的数据,对数组中的元素常规的操作包括:增、删、改、查。1.普通查找【例】在数组中查找给定的值x是否存在,如果存在,请提示它在数组中出现的位置。【例题分析】在数组a中查找x,就需要对数组进行遍历访问,按照顺序查找,将数组的每一个元素与x进行对比。如果数组中存在值为x的元素,则其对应的下标为:0-a.length-1,为此定义一个辅助变量index,并赋初值-1,用index来记录x出现的位置。publicclassExample4_2{publicstaticvoidmain(String[]args){inta[]={4,2,7,8,1,9,2,8};intx=7;intindex=-1;for(inti=0;i<a.length;i++)if(a[i]==x)index=i;if(index==-1)System.out.println("数组中没有值为"+x+"的元素");elseSystem.out.println("数组中第"+(index+1)+"个数是"+x);}}【程序实现】4.2.2数组元素的查找2.最值问题【例】输入10个整数,查找其中的最大值。【例题分析】批量数据的最值查找方法,一般都是假设第一个值为最大值,把它存放在一个第三方的变量max中,然后将max与后面的元素逐一比较大小,如果有一个元素的值比max中保存的值大了,则更新max中的值,最后max中存放的即为数组中的最大值。4.2.2
数组元素的查找importjava.util.Scanner;publicclassExample4_3{publicstaticvoidmain(String[]args){inta[]=newint[10];Scannerinput=newScanner(System.in);System.out.println("请输入10个整数");for(inti=0;i<10;i++){a[i]=input.nextInt();}intmax=a[0];for(inti=1;i<a.length;i++)if(max<a[i])max=a[i];System.out.println("最大值为:"+max);}}【程序实现】4.2.2数组元素的查找最值查找问题扩展(1)输入10个整数,查找其中的最大值,并显示第几个是最大值。4.2.2数组元素的查找……//省略代码,读入数据,存入数组aintmaxi=0;for(inti=1;i<a.length;i++)if(a[maxi]<a[i])maxi=i;System.out.println("第"+(maxi+1)+"个值最大值,为:"+a[maxi]);最值查找问题扩展4.2.2数组元素的查找(2)借用自定义方法实现查找最大值及其位置。staticintfindMax(inta[]){intj=0;for(inti=1;i<a.length;i++) if(a[j]<a[i]) j=i;returnj;}精益求精,一个需求多种解决方案!任务实践4-2数组元素的访问-中文大写数字对照【任务描述】接收用户输入的数字0-10,输出其对应的中文大写数字。如用户输入:3。程序输出显示:叁。【任务分析】1.
用一维数组保存0-10对应的中文大写数字。2.
通过Scanner创建输入对象从键盘读入数字。3.
从数组中查找对应的大写并输出。任务实践4-3知识竞赛随机选人【任务描述】张思睿班要进行一次环保知识竞赛,为调动现场活动气氛他决定写一个随机选人的程序,每次从班级中随机选取一人回答问题。【任务分析】借用一维数组names保存全班同学的名字,使用Math.random()生成一个数组names的随机下标。根据下标访问数组names中的元素,即可随机选取一位同学。【任务描述】斐波那契数列(Fibonaccisequence),又称为黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34……在数学上,斐波那契数列以递推的方法定义:F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)(n≥3,n∈N*)。请编写程序,输出显示数列的前20项数据,每5个数一行。【任务分析】借用一个长度为20的数组f来产生并保存这20个数据项。其中f[0]=1、f[1]=1,下标为2及以上的数组元素可以递推得出:f[i]=f[i-1]+f[i-2]。任务实践4-3知识竞赛随机选人【任务描述】斐波那契数列(Fibonaccisequence),又称为黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、34……在数学上,斐波那契数列以递推的方法定义:F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)(n≥3,n∈N*)。请编写程序,输出显示数列的前20项数据,每5个数一行。【任务分析】借用一个长度为20的数组f来产生并保存这20个数据项。其中f[0]=1、f[1]=1,下标为2及以上的数组元素可以递推得出:f[i]=f[i-1]+f[i-2]。任务实践4-4生成斐波那契数列【任务描述】青年歌手参加的歌手大赛有一个评委评分环节,假设有10个评委评分(满分为100分),去掉一个最高分、去掉一个最低分后,剩余8个评分的平均分即为该歌手的最后得分,编写程序求某歌手的得分。【任务分析】多个评委的评分可以借助一维数组保存,首先求所有评分的总和,再减去最高分、最低分,然后除以有效评分的个数,即可得到该歌手的得分。任务实践4-5歌手大赛评分程序目录CONTENTS任务4.1一维数组的定义与初始化任务4.2一维数组元素的访问任务4.3
数组元素的移动任务4.4一维数组元素的排序任务4.5二维数组的定义与初始化任务4.6二维数组元素的访问项目实施
空气质量分析项目实训
射击选手的选拔数组在内存中占用一块连续的存储空间进行存放,有时需要在数组中进行数据元素的插入与删除,为此需要将一批数据进行前移或后移,从而达到插入和删除的目的。任务4.3数组元素的移动1.数据的删除【例】将数组中值为x的元素进行删除,并输出删除后的数组。【例题分析】假设某一时刻数组中存放的数据如下图所示,数组中共包含5个有效数据。现要将值为5的元素删除,为此需要将后面的两个元素往前移动,覆盖掉要删除的元素即可,删除后的数组中包含4个有效数据。32519321993211932199原始数组元素前移元素前移删除后数组元素前移a[j]=a[j+1]5a[3]a[2]a[4]a[3]任务4.3数组元素的移动publicclassExample4_5{publicstaticvoidmain(String[]args){inta[]={3,2,5,1,9};intx=5;intn=5; //n中存放数组中的有效数据个数intindex=-1;for(inti=0;i<n;i++) //在数组中查找值为x的元素if(a[i]==x)index=i;if(index==-1)System.out.println("数组中没有值为"+x+"的元素,删除失败");else{for(intj=index;j<n-1;j++)//将x之后的数据前移覆盖掉xa[j]=a[j+1];n--;System.out.println("已将数组中值为"+x+"的元素删除");}System.out.println("数组中的数据:");for(inti=0;i<n;i++)System.out.print(a[i]+"\t");}}【程序实现】任务4.3数组元素的移动数据删除的扩展思考:测试删除数据位于数组的首尾,能否删除成功?养成测试的习惯!思考:测试数组中存在多个要删除的,能否删除成功?如果待删除的多个数据相邻该怎么删除?32559325993255932599原始数组元素前移元素前移删除后5任务4.3数组元素的移动//同前面的例题for(inti=0;i<n;i++)//在数组中查找值为x的元素 if(a[i]==x){ index=i; for(intj=index;j<n-1;j++)//将x之后的数据前移覆盖掉x a[j]=a[j+1]; i--; n--; }if(index==-1) System.out.println("数组中没有值为"+x+"的元素,删除失败");else{System.out.println("已将数组中值为"+x+"的元素删除");}【删除多个相邻元素的关键代码】任务4.3数组元素的移动2.数据的插入【例题】数组a中存放着一批升序排列的数据,请将值为x的元素进行插入,并保证插入x后数组中的元素仍按升序排列。【例题分析】假设数组a中原始数据的存放如图所示,有效数据位数为5。插入值为2的元素,插入后的有效数据位数为6。135790135579135799135779原始数组元素后移元素后移元素后移数组元素后移a[j]=a[j]x=2133579元素后移插入x32a[4]a[5]a[4]a[3]a[3]a[2]a[2]a[1]任务4.3数组元素的移动publicclassExample4_6{publicstaticvoidmain(String[]args){ inta[]={1,3,5,7,9,0}; int
n=5;//数组a中存放的有效数据的位数 intx=2; inti; for(i=n-1;i>=0;i--)//从最后一个有效数据位置开始,边后移边查找x插入的合适位置 if(a[i]>x) a[i+1]=a[i]; elsebreak; a[i+1]=x;//插入x n++; System.out.println("数组a中的数据:"); for(i=0;i<n;i++) System.out.print(a[i]+"\t"); }}【程序实现】严谨细致精益求精任务4.3数组元素的移动任务实践4-6数据清洗【任务描述】数据清洗是数据预处理的重要步骤,它有助于消除数据中的噪音和错误,从而为后续的数据分析和处理提供高质量的数据基础。本任务对某班的Java考试成绩进行数据清洗,去除无效数据(负数),以确保数据的准确性。【任务分析】遍历存放成绩的数组,识别是否有效数据,去除无效数据。任务实践4-7数据的逆序存放【任务描述】在图形处理的算法中,经常需要对图形数据进行逆序存放,以实现特定的效果。例如镜像处理、翻转等。现在数组a定义如下:int
a[]={1,2,3,4,5,6,7},请编写程序将其中保存的数据逆序存放,变成{7,6,5,4,3,2,1}。【任务分析】对数组中的元素进行移动,将首和尾对称的数据交换即可实现。目录CONTENTS任务4.1一维数组的定义与初始化任务4.2一维数组元素的访问任务4.3
数组元素的移动任务4.4一维数组元素的排序任务4.5二维数组的定义与初始化任务4.6二维数组元素的访问项目实施
空气质量分析项目实训
射击选手的选拔对数组中的数据除了进行基本的増、删、查、改操作外,有时还需要对数据进行排序。下面来介绍两种比较常见的排序:选择排序和冒泡排序,并介绍使用Java的API——Arrays.sort()进行数据排序的方法。任务4.4一维数组元素的排序1.选择排序选择排序(SelectionSort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。【例】数组a中存放着一批数据(2,8,1,6,7),请采用选择排序对其进行升序排列。【例题分析】第1趟排序排序结果:1,8,2,6,7第2趟排序排序结果:1,2,8,6,7第3趟排序排序结果:1,2,6,8,7第4趟排序排序结果:1,2,6,7,8至此,排序结束。任务4.4一维数组元素的排序选择排序的动画展示publicclassExample4_7{publicstaticvoidmain(String[]args){inta[]={2,8,1,6,7};for(inti=0;i<a.length-1;i++){intp=i;for(intj=i+1;j<a.length;j++)if(a[p]>a[j])p=j;if(p!=i){intt=a[i];a[i]=a[p];a[p]=t;}System.out.print("\n第"+(i+1)+"趟排序结果:");for(intk=0;k<a.length;k++)System.out.print(a[k]+"");}}【程序实现】任务4.4一维数组元素的排序2.冒泡排序在冒泡排序的过程中,不断地比较数组中相邻两个元素的大小,较小者向上浮,较大者往下沉,整个过程犹如水中气泡上升的情景。【例】数组a中存放着一批数据(9,7,5,8,4),请采用冒泡排序对其进行升序排列。任务4.4一维数组元素的排序图4-10数组a冒泡排序的第三趟排序过程图4-11数组a冒泡排序的第四趟排序过程图4-8数组a冒泡排序的第一趟排序过程图4-9数组a冒泡排序的第二趟排序过程任务4.4一维数组元素的排序冒泡排序的动画展示任务4.4一维数组元素的排序对数组a中的n个数据排序,需要经过n-1趟排序过程,分析排序的过程,可以发现以下规律。第i趟排序元素比较的次数15-1=425-2=335-3=245-4=1任务4.4一维数组元素的排序publicstaticvoidbubbleSort(int[]a){//定义对数组冒泡排序的方法intn=a.length;for(inti=1;i<n;i++){for(intj=0;j<n-i;j++){if(a[j]>a[j+1]){ //比较相邻元素inttemp=a[j];a[j]=a[j+1];a[j+1]=temp;}}System.out.print("第"+i+"轮排序后:");
}}【程序实现】任务4.4一维数组元素的排序3.借助Arrays.sort()进行排序任务4.4一维数组元素的排序java.util包提供了Arrays类,该类提供了很多常用的方法来操作数组,如对数组进行排序、查询等。排序的语法格式如下:Arrays.sort(数组名);importjava.util.Arrays;publicclassExample4_8{publicstaticvoidmain(String[]args){int[]a={9,7,5,8,4};Arrays.sort(a);System.out.println("升序排列后:");for(inttemp:a)System.out.print(temp+"\t");}}【任务描述】为了激励更多的同学积极参与健身运动,张思睿想编写一个程序来获取大家每天3名的运动步数,并在公告栏中公布他们的成绩,以此够激励更多的同学积极参与运动,促进健康的校园生活。【任务分析】借用一维数组保存参与者的运动步数,使用上面的任意一种排序方法对运动步数排名,选取前三名即可。任务实践4-8运动大排名目录CONTENTS任务4.1一维数组的定义与初始化任务4.2一维数组元素的访问任务4.3
数组元素的移动任务4.4一维数组元素的排序任务4.5二维数组的定义与初始化任务4.6二维数组元素的访问项目实施
空气质量分析项目实训
射击选手的选拔多维数组元素有多个下标,以标识它在数组中的位置,二维数组可以看成是以一维数组为元素的数组。4.5.1二维数组的定义二维数组的定义与一维数组的定义相似,分为数组的声明与创建两步。1.二维数组的声明二维数组的声明有下列几种方式。数据类型数组名[][];例如:inta[][];数据类型[][]数组名;例如:int[][]a;2.内存分配为二维数组分配内存空间的格式如下:数组名=new数据类型[元素个数1][元素个数2];例如:a=newint[3][4];数组a在内存中占用的内存分配示意图如图4-12所示。另外,定义的二维数组中每一维的大小可不同。例如:inta[][]={{8,1,6},{3,5},{4,7,8,9}};其在内存中的存储结构如图
所示。4.5.1二维数组的定义图
二维数组a的内存分布示意图
或者intb[][]=newint[3][]; //在创建数组时仅确定了一维维数b[0]=newint[3]; //指定第二维的维数b[1]=newint[4];b[2]=newint[5];4.5.2二维数组的静态初始化图
二维数组b的内存分布示意图二维数组初始化比一维数组要复杂些,不过方式与一维的类似。例如:int[][]s={{8,1,6},{3,5},{4,7,8,9}};图4-12二维数组a的内存分布示意图4.5.2二维数组的静态初始化目录CONTENTS任务4.1一维数组的定义与初始化任务4.2一维数组元素的访问任务4.3
数组元素的移动任务4.4一维数组元素的排序任务4.5二维数组的定义与初始化任务4.6二维数组元素的访问项目实施
空气质量分析项目实训
射击选手的选拔二维数组的元素通过两个索引进行访问,分别是行数组索引和列数组索引,例如,对于二维数组a,可通过a[i][j]进行访问,其中i和j为数组a的索引。二维数组行数组的长度可通过a.length获取,列数组的长度可通过a[i].length获取。二维数组元素的引用格式如下:数组名[索引1][索引2];例如:s[1][2];任务4.6二维数组元素的访问publicclassExample4_10{publicstaticvoidmain(String[]args){inta[][]={{6,5},{3,5,7,3},{4,2,2}};for(inti=0;i<a.length;i++){for(intj=0;j<a[i].length;j++)System.out.print(a[i][j]+"\t");System.out.println();}}}【例】某二维数组a中存放着数据inta[][]={{6,5},{3,5,7,3},{4,2,2}},请编写程序实现将该二维数组中的数据按行输出显示。【程序实现】任务4.6二维数组元素的访问任务实践4-9矩阵的转置【任务描述】矩阵转置是一种常见的线性代数操作,它将矩阵的行和列互换,即将矩阵的第i行变成第i列,第j列变成第j行。矩阵转置在在神经网络和深度学习、图像处理等数学、工程、计算机科学等领域都有着广泛的应用。请编写程序实现将二维数组a中保存的矩阵(行和列的维度相等)进行转置。【任务分析】对于一般的矩阵转置,我们需要定义一个新的二维数组。如果数组a中包含m行n列,则需要定义一个数组b,包含n行m列。然后将数组a中的元素a[i][j]复制到数组b的b[j][i]中即可。本任务中的二维数组a中保存的矩阵的行和列相等,为节省内存空间避免定义一个新的二维数组,我们可对二维数组a中的数据进行交换,以矩阵的对角线为分界线,将下三角的数据与上三角的数据进行交换,即交换a[i][j]和a[j][i]。任务实践4-10多门课考试成绩的统计【任务描述】某班级的考试成绩如表4-4所示,请采用二维数组保存这些数据,并计算:(1)全班所有科目的平均分;(2)每位学生的平均分。序号科目Java数据库Web前端大学英语大学语文19968978856289958859643897999586745979856885【任务分析】多门课的成绩可以借助二维数组进行存储,每一个行数组为一位学生的成绩列表。全班的平均分为数组中全部数据的平均值。每位同学的平均分为每一个行数组中数据的平均值。任务实践4-11杨辉三角形【任务描述】我国南宋数学家杨辉所著的《详解九章算法》中提出了用于表示二项式展开后的系数构成的三角图形,称为“开方做法本源”,简称为“杨辉三角形”。这比法国数学家帕斯卡发现的相同规律的“帕斯卡三角形”早300多年。杨辉三角形是中国数学史上的伟大成就之一。杨辉三角形的第i+1行是(a+b)i的展开式的系数。下面给出了杨辉三角形的前4行的一种显示格式:11
11
2
11
3
3
1请通过Java程序实现接收用户输入的行数n,输出杨辉三角形的前n行。样例输入:4样例输出:11
11
2
11
3
3
1任务实践4-14杨辉三角形【任务分析】杨辉三角形的数字显示是由多行和多列组成的,为此可以借用前面所学的二维数组存放这些数字。观察杨辉三角形还会发现以下规律。(1)第n行有n个数字。(2)每一行的开始和结尾数字都为1,用二维数组的元素表示为a[i][0]=1、a[i][j]=1(当i==j时)。(3)第i行的第j个数字等于第i-1行的第j个数字加上第i-1行的第j-1个数字,用二维数组的元素表示为a[i][j]=a[i-1][j]+a[i-1][j-1]。目录CONTENTS任务4.1一维数组的定义与初始化任务4.2一维数组元素的访问任务4.3
数组元素的移动任务4.4一维数组元素的排序任务4.5二维数组的定义与初始化任务4.6二维数组元素的访问项目实施
空气质量分析项目实训
射击选手的选拔项目实施项目分析通过访问中国空气质量在线监测分析平台获取A城市的空气质量指标AQI值。为将A城市一年的AQI数据“存”起来我们可使用一维数组,保存最近三年的数据可使用二维数组,然后对数组中的数据进行访问即可实现空气质量的统计与分析。项目实施项目实施关键代码如下://计算过去一年空气质量指标AQI的平均值doubleAQI[]={111,75,122,76,84,83,65,76,68,73,78,82};doublesum=0;for(inti=0;i<AQI.length;i++) sum+=AQI[i];doubleavg=sum/AQI.length;System.out.printf("A市2023年的AQI平均值为:%.2f\n",avg);项目实施项目实施关键代码如下://查找空气质量最好和最差的月份intmaxi=0,mini=0;for(inti=1;i<AQI.length;i++){ i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 植筋锚固工程施工劳务分包合同
- 培训场地租用合同书
- 运输驾驶员雇佣合同
- 合同买卖担保协议书
- 借款合同第三方担保
- 医疗器械服务协议合同
- 建筑次结构劳务合同
- 房地产融资居间合同书
- 工作接送服务合同范本
- 项目合同终止申请书(2025年版)
- 中国少数民族文化知到课后答案智慧树章节测试答案2025年春云南大学
- 西方教育史考题及答案
- 软件开发java笔试题及答案
- 小学综合实践三年级下册巧手工艺坊教学课件
- 2025年绍兴职业技术学院单招职业适应性测试题库带答案
- 2025年监理工程师考试《建设工程监理案例分析(水利工程)》综合案例题
- DB61T 5113-2024 建筑施工全钢附着式升降脚手架安全技术规程
- 店铺转让合同店铺转让合同电子版5篇
- 公共卫生应急管理体系建设的调研报告
- 2025年扬州工业职业技术学院单招职业倾向性测试题库完美版
- 2023 年浙江省事业单位 招聘考试真题及答案解析
评论
0/150
提交评论