集合对象和范型课件

上传人:阳*** 文档编号:82753643 上传时间:2022-04-29 格式:PPT 页数:38 大小:922KB
收藏 版权申诉 举报 下载
集合对象和范型课件_第1页
第1页 / 共38页
集合对象和范型课件_第2页
第2页 / 共38页
集合对象和范型课件_第3页
第3页 / 共38页
资源描述:

《集合对象和范型课件》由会员分享,可在线阅读,更多相关《集合对象和范型课件(38页珍藏版)》请在装配图网上搜索。

1、第九章数组、集合对象和范型1集合对象和范型2回顾回顾 线程是在共享内存空间中并发的多道执行路径线程是在共享内存空间中并发的多道执行路径在在 C# 中,是使用中,是使用 System.Threading 命名命名空间中的空间中的 Thread 类来创建线程的类来创建线程的线程优先级可以更改为线程优先级可以更改为 ThreadPriority 枚举枚举中定义的值中定义的值C# 中的中的 lock 关键字是实现线程同步的一种方关键字是实现线程同步的一种方法法同步的线程称为安全线程同步的线程称为安全线程除非绝对必要,否则不要创建线程安全的代码,除非绝对必要,否则不要创建线程安全的代码,因为添加不必要的

2、锁定会降低性能因为添加不必要的锁定会降低性能3目标目标使用使用System.Array 对象对象理解集合对象的特点和优点理解集合对象的特点和优点使用使用System.ArrayList 对象对象使用哈希表对象使用哈希表对象4int score1; System.Console.ReadLine(score1)int score2; System.Console.ReadLine(score2)int score3; System.Console.ReadLine(score3)int score4; System.Console.ReadLine(score4)int score5; Syst

3、em.Console.ReadLine(score5)int score6; System.Console.ReadLine(score6)int score7; System.Console.ReadLine(score7)第七位学生的分数第六位学生的分数第五位学生的分数第四位学生的分数第三位学生的分数第二位学生的分数第一位学生的分数score 6score 5score 4score 3score 1score 0score 2System.Array 简介简介 3-1 应用程序数 组存储学员的分数int score = new int7;6754321在数组的术语中,元素表示数组中存储的

4、值,数组长度指数组中存储的值的总数,数组秩指数组的总维数5System.Array 简介简介 3-2 数组定义:数据类型 数组名称;int MyArray = 1,2,3,4,5,6,7;MyArray0, MyArray1, MyArray2MyArray6 MyArray 0 = 604 可以执行各种操作,如存储、检索、排序和反转如何简易地执行对数组的操作?6System.Array 简介简介 3-3System.ArrayArray是抽象的基类,提供 CreateInstance 方法来创建数组Array obj = Array.CreateInstance(typeof(string)

5、,8); 7System.Array 的属性和方法的属性和方法 属性属性方法方法8示例示例 2-1static void Main(string args) /构建 objNames 数组 Array objNames = Array.CreateInstance(typeof(string),5); /初始化值 objNames.SetValue(“A,0); objNames.SetValue(“B,1); objNames.SetValue(“C,2); objNames.SetValue(“D,3); objNames.SetValue(“E,4); Console.WriteLine

6、(“数组值); for(int ctr = 0 ; ctr 5; ctr+) Console.WriteLine(“元素 0: 1,ctr+1,objNames.GetValue(ctr); 使用 GetValue() 方法检索数组值使用 SetValue() 方法存储字符串将 objNames 实例化为字符串对象并且其中存放 5 个元素9示例示例 2-2 Console.WriteLine(“n数组中元素的总数是 0,objNames.Length.ToString();/输出数组秩Console.WriteLine(n数组秩是 0,objNames.Rank.ToString();/反转数

7、组并输出Array.Reverse(objNames);Console.WriteLine(“n反转数组后);for(int ctr = 0 ; ctr 5; ctr+)Console.WriteLine(“元素 0: 1,ctr+1,objNames.GetValue(ctr);显示 objNames数组的长度显示 objNames数组秩反转数组元素 反转后的数组元素列表课堂练习:这段代码用Foreach结构怎么写?10思考和演示思考和演示使用:int A = 1,2,3,4,5,6和使用:B.CreateInstance (typeof(string),5)创建的数组,A可以使用B所有的属

8、性和方法吗?教员演示两种数组的差别11System.Collections 简介简介 2-1 ID工作档案ID工作档案ID工作档案ID工作档案职员 1职员 2职员 3职员 4Employee 对象的集合对象组中元素个数未知,并且随时可能要循环、添加和移除12System.Collections 简介简介 2-2System.Collection 命名空间类接口结构13ArrayList是一个可动态维护长度的集合是一个可动态维护长度的集合可维护动态长度的集合可维护动态长度的集合新增元素新增元素 可删除元素可删除元素 可访问单个元素可访问单个元素 objectobjectobjectobject0

9、123索引索引(下标下标)object40123ArrayList自动调整自动调整索引索引通过索引通过索引访问访问14ArrayList的初始化的初始化using System.Collections;ArrayList Students = new ArrayList();ArrayList Teachers = new ArrayList(5)可以指定长度可以指定长度引入命名空间引入命名空间实例化一个对象实例化一个对象常见错误常见错误未引入命名空间未引入命名空间定义时未实例化定义时未实例化引入引入System.Collections命名空间命名空间实例化实例化ArrayList对象对象15

10、ArrayList添加元素添加元素int Add(Object value) /添加一个对象到集合的末尾添加一个对象到集合的末尾ArrayList students = new ArrayList();Student scofield = new Student(Scofield, Genders.Male, 28, 越狱越狱);students.Add(scofield);创建学员对象创建学员对象添加学员添加学员连续添加三个学员对象连续添加三个学员对象并获取集合元素的数目并获取集合元素的数目返回索引返回索引ArrayList.Count获获取元素数目取元素数目建立班级学员的集合建立班级学员的

11、集合演示:演示:MySchool 16访问访问ArrayList元素元素(类型类型) ArrayListindex /按指定索引(下标)取得对象按指定索引(下标)取得对象Student stu1 = (Student)students0;stu1.SayHi();按索引取值按索引取值转换为学员对象转换为学员对象ArrayList第一个对第一个对象的索引是象的索引是0需要类型转换需要类型转换17删除删除ArrayList的元素的元素ArrayList.Remove(对象名对象名) /删除指定对象名的对象删除指定对象名的对象ArrayList.RemoveAt(index) /删除指定索引的对象删

12、除指定索引的对象ArrayList.Clear() /清除集合内的所有元素清除集合内的所有元素students.RemoveAt(0);students.Remove(zhang);Student leave = (Student)students0;leave.SayHi();通过索引删除对象通过索引删除对象通过指定对象删除通过指定对象删除只剩一个对象只剩一个对象剩余的元素会自动调整索引剩余的元素会自动调整索引取得删除后的第一个对象取得删除后的第一个对象18ArrayList 的遍历的遍历/遍历遍历foreach (Object stuo in students) Student stuFo

13、reach = (Student)stuo; Console.WriteLine(stuForeach.Name);通过对象遍历通过对象遍历打印对象的打印对象的Name属性属性Scofield张靓靓张靓靓周杰杰周杰杰可以使用和数组类似的方式可以使用和数组类似的方式for (int i = 0; i students.Count; i+) Student stuFor = (Student)studentsi; Console.WriteLine(stuFor.Name);foreach 方式方式输出结果输出结果类型转换类型转换演示:演示:MySchool 19常见错误常见错误1/student

14、s.Add(scofield);students.Add(zhang);students.Add(jay);students.RemoveAt(0);students.RemoveAt(1);students.RemoveAt(2);运行这段代码会发生错误?运行这段代码会发生错误?索引会自动调整删除索引会自动调整删除两个元素后,不再有两个元素后,不再有索引索引“2“20常见错误常见错误2Student scofield = new Student(Scofield, Genders.Male, 28, 越狱越狱狱狱);Student stu2 = new Student(Scofield, G

15、enders.Male, 28, 越狱越狱狱狱); /打印集合数目打印集合数目students.Remove(stu2);/打印集合数目打印集合数目如果如果Remove(stu2),能否删除,能否删除scofield对象?对象?定义一个对象与前面的值相同定义一个对象与前面的值相同两次的结果都是两次的结果都是3,没有删除,为什么?,没有删除,为什么?在多态章节中我们将试图改变这一现象在多态章节中我们将试图改变这一现象演示:演示:MySchool 21public struct Student public Student(string name, int age) Name = name; Ag

16、e = age; public string Name; public int Age;Student stu1 = new Student(张三张三,20);Student stu2 = new Student(李四李四, 20);Student stu3 = new Student(王五王五, 20); ArrayList students = new ArrayList();students.Add(stu1);students.Add(stu2);students.Add(stu3);常见错误常见错误3static void Main(string args) /初始化代码将对象加入初

17、始化代码将对象加入ArrayList集合集合 foreach (Student stu in students) Student myStudent = (Student)stu; myStudent.Age = 60; foreach (Student stu in students) Console.WriteLine(stu.Age); 遍历显示年龄结果是多少?遍历显示年龄结果是多少?结构是值类型结构是值类型定义一个学员结构定义一个学员结构使用使用ArrayList存储学员存储学员遍历修改年龄遍历修改年龄演示:演示:MyError 22ArrayList通过索引获取对象通过索引获取对象为

18、什么使用为什么使用HashTable能否象索引器那样通过关键字获取该对象呢?能否象索引器那样通过关键字获取该对象呢?动态可维护长度动态可维护长度可通过关键字检索可通过关键字检索C#提供一种集合提供一种集合HashTable Students“周杰杰周杰杰.SayHi();Student stu1 = (Student)Students0; 第三章中的索引器通过关键字获取对象第三章中的索引器通过关键字获取对象23什么是什么是HashTableArrayList 每个元素对应一个索引每个元素对应一个索引HashTable 通常称为哈希表通常称为哈希表根据键(根据键(Key)可以查找到相应的值()可

19、以查找到相应的值(Value)objectobjectobjectobjectobject0123ArrayList索引索引KeyValueKeyValueKeyValueKeyValueKeyValueHashTable值值键键键和值一一对应键和值一一对应24使用哈希表使用哈希表students.Add(scofield.Name , scofield);添加元素添加元素KeyValueStudent stu2 = (Student)students“周杰杰周杰杰;stu2.SayHi();通过通过key获取元素获取元素students.Remove(“周杰杰周杰杰);通过通过key删除元素

20、删除元素给哈希表添加元素给哈希表添加元素获取哈希表的元素获取哈希表的元素删除哈希表的元素删除哈希表的元素需要类型转换需要类型转换演示:演示:MySchool 25哈希表的遍历哈希表的遍历foreach (Object stuo in students.Values) Student stu = (Student)stuo; Console.WriteLine(stu.Name);如何遍历一个如何遍历一个哈希表?哈希表?KeyValueKeyValueKeyValueKeyValueKeyValueValues不能遍历整个对象,而不能遍历整个对象,而是遍历是遍历Valuesforeach (st

21、ring name in students.Keys) Console.WriteLine(name);可以遍历可以遍历Keys26小结小结删除一个删除一个ArrayList元素有几种方法?元素有几种方法?HashTable和和ArrayList的主要区别是什么?的主要区别是什么?27类型安全类型安全1MySchool中添加一个中添加一个Teacher类类Teacher jacky = new Teacher(成龙龙成龙龙, 4);jacky.SayHi(); students.Add(jacky);能否加入一个能否加入一个Teacher对象?对象?foreach (Object stuo i

22、n students) Student stu = (Student)stuo; Console.WriteLine(stu.Name);遍历这个集合是否遍历这个集合是否有问题?有问题?演示:演示:MySchool 28类型安全类型安全2Student集合集合Scofield张靓靓张靓靓周杰杰周杰杰成龙龙成龙龙添加对象添加对象遍历集合遍历集合对象存储不对象存储不易控制易控制类型转换类型转换容易出错容易出错Teacher对象对象运行错误运行错误29引入命名空间:引入命名空间:System.Collections.GenericList students = new List();利用利用List

23、存储班级集合存储班级集合List的使用的使用students.Add(scofield);students.Add(jacky);将将Student对象加入班级对象加入班级将将Teacher对象加入班级对象加入班级编译出错编译出错foreach (Student stu in students) Console.WriteLine(stu.Name);不需类型转换不需类型转换 遍历遍历List集合集合演示:演示:MySchool 只能保存只能保存Student对象对象30什么是泛型集合什么是泛型集合泛型最常见的用途是创建集合类泛型最常见的用途是创建集合类泛型集合可以约束集合内的元素类型泛型集合

24、可以约束集合内的元素类型 典型泛型集合典型泛型集合List,Dictionary、表示该泛型集合中的元素类型表示该泛型集合中的元素类型ListStudent对象对象Teacher对象对象允许添加允许添加不允许添加不允许添加Student对象对象无需转换类型无需转换类型31 使用泛型集合使用泛型集合ListStudent stu1 = students2;stu1.SayHi();Students.RemoveAt(0);/List 方式方式foreach (Student stu in students) Console.WriteLine(stu.Name);List的访问方式与的访问方式与

25、ArrayList相同相同使用索引访问,无需类型转换使用索引访问,无需类型转换利用索引删除利用索引删除遍历时不需要类型转换遍历时不需要类型转换32 List 与与 ArrayList通过索引删除元素通过索引删除元素添加对象方法相同添加对象方法相同通过索引访问集合的元素通过索引访问集合的元素相同点相同点需要装箱拆箱需要装箱拆箱无需装箱拆箱无需装箱拆箱可以增加任何类型可以增加任何类型增加元素时类型严格检查增加元素时类型严格检查不同点不同点ArrayListList异同点异同点是否有是否有哈希表哈希表那样存储那样存储Key和和Value形式的泛型集合呢?形式的泛型集合呢? 访问访问 List 与与

26、ArrayList 的对比的对比33Dictionary概述概述Dictionary具有具有List相同的特性相同的特性约束集合中元素类型约束集合中元素类型编译时检查类型约束编译时检查类型约束无需装箱拆箱操作无需装箱拆箱操作与哈希表类似存储与哈希表类似存储Key和和Value的集合的集合Dictionary students = new Dictionary();利用利用Dictionary存储学员集合存储学员集合Key存储存储String类型类型value存储存储Student类型类型34Dictionary的使用的使用students.Add(scofield.Name, scofield

27、);student stu2 = students周杰杰周杰杰;students.Remove(周杰杰周杰杰);添加一对添加一对Key/Value通过通过Key获取元素获取元素通过通过Key删除元素删除元素 /Dictionary 方式方式foreach (Student student in students.Values) Console.WriteLine(student.Name);遍历遍历ValuesDictionary的访问方式与哈希表相同的访问方式与哈希表相同演示:演示:MySchool 35Dictionary与哈希表与哈希表遍历方法相同遍历方法相同添加对象方法相同添加对象方法

28、相同通过通过Key获取获取Value相同点相同点需要装箱拆箱需要装箱拆箱无需装箱拆箱无需装箱拆箱可以增加任何类型可以增加任何类型增加元素时类型严格检查增加元素时类型严格检查不同点不同点哈希表哈希表Dictionary异同点异同点访问访问 Dictionary 与与 哈希表哈希表 的对比的对比36泛型的重要性泛型的重要性泛型集合与传统集合相比类型更安全泛型集合与传统集合相比类型更安全泛型集合无需装箱拆箱操作泛型集合无需装箱拆箱操作泛型的重要性泛型的重要性泛型是未来五年的主流技术之一泛型是未来五年的主流技术之一解决了很多需要繁琐操作的问题解决了很多需要繁琐操作的问题提供了更好的类型安全性提供了更好

29、的类型安全性CLR 支持泛型支持泛型后续课程学习泛型接口后续课程学习泛型接口37总结总结哈希表如何获取一个元素的哈希表如何获取一个元素的Value?ArrayList与哈希表存取对象需要什么操作?与哈希表存取对象需要什么操作?List中的中的T表示什么?表示什么?泛型集合与传统集合获取元素时的区别?泛型集合与传统集合获取元素时的区别?3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H

30、6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!

31、pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMb

32、J7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-x*t$qZnRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$q

33、ZnVkShPdMaJ7F4C0z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK

34、8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&

35、s#pXlUiRfNcK9H5E2A+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7Fy)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I

36、6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!

37、qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7

38、F4C0z)v&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ70y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmV

39、jSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4

40、D1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWk

41、ShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(ZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G5D1A-

42、w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oXlTi

43、QeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(uZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2B+x

44、(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfN

45、bK8G5D2A-x*u$qZnVkShPdMaJ7F4C0z)w&s!pYmUjRfOcL9H6E3B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$UjRfOcL9H6E3B+y(u%r#oWlTiQeNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZ

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!