版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《C语言程序设计》教案PAGE1课题名称项目4商品库存管理系统任务4-1实现商品库存基础功能计划课时6课时授课老师地点学情分析随着程序功能的增多,main函数中的代码越来越多,导致main函数中的代码复杂、可读性差、不宜维护,解决的办法就是将功能相同的代码读取出来,将这些代码模块化,在程序需要时可以直接调用。优势:通过设计一个简单的商品库存管理系统,用于管理商品库存,允许用户添加、删除、修改商品,查询商品信息,检查库存预警,生成补货建议,使学生掌握函数的定义及使用。思政需求:结合我国古代算筹数学文化,培养严谨计算、规范编程的职业素养,树立文化自信。教学目标知识目标掌握函数的定义及调用形式,掌握函数的嵌套及递归调用。掌握函数中变量的存储类别、存储方式和作用域。区分内部函数和外部函数的编写,会正确调用外部函数。能力目标具备使用函数进行程序的设计,更好地组织代码结构与逻辑。素质目标具有开拓自我、坚忍不拔的毅力和吃苦耐劳的品质。在编程中注重对函数的正确编写及调用,增强程序的复用性及可读性。教学重点掌握函数的语法、值传递、作用域和调用规则.教学难点真正理解值传递的内存机制、递归的设计思维,以及从“写函数”过渡到“设计函数”的模块化观念。教学方法讲授法、案例演示法、任务驱动法、小组互助纠错法教学工具计算机机房、Dev-C++软件、PPT课件、教材、程序效果图、语言分类对比表等教学过程第一课时:函数的基本概念与分类+代码基础讲解(45分钟)一.课程导入(5分钟)晓冰同学预开发一个“商品库存管理系统”,但随着程序功能的增多,main函数中的代码越来越多,起初清爽的
main
函数,随着功能堆砌变成了难以维护的“大杂烩”。于是他请教了老师,通过模块化将其重构,把散乱的功能整理成独立的“专用工具箱”,让
main
函数从杂役变为高效调用工具的管理者。二.新知讲授(35分钟)4.1.1函数的基本概念与分类函数是C语言程序的基本模块,用户可以把自己的算法编成一个个相对独立的函数模块,然后用调用的方式来使用函数,实现特定的功能。由于采用了函数模块式的结构,所以C语言易于实现结构化程序设计,该设计可以使程序的层次结构清晰,便于程序的编写、阅读、调试。1.函数的分类C语言的函数分为库函数和用户定义函数两种。(1)库函数由C系统提供,用户无须定义,只需在程序开头包含有该函数原型的头文件,即可在程序中直接调用。例如printf、scanf、getchar、putchar、gets、puts等函数,应用时都需要加上头文件:"stdio.h"。【例4-1】求x的值。程序代码如下:(2)自定义函数由用户按实际需要自己编写的函数,用户可以把自己的算法编成一个个相对独立的函数模块,然后用调用的方式来使用函数,实现特定的功能。本项目主要介绍自定义函数的定义和调用方法。2.函数的定义根据函数是否有返回值和是否有参数,可将自定义函数分为以下四种形式(1)无返回值无参数函数,定义形式如下:其中void和函数名称为函数头。函数名后有一个圆括号,其中无参数,但括号不可少。{}中的内容称为函数体。void代表函数无类型,即无返回值,不需要return语句。例如:此函数既是一个无返回值无参数函数,当被其他函数调用时,会输出“Helloworld!”。(2)无返回值有参数函数,定义形式如下:有参函数比无参函数多了一个内容,即形式参数列表,简称形参。形式参数可以是各种类型的变量,参数之间用逗号间隔。进行函数调用时,主调函数将传递给形式参数实际的值,形参是变量,必须在形式参数列表中给出形参的类型说明符。【例4-2】编写函数,求两个整数的和(采用无返回值有参数函数形式),代码如下:三.任务解读与思政融入(5分钟)第二课时:新知讲授+代码基础讲解+学生实操(45分钟)一、新知讲授(15分钟):函数的分类-续(3)有返回值无参数函数,定义形式如下:类型说明符定义了函数的类型,函数的类型代表了函数返回值的类型。通过return语句把表达式的值作为函数的值返回给主调函数。注意,有返回值的函数中至少应有一个return语句。【例4-3】编写函数,求两个整数的和(采用有返回值无参数函数形式),代码如下:1.intsum()//自定义函数2.{3.inta,b,s;4.scanf("%d%d",&a,&b);5.s=a+b;6.returns;7.}8.main()//主函数9.{10.ints;11.s=sum();12.printf("s=%d\n",s);13.}(4)有返回值有参数函数,定义形式如下:类型说明符定义函数的类型,形式参数列表表示函数为有形式参数,此类函数表示函数是一个有返回值有参数函数。【例4-4】编写函数,求两个整数的和(采用有返回值有参数函数形式),代码如下:1.intsum(inta,intb)//自定义函数2.{3.ints;4.s=a+b;5.returns;6.}7.main()//主函数8.{9.intx,y,s;10.scanf("%d%d",&x,&y);11.s=sum(x,y);12.printf("s=%d\n",s);13.}二.学生独立实操+巡回指导(25分钟)学生完成代码编写、保存、编译运行;教师巡回解决共性问题:1、学生常认为“在函数内修改形参就能修改实参”。2、需要配合内存模型图(栈帧)讲解,清晰展示调用时实参拷贝到形参的过程,以及函数返回后形参被释放。小组互助,互相查看界面排版美观度,交叉纠错。三.成果点评+课堂总结(5分钟)抽取2-3份学生程序展示,点评编程思路和代码;第三课时:新知讲授+代码基础讲解(45分钟)一:课程导入(5分种)上节课的学习要点。二:知识点讲解--函数的调用(40分钟)1.无参函数的调用其调用形式:在C语言中,无参函数是指定义时不需要接收任何参数的函数。调用这类函数时,只需使用函数名加一对空括号()即可。需要注意以下几点:(1)函数定义中参数列表使用void显式声明无参数(或留空)。(2)调用时必须加上空括号()。(3)函数可返回void(无返回值)或其他类型【例4-5】分析一下程序运行的结果,代码如下:1.#include<stdio.h>2.//示例1:无返回值无参数函数3.voidprintWelcome(void)4.{5.printf("===欢迎使用本系统===\n");6.printf("请选择操作:\n");7.printf("1.查询余额\n");8.printf("2.修改密码\n");9.printf("======================\n");10.}11.//示例2:有返回值无参数函数12.intgenerateRandomNumber(void){13.returnrand()%100;//返回0-99的随机数14.}15.//示例3:参数列表留空(等效于void)16.voidbeep(){17.printf("\a");//发出蜂鸣声18.}19.intmain(){20.//调用无参函数21.printWelcome();//显示欢迎菜单22.beep();//发出提示音23.//调用带返回值的无参函数24.intnum=generateRandomNumber();25.printf("生成的随机数:%d\n",num);26.return0;27.}
2.有参函数的调用在C语言中,有参函数是指需要接收参数才能执行的函数。调用这类函数时,必须在函数名后的括号内提供与定义匹配的实参(实际参数)。【例4-6】分析一下程序运行的结果,代码如下:1.#include<stdio.h>2.//示例1:求三个数中的最大值3.floatmax(floatx,floaty,floatz){4.floatmax_val=x;5.if(y>max_val)max_val=y;6.if(z>max_val)max_val=z;7.returnmax_val;8.}9.intmain()10.{11.//调用max函数(浮点型参数)12.floatmax_num=max(3.2,5.8,4.1);13.printf("最大值:%.1f\n",max_num);//输出:最大值:5.814.}
3.实参和形参4.返回值返回值是指函数调用之后,执行函数体的程序段所取得的并返回给主调函数的值,即函数值。函数值只能通过return语句返回给主调函数。return语句一般形式:【例4-7】调用函数,并分析一下程序运行的结果,代码如下:1.#include<stdio.h>2.intmain()3.{ intmax(floatx,floaty); 4. floata,b;5. intc;6. scanf("%f,%f",&a,&b);7. c=max(a,b);8. printf("maxis%d\n",c); 9.return0;10.}11.intmax(floatx,floaty)12.{13. floatz; //z为实型变量14. z=x>y?x:y;15. return(z); 16.}
17.
第四课时:被调函数的声明和函数原型+代码基础讲解+学生实操(45分钟)一、知识点讲解(10分钟)5.被调函数的声明和函数原型在一个函数中调用另一个函数(即被调用函数)需要具备如下条件:(1)首先被调用的函数必须是已经定义的函数(是库函数或用户自己定义的函数)。(2)如果使用库函数,应该在本文件开头用#include指令将调用有关库函数时所需用到的信息“包含”到本文件中来。(3)如果使用用户自己定义的函数,而该函数的位置在调用它的函数(即主调函数)的后面(在同一个文件中),应该在主调函数中对被调用的函数作声明(declaration)。声明的作用是把函数名、函数参数的个数和参数类型等信息通知编译系统,以便在遇到函数调用时,编译系统能正确识别函数并检查调用是否合法。一般形式为:或为:【例4-8】输入两个实数,用一个函数求出它们之和,代码如下:1.#include<stdio.h>2.intmain()3.{ floatadd(floatx,floaty); //对add函数作声明4. floata,b,c;5. printf("Pleaseenteraandb:"); //提示输入6. scanf("%f,%f",&a,&b); //输入两个实数7. c=add(a,b); //调用add函数8. printf("sumis%f\n",c); //输出两数之和9. return0;10.}11.floatadd(floatx,floaty) //定义add函数12.{ floatz;13. z=x+y;14. return(z); //把变量z的值作为函数值返回15.}
二、学生独立实操+巡回指导(30分钟)学生完成代码编写、保存、编译运行;教师巡回解决共性问题:1、学生易混淆“可见性”与“生存期”。2、全局变量被同名局部变量覆盖时,容易误以为全局变量被修改。三.、成果点评+课堂总结(5分钟)抽取2-3份学生程序展示,点评调用方式、函数类型、代码优劣;第五课时:函数的特殊调用形式+代码基础讲解(45分钟)一:课程导入(5分钟)上节课的学习要点:形参与实参的区别及值传递的本质二、知识点讲解(40分钟)1.函数的嵌套调用在C语言中,函数的嵌套调用指的是在一个函数的定义中调用另一个函数。C语言不允许函数的嵌套定义(即在一个函数内部定义另一个函数),但允许函数的嵌套调用。嵌套调用的深度理论上只受栈空间的限制,但过深的嵌套可能导致栈溢出。图4-3函数的嵌套调用执行过程【例4-9】输入4个整数,找出其中最大的数。用函数的嵌套调用来处理,代码如下:1.#include<stdio.h>2.intmain()3.{ intmax4(inta,intb,intc,intd); //对max4的函数声明4. inta,b,c,d,max;5. printf("Pleaseenter4intergernumbers:"); //提示输入4个数6. scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数7. max=max4(a,b,c,d);//调用max4函数,得到4个数中的最大者8. printf("max=%d\n",max); //输出4个数中的最大者9. return0;10.}11.intmax4(inta,intb,intc,intd) //定义max4函数12.{ intmax2(inta,intb); //对max2的函数声明13. intm;14.m=max2(a,b);//调用max2函数,得到a和b中的大者,放在m中15. m=max2(m,c);//调用max2函数,得到a,b,c中的大者,放在m中16. m=max2(m,d);//调用max2函数,得到a,b,c,d中的大者,放在m中17. return(m); //把m作为函数值带回main函数18.}19.intmax2(inta,intb) //定义max2函数20.{ if(a>=b)21. returna; //若a≥b,将a作为函数返回值22. else23. returnb; //若a<b,将b作为函数返回值24.}
2.函数的递归调用在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用,这种函数称为递归函数。C语言允许函数的递归调用,在递归调用中,主调函数又是被调函数。例如:1.intf(intx)2.{3. inty,z;4. z=f(y); //在执行f函数的过程中又要调用f函数5. return(2*z);6.}
程序中不应出现无终止的递归调用,而只应出现有限次数的、有终止的递归调用,这可以用if语句来控制,只有在某一条件成立时才继续执行递归调用;否则就不再继续。【例4-10】用递归算法,求n!。解题思路:要想得到n!,首先要分析阶乘的定义:n!=n×(n-1)×(n-2)×...×1,其中
0!=1(特殊约定)(1)递归基(终止条件):当
n==0
时,直接返回
1(因为0!=1)。(2)递归步骤:将问题分解为更小的子问题:n!=n×(n-1)!
调用自身计算
(n-1)!
的结果,再乘以n。1.#include<stdio.h>2.//递归阶乘函数3.longfactorial(intn){4.if(n==0)//终止条件:0!=15.return1;6.else7.returnn*factorial(n-1);//递归步骤:n!=n*(n-1)!8.}9.intmain(){10.intn;11.printf("请输入非负整数n:");12.scanf("%d",&n);13.if(n<0){14.printf("错误:负数没有阶乘!\n");15.return1;16.}17.longresult=factorial(n);18.printf("%d!=%ld\n",n,result);19.return0;20.}
【例4-11】使用函数递归调用解决“猴子吃桃”问题。有一群猴子摘了一堆桃子,他们每天吃桃子的一半再多吃一个,第10天就只剩下一个桃子,计算并分析猴子摘了多少桃子。1.#include<stdio.h>2.
//递归计算第day天的桃子数量3.intpeach(intday){4.if(day==10){5.return1;//第10天只剩1个桃子(递归终止条件)6.}else{7.//递归计算下一天的桃子数,并根据吃桃规则反推8.return2*(peach(day+1)+1);9.}10.}11.
intmain(){12. intday;13.inttotal=peach(1);//计算第1天的桃子总数14.printf("猴子一共摘了%d个桃子\n",total);15.16.//验证:打印每天开始的桃子数17.printf("\n每日桃子数量验证:\n");18.for(day=1;day<=10;day++)19. {20.printf("第%2d天开始:%5d个桃子\n",day,peach(day));21.}22.return0;23.}
运行结果:猴子一共摘了1534个桃子
每日桃子数量验证:第1天开始:1534个桃子第2天开始:766个桃子第3天开始:382个桃子第4天开始:190个桃子第5天开始:94个桃子第6天开始:46个桃子第7天开始:22个桃子第8天开始:10个桃子第9天开始:4个桃子第10天开始:1个桃子第六课时:数组作为函数参数+代码基础讲解(15分钟)+实训练习(30分钟)一、知识点讲解(15分钟)4.1.4数组作为函数参数1.数组元素作为函数实参数组元素可以用作函数实参,但是不能用作形参。因为形参是在函数被调用时临时分配存储单元的,不可能为一个数组元素单独分配存储单元(数组是一个整体,在内存中占连续的一段存储单元)。在用数组元素作函数实参时,把实参的值传给形参,是“值传递”方式。数据传递的方向是从实参传到形参,单向传递。例如:图4-5传递方向【例4-12】输入10个数,要求输出其中值最大的元素和该数是第几个数。1.#include<stdio.h>2.intmain()3.{ intmax(intx,inty); //函数声明4. inta[10],m,n,i;5. printf("enter10integernumbers:");6. for(i=0;i<10;i++) //输入10个数给a[0]~a[9]7. scanf("%d",&a[i]);8. printf("\n");9. for(i=1,m=a[0],n=0;i<10;i++)10. { if(max(m,a[i])>m)//若max函数返回的值大于m11.{m=max(m,a[i]);//max函数返回的值取代m原值12. n=i; //把此数组元素的序号记下来,放在n中13. }14. }15. printf("Thelargestnumberis%d\nitisthe%dthnumber.\n",m,n+1);16.}17.intmax(intx,inty) //定义max函数18.{ return(x>y?x:y); //返回x和y中的大者19.}2.数组名作为函数实参函数定义时,形参应写成如下的形式:
类型函数名称(类型标识符数组名称[])例如:voidsum(intb[])函数调用时,实参应写成如下的形式:函数名称(数组名称)例如:sum(b)【例4-13】有一个一维数组score,内放10个学生成绩,求平均成绩,程序代码如下:1.#include<stdio.h>2.intmain()3.{ floataverage(floatarray[10]); //函数声明4. floatscore[10],aver;5. inti;6. printf("input10scores:\n");7. for(i=0;i<10;i++)8. scanf("%f",&score[i]);9. printf("\n");10. aver=average(score); //调用average函数11. printf("averagescoreis%5.2f\n",aver);12.return0;13.}14.floataverage(floatarray[10]) //定义average函数15.{ inti;16. floataver,sum=array[0];17. for(i=1;i<10;i++)18. sum=sum+array[i]; //累加学生成绩19. aver=sum/10;20. return(aver);21.}在定义average函数时,声明形参数组的大小为10,但在实际上,指定其大小是不起任何作用的,因为C语言编译系统并不检查形参数组大小,只是将实参数组的首元素的地址传给形参数组名。二、学生独立实操+巡回指导(25分钟)学生完成代码编写、保存、编译运行;教师巡回解决共性问题:1、学生易混淆函数的调用方式”与定义方式。2、分清楚数组元素可以用作函数实参和数组名作为函数实参的调用方式,切勿混淆。三.、成果点评+课堂总结(5分钟)实训两个小程序,并抽取2-3份学生程序展示,点评调用方式、函数类型、代码优劣;课后反思通过对函数的定义和分类,理解函数的使用方法。学会尽量利用函数来编程。
课题名称项目4商品库存管理系统任务4-2实现库存数据文件管理计划课时2课时授课老师地点学情分析小辰的家人开了一家小型零售店,每天要处理大量商品数据(如进货数据、销售数据、库存数据等)。起初,家人用笔记本手动记录,后来改用普通文本文件记录,但几百种商品的数据查询要从头到尾扫描,效率低下且经常出错。家人的困扰让小辰萌生了开发文件管理系统的想法,他希望该系统能满足这些需求:①快速定位到任意商品的数据;②数据存储紧凑、高效,不占用过多空间;③断电重启后数据保存完好;④支持快速更新库存和销售记录。基于C语言文件处理技术,小辰着手开发文件管理系统,通过二进制文件存储、随机访问定位、数据块快速读写等核心技术,帮家人实现商品数据的高效管理。教学目标知识目标掌握函数的定义及调用形式,掌握函数的嵌套及递归调用。掌握函数中变量的存储类别、存储方式和作用域。区分内部函数和外部函数的编写,会正确调用外部函数。能力目标具备使用函数进行程序的设计,更好地组织代码结构与逻辑。素质目标具有开拓自我、坚忍不拔的毅力和吃苦耐劳的品质。在编程中注重对函数的正确编写及调用,增强程序的复用性及可读性。教学重点掌握文件的定义、值传递、作用域和调用规则.教学难点真正理解值传递的内存机制、递归的设计思维,以及从“写函数”过渡到“设计函数”的模块化观念。教学方法讲授法、案例演示法、任务驱动法、小组互助纠错法教学工具计算机机房、Dev-C++软件、PPT课件、教材、程序效果图、语言分类对比表等教学过程第一课时:核心语法理论讲解(30分钟)+学生实训(15分钟)一、复习导入(5分钟)回顾上节课知识点。二、新知讲授(25分钟)4.2.1变量存储类别及作用域C语言中的变量,按照其作用域可分为局部变量和全局变量。1.局部变量和全局变量每一个变量都有一个作用域问题,即它们在什么范围内有效。(1)局部变量定义变量可能有3种情况:在函数的开头定义;在函数内的复合语句内定义;在函数的外部定义。在一个函数内部定义的变量只在本函数范围内有效,也就是说只有在本函数内才能引用它们,在此函数以外是不能使用这些变量的。在复合语句内定义的变量只在本复合语句范围内有效,只有在本复合语句内才能引用它们。在该复合语句以外是不能使用这些变量的,以上这些称为“局部变量”。例如:函数f1函数f2主函数图4-6局部变量与主函数【例4-14】试分析下列程序变量的作用域。1.voidf(inta,intb)2.{3.inti,j;4.i=a+2;5.j=b-1;6.printf("函数f中:a=%d,b=%d\n",a,b);7.printf("函数f中:i=%d,j=%d\n",i,j);8.}9.main()10.{11.inti=4,j=5;12.f(i,j);13.printf("主函数中:i=%d,j=%d\n",i,j);14.}
(2)全局变量在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量,外部变量是全局变量(也称全程变量)。全局变量可以为本文件中其他函数所共用。它的有效范围为从定义变量的位置开始到本源文件结束。例如:函数f1函数f2主函数图4-7全局变量与主函数a、b、x、y是在函数外定义的变量,都是全局变量,x、y时定义在f1之后,所以在f1内无效,只能在函数2和主函数内使用。a、b定义在程序最前面,对f1、f2和主函数都有效。此外,要x、y变量在f1内也能使用,需要在f1内对其进行声明。【例4-15】若外部变量与局部变量同名,分析结果。1.#include<stdio.h>2.inta=3,b=5; //a,b是全局变量3.intmain()4.{5. intmax(inta,intb); //函数声明。a,b是形参6. inta=8; //a是局部变量7. printf("max=%d\n",max(a,b));8. return0;9.}
10.intmax(inta,intb) //a,b是函数形参11.{ intc;12. c=a>b?a:b; //把a和b中的大者存放在c中13. return(c);14.}
2.动态变量和静态变量(1)动态变量函数中的局部变量,如果不专门声明为static(静态)存储类别,都是动态地分配存储空间的,数据存储在动态存储区中。函数中的形参和在函数中定义的局部变量(包括在复合语句中定义的局部变量),都属于此类。在调用该函数时,系统会给这些变量分配存储空间,在函数调用结束时就自动释放这些存储空间。因此这类局部变量称为自动变量。自动变量用关键字auto作存储类别的声明。例如:图4-8auto关键字示例a是形参,属于动态变量,b和c是函数中定义的变量,也属于动态变量,对c赋初值3。执行完f函数后,自动释放a,b,c所占的存储单元。(2)静态变量有时希望函数中的局部变量的值在函数调用结束后不消失而继续保留原值,即其占用的存储单元不释放,在下一次再调用该函数时,该变量已有值(就是上一次函数调用结束时的值)。这时就应该指定该局部变量为“静态局部变量”,用关键字static进行声明。【例4-16】考察静态局部变量的值。1.#include<stdio.h>2.intmain()3.{ intf(int); //函数声明4. inta=2,i; //自动局部变量5. for(i=0;i<3;i++)6. printf("%d\n",f(a)); //输出f(a)的值7. return0;8.}9.intf(inta)10.{ autointb=0; //自动局部变量11. staticintc=3; //静态局部变量12. b=b+1;13. c=c+1;14. return(a+b+c);15.}
表4-2静态变量与自动变量的值的比较分析第几次调用调用时初值调用结束时的值bcbca+b+c第1次03147第2次04158第3次051693.其他变量(1)register变量一般情况下,变量(包括静态存储方式和动态存储方式)的值是存放在内存中的。如果有一些变量使用频繁(例如,在一个函数中执行10000次循环,每次循环中都要引用某局部变量),则为存取变量的值要花费不少时间。为提高执行效率,允许将局部变量的值放在CPU中的寄存器中,需要用时直接从寄存器取出参加运算,不必再到内存中去存取。由于对寄存器的存取速度远高于对内存的存取速度,因此这样做可以提高执行效率。这种变量叫做寄存器变量,用关键字register作声明。如:registerintf;//定义f为寄存器变量由于现在的计算机的速度愈来愈快,性能愈来愈高,优化的编译系统能够识别使用频繁的变量,从而自动地将这些变量放在寄存器中,而不需要程序设计者指定。因此,现在实际上用register声明变量的必要性不大。(2)extern变量①在一个文件内扩展外部变量的作用域;如果外部变量不在文件的开头定义,其有效的作用范围只限于定义处到文件结束。在定义点之前的函数不能引用该外部变量。如果由于某种考虑,在定义点之前的函数需要引用该外部变量,则应该在引用之前用关键字extern对该变量作“外部变量声明”,表示把该外部变量的作用域扩展到此位置。有了此声明,就可以从“声明”处起,合法地使用该外部变量。下面举例说明:【例4-17】调用函数,求3个整数中的大者。1.#include<stdio.h>2.intmain()3.{ intmax();4. externintA,B,C; //把外部变量A,B,C的作用域扩展到从此处开始5. printf("Pleaseenterthreeintegernumbers:");6. scanf("%d%d%d",&A,&B,&C); //输入3个整数给A,B,C7. printf("maxis%d\n",max());8. return0;9.}10.intA,B,C; //定义外部变量A,B,C11.intmax()12.{ intm;13. m=A>B?A:B; //把A和B中的大者放在m中14. if(C>m)m=C; //将A,B,C三者中的大者放在m中15. return(m); //返回m的值16.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿保健医考试题目及答案
- 2026年高一英语模块四第三章测试卷
- 2026年供应链管理综合测试卷
- 社区消毒培训考核题目与答案
- 2025年乐山市沙湾区医疗卫生辅助岗招募笔试真题
- 物流管理实务操作评估试题及知识点
- 长春嘉诚入职考试试题及答案
- cice剑桥考试试题及答案
- 语文事实对口考试试题及答案
- 人工智能基础与应用知识测试卷
- 车辆事故安全警示教育
- GB/T 45681-2025铸钢件补焊通用技术规范
- T/CNCIA 01030-2023负离子涂料
- 四年级上册语文课文必背内容
- 2025年浙江省慢阻肺病患者健康服务规范试题
- 电工(考评员、高级考评员)-练习题
- 合同签署确认
- 疼痛患者的心理支持与心理疏导
- JGJ114-2014 钢筋焊接网混凝土结构技术规程
- 怒江水电开发的工程伦理案例分析
- 《邮轮运营管理》5邮轮港口
评论
0/150
提交评论