游戏软件测试10课件

上传人:沈*** 文档编号:241590775 上传时间:2024-07-07 格式:PPT 页数:47 大小:126KB
返回 下载 相关 举报
游戏软件测试10课件_第1页
第1页 / 共47页
游戏软件测试10课件_第2页
第2页 / 共47页
游戏软件测试10课件_第3页
第3页 / 共47页
点击查看更多>>
资源描述
游戏软件测试游戏软件测试主讲人:徐丽主讲人:徐丽第四章第四章 编码规范编码规范 一、排版一、排版 1 1、程序块要缩进、程序块要缩进 程程序序块块要要采采用用缩缩进进风风格格编编写写,缩缩进进的的空空格数为格数为4 4个。个。说说明明:对对于于由由开开发发工工具具自自动动生生成成的的代代码码可以有不一致。可以有不一致。2 2、独立块之间要空行、独立块之间要空行 相相对对独独立立的的程程序序块块之之间间、变变量量说说明明之之后后必必须须加空行。加空行。示例示例1 1:以下例子不符合规范。:以下例子不符合规范。void Function1(.)void Function1(.)./program code ./program code void Function2(.)void Function2(.)./program code./program code 应如下书写:应如下书写:void Function1(.)void Function1(.)./program code./program code/空行空行void Function2(.)void Function2(.)./program code./program code 示例示例2 2:以下例子不符合规范。:以下例子不符合规范。intint m,n;m,n;m=10;m=10;n=20;n=20;应如下书写:应如下书写:intint m,n;m,n;/空行空行m=10;m=10;n=20;n=20;3 3、较长语句划分新行、较长语句划分新行较较长长的的语语句句(8080字字符符)要要分分成成多多行行书书写写,长长表表达达式式要要在在低低优优先先级级操操作作符符处处划划分分新新行行,操操作作符符放放在在新新行行之之首首,划划分分出出的的新新行行要要进进行行适适当当的的缩缩进进,使使排排版版整齐,语句可读。整齐,语句可读。示例:示例:permCountMsg.head.lenpermCountMsg.head.len=NO7_TO_STAT_PERM_COUNT_LEN=NO7_TO_STAT_PERM_COUNT_LEN +STAT_SIZE_PER_FRAM*+STAT_SIZE_PER_FRAM*sizeof(ULsizeof(UL););actTaskTableframeIdactTaskTableframeId*STAT_TASK_CHECK_NUMBER+index.occupied*STAT_TASK_CHECK_NUMBER+index.occupied =statPoiindex.occupiedstatPoiindex.occupied;actTaskTabletaskno.durationTrueOrFalseactTaskTabletaskno.durationTrueOrFalse =SYSGetSccpStatisticState(statItemSYSGetSccpStatisticState(statItem););reportOrNotFlagreportOrNotFlag=(=(tasknotasknoMAX_ACT_TASK_NUMBER)MAX_ACT_TASK_NUMBER)&(n7statStatItemValid(statItem)&(n7statStatItemValid(statItem)&(&(actTaskTabletaskno.resultDataactTaskTabletaskno.resultData!=0);!=0);4 4、较长表达式划分新行、较长表达式划分新行 循循环环、判判断断等等语语句句中中若若有有较较长长的的表表达达式式或或语语句句,则则要要进进行行适适应应的的划划分分,长长表表达达式式要要在在低低优优先先级级操操作作符符处处划划分分新新行行,操操作作符符放放在在新新行行之之首首。示例:示例:if(year%4=0)&(year%100!=0)if(year%4=0)&(year%100!=0)|(year%400=0)|(year%400=0)./program code./program code for(i=0,j=0;(ifor(i=0,j=0;(ifirstWordLengthfirstWordLength)&(j&(jsecondWordLength);i+,jsecondWordLength);i+,j+)+)./program code./program code for(i=0,j=0;for(i=0,j=0;(i (ifirstWordLength)&(jfirstWordLength)&(j secondWordLengthsecondWordLength););i+,j+)i+,j+)./program code./program code 5 5、较长参数适当划分、较长参数适当划分 若若函函数数或或过过程程中中的的参参数数较较长长,则则要要进进行行适当的划分。适当的划分。示例:示例:double double BoxVolume(doubleBoxVolume(double length,length,double width,double width,double height);double height);6 6、一行只写一条语句、一行只写一条语句 不不允允许许把把多多个个短短语语句句写写在在一一行行中中,即即一一行行只只写一条语句。写一条语句。示例示例1 1:以下例子不符合规范。:以下例子不符合规范。intint length,width,height;length,width,height;/长度,宽度,高度长度,宽度,高度 应如下书写:应如下书写:intint length;length;/长度长度 intint width;width;/宽度宽度 intint height;height;/高度高度也可如下书写:也可如下书写:intint length,length,/长度长度 width,width,/宽度宽度 height;height;/高度高度示例示例2 2:以下例子不符合规范。:以下例子不符合规范。length=0;width=0;height=0;length=0;width=0;height=0;应如下书写:应如下书写:length=0;length=0;width =0;width =0;height=0;height=0;7 7、语句关键字占一行、语句关键字占一行ifif、forfor、dodo、whilewhile、casecase、switchswitch、default default 等等关关键键字字语语句句自自占占一一行行,且且ifif、forfor、dodo、whilewhile等语句的执行语句部分无论多少都要加括号等语句的执行语句部分无论多少都要加括号 。示例示例1 1:如下例子不符合规范。:如下例子不符合规范。if(n0)return;if(n0)return;应如下书写:应如下书写:if(n0)if(n0)return;return;示例示例2 2:如下例子不符合规范。:如下例子不符合规范。for(i=1;i=100;i+)sum+=i;for(i=1;i=100;i+)sum+=i;应如下书写:应如下书写:for(i=1;i=100;i+)for(i=1;i=100;i+)sum+=i;sum+=i;示例示例3 3:如下例子不符合规范。:如下例子不符合规范。while(i=100)i+;while(i=100)i+;应如下书写:应如下书写:while(i=100)while(i-),后不应加空格。),后不应加空格。说说明明:采采用用这这种种松松散散方方式式编编写写代代码码的的目的是使代码更加清晰。目的是使代码更加清晰。由由于于留留空空格格所所产产生生的的清清晰晰性性是是相相对对的的,所所以以,在在已已经经非非常常清清晰晰的的语语句句中中没没有有必必要要再再留留空空格格,如如果果语语句句已已足足够够清清晰晰则则括括号号内内侧侧(即即左左括括号号后后面面和和右右括括号号前前面面)不不需需要要加加空空格格,多多重重括括号号间间不不必必加加空空格格,因因为为在在C/C+C/C+语言中括号已经是最清晰的标志了。语言中括号已经是最清晰的标志了。在在长长语语句句中中,如如果果需需要要加加的的空空格格非非常常多多,那那么么应应该该保保持持整整体体清清晰晰,而而在在局局部部不不加加空空格格。给给操操作作符符留留空空格格时时不不要要连连续续留留两两个以上空格。个以上空格。示例:示例:(1)(1)逗号、分号只在后面加空格。逗号、分号只在后面加空格。intint a,b,c;a,b,c;(2)(2)比比较较操操作作符符,赋赋值值操操作作符符=、+=+=,算算术术操操作作符符+、%,逻逻辑辑操操作作符符&、&,位位域操作符域操作符=MAX_TIME_VALUE)=MAX_TIME_VALUE)a=b+c;a=b+c;a*=2;a*=2;a=b 2;a=b 2;(3)“!”(3)“!”、“+”+”、“-、*(内内容容操操作作符符)、&(地址运算符)等单目操作符前后不加空格。(地址运算符)等单目操作符前后不加空格。char *name,char *name,chch;/*/*紧紧靠靠变变量量名名namename,此此处处chch不会被误解为指针不会被误解为指针*p=a;p=a;/内容操作内容操作*与内容之间与内容之间flag=!flag=!isEmptyisEmpty;/非操作非操作!与内容之间与内容之间p=&p=&memmem;/地址操作地址操作&与内容之间与内容之间i+;i+;/+,-/+,-与内容之间与内容之间(4)-(4)-、.前后不加空格。前后不加空格。p-id=p-id=pidpid;/-;/-指针前后不加空格指针前后不加空格(5)if(5)if、forfor、whilewhile、switchswitch等等与与后后面面的的括括号间应加空格,使号间应加空格,使ifif等关键字更为突出、明显。等关键字更为突出、明显。if(a=b&c d)if(a=b&c d)1212、一行字符不要写得过长一行字符不要写得过长 一行程序以小于一行程序以小于8080字符为宜,不要写得过长字符为宜,不要写得过长4.2 4.2 注释注释1 1、有效注释量、有效注释量 一一般般情情况况下下,源源程程序序有有效效注注释释量量必必须须在在2020以以上上。说说明明:注注释释的的原原则则是是有有助助于于对对程程序序的的阅阅读读理理解解,在在该该加加的的地地方方都都加加了了,注注释释不不宜宜太太多多也也不能太少,注释语言必须准确、易懂、简洁。不能太少,注释语言必须准确、易懂、简洁。2 2、对、对文件头部的注释文件头部的注释(如如头头文文件件.h.h文文件件、.inc.inc文文件件、.def.def文文件件、编编译译说说明明文文件件.cfgcfg等等)头头部部应应进进行行注注释释,注注释释必必须须列列出出:版版权权说说明明、版版本本号号、生生成成日日期期、作作者者、内内容容、功功能能、与与其其它它文文件件的的关关系系、修修改改日日志志等等,头头文文件件的注释中还应有函数功能简要说明。的注释中还应有函数功能简要说明。示示例例:下下面面这这段段头头文文件件的的头头注注释释比比较较标标准准,当当然然,并并不不局局限限于于此此格格式式,但但上上述述信信息息建建议议要包含在内。要包含在内。/*/*Copyright(C),2000-2004,Copyright(C),2000-2004,xxxxxxxxxxxx Co.,Ltd.Co.,Ltd.File name:/File name:/文件名文件名 Author:Version:Date:Author:Version:Date:/作者、版本及完成日期作者、版本及完成日期 Description:/Description:/用于详细说明此程序文件完成的主要功能,与其他模块用于详细说明此程序文件完成的主要功能,与其他模块 /或函数的接口,输出值、取值范围、含义及参数间的控或函数的接口,输出值、取值范围、含义及参数间的控 /制、顺序、独立或依赖等关系制、顺序、独立或依赖等关系 Others:/Others:/其它内容的说明其它内容的说明 Function List:/Function List:/主要函数列表,每条记录应包括函数名及功能简要说明主要函数列表,每条记录应包括函数名及功能简要说明 1.1.History:/History:/修改历史记录列表,每条修改记录应包括修改日期、修改修改历史记录列表,每条修改记录应包括修改日期、修改 /者及修改内容简述者及修改内容简述 1.1.Date:Date:Author:Author:Modification:Modification:2.2.*/*/3 3、对源文件头部、对源文件头部的注释的注释源源文文件件头头部部应应进进行行注注释释,列列出出:版版权权说说明明、版版本本号号、生生成成日日期期、作者、模块目的作者、模块目的/功能、主要函数及其功能、修改日志等。功能、主要函数及其功能、修改日志等。示示例例:下下面面这这段段源源文文件件的的头头注注释释比比较较标标准准,当当然然,并并不不局局限限于于此此格式,但上述信息建议要包含在内。格式,但上述信息建议要包含在内。/*/*Copyright(C),2000-2004,Copyright(C),2000-2004,xxxxxxxxxxxx Co.,Ltd.Co.,Ltd.FileNameFileName:test.c:test.c Author:Version:Date:Author:Version:Date:Description:/Description:/模块描述模块描述 Version:/Version:/版本信息版本信息 Function List:/Function List:/主要函数及其功能主要函数及其功能 1.-1.-History:/History:/历史修改记录历史修改记录 David 2003/10/12 1.0 build this David 2003/10/12 1.0 build this moudlemoudle */*/说说明明:DescriptionDescription一一项项描描述述本本文文件件的的内内容容、功功能能、内内部部各各部部分分之之间间的的关关系系及及本本文文件件与与其其它它文文件件关关系系等等。HistoryHistory是是修修改改历历史史记记录录列列表表,每每条条修修改改记记录录应应包包括括修修改改日日期期、修修改改者者及及修修改改内内容简述。容简述。4 4、对函数头部、对函数头部的注释的注释 函函数数头头部部应应进进行行注注释释,列列出出:函函数数的的目目的的/功功能能、输输入入参参数数、输输出出参参数数、返返回回值值、调调用用关关系系(函数、表)等。(函数、表)等。示示例例:下下面面这这段段函函数数的的注注释释比比较较标标准准,当当然然,并并不不局局限限于于此此格格式式,但上述信息建议要包含在内。但上述信息建议要包含在内。/*/*Function:Function:/函数名称函数名称 Description:/Description:/函数功能、性能等的描述函数功能、性能等的描述 Calls:/Calls:/被本函数调用的函数清单被本函数调用的函数清单 Called By:/Called By:/调用本函数的函数清单调用本函数的函数清单 Table Table Accessed:Accessed:/被被访访问问的的表表(此此项项仅仅对对于于牵牵扯扯到到数数据库操作的程序)据库操作的程序)Table Table Updated:Updated:/被被修修改改的的表表(此此项项仅仅对对于于牵牵扯扯到到数数据库操作的程序)据库操作的程序)Input:/Input:/输入参数说明,包括每个参数的作输入参数说明,包括每个参数的作 /用、取值说明及参数间关系。用、取值说明及参数间关系。Output:/Output:/对输出参数的说明。对输出参数的说明。Return:/Return:/函数返回值的说明函数返回值的说明 Others:/Others:/其它说明其它说明*/5 5、边写代码边注释、边写代码边注释 边边写写代代码码边边注注释释,修修改改代代码码同同时时修修改改相相应应的的注注释释,以以保保证证注注释释与与代代码码的的一一致致性性。不不再再有有用用的的注注释要删除。释要删除。6 6、注释的内容、注释的内容 注注释释的的内内容容要要清清楚楚、明明了了,含含义义准准确确,防防止止注注释释二义性。二义性。说明:错误的注释不但无益反而有害。说明:错误的注释不但无益反而有害。7 7、避免、避免在注释中在注释中使用缩写使用缩写 避免在注释中使用缩写,特别是非常用缩写。避免在注释中使用缩写,特别是非常用缩写。说说明明:在在使使用用缩缩写写时时或或之之前前,应应对对缩缩写写进进行行必必要要的说明。的说明。8 8、对代码的注释、对代码的注释注注释释应应与与其其描描述述的的代代码码相相近近,对对代代码码的的注注释释应应放放在在其其上上方方或或右右方方(对对单单条条语语句句的的注注释释)相相邻邻位位置置,不不可可放放在在下下面面,如如放放于于上上方方则则需需与与其其上上面面的的代代码码用空行隔开。用空行隔开。示例:如下例子不符合规范。例示例:如下例子不符合规范。例1 1:/*/*get get replicate replicate sub sub system system index index and and net net indicator*/indicator*/空行空行/空行空行repssnIndrepssnInd=ssnDataindex.repssnIndexssnDataindex.repssnIndex;repssnNirepssnNi=ssnDataindex.nissnDataindex.ni;例例2 2:repssnIndrepssnInd=ssnDataindex.repssnIndexssnDataindex.repssnIndex;repssnNirepssnNi=ssnDataindex.nissnDataindex.ni;/*/*get get replicate replicate sub sub system system index index and and net net indicator*/indicator*/应如下书写:应如下书写:/*/*get get replicate replicate sub sub system system index index and and net net indicator*/indicator*/repssnIndrepssnInd=ssnDataindex.repssnIndexssnDataindex.repssnIndex;repssnNirepssnNi=ssnDataindex.nissnDataindex.ni;9 9、对变量、常量的注释、对变量、常量的注释 对对于于所所有有有有物物理理含含义义的的变变量量、常常量量,如如果果其其命命名名不不是是充充分分自自注注释释的的,在在声声明明时时都都必必须须加加以以注注释释,说说明明其其物物理理含含义义。变变量量、常常量量、宏宏的的注注释释应应放放在在其上方相邻位置或右方。其上方相邻位置或右方。示例:示例:/*active statistic task number*/*active statistic task number*/#define MAX_ACT_TASK_NUMBER 1000#define MAX_ACT_TASK_NUMBER 1000#define MAX_ACT_TASK_NUMBER 1000/*active statistic task number*/#define MAX_ACT_TASK_NUMBER 1000/*active statistic task number*/1010、对数据结构声明的注释、对数据结构声明的注释 数数据据结结构构声声明明(包包括括数数组组、结结构构、类类、枚枚举举等等),如如果果其其命命名名不不是是充充分分自自注注释释的的必必须须加加以以注注释释。对对数数据据结结构构的的注注释释应应放放在在其其上上方方相相邻邻位位置置,不不可可放放在在下下面面;对对结结构构中中的每个域的注释放在此域的右方。的每个域的注释放在此域的右方。示例:可按如下形式说明枚举示例:可按如下形式说明枚举/结构结构/联合。联合。/*/*sccpsccp interface interface with with sccpsccp user user primitive primitive message message name name*/*/enumenum SCCP_USER_PRIMITIVE SCCP_USER_PRIMITIVE N_UNITDATA_IND,N_UNITDATA_IND,/*/*sccpsccp notify notify sccpsccp user user unit unit data come*/data come*/N_NOTICE_IND,N_NOTICE_IND,/*/*sccpsccp notify notify user user the the No.7 No.7 network can not*/network can not*/*transmission this message*/*transmission this message*/N_UNITDATA_REQ N_UNITDATA_REQ /*/*sccpsccp users users unit unit data data transmission request*/transmission request*/;1111、对全局变量的注释、对全局变量的注释 全全局局变变量量要要有有较较详详细细的的注注释释,包包括括对对其其功功能能、取取值值范范围围、哪哪些些函函数或过程存取它以及存取时注意事项等的说明。数或过程存取它以及存取时注意事项等的说明。示例:示例:/*The/*The ErrorCodeErrorCode when SCCP translate*/when SCCP translate*/*Global Title failure,as follows*/*Global Title failure,as follows*/变量作用、含义变量作用、含义/*0/*0 SUCCESS 1 SUCCESS 1 GT Table error*/GT Table error*/*2/*2 GT error Others GT error Others no use */no use */变量取值范围变量取值范围/*only function /*only function SCCPTranslateSCCPTranslate()in*/()in*/*this/*this modualmodual can modify it,and other*/can modify it,and other*/*module can visit it through call*/*module can visit it through call*/*the function/*the function GetGTTransErrorCodeGetGTTransErrorCode()*/()*/使用方法使用方法char char g_GTTranErrorCodeg_GTTranErrorCode;1212、注释的缩排注释的缩排 注释与所描述内容进行同样的缩排。注释与所描述内容进行同样的缩排。说说明明:可可使使程程序序排排版版整整齐齐,并并方方便便注注释释的的阅阅读读与理解。与理解。示例示例:如下例子如下例子,排版不整齐排版不整齐,阅读稍感不方便。阅读稍感不方便。void void ExampleFun(voidExampleFun(void)/*code one comments*/*code one comments*/CodeBlockCodeBlock One One/空行空行 /*code two comments*/*code two comments*/CodeBlockCodeBlock Two Two应改为如下布局。应改为如下布局。void void ExampleFun(voidExampleFun(void)/*code one comments*/*code one comments*/CodeBlockCodeBlock One One/空行空行 /*code two comments*/*code two comments*/CodeBlockCodeBlock Two Two 1313、注释与代码用空行隔开、注释与代码用空行隔开将注释与其上面的代码用空行隔开。将注释与其上面的代码用空行隔开。示例:如下例子,显得代码过于紧凑。示例:如下例子,显得代码过于紧凑。/*code one comments*/*code one comments*/program code oneprogram code one/*code two comments*/*code two comments*/program code twoprogram code two应如下书写应如下书写/*code one comments*/*code one comments*/program code oneprogram code one /空行空行/*code two comments*/*code two comments*/program code twoprogram code two1414、必须编写的注释。、必须编写的注释。对对变变量量的的定定义义和和分分支支语语句句(条条件件分分支支、循循环环语语句句等)必须编写注释。等)必须编写注释。说说明明:这这些些语语句句往往往往是是程程序序实实现现某某一一特特定定功功能能的的关关键键,对对于于维维护护人人员员来来说说,良良好好的的注注释释帮帮助助更更好好的的理解程序,有时甚至优于看设计文档。理解程序,有时甚至优于看设计文档。1515、对、对casecase语句的注释语句的注释 对对于于switchswitch语语句句下下的的casecase语语句句,如如果果因因为为特特殊殊情情况况需需要要处处理理完完一一个个casecase后后进进入入下下一一个个casecase处处理理,必必须须在在该该casecase语语句句处处理理完完、下下一一个个casecase语语句句前前加加上上明明确的注释。确的注释。说说明明:这这样样比比较较清清楚楚程程序序编编写写者者的的意意图图,有有效效防防止无故遗漏止无故遗漏breakbreak语句。语句。示例(注意斜体加粗部分):示例(注意斜体加粗部分):case CMD_UP:case CMD_UP:ProcessUpProcessUp();();break;break;case CMD_DOWN:case CMD_DOWN:ProcessDownProcessDown();();break;break;case CMD_FWD:case CMD_FWD:ProcessFwdProcessFwd();();if(.)if(.).break;break;elseelse ProcessCFW_BProcessCFW_B();();/now jump into case CMD_A/now jump into case CMD_A case CMD_A:case CMD_A:ProcessAProcessA();();break;break;case CMD_B:case CMD_B:ProcessBProcessB();();break;break;case CMD_C:case CMD_C:ProcessCProcessC();();break;break;case CMD_D:case CMD_D:ProcessDProcessD();();break;break;.1616、避免插入的注释、避免插入的注释 避免在一行代码或表达式的中间插入注释。避免在一行代码或表达式的中间插入注释。说说明明:除除非非必必要要,不不应应在在代代码码或或表表达达中中间间插插入入注释,否则容易使代码可理解性变差。注释,否则容易使代码可理解性变差。1717、自注释、自注释 通通过过对对函函数数或或过过程程、变变量量、结结构构等等正正确确的的命命名名以以及及合合理理地地组组织织代代码码的的结结构构,使使代代码码成成为为自自注注释释的。的。说说明明:清清晰晰准准确确的的函函数数、变变量量等等的的命命名名,可可增增加代码可读性,并减少不必要的注释。加代码可读性,并减少不必要的注释。1818、对代码的功能、意图进行注释、对代码的功能、意图进行注释 在在代代码码的的功功能能、意意图图层层次次上上进进行行注注释释,提提供供有有用用、额额外的信息。外的信息。说说明明:注注释释的的目目的的是是解解释释代代码码的的目目的的、功功能能和和采采用用的的方方法法,提提供供代代码码以以外外的的信信息息,帮帮助助读读者者理理解解代代码码,防防止止没必要的重复注释信息。没必要的重复注释信息。示例:如下注释意义不大。示例:如下注释意义不大。/*if/*if receiveFlagreceiveFlag is TRUE*/is TRUE*/if(if(receiveFlagreceiveFlag)而如下的注释则给出了额外有用的信息。而如下的注释则给出了额外有用的信息。/*if/*if mtpmtp receive a message from links*/receive a message from links*/if(if(receiveFlagreceiveFlag)1919、对程序块的注释、对程序块的注释在在程程序序块块的的结结束束行行右右方方加加注注释释标标记记,以以表表明明某某程程序序块块的的结结束束。说说明明:当当代代码码段段较较长长,特特别别是是多多重重嵌嵌套套时时,这这样样做做可可以使代码更清晰,更便于阅读。以使代码更清晰,更便于阅读。示例:参见如下例子。示例:参见如下例子。if(.)if(.)/program code/program code /空行空行 while(index MAX_INDEX)while(index MAX_INDEX)/program code /program code /*end of while(index MAX_INDEX)*/*end of while(index MAX_INDEX)*/指明该条指明该条whilewhile语句结束语句结束/*end of if(.)*/*end of if(.)*/指明是哪条指明是哪条ifif语句结束语句结束2020、注释的格式、注释的格式 注释格式尽量统一,建议使用注释格式尽量统一,建议使用“/*/”/*/”。2121、注释的易读性、注释的易读性 注注释释应应考考虑虑程程序序易易读读及及外外观观排排版版的的因因素素,使使用用的的语语言言若若是是中中、英英兼兼有有的的,建建议议多多使使用用中中文文,除除非非能能用非常流利准确的英文表达。用非常流利准确的英文表达。说说明明:注注释释语语言言不不统统一一,影影响响程程序序易易读读性性和和外外观观排版,出于对维护人员的考虑,建议使用中文。排版,出于对维护人员的考虑,建议使用中文。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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