欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > DOC文档下载
 

C程序设计实验指导书(第四版)

  • 资源ID:142382350       资源大小:291.50KB        全文页数:28页
  • 资源格式: DOC        下载积分:9.9积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要9.9积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

C程序设计实验指导书(第四版)

目 录实验一 熟悉Visual C+开发环境及上机过程1实验二 类的定义和对象的使用6实验三 多文件结构及静态成员和对象数组的使用7实验四 类的继承和派生9实验五 多继承11实验六 虚函数的使用13实验七 抽象类的使用16实验八 运算符重载和友元18实验九 STL的使用19实验十 STL的使用21实验十一 利用AppWizard向导生成Windows应用程序23实验一 熟悉Visual C+开发环境及上机过程一、实验目的1、 了解和使用VC集成开发环境;2、 熟悉VC环境的基本命令和功能键;3、 熟悉常用的功能菜单命令;4、 学习使用VC+环境的帮助;5、 学习完整的C+程序开发过程;6、 理解简单的C+程序结构。二、实验内容 使用Visual C+ 6.0集成环境来编辑、编译并运行程序1:#include <iostream>using namespace std;class TAddpublic: TAdd(int a,int b) x=a;y=b; cout<<"constructor."<<endl; cout<<x<<","<<y<<endl;TAdd() cout<<"destructor."<<endl; cout<<x<<","<<y<<endl;int add()return x+y;private: int x,y;int main()TAdd p1(3,4);cout<<"x+y="<<p1.add()<<endl;TAdd p2(30,40); cout<<"x+y="<<p2.add()<<endl; return 0;三、实验步骤启动Visual C+ 6.0选择菜单“开始/程序/Microsoft Visual Studio 6.0/Microsoft Visual C+ 6.0”,启动后的用户界面如图1-1所示。图1-1 Visual C+ 6.0用户界面 1、创建新工程(1)单击菜单“文件/新建”,显示“新建:对话框,如图1-2所示。(2)在此对话框的列表栏中,选择“Win32 Console Application”(Win32控制台应用程序”)。在 “工程”栏中输入一个工程名,如实验一。在位置文本框中选择工程所在的路径,如图中所示H:C+实验实验一。单击“确定”按钮。图1-2 “新建”对话框(3)在弹出的“Win32 Consol Application-Step 1 of 1” 对话框中选择An empty project单选项。然后单击“Finish”按钮,如图1-3所示。图1-3 “Win32 Consol Application-Step 1 of 1” 对话框(4)在“新建工程信息”对话框中单击“确认”按钮,完成工程创建过程。2、创建C+源程序文件(1)编辑C+源程序:编辑C+源程序时,选择“文件”菜单项,在弹出的子菜单中选择新建(热键为Ctrl+N),出现如图1-4所示的窗口。 图1-4 “新建”窗口(2) 选择“文件”选项卡,在此属性页中选择“C+ Source File”,如图1-4所示,单击“确定”,出现如图1-5所示的编辑屏幕。图1-5 “C+”源程序编辑(3)在“C+源程序编辑”窗口下编辑C+源程序。在编辑窗口键入C+源程序。如图1-6所示,输入以下源程序:图1-6 编辑C+源程序3编译连接和运行源程序(1)选择菜单项“编译”,出现“编译”的下拉菜单,在该下拉式菜单中选择“编译 eg1-1.cpp”菜单项,这时系统开始对当前的源程序进行编译,在编译过程中,编译器会将错误信息显示在屏幕下方的“编译”窗口中。错误信息包括错误所在大致位置和错误的性质。用户可根据这些错误信息进行修改。上述程序的“编译”窗口,如图1-7所示。图1-7 “编辑”窗口(2)编译无错误后,可进行连接生成可执行文件(.exe),这时选择“编译”下拉菜单中的“构件 eg1-1.exe”选项。“编译”窗口出现如图1-8所示的信息说明编译连接成功,并生成以源文件名为名字的可执行文件(eg1-1.exe)。图1-8 编译连接信息(3)执行可执行文件的方法是选择“编译”菜单项中“执行 eg1-1.exe”选项。这时,运行该可执行文件,并将结果显示在另外一个显示执行文件输出结果的窗口中,如图1-9所示。图1-9 运行C+程序结果4关闭工作区、打开工作区单击菜单“文件/关闭工作区”,关闭工作区。单击菜单“文件/打开工作区”,在弹出的对话框中选定“H:C+实验实验一实验一.dsw”,单击“打开”按钮,则可打开工作区,对已建立的工程文件进行修改。5根据实验步骤14,建立、编译并运行实验程序1。四、实验要求1  复习教材有关内容。2  掌握VC控制台应用程序的开发、调试步骤。3  完成实验报告。实验二 类的定义和对象的使用一、实验目的 1、 掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2、 掌握类对象的定义;3、 理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4、 掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。能够根据给定的要求定义类并实现类的成员函数。二、实验内容1、定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:(1)使用成员函数实现输入、输出;(2)使用构造函数和析构函数实现对数据的输入、输出;(3)编写主函数,定义对象,完成相应功能。2、定义日期类Date。要求:(1)可以设置日期;(2)日期加一天操作;(3)输出函数,输出格式为“XXXX年XX月XX日”;(4)编写主函数,定义对象,完成相应功能。三、实验要求1、 写出程序,并调试程序,要给出测试数据和实验结果。2、 整理上机步骤,总结经验和体会。3、 完成实验报告和上交程序。实验三 多文件结构及静态成员和对象数组的使用一、实验目的1、掌握自定义头文件的方法;2、学会建立和调试多文件程序;3、了解静态成员的使用;4、掌握对象数组的使用。二、实验内容1、编写一个函数,求从n个不同的数中取r个数的所有选择的种数。要求:(1)将main()函数放在一个.cpp文件中;(2)将fn(int n) ,Cnr(int n, int r)放在另一个.cpp文件中;(3)将函数原型说明放在一个头文件中;(4)建立一个项目,将这三个文件加到你的项目中,编译连接使你的程序正常运行。2、上机调试例2-30,在Employee类中增加一个静态数据成员来设置本公司员工编号基数,新增加的员工编号将在创建对象的同时自动在基数上增加。另外,将Employee类的声明部分和实现部分分成两个文件来实现。3、上机调试例3-14,假设有一个点类point,具有两个实数坐标。希望主程序使用这个类完成下述功能:(l)主程序为类point申请10个连续存储空间。(2)要求调用一个函数Set()从键盘输入10个对象的属性,并顺序存入申请的内存中。(3)要求调用一个函数Display()显示10个对象的值。(4)要求调用一个函数Lenth(),计算将这些点连成一条折线时,这条折线的长度。(5)程序结束时,删除申请的内存。(6)演示析构对象(动态对象或堆对象)的执行顺序。设计这个类和各个函数并验证运算结果的正确性。三、实验要求1、写出程序,并调试程序,要给出测试数据和实验结果。2、整理上机步骤,总结经验和体会。3、完成实验报告和上交程序。 实验四 类的继承和派生 一、实验目的1、 理解继承的含义,掌握派生类的定义方法和实现;2、 理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;3、 理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员;4、 条件编译的运用。多文件结构的进一步使用。二、实验内容1、编写一个程序计算出球、圆柱和圆锥的表面积和体积。要求:(1)定义一个基类,至少含有一个数据成员半径,并设为保护成员;(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数;(3)编写主函数,求球、圆柱、圆锥的表面积和体积。 2、编写一个学生和教师数据输入和显示程序。其中,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。要求:(1)将编号、姓名输入和显示设计成一个类person;(2)设计类person的派生类:学生类student和教师类teacher;(3)各个类的声明放在相应的头文件中(*.h),类的实现放在相应的实现文件中(*.cpp):person.h,person.cpp,student.h,student.cpp,teacher.h,teacher.cpp;(4)编写一个主文件(SY4_2.cpp),在该文件中分别定义student、teacher的对象,完成相应功能。三、实验要求1、 写出程序,并调试程序,要给出测试数据和实验结果。2、 整理上机步骤,总结经验和体会。3、 完成实验报告和上交程序。实验五 多继承一、实验目的1、理解多继承的概念2、多继承中构造与析构的应用。二、实验内容1、输入以下程序,分析运行结果。#include <iostream> using namespace std;class B1public:B1(int i)b1 = i;cout<<"构造函数 B1."<<b1<<endl; void print() cout<<b1<<endl; private:int b1;class B2public:B2(int i)b2 = i;cout<<"构造函数 B2."<<b2<<endl; void print() cout<<b2<<endl;private:int b2;class B3public:B3(int i)b3 = i;cout<<"构造函数 B3."<<b3<<endl; int getb3() return b3; private:int b3;class A : public B2, public B1public:A(int i, int j, int k, int l):B1(i), B2(j), bb(k)a = l;cout<<"构造函数 A."<<a<<endl; void print()B1:print();B2:print();cout<<a<<endl;private:int a;B3 bb;void main()A aa(1, 2, 3, 4);aa.print(); 2、修改上面的4个类,添加析构函数,在析构函数中输出各私有数据成员的值。并分析结果。三、实验要求1、 写出程序,并调试程序,要给出测试数据和实验结果。2、 整理上机步骤,总结经验和体会。3、 完成实验报告和上交程序。实验六 虚函数的使用一、实验目的1、理解多态的概念。2、理解函数的静态联编和动态联编。3、掌握虚函数的定义。4、理解虚函数在类的继承层次中的作用、虚函数的引入对程序运行时的影响,掌握其使用。 二、实验内容虚函数是在类中被声明为virtual的成员函数,当编译器看到通过指针或引用调用此类函数时,对其执行动态联编,即通过指针(或引用)指向的类的类型信息来决定该函数是哪个类的。通常此类指针或引用都声明为基类的,它可以指向基类或派生类的对象。多态指同一个方法根据其所属的不同对象可以有不同的行为。虚函数是C+中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数1、录入下面程序,并分析结果:#include <iostream> #include <complex> using namespace std; class Base public: Base() cout<<"Base-ctor"<<endl; Base() cout<<"Base-dtor"<<endl; virtual void f(int)cout<<"Base:f(int)"<<endl; virtual void f(double)cout<<"Base:f(double)"<<endl; virtual void g(int i=10)cout<<"Base:g()"<<i<<endl; ; class Derived : public Base public: Derived() cout<<"Derived-ctor" <<endl; Derived()cout<<"Derived-dtor"<<endl;void f(complex<double>) cout<<"Derived:f(complex)"<<endl;void g(int i=20)cout<<"Derived:g()"<<i<<endl; int main() cout<<sizeof(Base)<<endl; cout<<sizeof(Derived)<<endl; Base b; Derived d; Base *pb=new Derived; b.f(1.0); d.f(1.0); pb->f(1.0); b.g(); d.g(); pb->g(); delete pb; return 0; 2、录入下面程序,分析运行结果:#include <iostream> using namespace std; class Base public: Base():data(count) cout<<"Base-ctor"<<endl;+count;Base()cout<<"Base-dtor"<<endl;-count; static int count; int data; ;int Base:count; class Derived : public Basepublic:Derived():data(count),data1(data)cout<<"Derived-ctor"<<endl;+count;Derived()cout<<"Derived-dtor"<<endl;-count;static int count;int data1;int data;int Derived:count=10;int main()cout<<sizeof(Base)<<endl;cout<<sizeof(Derived)<<endl;Base* pb = new Derived3;cout<<pb2.data<<endl;cout<<(static_cast<Derived*>(pb)+2)->data1<<endl;delete pb;cout<<Base:count<<endl;cout<<Derived:count<<endl;return 0; 三、实验要求1、 写出程序,并调试程序,要给出测试数据和实验结果。2、 整理上机步骤,总结经验和体会。3、 完成实验报告和上交程序。实验七 抽象类的使用一、实验目的 1、 了解抽象类的概念;2、 灵活应用抽象类。 二、实验内容1、录入下面程序,分析编译错误信息。#include <iostream>#include <new>#include <assert.h>using namespace std;class Abstractpublic: Abstract() cout << "in Abstract()n" virtual void f() = 0;int main() Abstract *p = new Abstract; p->f(); return 0;2、基类shape类是一个表示形状的抽象类,area( )为求图形面积的函数。请从shape类派生三角形类(triangle)、圆类(circles)、并给出具体的求面积函数。#include<iostream.h>class shape public: virtual float area( )=0 ;; 3、定义一个抽象类Base,在该类中定义一个纯需函数virtual void abstractMethod() = 0;在函数的实现中输出"Base:abstractMethod is called.",派生一个基于Base的派生类Derived,在派生类Derived的abstractMethod方法中首先调用基类的abstractMethod方法,在输出"Derived:abstractMethod is called",最后编写主函数,其内容如下:int main() Base* pBase = new Derived; pBase->abstractMethod(); delete pBase; return 0;分析运行结果。三、实验要求1、 写出程序,并调试程序,要给出测试数据和实验结果。2、 整理上机步骤,总结经验和体会。3、 完成实验报告和上交程序。实验八 运算符重载和友元一、实验目的 1、掌握运算符重载和友元的概念;2、掌握使用friend重载运算符的方法。二、实验内容1、设计一个类,用自己的成员函数重载运算符,使对整型的运算符=、+、-、*、/ 适用于分数运算。要求:(1)输出结果是最简分数(可以是带分数);(2)分母为1,只输出分子。2、用友元函数重载运算符,使对整型的运算符=、+、-、*、/ 适用于分数运算。三、实验要求1、写出程序,并调试程序,要给出测试数据和实验结果。2、整理上机步骤,总结经验和体会。3、完成实验报告和上交程序。实验九 模板的使用一、实验目的1、掌握C+中模板的概念,区分函数模板、模板函数与类模板和模板类的概念;2、掌握函数模板的声明和模板函数的生成,以及函数模板的异常处理;3、掌握类模板的定义和模板类的使用。二、实验内容1、输入以下程序并运行、分析结果:(P239 6.7)#include <iostream.h>template <class Type1,class Type2>class myclasspublic:myclass(Type1 a, Type2 b)i=a;j=b;void show()cout<<i<<' '<<j<<'n'private: Type1 i;Type2 j;main()myclass<int,double> ob1(10,0.23);myclass<char,char *> ob2('x',"This is a test");ob1.show();ob2.show();return 0;2、指出下列程序中的错误,并说明原因,然后修改正确:(P240 6.8)#include <iostream.h>template <class T>class Stackpublic:Stack(int sz) v=p=new T size=sz;Stack() delete v ;void push(T x) * p+=x; T pop() return *-p; int siz() const return (p-v);private:T *v;T *p;int size;void main()Stack aSt(5);aSt.push(10);3、已知下列主函数,请定义取三个数之间较小者的函数模板,然后运行之:(P240 6.9)void main()cout<<min(10,5,3)<<endl;cout<<min(10.0,5.0,3.0)<<endl;cout<<min('a','b','c')<<endl;4、写一个函数模板,求数组中的最大元素,并且使得函灵敏调用时,数组的类型和返回类型可以是整数也可以是双精度类型。5、建立类模板input,在调用构造函时,完成以下工作:(1) 提示用户输入;(2) 让用户输入数据;(3) 如果数据不在预定义范围内,重新提示输入。input型的对象应当按以下形式定义: input ob(“promput message”,min_value,max_value)其中,promput message 是提示输入的信息。可接受的最小值和最大值分别由min_value与max_value指定。三、实验要求1、写出程序,并调试程序,要给出测试数据和实验结果。2、整理上机步骤,总结经验和体会。3、完成实验报告和上交程序。实验十 STL的使用一、实验目的1、掌握VC中STL的使用方法;2、掌握容器(container)、模板(template)、游标(Iterator)、算法(Algorithms)、分配器(Allocator)、向量(vector)等知识的应用。二、实验内容1、vector向量的使用(目的:理解STL中的向量),输入以下程序并运行、分析结果。/ #include "stdafx.h" -如果使用预编译的头文件就包含这个头文件#include <vector> / STL向量的头文件。这里没有".h"。#include <iostream> / 包含cout对象的头文件。using namespace std;/保证在程序中可以使用std命名空间中的成员。char* szHW = "Hello World" /这是一个字符数组,以”0”结束。int main(int argc, char* argv) vector <char> vec; /声明一个字符向量vector (STL中的数组)/为字符数组定义一个游标iterator。vector <char>:iterator vi;/初始化字符向量,对整个字符串进行循环,/用来把数据填放到字符向量中,直到遇到”0”时结束。char* cptr = szHW; / 将一个指针指向“Hello World”字符串while (*cptr != '0') vec.push_back(*cptr);cptr+;/ push_back函数将数据放在向量的尾部。/ 将向量中的字符一个个地显示在控制台for (vi=vec.begin(); vi!=vec.end(); vi+)/ 这是STL循环的规范化的开始通常是 "!=" , 而不是 "<"/ 因为"<" 在一些容器中没有定义。 / begin()返回向量起始元素的游标(iterator),end()返回向量末尾元素的游标(iterator)。cout << *vi; / 使用运算符 “*” 将数据从游标指针中提取出来。cout << endl; / 换行return 0;2、容器和游标的使用,输入以下程序,并调试、分析结果#pragma warning(disable:4786) #include <iostream> #include <string> #include <map> using namespace std;typedef map<int, string, less<int> > INT2STRING;void main() INT2STRING theMap;INT2STRING:iterator theIterator;string theString = ""int index;theMap.insert(INT2STRING:value_type(0, "Zero");theMap.insert(INT2STRING:value_type(1, "One");theMap.insert(INT2STRING:value_type(2, "Two");theMap.insert(INT2STRING:value_type(3, "Three");theMap.insert(INT2STRING:value_type(4, "Four");theMap.insert(INT2STRING:value_type(5, "Five");theMap.insert(INT2STRING:value_type(6, "Six");theMap.insert(INT2STRING:value_type(7, "Seven");theMap.insert(INT2STRING:value_type(8, "Eight");theMap.insert(INT2STRING:value_type(9, "Nine");for (;)cout << "Enter "q" to quit, or enter a Number: "cin >> theString;if(theString = "q")break; for(index = 0; index < theString.length(); index+) theIterator = theMap.find(theStringindex - '0');if(theIterator != theMap.end() )cout << (*theIterator).second << " "else cout << "err "cout << endl;三、实验要求1、写出程序,并调试程序,要给出测试数据和实验结果。2、整理上机步骤,总结经验和体会。3、完成实验报告和上交程序。实验十一 利用AppWizard向导生成Windows应用程序一、实验目的学习利用Appwizard向导开发Windows应用程序的过程。二、实验内容AppWizard是一个工具,利用该工具,你可以创建一个建立在MFC基础上的窗口应用程序框架,然后在这个框架中加上自己的应用逻辑。你可以选择所创建的应用类型,最常用的是多文档应用(就象你用的字编辑器Microsoft Word一样,可以同时打开多个文档窗口的应用)、单文档应用(类似于Windows提供的notepad,一次只能打开一个文档)和对话框应用(类似于Windows的时钟程序)。1、用AppWizard建立一个单文档应用程序,在窗口中输出”Hello,World!”。2、用AppWizard建立一个对话框应用程序,在对话框上摆放相应控件。程序结果如下图10-1:图10-1 对话框主界面图三、实验步骤1、创建一个新项目利用Developer Studio的AppWizard创建一个新的项目,步骤如下:(1)选择菜单File|New,系统将显示New对话框(2)选择Projects标签,在显示的项目类型中选择MFC AppWizard(exe)(3)在右边的Project Name编辑框中输入项目名称,如“helloMFC”,然后按OK(4)MFC AppWizard 将分几步询问你有关要建立的新项目的配置。第一个对话框问你是创建哪种类型的应用(单文档、多文档还是对话框类型),选择创建单文档应用“Single document”,然后按Next按钮(5)翻过后面的五个页面(按Next),每个页面可以让你改变项目的不同选项,这个例子暂时不设置这些选项。(6)最后一个MFC AppWizard屏幕告诉你App Wizard为你自动产生的类。单击Finish键,AppWizard显示一个关于该项目的摘要,列出这些类和你所选择的特征。如图10-1所示。图10-2 最后一个MFC AppWizard屏幕(7) 单击OK,系统自动产生helloMFC所需要的文件。2、浏览helloMFC项目当你用MFC AppWizard创建了helloMFC项目后,这个项目的工作区窗口将会打开,工作区窗口(如下图):图10-3 打开helloMFC项目后的工作区窗口你可以先选择FileView看一下AppWizard为你创建了哪些文件,然后选择ClassView看一下定义了哪些类。ClassView中还可以看到一个Globals文件夹,单击它前面的加号,可以看到,有一个预定义的全局变量theApp,这是你的Windows应用程序类的对象。3、编译连接运行按F7或者选择菜单Build|Build helloMFC.exe,编译连接得到可执行程序,再按Ctrl+F5或者选择Build|Execute helloMFC.exe运行该程序。程序的结果如下:图10-4 编译连接运行的结果4、用MFC处理输出现在修改程序。要在程序中间的窗口上显示一行文字“Hello, World” ,步骤如下:(1)在工作区窗口中选择ClassView标签,单击helloMFC classes前面的加号(如果已经变成减号则不做此操作)。(2)单击类CHelloMFCView类前面的加号。(3)双击OnDraw()函数,在右边的文档将显示窗口显示文件helloMFCView的内容,并且自动将光标定位到函数OnDraw()处。(4)修改OnDraw函数的定义,在最后一行加一句:pDC->TextOut(50,50,"Hello, World");(5)按Ctrl+s或者选菜单File|Save来保存所作的修改。5、编译连接并运行重新编译连接该项目,运行程序,也可以用Ctrl+F5直接运行程序,系统将询问是否重新编译该项目,回答“是(Yes)”,如果有编译错误,仔细检查你加的一句话,是否有错。当编译连接通过后,系统会自动运行该程序。查看结果。四实验要求1、写出程序,并调试程序,要给出测试数据和实验结果。2、整理上机步骤,总结经验和体会。3、完成实验报告和上交程序。

注意事项

本文(C程序设计实验指导书(第四版))为本站会员(ren****ao)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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