




已阅读5页,还剩112页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。成绩评定方式:期末闭卷考试:70%平时成绩:30%平时成绩的组成:22分 ,扣分项目,上课或实验缺席 1次3分,迟到 1分,不交作业1次扣3分,不做课内实验,不提交课内实验报告扣12分,严禁抄袭,发现扣12分8分,加分项目,完成老师布置的课后实验或用C+独立完成有一定规模的程序12 大体和C的内容差不多,比较简单,主要是复习。1,2章 C+ 简介 C+基础1 入门1.1 程序的开发过程 阶段? 编程工具? 复习:小和尚程序?求pi, pi=16arctan(1/5)-4arctan(1/239),arctan(x)=x-x3/3+x5/5-x7/7+1.2 简单程序的C和C+的比较1. first: hello worldfirst C+first CCan you see the meaning of every word? What do you think the difference of C and C plus? 2. a example of C plus with classBasketballPlayer.cppDo you know the program?From the example, do you think the C+ is better than C? Try performing the aim by C?用结构化的方法,BasketballPlayer。推荐开发工具,学习方法和参考资料网络,电子书,看程序,写程序,msdn,论坛初级:C+语言程序设计教程 DeitelC+程序设计语言 Stroustrup中级:C+编程思想 EckelC+语言设计与演化 Stroustrup数据结构、算法与应用:C+语言描述 Sahni高级:C+核心:软件工程方法 Shtern大型C+软件设计 Lakos作业:第一章课后作业,阅读第一章预习第二章2 C +中的C2.1 C+的产生orient procedure , orient objectwho founded the C +? Bjarne Stroustrup2.2部分语法元素c+2.ppt 1. 关键字 2. 标示符:变量,对象,函数,类的名字,注意命名标示符规则3. 基本数据类型:注意各个数据类型的表示范围CharType.cppWhat result of the program? Why?4. 常量整型:十进制,八进制,十六进制实型:一般形式,指数形式(科学计数),后缀字符型:单引号 A, & 7注意 不可见字符?转义字符:用八进制,十六进制ASCII码来表示字符 /456 /x61一些预定义的字符常量:a, n, t, r 字符串: “hello world” 注意:“A”和A的区别布尔常量: true false注意常量的各种写法5. 变量变量的声明:声明的形式 类型 名字 初始值 int a=3; int b(5);注意:使用之前必须声明6. 符号常量给常量取个名字。Why? The aim?How? Const float pi=3.14;注意:在声明时一定要赋初值7. 运算符与算术表达式参考PPTa) 算术b) 赋值c) 逗号d) 逻辑e) 条件:唯一的三元运算符 (ab):a,b;f) sizeof: 用于计算某种类型的对象在内存中的字节数g) 位:与 或 异或 移位 取反注意:运算符的优先级8. 表达式中数据类型的转换隐含转换:降低的转成高的显示转换:方法 int(a) , (int)a ;2.3 C+ 中的输入输出方法 cout cincouta; cinab;简单的格式控制 ends endl “n”输出十六进制?hex oct dec设置精度?宽度? Setprecision setw注意:头文件 iomanip2.4 程序结构顺序 选择 循环程序流程图? 符号 作用1. 选择结构IsLeap.cppSwitch.cppWhat function of switch? Trying modify the program, make it run more times.Write a program to decide your body? Height weight2. 循环结构while for do-while while SumofN.cppInversNumber.cppCan you solve the problem with while word?DoWhileSum.cpp For Factors.cppOutputFig.cppStaNumber.cpp3. 其他有用的控制语句 break continue goto 2.5 自定义数据类型1. typedef:用于将已有的类型取个新的名字。What?How : typedef int natural; natural i1,i2;2. 枚举 enumwhat: 将需要的变量值一一列出来,枚举变量只能取列表中的值how:enum weekday sun,mon,tue,wed,thu,fri,sat;enum.cppConclusion it is a list of some related constsAttention: type trans must be do when give a enum variant to a int variant 3. 结构体what: combing different data type to a entry.How:Sturct.cppWeight.cppModify the program to evaluate your body after class?4. 联合体what:same as struct, but diffenrence ? share same space.How:Union.cpp作业:练习题:3大体和C的内容差不多,主要是复习,同时强调C+中不一样的地方。3章 函数what function? What aim?Can you give a example with function?3.1有关函数的术语定义声明调用npower.cppcan you see every part of a function?Do you think what should be cared when define and use a function?3.2 函数举例和函数的作用BittoDec.cppDo you think functions is useful?calculatepi.cppWhat feel do you with this?Algorithm is more important than language?Some techniques in practice?Symm.cppMathformula.cppCan you tell me the mean of using function?Decompose a big problem into several little modulesImprove the readability of programsMaking complexity to simplenessWrite a function to evaluate your body after class?Game.cppAfter class:写一个和计算机玩石头 剪刀 布的程序。统计100局的胜负比例?Conclusion:Functions is very very very important, it is the base of large programs!But how to design some functions to solve a problem is not a simple work, it need your experiments and techniques, so you should practice more!3.3 函数的嵌套和递归调用1. 函数调用的执行过程调用返回2. 嵌套调用函数中又调用其他函数3_7.cpp3. 递归调用函数中又调用自己why? 现实中有些问题具有递归性,用递归调用解决非常简单明。Fac.cpp注意:递归函数中必须要有退出的条件comm.cpphow fell with recursion?The ability of analyze is more important than language?Conclusion:Recursion is a very power tool for some problems.习题After class:Read Hanoi.cpp 汉诺塔问题3.4 函数的参数传递1. 有关参数的术语Swape.cpp 形参 实参不改变实参的调用,传值调用Swape.cpp改变实参的调用,传地址调用引用:变量的别名what? 参数传递how? Int &a=b;Swapref.cpp注意:使用引用时应注意的问题:初始化引用不能改为指向其他对象after class:If no ref, how to imply the address call? Write a program?How feel to ref?Conclusion:Ref is a good thing?3_13.cpp3.5 内联函数inline和普通函数的区别:编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销inline.cpp3.6 默认形参值what? To more simple函数在声明时可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预先给出的默认形参值。C+3.PPT注意: 默认形参值必须从右向左顺序声明,并且在默认形参值的右面不能有非默认形参值的参数。 调用出现在函数体实现之前时,默认形参值必须在函数原形中给出;而当调用出现在函数体实现之后时,默认形参值需在函数实现时给出。Defultparameter.cppThinking: what should be careful to default parameter?3.7 函数重载在C中,两个函数可以有相同的名字吗?C+ 中,允许?Reload.cpp注意:编译器怎样区别两个同名函数?重载的函数必须有去区别? 用什么来区别?形参的 数量 和 类型 thinking:what aim of reload function? To clear program?3.8 使用系统函数数学函数文件操作函数进程函数Sysfunction.cpp注意:需要包含对应的头文件帮助系统的作用作业:练习题:开始学习面向对象的内容,感受C+中不同于C的性质4 是面向对象的内容,应重点学习4章 类和对象4.1 面向对象的特点:将数据和行为集成在一起,以描述客观世界的自然方式去编程 BasketballPlayer.cpp面向对象的三大性质 封装:将抽象出的数据成员、代码成员相结合,将它们视为一个整体。 继承:是C+中支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,进行更具体的说明。今后学习的重点,专门一章 多态:多态性是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为, 例 几何形状 绘图 多边形 椭圆今后学习的重点,专门一章4.2 类和对象定义 类:类是对逻辑上相关的函数与数据的封装,是对问题的抽象描述。类:类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。 对象:类的对象是该类的某一特定实体,即类类型的变量。C+中的实现:How to define a class? Gram ?4.2.1类的声明class 类名称 public: 公有成员(外部接口) private: 私有成员 protected: 保护型成员; / 注意分号class Clock/时钟类的声明public:/外部接口,公有成员函数void SetTime(int NewH=0, int NewM=0, int NewS=0);void ShowTime();private:/私有数据成员int Hour,Minute,Second;类的成员:两种 数据成员: 函数成员:表现行为4.2.2 类成员的访问控制 公有:在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。 私有:在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。 保护:与private类似,其差别表现在继承与派生时对派生类的影响不同,第七章具体讲。问题:如果没有指定访问类型呢? 默认是private, how to prove?4.2.3类的成员函数(类的实现)注意:类的成员函数的声明必须在类体之内类的成员函数的实现(定义)可以在类体之外,但要用类名来限定/时钟类成员函数的具体实现void Clock:SetTime(int NewH, int NewM, int NewS)Hour=NewH;Minute=NewM;Second=NewS;Clock.cpp内联成员函数:how to make it inline?Inline void Clock:SetTime(int NewH, int NewM, int NewS)注意:在类体内部定义的成员函数是内联的4.2.4类的对象对象:类的对象是该类的某一特定实体,即类类型的变量。How ?Clock myClock;How to get classs content? Must by object?myClock.ShowTime();Clock.cppBasketballPlayer.cppWho is class? Who is object?Who is data member? Who is method member?After class:Give more information of Player class?4.3 构造函数和解(析)函数4.3.1 构造函数question:初始化:int i(5); int j=8;Student st=“888”,”姚明”,”男”;How to init a object?aim:构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。注意: 在对象创建时由系统自动调用,而且是必须调用。 如果程序中未声明,则系统自动产生出一个默认形式的构造函数,但如果申明了自定义的构造函数,系统将不会产生默认形式的构造函数 允许为内联函数、重载函数、带默认形参值的函数,通常声明为公有权限 名字特殊,函数返回值(无返回值)how to do:class Clockpublic:Clock (int NewH, int NewM, int NewS);/构造函数void SetTime(int NewH, int NewM, int NewS);void ShowTime();private:int Hour,Minute,Second;构造函数的实现:Clock:Clock(int NewH, int NewM, int NewS)Hour= NewH;Minute= NewM;Second= NewS;建立对象时构造函数的作用:void main() Clock c (0,0,0); /隐含调用构造函数,将初始值作为实参。 c.ShowTime(); attention:Clock c; OK? Why?after class:1 modify palyer class to give a init name when define a player?2 can you prove the construct function indeed be called when a object is generated?Constructor.cpp4.3.2 拷贝构造函数aim:用一个已有的对象去初始化另外一个对象。Int j=9;Int i(j);特点: 名字,返回值 形参:同类对象的引用 如果程序员没有为类声明拷贝初始化构造函数,则编译器自己生成一个拷贝构造函数。这个构造函数执行的功能是:用作为初始值的对象的每个数据成员的值,初始化将要建立的对象的对应数据成员。什么时候被调用? 当用类的一个对象去初始化该类的另一个对象时系统自动调用拷贝构造函数实现拷贝赋值。 若函数的形参为类对象,调用函数时,实参赋值给形参,系统自动调用拷贝构造函数。 当函数的返回值是类对象时,系统自动调用拷贝构造函数。how to do:class Point public: Point(int xx=0,int yy=0)X=xx; Y=yy; Point(Point& p); int GetX() return X; int GetY() return Y; private: int X,Y;Point:Point (Point& p) X=p.X; Y=p.Y; cout拷贝构造函数被调用endl;CopyConstructor.cppQuestion:拷贝构造函数有用吗?默认拷贝构造函数的作用? 可以显示的有选择拷贝 默认拷贝构造函数是浅拷贝,对指针成员有安全隐患4.3.3 析构函数aim:完成对象被删除前的一些清理工作, 有东西需要清理吗?哪些东西?特点: 名字,参数 在对象的生存期结束的时刻系统自动调用它,然后再释放此对象所属的空间。 如果程序中未声明析构函数,编译器将自动产生一个默认的析构函数。Can you prove the de constructor is called when a object is destroyed?Circle.cppAfter class:Give version of evaluate body with orient object method?用面向对象的方法来完成石头 剪刀 布 游戏?4.4 类的组合aim:什么是组合:计算机=主机+显示器; 主机=CPU+内存+硬盘;显示器= n个零件。类中的成员数据是另一个类的对象类的组合描述的就是一个类内嵌其他类的对象作为成员的情况,他们之间的关系是一种包含关系how to do /类的组合class Line/Line类的声明public:/外部接口Line (Point xp1, Point xp2);Line (Line &);double GetLen()return len;private:/私有数据成员Point p1,p2;/Point类的对象p1,p2double len;question:如何在初始化类的同时也对该类包含的内部对象进行初始化?attention:实际上只要有对象被创建,就会执行构造函数。C+提高初始化列表完成这个工作How to do /组合类的构造函数Line: Line (Point xp1, Point xp2):p1(xp1),p2(xp2)coutLine构造函数被调用b; if (b0) int c; . 类作用域类的成员在类的内部都是有效的。 文件作用域不在前述各个作用域中出现的声明,具有文件作用域,这样声明的标识符的作用域开始于声明点,结束于文件尾。(全局变量)5.1.2 可见性程序运行到某一点,能够引用到的标识符,就是该处可见的标识符。Attention: 标识符应声明在先,引用在后。 如果某个标识符在外层中声明,且在内层中没有同一标识符的声明,则该标识符在内层可见。 对于两个嵌套的作用域,如果在内层作用域内声明了与外层作用域中同名的标识符,则外层作用域的标识符在内层不可见。(强龙难压地头蛇)5_1.cpp5.2 生存期静态生存期 这种生存期与程序的运行期相同。 在文件作用域中声明的对象具有这种生存期。(全局变量) 在函数内部声明静态生存期对象,要冠以关键字static 。(静态局部变量)动态生存期 块作用域中声明的,没有用static修是的对象是动态生存期的对象(普通的局部变量)。 开始于程序执行到声明点时,结束于命名该标识符的作用域结束处。5_2.cpp对象的可见性和生存期和变量是一样的。5_3.cpp5.3 类的静态成员5.3.1 静态数据成员Question:如何来表示类所共有的数据?计数问题?评估身体的标准?Thinking:类和对象的关系,数据成员是如何来存放的?Define:描述类的所有对象共同特征的一个数据项,对该类的任何对象实例,它的值是相同的该类的所有对象维护该成员的同一个拷贝How:用关键字static声明必须在类外定义和初始化,用(:)来指明所属的类。5_4.cppAttention:静态数据成员的初始化?如何访问静态数据成员? 通过对象名,语意上不够直观。5.3.2 静态函数成员Question:可以不通过对象名来访问静态数据成员吗?语意上更直观。如果没有创建对象呢?Thinking:Point:GetC( ); no, 对普通函数成员的调用必须通过对象名。Define:静态函数成员属于整个类的Characteristic:公有的静态函数成员,即可以通过对象名调用,也可以通过类名调用静态函数成员中只能直接访问类的静态成员,不可直接访问非静态成员 (why?)因为非静态成员必须属于某个对象,而通过类名访问时并没有指明具体的对象。class A public: static void f(A a); private: int x;void A:f(A a) coutx; /对x的引用是错误的,why? couta.x; /正确How:用关键字static声明5_5.cppAttention:静态函数成员的作用?无论静态函数成员和静态数据成员,在类的内部都是可以被访问的。After Class:Give a version of body program with static data member?5.4 类的友元Question:用类的方法如何计算两个点的距离?如何提高程序的可读性?障碍:普通函数不能直接访问类的私有成员。5.4.1友元函数Define:友元函数是在类声明中由关键字friend修饰说明的非成员函数Characteristic:在它的函数体中能够通过对象名访问 private 和 protected成员中国的友好国家多吗?去哪些国家可以免签证?Function:增加灵活性,使程序员可以在封装和快速性方面做合理选择。How:5_6.cppAttention:友元函数是普通函数需要在类体内进行友元的声明(告诉计算机(编译器)它是我的朋友?)Thinking and Trying:Friend is useful? Try to solve the problem with no friend?5.4.1友元类Question:友元类会有什么特点?什么情况下需要使用友元类?Define:若一个类为另一个类的友元,则此类的所有成员都能访问对方类的私有成员。How:class A friend class B; public: void Display() coutxendl; private: int x;class B public: void Set(int i); void Display(); private: A a;void B:Set(int i) a.x=i;void B:Display() a.Display();Attention:单向不能传递不能被继承5.5 共享数据的保护const 的复杂用法和作用。Const的目的:保护数据不被意外修改。5.5.1 常引用常引用所引用的对象不能被更新。How:5_7.cppThinking:常引用主要可以用在哪里?5.5.2 常对象必须进行初始化,不能被更新。How:class A public: A(int i,int j) x=i; y=j; . private: int x,y;A const a(3,4); /a是常对象,不能被更新5.5.3 类的常成员函数和常数据成员1. 常成员函数Define:类型说明符 函数名(参数表)const;Characteristic: 常成员函数不更新对象的数据成员。 const关键字可以被用于参与对重载函数的区分 通过常对象只能调用它的常成员函数。(保证常对象不会修改数据成员)How:5_8.cppthingking:常成员函数的作用?Attention:你能证明常对象调用的是常成员函数吗? 试一下用常对象调用非常成员函数?2. 常数据成员Define:用 const 修饰的数据成员,不能被更改Question:如何给常数据成员赋初值?用初始化列表。5_9.cppAttention:常数据成员的初时化5.6 多文件结构Question:程序可以写在多个文件里吗?有什么作用?C+中有哪些类型的文件?*.h *.cpp5.6.1 多文件结构Define:对复杂的程序,通常由多个文件组成。如:类的声明:头文件类的定义:cpp文件主程序:cpp文件How:5_10.cppAttention:类的声明和内联函数需要在使用它的每个编译单元(CPP文件)中给出完全一致的实现和声明。通常用#include 来处理这个问题。#include? 和” ”区别?默认路径。 “ ”当前路径。5.6.2 外部变量和外部函数Question:一个文件中定义的变量,可以被另外一个文件使用吗?这个功能有用吗?1. 外部变量Define:具有文件作用域的变量Characteristic:其他文件也可以使用How:/ 该文件用来说明外部变量和函数 C1.cppvoid cf1()extern i;i=20; fun();/ C2.cppint i=4;void fun() coutiendl;Attention:外部变量的定义在哪里?声明在哪里?Extern的作用?如何将外部变量限制在本文件内使用 Static2. 外部函数Question:一个文件中定义的函数,可以被另外一个文件使用吗?这个功能有用吗?How:C1.cpp C2.cppAttention:外部函数的定义在哪里?声明在哪里?Extern的作用?可以省略吗?如何将外部函数限制在本文件内使用Static5.6.3 名字空间Question:多个人都在写文件,它们命名的标识符(变量)有可能相同,会有什么样的结果?变量重定义。Aim:解决以上提出的问题。Define:只要名字空间不同,变量名字可以相同。Namespcace NsClass File;Void fun();NS:File obj;NS:Fun()Uing NS:File;Thinking:Using namespace std的作用是什么?什么时候需要自己定义名字空间?5.6.4 编译预处理Define:预处理指令有很多,作用也不相同,是在编译之前完成的 Characteristic and Attention:以#开头每条指令独占一行不用分号结束可以出现在程序的任何位置1. #include文件包含:将一个文件的内容完全放到被包含的文件当中。 想想它的作用?2. #define #undef定义宏(符号)删除宏3. 条件编译指令限定程序的某些内容在满足一定条件的情况下才参与编译。用途:调试?#if#endif#ifdef #endif#ifndef#endif4. defined操作符不是指令,是个操作符defined(标识符)#if !defined(C1_H) #define C1_H#endif5. 预编译指令的作用#include的作用?Question:程序中多次重复包含一个头文件,会遇到什么样的问题?重复定义?怎样解决?/ h1.h#ifndef H1#define H1int i;static int j;#endif/f1.h#include h1.hint add(int x,int y)i=10;return x+y;/f2.h#include h1.hint sub(int x,int y)j=9;return x-y;Multifile.cppEmploy.cpp作业:练习题:6章 数组 指针 字符串内容比较繁杂,但很多都是C的内容,主要讲C+所特有的,有些C的内容要在课后复习6.1 数组define: 数组是具有一定顺序关系的若干对象的集合体,组成数组的对象称为该数组的元素。每个元素有n个下标的数组称为n维数组。Thinking: the function of array?6.1.1声明和使用:声明:int b10;int a34;note: 下标是从零开始计数的使用:用数组名+下标访问数组中的每个元素6-1.cpp6.1.2存储和初始化:存储:数组元素在内存中是顺序、连续存储的。Can you write a program to prove this point?Int a5; After class:Give the address of every element of the array?Int a34;初始化:在声明数组时给部分或全部元素赋初值。Int a3=1,1,1;Int a=1,1;Int a23=1,2,3;Int a23=1,2,3,4,5,6;Int a3=1,2,3,4,5,6;6.1.3 数组名作参数注意:使用数组名传递数据时,传递的是地址,意味着改变形参数组元素的值,实参数组元素的值也会改变6-2.cpp6.1.4 对象数组数组中的每个元素是同一个类的对象,声明和使用方法同一般数组。6-3.cppnote:定义对象数组时对象是如何被初始化的?如何证明?不初始化可以吗?修改程序?Linefit.cpp几个公式参照该程序的分析编写试验报告。6.2 指针指针一般性问题:define:指针:用来存放其他变量地址的变量How:给指针赋值:Int * pi; int a; pi=&a;通过指针访问其指向的变量:*pi=2; 9+(*pi);6-5.cpp指针使用中应注意的问题:如何取得某个变量的地址?&定义指针变量时要给出其指向的变量的类型 Int * pi;指针自身的数据类型 unsigned long int如何输出指针中存放的地址值?指针一定要初始化之后才可以使用?不同类型的指针可以赋值吗? Int *pi; int *pf; float f; pf=&f; pi=pf; error不同类型的指针之间如何赋值?pi=(int *)pf;空类型的指针。Void * p; 特点:可以接受任何类型变量的地址。6-6.cpp指针的高级问题:const 与 指针指向常量的指针()const char * name=”John”;*name=K; error指针类型的常量()char * const name=”John”name=”Jack”; errornote: 注意他们之间的语法的区别。6.2.5 指针的运算算术运算关系运算赋值运算特殊性:与指针所指向变量的类型密切相关int * pi; int I; pi=&I;char * pc; pc=(char *)&I;pi+; pc+;注意:指针的运算多用于对数组的操作, why?防止出错的一手:int * p; p=0;6.2.6 用指针处理数组的元素一维情况:note:int a5;数组名同指针的关系?指针形式与数组形式的等价性? *(P+3) p3 p0 *p6-7.cpp6.2.7 指针数组define:数组中的每个元素是指针,注意类型必须相同。Int * p_i3;6_8.cpp注意如何完成成员赋值的?更高级的问题:指向数组的指针?Int (*p) 3;Int a3; p=&a;P+ ?void main()int a3;int (* p)3;p=&a;couta=aendl;coutp=pendl;couta+1=a+1endl;coutp+1=p+1x;p-getx();6_12.cpp2. 对象指针中的高级问题 this 指针隐含于每一个类的成员函数中的特殊指针(包括构造和析构函数),指向正在被成员函数操作的对象(发出调用的对象)。作用?Point p(int x,int y);(后面的可以不讲,自学) 指向类的非静态成员指针指向类的数据成员的指针int Point: * p; p 指可以指向Point的整形数据成员,p=&Point:x;Point a;a.(*p);指向类的函数成员的指针int (Point:*p) (); p 指可以指向Point的int ()样式的函数成员,注意:通过该方式只有访问属性为公有才能被访问初始化的方式。p=&Point:x; p= Point:Getx();访问方式,必须通过对象?(p1).*p; (p1.*p)()这些功能实际用途并不大。6_13.cpp3. 指向类的静态成员的指针类的静态成员的特点:类的对象共有在定义类的时候分配空间,空间固定所以可以象普通变量一样使用指针访问类的静态成员int Point:countP=0;/静态数据成员定义性说明int *count=&Point:countPcout Object id=*co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论