版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第1页,共29页 目目 录录 目目 录录2 1.1.文档说明文档说明4 1.1.内容和有效性4 1.2.文档修改4 1.3.保密5 2.2.编程宗旨编程宗旨5 2.1.软件编码规范的目的5 2.2.对程序员的要求5 2.3.宗旨6 3.3.程序书写程序书写6 3.1.程序书写风格6 3.1.1.培养良好的程序风格6 3.1.2.程序书写规范6 3.2.注释7 4.4.JAVAJAVA 命名规则命名规则7 4.1.命名综述7 4.2.Java 命
2、名规范8 4.2.1.Java 程序命名规则8 5.5.JAVAJAVA 注释规则注释规则10 5.1.注释规则综述10 5.2.注释规则描述10 5.2.1.类的注释10 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第2页,共29页 5.2.2.方法的注释11 5.2.3.属性的注释12 5.2.4.一般内容的注释13 5.2.5.有关修改的注释13 6.6.JAVAJAVA 逻辑结构规则逻辑结构规则15 6.1.if 语句规范15 6.2.循环语句规范16 6.3.switch 语句和
3、 break 语句规范18 7.7.JAVAJAVA 通用编码规则通用编码规则20 7.1.import 的包名顺序20 7.2.“”使用规范21 7.3.小括号使用规范22 7.4.空格使用规范22 7.5.缩进规范24 7.6.JavaBean 的存取方法规范24 7.7.toString 方法规范26 7.8.main 方法规范27 7.9.一行里的字符个数规范27 8.8.编程工具的使用编程工具的使用28 9.9.程序源码的保护程序源码的保护28 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规
4、范 页 码第3页,共29页 1.1. 文档说明文档说明 1.1. 内容和有效性 本文档JAVA 编程规范定义了 JAVA 项目的编码(Coding)和调试 (Debugging)阶段中,程序的书写规范。内容包括: 编程宗旨 程序书写 命名规则 java 编码规范 本文档属于规章制度性文档,所有首都信息发展股份有限公司电子社区事业 部(以下简称社区部)的软件开发人员必须认真阅读并理解。 所有社区事业部的软件项目中,如果涉及到使用 java 进行编程工作,编程 人员必须按照本文档中的有关规定,进行编码和调试。 本文档的有效性作用于电子社区事业部的开发人员在为本部门的项目进行软 件开发工作时。 本文
5、档在版本更新时,所有按照旧版本进行开发的项目继续沿用旧版本规范; 所有新项目必须遵循新版本规范。 本文档中指导性用词说明如下: “必须”指所述内容或规范属于强制性的执行要求; “要求”指所述内容在将来必须做到,目前做不到的应尽量改正以做到; “应该”指所述内容应尽可能做到; “建议”指所述内容属于指导性意见,以能做到为好; “不得”表示在未经主管人员同意的情况下不允许; “严禁”表示严格禁止。 1.2. 文档修改 软件开发人员无权对本文档进行修改。 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页
6、 码第4页,共29页 软件开发人员可以对本文档提出修改意见。 本文档由软件质量及过程管理负责人进行修改,修改草案由项目管理部门确 认以后提交新版本。 1.3.保密 本文档属于公司机密文件,本公司职工有责任和义务对本文档内容进行保密。 严禁公司职工将本文档的软、硬拷贝私自带出或送出公司,严禁公司职工私 自将本文档的软、硬拷贝提供给非本公司人员。 2.2. 编程宗旨编程宗旨 2.1.软件编码规范的目的 使用统一编码约定集的主要原因,是使应用程序的结构和编码风格标准化, 以便于阅读和理解项目编码。 好的编码约定可使源代码严谨、可读性强且意义清楚,与其它语言约定相一 致,并且尽可能的直观。 2.2.对
7、程序员的要求 作为首都信息发展股份有限公司电子社区事业部的 JAVA 编程人员 (Programmer),必须成为或努力使自己成为最优秀的程序员。尽量使自己的程序 编制具有良好的风格,尽可能提高自己代码的质量;同时,发扬敬业精神并从工 作中体会乐趣。 软件应用以及软件开发工具与环境均不断地、飞快地发展,作为程序员要主 动地学习新知识,掌握新技术。 其次,作为优秀的程序员,在保证程序质量的同时,要求善于和其他人交流, 善于听取他人意见。 同时,要有大局观,作为软件项目的参与人员,必须以整个项目以及公司利 益的大局为重。这也包括时间概念及纪律性。 文 件 编 号 SXW730501 首都信息发展股
8、份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第5页,共29页 此外,需要注重效率和放松。过度的编程工作容易使人疲劳,作为优秀的程 序员,不管是否压力大小,都需要调节自己的状态,使编程工作的效率达到最佳 水平。 还有,每个编程人员都应该善于总结。包括总结自己的经验、教训,以及总 结可以复用的软件模块。 由于程序质量直接影响到整个软件的质量,因此每个程序员所编写的程序及 运行情况将作为员工能力和业绩考核的参考依据之一。 2.3.宗旨 在编程时,使程序做到无错和易读是第一位的。 每个编程人员必须努力使自己程序中的错误尽可能地降至最少;同时,要尽
9、 可能让自己的代码可以让所有其他程序员容易理解。 在做到无错和易读的前提下,尽可能提高程序及目标代码的效率,但不得过 度追求效率;在尺度掌握上以满足软件需求和尽可能低的开发成本为前提。 所有编码工作必须依据项目的设计进行;同一项目的不同模块,在编程上应 遵循一致的风格。 3.3. 程序书写程序书写 3.1.程序书写风格 3.1.1. 培养良好的程序风格 良好的程序书写风格将有助于提高软件的质量和效率。 程序书写风格在以下方面体现:常量、变量的使用;注释的使用;变量、属性及 方法的命名;语句的书写与使用地点。 以下建议将有助于培养良好的程序书写风格: 多阅读他人程序,包括阅读厂商提供的源程序,学
10、习优点; 从程序错误中吸取教训,不再犯同样错误; 程序书写过程中,牢记有关要求,不怕麻烦。 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第6页,共29页 3.1.2. 程序书写规范 以下给出程序书写有关规范: 程序必须使用逐层缩进的格式; 程序中必须有注释(有关注释使用规范在随后章节中单独说明); 建议分行书写复杂表达式和复杂语句; 方法中的程序段不宜过长; 除在极为特殊的情况下,禁止使用系统或其它软件开发包提供的未公开未公开的 函数调用。 3.2.注释 注释的使用遵循以下规范: 要求使用
11、注释在程序开头说明本程序的实现功能,建议用注释标明程序作 者和时间,以及需要说明的其它事项; 较多的常量定义和属性定义处,要求用注释说明变量和属性的情况; 如果对别人的程序进行修改,必须在主要的修改处用注释说明所作的修改, 并标明修改者; 要求用注释说明方法的功能、参数、异常以及返回值,有多个返回值时应 说明不同返回值的值、及返回值意义; 同一程序段中进行不同的操作时,要求用注释说明一组程序的功能; 大段改动程序时,建议用注释屏蔽旧的程序段,以避免修改时增加新错误, 避免可能的程序恢复。 4.4. JavaJava 命名规则命名规则 4.1.命名综述 命名包括对程序中文件、变量、属性、方法等程
12、序对象的命名。 好的命名风格将有助于提高程序可读性,并易于修改和维护,从而减少错误, 提高编程效率。 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第7页,共29页 除简单使用的变量(如用于循环计数的变量)外,变量的名称必须有意义,以 便于识别该对象;但不宜过长,以避免使用中键入时出错。 软件的最终发布性文件,包括最终的可执行程序、动态链接库、帮助文件等 文件的命名,由项目负责人统一确定。 软件的最终使用性名称,包括整个软件的名称及单个模块的名称,包括安装 后的菜单项及快捷方式的名称,由项目
13、负责人统一确定。整个软件的大名称由公 司经理确认。 4.2.Java 命名规范 4.2.1.Java 程序命名规则 Java 包的命名 包名的所有单词均为小写。 如:business、housemanager。 Ex: 正确: package com.capinfo.util; 错误: package com.CAPINFO.util Java 类的命名 类名+所属类型,类名要体现出该界面类的主要功能,类名中的所有单词的打头 字母为大写,如:HouseControl、DBControl、ComputeFrame。 Ex: 正确: SomethingHandler.java; Something
14、Proxy.java, SomethingDAO.java 错误: 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第8页,共29页 somethinghandler.java; somethingProxy.java, Somethingdao.java Java 方法的命名 方法的命名要体现出此方法的作用。 方法名的第一个单词的打头字母要小写,其后单词打头字母为大写。如: drawPicture( )、getHouse( )。 Ex: 正确: public void changePassw
15、ord() 错误: public void changepassword() Java 变量的命名 变量名的第一个单词的打头字母要小写,其后单词打头字母为大写。变量的命名 应该体现该变量代表的含义。该规则既适用于类的属性,也适用于方法中的变量 和方法使用的参数。 Ex: 正确: String applicationName; public void validateUser(int userId, String password) 错误: String applicationname; public void validateUser(int UserId, String s) Java 常量
16、的命名 这里常量指的是类型为 static final 的变量。常量全部以大写字母书写,如超过 一个单词,则应采用“_”链接,单词可使用缩写。如:PI、HOUSE_TYPE Ex: 正确: 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第9页,共29页 static final String SYSTEM_ADMIN_USER = “admin”; 错误: static final String SYSTEMADMINUSER = “admin”; Java 文件名的命名 文件名必须与类名相
17、同,遵守和类名相同的规则。 Java 数组的命名 数组的方括号应该在变量前面,而不是后面。 Ex: 正确: byte buffer; 错误: byte buffer; 5.5. JavaJava 注释规则注释规则 5.1.注释规则综述 Java 程序有两类注释:实现注释(implementation comments)和文档注释 (document comments)。实现注释是那些使用/*.*/和/界定的注释。文档注释 (被称为doc comments)是 Java 独有的,并由/*.*/界定。文档注释可以通过 javadoc 工具转换成 HTML 文件。 注释应被用来给出代码的概括,并提供
18、代码自身没有提供的附加信息。注释 应该仅包含与阅读和理解程序有关的信息。 在注释里,对设计决策中重要的或者不是显而易见的地方进行说明是可以的, 但应避免提供代码中己清晰表达出来的重复信息。多余的的注释很容易过时。通 常应避免那些代码更新就可能过时的注释。 5.2.注释规则描述 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第10页,共29页 5.2.1. 类的注释 应该在 java 文件的开头,应遵守这样的规范。 /* * Title: 类名 * Description: 类的功能描述 *
19、Copyright: 版权 * Company: 公司 * author 作者 * version 版本 */ 5.2.2. 方法的注释 应该位于方法的上面,对方法进行描述。 /* * 方法内容 * * param 参数名 参数说明 * return返回值的说明 * exception例外 */ Ex: /* * 根据 userId 判断用户是否存在 * * param userId 登录用户 id 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第11页,共29页 * return true
20、 用户存在、false 用户不存在 * exception LoginException 登录错误 * exception SQLException SQL 语句错误 */ public boolean isUserExist(int userId) throws LogicException, SQLException . 5.2.3. 属性的注释 属性的注释分为 2 种: 需要生成 javadoc 的变量注释(即文档注释) 如果注释在一行内,采用这样的注释 /* 变量的说明 */ 如果注释在多行内,采用这样的注释 /* * 变量的说明 * */ 不需要生成 javadoc 的变量注释(即实
21、现注释) 如果注释在一行内,采用这样的注释 /* 变量的说明 */ 或者 /变量的说明 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第12页,共29页 如果注释在多行内,采用这样的注释 /* * 变量的说明 * */ 5.2.4. 一般内容的注释 如果注释在一行内,采用这样的注释 /* 变量的说明 */ 或者 /变量的说明 如果注释在多行内,采用这样的注释 /* * 变量的说明 * */ 5.2.5. 有关修改的注释 这里指的修改主要对应于这样的情况: 自己在修改别人的代码时,需要注释 虽
22、然是自己的代码,但出现了大的业务改动,需要注释 修改方法: 在类注释的 author 一栏中加入修改人、修改时间和修改原因。 在代码中将自己修改的部分用注释区分出来,注释中需要有修改人,修改 时间,修改开始和解释描述。 修改的内容中随时写注释。 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第13页,共29页 Ex:注意用红字标识出的部分注意用红字标识出的部分。 /* * Title: TestDoc * Description: this is a test for javadoc * C
23、opyright: Copyright (c) 2003 * Company: 首都信息发展股份有限公司 * * author xiaoqiao 2003-03-05 create * liqiang 2003-05-05 modify for test * version 1.0 */ public class TestDoc public String testDoc(String s1, int i2) throws Exception String returnValue = getReturnString(); return returnValue; public String ge
24、tReturnString() String returnValue = this is the first string; /add by xiaoqiao at 2003-03-06 for test start /重新获取返回值 returnValue = this is the second String; 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第14页,共29页 /add by xiaoqiao at 2003-03-06 end /* # by xiaoqiao at 2
25、003-4-4 start 对于原作者的内容根据新的修改需要所注释掉的部分 */ return returnValue; 6.6. JavaJava 逻辑结构规则逻辑结构规则 6.1.if 语句规范 if 语句不允许使用省略方式,即必须带有。哪怕 if 块中只有一句代码。 Ex 正确: if (cnt = 1) fileName = file1.txt; else fileName = file2.txt; 错误: if (cnt = 1) fileName = file1.txt; else fileName = file2.txt; “if” 、 “else” 、 “(” 、 “) ”和“
26、”之间应有一个英文空格。 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第15页,共29页 Ex 正确:(空格处已用红色标出) if (cnt = 1) fileName = file1.txt; else fileName = file2.txt; 错误: if(cnt = 1) fileName = file1.txt; else fileName = file2.txt; 6.2.循环语句规范 for 循环、while 循环、do while 循环,和 if 语句一样,“for”“wh
27、ile” 和“(”以及“)”和“”之间要有一个半角空格。另外在 for 语句的条件括 号中,“;”、“”还有逻辑运算符(如“”、“”)的两侧必须要有空格。 While 语句的括号中也是同理。 Ex 正确:请注意空格的位置 for (int i = 0; i 0) do while () 错误:缺少空格。 for(int i=0;i0) 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第17页,共29页 do while() 6.3.switch 语句和 break 语句规范 通常,switch
28、 语句中各个 case 之后,都会有 break 结束。如果下一个 case 还 要接着执行,一般在 break 的位置添加一个注释行“/not break;” 。 switch 和 case 语句均需要缩进。 Ex 正确:请注意空格与缩进 switch (funcNo) case 4: func4(); break; case 3: func3(); /not break; case 2: func2(); break; 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第18页,共29页 c
29、ase 1: func1(); break; 错误:缺少缩进以及“not break” switch (funcNo) case 4: func4(); break; case 3: func3(); case 2: func2(); break; case 1: func1(); break; 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第19页,共29页 7.7. JavaJava 通用编码规则通用编码规则 7.1.import 的包名顺序 在程序中如果 import 了多个包的话,请
30、遵照这样的 import 顺序。并且,对于同一 级的包,应该按照字母顺序进行排序。 NoPackage 1Java Package 2Javax Package 3System FrameWork Package 4System Package Ex 正确: import java.io.*; import java.rmi.*; import java.util.*; /上面是 java 标准包 import javax.ejb.*; import javax.naming.*; import javax.rmi.*; /这部分是 java 扩展包 import org.apache.str
31、uts.*; import org.apache.struts.action.*; /这部分是 struts 的 framework 的包 import com.capinfo.util.*; /这部分是系统需要的包 错误:import 的顺序不对,并且同一级的 import 的字母顺序也不对。 import java.util.*; import javax.ejb.*; import javax.naming.*; import javax.rmi.*; import org.apache.struts.*; 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改
32、状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第20页,共29页 import com.capinfo.util.*; import org.apache.struts.action.*; import java.io.*; import java.rmi.*; 注意:如果只应用到了某个包中的一个类,则需要写出该类的详细路径。注意:如果只应用到了某个包中的一个类,则需要写出该类的详细路径。 如:import java.util.Vector; 7.2.“”使用规范 大括号不要用在一行里,起始大括号“”要在行尾,并且和前面的代码要有一个 空格。结束的大括号要在另一行里。
33、Ex 正确:注意大括号的换行和空格 try catch (CertificateException ex) catch (IOException ex) 错误:换行不对,而且缺少空格。 try catch (CertificateException ex) 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第21页,共29页 catch (IOException ex) 7.3.小括号使用规范 在进行方法调用时,左括号和后一个字符之间不应该出现空格, 同样, 右括号 和前一个字符之间也不应该出现
34、空格。 Ex 正确: CallProc(AParameter); 错误:多空格 CallProc( Aparameter ); 在混合运算中用括号以避免出现运算符优先级问题,即使你自己非常清楚运算 符的优先级,别人也不一定清楚不能假定其它程序员都像你一样清楚运算 符的优先顺序。 Ex 正确: if (a = b) 错误: method1(p1,p2,p3); /缺少空格 method1(p1 ,p2 ,p3); /空格位置不对 在 for 循环的循环条件括号内部的分号后,需要有空格。 Ex 正确: for (int i = 0; i 10; iCounter+) System.out.prin
35、tln(Looping); 错误:多处缺少空格 for (int i=0;i”、“”、“+”、 “*”等等。 Ex 正确: for (int i = 0; i 10; iCounter+) j = I + 5; 错误:运算符前后缺少空格。 for(int i=0; i10; iCounter+) j=I+5; 7.5.缩进规范 这里所说的空格是指英文状态下的一个空格。 不论是 java 代码,还是 jsp 代码,缩进采用 4 个空格。 缩进必须是 4 个空格,而不能用 tab 字符代替。因为在不同的文件编辑器中, 对 tab 字符的设定有可能是不同的。 7.6.JavaBean 的存取方法规范
36、 如果是 boolean 类型的属性(property),采用 isXXX/setXXX 的方式来写该 属性的存取方法 Ex 正确: private boolean changed = false; public boolean isChanged() 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第24页,共29页 return this.changed; public void setChanged(boolean changed) this.changed = changed; 错误:
37、存取方法命名不对 private boolean changed = false; public boolean alreadyChanged() return this.changed; public void modifyChanged(boolean changed) this.changed = changed; 对于其他类型的属性,均采用 getXXX/setXXX 的方式来写该属性的存取方法。 Ex 正确: private String userName = ; public String getUserName() return this.userName; public voi
38、d setUserName(String userName) this.userName = userName; 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第25页,共29页 错误:方法命名不对 private String userName = ; public String retrieveUserName() return this.userName; public void modifyUserName(String userName) this.userName = userN
39、ame; 7.7.toString 方法规范 所有的数据类(data 类,或者 model 类) ,必须要写 toString 方法,以便在使用调试 时候可以把它所具有的数据打印出来。 Ex public class User implements Serializable private int userId = -1; public int getUserId() return this.userId; public void setUserId(int userId) this.userId = userId; private String userName = ; public String getUserName() return this.userName; 文 件 编 号 SXW730501 首都信息发展股份有限公司 版本号 V1 修改状态0 生 效 日 期2002年08月01日 JAVA编程规范 页 码第26页,共29页
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆市秀山土家族苗族自治县新星初级中学2024-2025学年九年级上学期期中考试数学试题(无答案)
- 高中历史 1.2 旷日持久的战争教案 新人教版选修3
- 2024年春季九年级历史下册 第三单元 第一次世界大战和战后初期的世界 第11课 苏联的社会主义建设教案 新人教版
- 八年级生物上册 6.15.1人体内物质的运输第4课时教案 (新版)苏科版
- 2024-2025学年高中生物 第五章 章末整合提升教案 浙科版必修2
- 2024-2025学年九年级化学下册 第10单元 酸和碱教案 (新版)新人教版
- 八年级地理上册 4.2 农业参考教案 (新版)新人教版
- 高考地理一轮复习第十一章交通运输布局与区域发展第二节交通运输布局对区域发展的影响课件
- 高考地理一轮复习第十九章环境安全与国家安全第二节环境污染、生态保护与国家安全课件
- 租用东西的合同(2篇)
- 校园道路的施工设计方案
- 外研版(2019)书面表达 话题作文归纳12篇(含答案)
- 小学生个人简历表(空表)【范本模板】
- 地表能量平衡
- 课题结题专家鉴定意见
- 快乐英语校本课程
- 军事理论论文——我国周边安全形势及应对策略
- 安利会员管理制度
- 中医院门诊患者就诊流程图
- 外来文件管理规定
- 阀门涂漆技术要求内容
评论
0/150
提交评论