




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#语言和数据库技术基础,猛禽,1,第1章第一个C#程序,.NET概述与C#应用.NET是Microsoft.NET的简称,是基于Windows平台的一种技术。它包含能在.NETFramework平台运行的所以编程语言。C#是微软将C,C+,Java等多种语言优点集于一身,专为.NET开发而设计的一种完全面向对象的编程语言。IDE环境VisualStudio,它集成了.NETFramework,是目前最流行的.NET平台开发环境。,2,第1章第一个C#程序,新建程序启动VisualStudio2010新建项目生产可执行文件开始运行经验运行的快捷键:F5:启动。运行的快捷键:Ctrl+F5:开始执行不调试,3,第1章第一个C#程序,认识控制台应用程序文件夹的结构Program.cs:该文件是项目的启动文件,在该文件中定义项目的启动入口,即Main()方法。HelloWorld.exe:这个文件位于binDebug目录下,是项目编译后生成的可执行文件,可以直接运行。认识C#程序namespace命名空间相当于Java中的packageusing用来引用其他命名空间,相当于Java中的importclass和Java一样表示类。Main()方法staticvoidMain(stringargs)staticvoidMain()staticintMain(stringargs)staticintMain()关键代码Console.WriteLine();/从控制台输出内容Console.ReadLine();/从控制台输入内容,4,第1章第一个C#程序,C#中的数据类型C#中布尔类型为bool,字符串类型关键字为小写(string)。C#中的变量语法数据类型变量名称;命名规则组成:52个英文字母(AZ,az)、10个数字(09)、下划线(_),除此之外不能含有其他的字符。开头:只能以字母或下划线开头。不能使用的:不能是C#中的关键字。变量名称要语义化。当多个单词组成变量名时,应该使用骆驼(Camel)命名法。,5,第1章第一个C#程序,常量定义:常量就是在程序运行过程中保持不变的值。语法const数据类型常量名称=值;命名规范常量名称必须具有一定的实际意义。常量名称最好以大写字母来命名,中间可以根据意义的连接性用下划线做连接,每个常量定义的右侧最好有一简单的注释,说明其作用。常量名称最好不要超过25个字符,否则可读性差。,6,第1章第一个C#程序,Console类C#向控制台输出(三种方式)Console.WriteLine();Console.WriteLine(要输出的值);Console.WriteLIne(“格式字符串”,变量列表);C#向控制台读入Console.ReadLine();intage=int.Parse(Console.ReadLine();,7,第1章第一个C#程序,自定义方法语法访问修饰符返回类型方法名(参数列表)/方法主体方法命名规范方法名要有实际的含义,最好是动宾短语。用Pascal命名法,8,第1章第一个C#程序,类和对象语法访问修饰符class类名/类的主体注释C#中行注释和块注释与Java是完全相同的,分别使用/和/*/。文档注释每一行都以”/”开头。折叠把方法代码写在#region和#endregion之间。,9,第1章第一个C#程序,调试程序的步骤如下:设置断点:按F9快捷键。启动调试:按F5快捷键。在监视窗口中查看变量的当前值。,10,第2章C#语法快速热身,if条件结构简单if结构if(条件表达式)/代码块if-else结构if(条件表达式)/代码块1else/代码块2,简单if结构的流程图,11,第2章C#语法快速热身,多重if结构if(条件表达式1)代码块1elseif(条件表达式2)代码块2elseif(条件表达式3)代码块3else代码块4,If-else结构的流程图,12,第2章C#语法快速热身,嵌套if结构if(条件表达式1)if(条件表达式2)代码块1else代码块2else代码块3,开始,条件表达式1,代码块1,结束,假,真,代码块2,条件表达式2,代码块3,真,假,嵌套if流程图,13,第2章C#语法快速热身,if结构书写规范为了使if结构更加清晰,应该把每个if或else包含的语句都用大括号括起来。相匹配的一对if和else应该左对齐内层的if结构相对于外层的if结构要有一定的缩进。大括号按规范写法:C#中大括号“”和“”分别各占据新的一行。而Jave中左大括号“”紧跟if结构的条件后面,右大括号“”则需要另起新的一行。switch结构switch结构中case字句的摆放是没有顺序的,可以把default字句放在最前面,但要注意任何两个case语句不能具有相同的值。case中的值可以是int,char,和string类型,但必须是常量表达式,不允许使用变量。每个case和default语句中必须要有break语句。但如果case字句不包含其他语句,就不需要break语句。,14,第2章C#语法快速热身,一维数组改错:intarray=newint50,1;循环while循环语法while(条件表达式)代码块do-while循环语法do代码块while(条件表达式);,开始,条件表达式,代码块,结束,假,真,do-while循环的执行过程,15,第2章C#语法快速热身,for循环语法for(表达式1,表达式2,表达式3)代码块,开始,代码块,结束,假,真,for循环的执行过程,条件表达式2,条件表达式3,条件表达式1,16,第2章C#语法快速热身,foreach循环语法foreach(类型元素in集合或者组合)代码块语法中的“元素”是一个只读变量,17,第2章C#语法快速热身,循环应用的区别如下while循环是先判断条件表达式是否成立。若成立则执行循环体;否则结束循环。do-while循环先执行一次循环体再判断条件表达式是否成立。若成立则继续循环;否则结束循环。for循环必须使用整形变量做循环计算器,通过条件表达式限定计数器变量值来控制循环。foreach()自动遍历给定集合的所有值。,18,第2章C#语法快速热身,break语句可以用在switch,for循环,foreach循环,while循环,do-while循环中continue语句必须出现在for循环,foreach循环,do-while循环,while循环中。二重循环【代码演示】冒泡排序外层循环n-1,内层循环n-1-I,【代码演示】,19,C#中的访问修饰符this关键字this关键字代表的是当前的对象。在类的内部,可以用this关键字访问它的成员。,第3章使用属性升级MyBank,20,第3章使用属性升级MyBank,C#的属性这种结合了字段和方法的实现方式我们称为属性(propert)。语法privatestring_name;publicstringNamegetreturn_name;set_name=value;属性的数据类型属性的数据类型可以是一个类或一个数组。属性的访问类型只读属性,只包含get访问器只写属性,只包含set访问器读写属性,包含get和set访问器封装字段快捷键Ctrl+R+E。,21,第3章使用属性升级MyBank,C#中,一般为类的私有字段和属性的命名会采用不同的命名法。在为类的私有字段命名时,要以下划线“_”开头,随后出现的英文字母采用Camel命名法。在为类的属性命名时,采用Pascal命名法。C#中,字段和属性的区别:通常将字段指定为private,在类内部使用。将属性指定为public,对外部公开,通过get和set访问器对字段提供安全,有效范围的保护。C#中,属性和方法的区别:C#中属性get访问器和set访问器后不需要使用“()”,因为访问器没有返回值,所以不需要指定void。,22,第3章使用属性升级MyBank,面向对象的特征之封装定义:封装是将数据和操作的方法保存在一起的技术,或是有选择地隐藏或公开类中的属性和方法的过程。封装为我们带来的好处避免使用非法数据赋值保证数据的完整性避免类的内部发生修改时,导致整个程序的修改。值传递和引用传递值传递是将变量的值复制一份传递给方法,使得改方法的形参和实参的值相同。在调用方法中修改形参也只是对实参复制品的数据更新,并没有真正改变实参的值。引用传递是将要传递的对象的引用复制给方法的形参,使得被调用的方法直接对引用对象进行更改,会影响实参原来的值。(使用ref关键字),23,第4章深入C#的String类,常用字符串的处理方法Equals()Compare(stringstrA,stringstrB)IndexOf(stringvalue)LastIndexOf(stringvalue)Join(stringseparator,stringvalue)Split(charseparator)Substring(intstartIndex,intlength)ToLower()ToUpper()Trim(),24,第4章深入C#的String类,运算符=和String类方法Equals()的区别如下=:通常来比较int,double等数值类型的数据是否相等。Equals():通常用来比较两个对象的值是否相等。“”和String.Empty的作用如下“”:为String对象分配了一个长度为0的存储空间。String.Empty:为对象分配了一个长度为0的存储空间。,25,第4章深入C#的String类,Format格式化语法StringmyString=String.Format(“格式字符串”,参数列表);其中格式字符串中包含固定文本和格式项。格式项的形式如下:索引,对齐:格式字符串格式化数值结果表,26,第4章深入C#的String类,27,第4章深入C#的String类,简单的类型转换隐式类型转换任何数值类型A,只要其取值范围完全包含在类型B的取值范围类,就可以隐式转换为类型B。显式类型转换sum=(int)score+bonus;注意:显式类型转换会丢失精度。数值类型与字符串之间的转换字符串转换为数值型int.Parse(string);float.Parse(string);double.Parse(string);数值型转换为字符串stringmyage=age.ToString();,28,第4章深入C#的String类,常用的Convert类的类型转换方法,29,第6章程序数据的集散地:数据库,什么是数据库?数据库是表和数据库访问对象的集合。其中表分类存储了不同的实体信息,每一行数据对应一个实体的描述信息。当今常用数据库SQLServerOracleDB2MySQL,30,第6章程序数据的集散地:数据库,使用数据库的好处:可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。可以有效地保持数据信息的一致性,完整性,降低数据冗余。可以满足应用的共享和安全方面的要求。数据库技术能够方便智能化地分析,产生新的有用的信息。实体实体是所有客观存在的、可以被描述的事物。记录在数据库的表中,每一“行”(Row)实际上对应一个实体,这样的一行叫做“记录”(Record)。字段表格中的每一列,通常叫做“列”,也可以称之为“字段”。,31,第6章程序数据的集散地:数据库,数据库和数据库表数据库就是表的集合,逻辑上数据库包括数据表,存储表间关系的表以及各种关系对象数据库管理系统和数据库系统数据库管理系统(DBMS,DataBaseManagementSystem)是一种系统软件,由一个数据库和一组访问数据的程序构成。数据库管理系统的基本目标是要提供一个可以方便有效地存取数据库信息的环境。数据库管理系统的主要功能是维护数据库,并有效地访问数据库中各部分的数据。数据库系统(DBS,DataBaseSystem)是一个实际可运行的系统,可以对系统提供的数据进行存储,维护和应用,它是由存储介质,处理对象和管理系统共同组成的集合体,通常由软件,数据库和数据库管理员组成。数据库由数据库管理系统统一管理,数据的插入,修改,和检索都要通过数据库管理系统进行。数据库管理员(DBA,DataBaseAdministrator)在数据库系统中负责创建,监控和维护整个数据库,使数据能被有权限使用的人有效使用。,32,第6章程序数据的集散地:数据库,数据冗余和数据完整性在数据库系统中,数据重复的现象就是数据冗余(Redundance)数据的完整性(Integrality)是指数据库中数据的准确性。登陆SQLServer数据库连接SQLServer数据库时需要注意以下两点:在连接SQLServer之前,SQLServer服务必须已经启动SQLServerManagementStudio可以连接和管理多个其他计算机上的SQLServer数据库。SQLServer中数据库按照用途可以划分为如下两种:系统数据库用户数据库,33,第6章程序数据的集散地:数据库,MicrosoftSQLServer2008提供的系统数据库Master数据库Tempdb数据库Model数据库Msdb数据库Resource数据库新建数据库连接SQLServer支持两种身份认证Windows身份验证SQLServer身份验证操作权限固定的数据库操作权限有十个db_backupoperator权限可以备份数据库db_datareader可以读取数据库中的数据db_denydatareader不允许读取数据,34,第6章程序数据的集散地:数据库,创建数据库数据库文件(DatabaseFile)事务日志文件(TransactionLogFile数据库文件是存放数据库数据和数据库对象的文件,一个数据库可以有多个数据库文件,一个数据库文件只属于一个数据库。当有多个数据库文件时,有一个文件被指定为主数据库文件(PrimaryDatabaseFile),主数据库文件的扩展名为.mdf,它用来存储数据库的启动信息数据。一个数据库只能有一个主数据库文件,其他数据库文件被称为次数据库文件(SecondaryDatabaseFile)。事务日志文件(TransactionLogFile)事物日志文件用来记录数据库的更新情况。事物日志文件的文件扩展名为.ldf,一个数据库可以有一个或多个事物日志文件。,35,第6章程序数据的集散地:数据库,数据库的选项兼容级别:数据库向以前的版本兼容的级别。数据库为只读:一般该选项都设置为False,如果设置为True,则该数据库将不允许再写入数据。访问限制:指定哪些用户可以访问该数据库,可能值有以下三种。Multiple:数据库的正常状态,允许多个用户同时访问该数据库Single:用于维护操作的状态,一次只允许一个用户访问该数据库。Restricted:只有管理员或者特定的成员才能使用该数据库。自动关闭:如果设置为True的话,则最后一个用户退出后,数据库会关闭并且释放资源。对那些经常被使用的数据库,此选项不要设置为True,否则会额外增加开关数据库带来的负担。自动收缩:如果设置为True的话,则该数据库将定期自动收缩,释放没有使用的数据库磁盘空间。,36,第7章用表组织数据库,数据完整性为了实现完整性,数据库需要做以下两方面的工作。检验每行数据是否符合要求检验每列数据是否符合要求为了实现以上要求,SQLServer提供了以下四种类型的约束(Constraint)。实体完整性约束实体完整性约束要求表中的每一行数据都反映不同的实体,不能存在相同的数据行。通过索引,唯一约束,主键约束,或标识列属性,可以实现表的实体完整性。域完整性约束域完整性指的是给定输入的有效性。通过限制数据类型,检查约束,输入格式,外键约束,默认值,非空约束等多种方法,可以实现表的域完整性。引用完整性约束在强制引用完整性时,SQLServer禁止用户进行下列操作当主表中没有关联的记录时,将记录添加到字表中。更改主表中的值并导致相关表中的记录孤立。从主表中删除记录,但是相关表中仍存在与该记录匹配的相关记录。引用完整性通过主键和外键之间的引用关系来实现自定义完整性约束用户自定义完整性用来定义特定的规则。,37,第7章用表组织数据库,主键定义:主键用来唯一标识表中的每一行,用于强制表的实体完整性。一个表只能有一个主键,主键约束了表中的行是唯一的。在选择哪个列作为主键的时候,需要考虑以下两个原则:最少性和稳定性最少性是指列数最少的键,如果可以从单个主键和组合主键中选择时,应该选择单个主键,这是因为操作一列比操作多列要快。当然该规则也有例外,例如,两个整数类型的列的组合比一个很大的字符类型的列要快。稳定性是指列中数据的特征,由于主键通常用来在两个表之间建立联系,所以主键的数据不要经常更新,理想情况下,应该永远不改变。,38,第7章用表组织数据库,外键外键用来强制引用完整性。一个表可以有多个外键。SQLServer中常用的数据类型binary,varbinary,image,char,varchar,nchar,nvarchar,text,ntext,datetime,int,smallint,tinyint,bigint,float,real,money,bit,39,第7章用表组织数据库,标识列标识列的数据是自动生成的,不能在该列上输入数据。如果建立了主表和子表的关系,则有以下几种情况。子表中相关项目的数据在主表中必须存在。主表中相关项的数据更改了,则子表对应的数据项也应该随之更改。在删除子表之前,不能够删除主表。,40,第8章用SQL语句操作数据,SQL简介SQL全称是“结构化查询语言(StructuredQueryLanguage)”SQL是针对数据库而言的一门语言,它可以创建数据库,数据表,可以针对数据库的数据进行增,删,改,查等操作,可以创建视图,存储过程,可以赋予用户权限等。SQL的组成SQL语言主要由以下几部分组成。DML(DataManipulationLanguage,数据操作语言,也称为数据操纵语言):用来插入,修改和删除数据库中的数据,如INSERT,UPDATE,及DELETE等。DDL(DataDefinitionLanguage,数据定义语言):用来建立数据库,数据库对象和定义其列,大部分是以CREATE开头的命令如CREATETABLE,CREATEVIEW及DROPTABLE等。DQL(DataQueryLanguage,数据查询语言):用来对数据库中的数据进行查询,如SELECT等。DCL(DataControlLanguage,数据控制语言):用来控制数据库组件的存取许可,存取权限等,如GRANT,REVOKE等除此之外,T-SQL还包括变量说明,内部函数等其他的命令。,41,第8章用SQL语句操作数据,SQL中的运算符算术运算符+,-,*,/,%赋值运算符=比较运算符=,=逻辑运算符AND,OR,NOT使用INSERT插入数据语法Insertinto表名(列名列表)values(值列表);其中:into是可选的,也可以省略。表名是必须的表的列名是可选的,如果省略,将依次插入所有列。多个列名和多个值列表用逗号分隔。分号(;)是T-SQL语句终止符,分号不是必须的。,42,第8章用SQL语句操作数据,注意事项每次插入一整行数据,不可能只插入半行或者几列数据,但允许某些列为空或使用默认值。如果违反列的非空约束,那么插入语句会检验失败,不能成功插入数据。数据值的数目必须与列数相同,每个数据值的数据类型,精度和小数位数也必须与相应的列匹配。INSERT语句不能为标识列指定值,因为它的数字是自动增长的。对于字符类型,日期类型的列,当插入数据的时候,用单引号()将其引起来。尽管可以不指定列名,但是最好明确指定插入的列和对应的值,以做到“心中有数”。如果在设计表的时候指定某列不允许为空,则该列必须插入数据,否则将报告错误信息。插入的数据项,要求符合检查约束的要求。(default可以为拥有默认值的列插入数据),43,第8章用SQL语句操作数据,一次插入多行数据通过insertselect语句将现有表中的数据添加到已存在的表中注意查询得到的数据个数,顺序,数据类型等,必须与插入的项保持一致新表必须预先建好,并且具有列的相关属性。通过selectinto语句将现有表中的数据添加到新表语法selectidentity(数据类型,标识种子,标识增长量)as列名into新表from原始表注:该表不能预先存在通过union关键字合并数据进行插入,44,第8章用SQL语句操作数据,使用update更新数据语法update表名set列名=更新值where更新条件其中set后面可以紧随多个数据列的更新值,不限一个,使用逗号分隔。where子句是可选的,用来限制更新数据的条件。如果不限制,则整个表的所有数据行将被更新。使用delete删除数据语法deletefrom表名where;提示delete语句只要删除就是删除整条记录,不会只删除单个列,所以在delete后不能出现列名使用truncatetable删除数据truncatetable删除表中的所以行,但是表的结构,列,约束,索引等不会被改动。truncatetable不能用于有外键约束引用的表,这种情况下,需要使用delete语句。truncatetable比delete执行速度快,使用的系统资源和事务日志资源更少,并且删除数据后表的标识列会重新开始编号。导入和导出数据现场演示,45,第9章数据查询基础,使用select语句进行查询语法selectfromwhereorderbyASC或DESC查询所有的数据行和列(*)查询部分行和列在查询中使用列的别名(as)查询空值(isnull)在查询中使用常量列查询返回限制的行数(top),46,第9章数据查询基础,orderbyASC升序DESC降序在查询中使用函数常用的四类函数字符串函数日期函数数学函数系统函数,47,第9章数据查询基础,部分常用的字符串函数charindex用来寻找一个指定的字符串在另一个字符串中的起始位置len返回传递给它的字符串长度upper把传递给它的字符串转换为大写ltrim清除字符左边的空格rtrim清除字符右边的空格right从字符串右边返回指定数目的字符replace替换一个字符串中的字符stuff在一个字符串中,删除指定长度的字符,并在该位置插入一个新的字符串,48,第9章数据查询基础,日期函数,49,第9章数据查询基础,日期部分参数及其缩写,50,第9章数据查询基础,数学函数,51,第9章数据查询基础,系统函数,52,第10章模糊查询和聚合函数,模糊查询定义:模糊查询提取的数据不一定是确切的,查询者对查询条件也是模糊的,大概的,不特别明确的。模糊查询可以使用like关键字和通配符来进行。(isnull查询严格来说也是一种模糊查询),模糊查询还可以基于某个范围内的查询和某些列举值内的查询,53,第10章模糊查询和聚合函数,通配符定义:通配符是一类字符,它可以代替一个或多个真正的字符,查找信息时作为替代字符出现。,54,第10章模糊查询和聚合函数,使用like进行模糊查询代码演示使用between在某个范围内查询区别between20and40Between40and20使用in在列举值内进行查询代码演示聚合函数SUM()AVG()MAX()和MIN()COUNT(),55,第11章联接查询和分组查询,使用GROUPBY进行分组查询在select列表中可以指定的列:被分组的列为每个分组返回一个值的表达式,如聚合函数计算出的列使用HAVING子句进行分组筛选在select语句中,WHERE,GROUPBY,HAVING子句和聚合函数的执行次序如下:WHERE子句从数据源中去掉不符合其搜索条件的数据;GROUPBY子句搜集数据行到各个组,HAVING子句去掉不符合其他搜索条件的各组数据行。,56,第11章联接查询和分组查询,内联接定义:它根据表中共同的列来进行匹配。特别是两个表存在主外键关系时通常会使用到内联接查询在where子句中指定联接条件在from子句中使用innerjoinonInnerjoin用来联接两个表Inner可以省略On用来设置条件,57,第11章联接查询和分组查询,外联接查询外联接是至少返回一个表中的所有记录,根据匹配条件有选择性地返回另一张表的记录。左外联接查询LeftjoinonJoin后面的表是字表右外联接查询RightjoinonJoin后面的表是主表,58,第14章使用ADO.NET访问数据库,ADO.NET简介ADO.NET是.NETFramework中不可缺少的一部分,它是一组类。通过这些类,.NET可以与数据源进行连接并对数据进行增,删,改,查等操作。ADO.NET的主要组件.NETFramework数据提供程序包括以下四个核心对象Connection建立和特定数据源的连接Command对数据源执行命令DataReader从数据源中读取只进且只读的数据流DataAdapter用数据源填充DataSet并解析更新DataSet是专门为独立于任何数据源的数据访问而设计的。使用它,可以不必直接和数据源打交道,可以大批量地操作数据,也可以将数据绑定在控件上。,59,第14章使用ADO.NET访问数据库,Connection对象作用:连接数据库连接数据库步骤:定义连接字符串语法DataSource=服务器名;InitialCatalog=数据库名;UserID=用户名;Pwd=密码;创建Connection对象语法SqlConnectionconnection=newSqlConnection(connString);打开和数据库的连接语法connection.Open();,60,第14章使用ADO.NET访问数据库,Connection对象常用的属性和方法,61,第14章使用ADO.NET访问数据库,常见错误数据库连接字符串各参数之间的分隔符错误数据库连接字符串中参数名称拼写错误数据库连接字符串中引号出现的位置不正确异常处理语法try/包含可能出现异常的代码catch(处理的异常类型)/处理异常的代码finally/无论异常是否发生,该段代码总会执行。,62,第14章使用ADO.NET访问数据库,Command对象创建Command对象的方法语法SqlCommandcommand=newSqlCommand(SQL语句,Connection对象);使用Comman对象的步骤创建数据库连接创建一个Connection对象定义执行的SQL语句将对数据库执行的SQL语句赋给一个字符串创建Command对象使用已有的Connection对象和SQL语句字符串创建一个Command对象执行SQL语句使用Command对象的某个方法执行命令。,63,第14章使用ADO.NET访问数据库,Command对象的主要属性和方法,64,第15章使用ADO.NET查询和操作数据,StringBuilder常用的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术画室活动策划方案
- 电子精装修预算活动方案
- 睫毛嫁接活动方案
- 端午六一营销活动方案
- 网络安全保密培训总结课件
- 组织开展拉练活动方案
- 幼儿园课堂安全培训课件
- 祖辈沙龙活动方案
- 《质量管理理论方法与实践》课件-质量管理 ch2 质量管理
- 电力公司学习活动方案
- 浙江省通用安装工程预算定额第八册
- 乡村振兴战略实施与美丽乡村建设课件
- 中频电疗法理疗(共60张PPT)精选
- 医学信息检索与利用智慧树知到答案章节测试2023年杭州医学院
- 黑底搭配大气企业宣传商业计划书商务通用PPT模板
- GB/T 17608-2006煤炭产品品种和等级划分
- 沪教五年级数学上册第一单元测试卷
- 地下停车库设计统一规定
- 综合实践课《绳结》教学设计
- 建筑装饰设计收费管理规定
- 电子课件-《市场营销》-A45-2298完整版教学课件全书电子讲义(最新)
评论
0/150
提交评论