软件开发编程规则.doc_第1页
软件开发编程规则.doc_第2页
软件开发编程规则.doc_第3页
软件开发编程规则.doc_第4页
软件开发编程规则.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发编程规则2008.8软件开发编程规则1慨述为了规范软件开发,提高程序的编写质量和可读性、可维护性,特编制本编程规则。所有编程人员必须执行此规则,系统设计师对程序员有指导、监督、审查责任。2编程规则21总则用户界面,做到艺术化、人性化。整体风格应该是简洁、稳重。程序模块功能单一化。尽量避免采用非标准的或者第三方的ActiveX控件。数据库接口用ADO。22用户界面控制窗体应该采用Windows标准形式,多窗口显示,主窗体要有菜单栏、工具栏、状态栏。对话窗体的布局要按功能区分布,尽量采用图示化来表示对象。颜色的基调是灰白、白和黑,慎用彩色的背景。字体的大小一般应为小5号和9磅,主要功能按钮的名称应该采取“确认”、“放弃”、“撤消”、“退出”。窗体尺寸特别大的,在屏幕的分辨率比较小时应该自动匹配窗体尺寸大小。23编程231命名基本上引用“匈牙利命名法”,参见附录。 子程序和函数名应该体现所要完成的功能,用下划线连接功能名称。比如:Line_CreateBy_P1P2表示由二个点生成一条直线, 对象名应该由二部分组成。前缀是对象的性质缩写(一般为三个小写字符),后面是对象的名称。比如:cnnPipe表示管路数据库的连接,rstPipe表示管路数据库表。其中:cnn表示数据库连接对象,rst表示数据库表对象,Pipe是具体的对象名称。前缀除以上二个外,还有以下的命名约定:cnn表示数据库连接对象rst表示数据库表对象frm表示窗体。cmd表示命令按钮。cur表示当前使用的。tmp表示临时的。col表示集合。obj表示对象。exl 表示Excel.Application.cad表示AUTOCAD.Application。sod表示三维实体。lin表示线条。dim表示标注。sel表示选择集。 变量名应该采用显示说明,也即使用As Variant对变量进行声明。变量名应该专业化,如果有冲突,应该使用前缀。前缀有以下的命名约定:str表示字符串。cmm表示数据库操作命令。hull表示船体。pipe表示管路。duct表示螺旋风管。elec表示电气。vent表示方风管。stru表示钢结构(铁舾装)。eqp表示设备。comp表示部件。stan表示支架。paint表示涂装。cabin表示居装(舱室)。数据库表名应该采用专业术语,表分二类,第一类是通用的全船适用的或者基础性的表,第二类是各专业用的表,它们的命名规则分别是:第一类表的表名没有前后缀;第二类表的命名规则是带前缀,前缀由一个专业代码和分割符“_”组成,例如(e_System)。专业代码如下:e代表电气。g代表总体。h代表船体。p代表管系。v代表通风。s代表钢结构(铁舾装)。c代表居装(舱室)。o代表涂装。232形式参数子程序和函数的形式参数应该声明类型。比如:Sub Line_CreateBy_P1P2(P1 As XyzType, P2 As XyzType, LineObj As AcadLine, Doc As AcadDocument, Block As AcadBlock, ByVal ToWhich$)注意,ByVal声明的参数,一般仅作为输入值,不要出现在等号的左面。233定制类每个产品就是一个定制类。定制类的层次尽量扁平化。产品通过类的对象存取属性和显示模型。定制类必须具有以下属性和方法: 属性Count计数。Item()对象数组。Item可以是对象名。 方法Find查找定位。Delete删除。AddNew增加。Save保存。Search检索。Draw_2D二维显示。Draw_3D三维显示。234注释对子程序和函数的功能和形式参数必须写注释。重要的变量必须写注释。235 ACAD的图层ACAD的图层反映了不同专业模型和处理对象。专业模型是指作用于整个船舶模型的,任何程序模块都能参考的,可以获取基本信息但是不能修改的三维实体。处理对象是指本专业程序模块要处理的对象,它们可由程序模块任意处理。 专业三维模型图层Pipe管系Duct螺旋风管Vent方风管WaySolid电缆托架WaySupport电缆托架脚EquipSolid设备FittingSolid舾装件HullSolid船体Temp临时的,比如临时隐藏的对象。 专业对象图层PipeSolid管系的管路三维实体PipeLine管系的管路线条PipeAttf管系的管路连接件和附件PipeStand管系的管路支架DuctSolid螺旋风管的管路实体DuctLine螺旋风管的管路线条DuctAtt螺旋风管附件VentSolid方风管的管路实体VentLine方风管的管路线条VentStand方风管的管路支架WayLine电缆通道线条WayBase电气设备底座PipeDim管系信息标注DuctDim螺旋风管信息标注ElecDim电气信息标注VentDim方风管信息标注EquipDim设备信息标注236 ACAD对象的扩展数据(XDATA)ACAD对象的扩展数据(XDATA)反映了产品对象的属性。在三维模型中,每个对象都应该带有XDATA扩展数据。 XDATA数据规则XdataType(0)=1001XdataType(1n)=1000XdataValue(0)=专业名称 +“-”+产品名,方括号中的内容可选。XdataValue(1)= 产品名XdataValue(2n)=属性值特别注意:产品名中不要出现“/”、“=”之类的字母。 专业名称的约定:专业名称一般由二部分组成,第一部分是主专业名称,应该完整表达专业性质;第二部分是具体的专业对象,可以是缩写。二个部分直接连写,每个部分的第一个字母为大写。PipeDiagram管系原理图PipeWay管系的管路线条PipeSolid管系的管路实体PipeAttf管系的连接件、附件PipeStand管系的管路支架DuctWay螺旋风管的管路线条DuctSolid螺旋风管的管路实体DuctAttf螺旋风管附件VentWay方风管的管路线条VentSolid方风管的管路实体VentAttf方风管附件VentStand方风管的管路支架ElecDiagram电气系统图CableWay电缆通道线条WaySolid电缆托架CableSolid-Pena电缆电缆框EquipSolid设备实体FittingSolid舾装件实体MasterShipMasterShip系统的船体结构Hull船体结构237 ACAD的线条线条的形式约定。Public Const Line_Solid = 0 直线Public Const Line_Dash = 1 虚线Public Const Line_DashDot = 2 点划线Public Const Line_DashDotDot = 3 双点划线Public Const Line_Trajectory = 4 轨道线Public Const Line_SolidSolid = 5 双线Public Const Line_SolidDash = 6 一直一虚线238 ACAD的颜色颜色分为三种状态。第一,在三维建模形态下本专业的对象的颜色;第二,在浏览形态或者作为其他专业的背景时的颜色;第三,在输出二维图纸的形态下的线条的颜色,它们还起到了线条的宽度的作用。前二种形态,系统通过用户界面,由用户决定。本规则对第三种形态作约定,当然,系统也应该可以让用户修改系统的约定。颜色的值是ACAD的颜色的index值,其中值从1到7应该选用ACAD的颜色常数,也是输出二维图纸的形态下的线条的颜色,一般情况下不考虑选用其他颜色。线条的颜色和宽度约定。acRed线宽=acYellow线宽= acGreen线宽=acCyan线宽=acBlue线宽=acMagenta线宽=acWhite线宽=239其他 标准的Excel连接方式: On Error Resume Next 查找一个正在运行的 Excel 拷贝 Set exlApp = GetObject(Excel.Application) 如果 Excel 没有运行则 If err.Number 0 Then 运行它 Set exlApp = CreateObject(Excel.Application) End If 清除发生错误的 Err 对象err.Clear 标准的AUTOCAD连接方式: On Error Resume Next 查找一个正在运行的 AUTOCAD拷贝 Set cadApp = GetObject(,AUTOCAD.Application) 如果 AUTOCAD没有运行则 If err.Number 0 Then 运行它 Set cadApp = CreateObject(AUTOCAD.Application) End If 清除发生错误的 Err 对象 err.Clear 标准的数据库连接With cnn$ If .State = adStateOpen Then .Close .Provider = Microsoft.Jet.OLEDB.4.0.Properties(Jet OLEDB:System database) = system.mdw.Open strConnectEnd With其中:cnn$是数据库连接对象,strConnect是数据库路径,Provider应该随使用的数据库引擎而变。 标准的数据库表调用 With rst$ If .State = adStateOpen Then .Close .Source = .LockType = adLockOptimistic .CursorLocation = adUseServer .CursorType = adOpenDynamic .ActiveConnection = cnn$ .Open Strsql, Options:=adCmdTextEnd With其中:rst$是数据库表对象,Strsql是SQL语句。如果是只读方式打开表,则应该是:With rst$ If .State = adStateOpen Then .Close .Source = .LockType = adLockReadOnly .CursorLocation = adUseClient .CursorType = adOpenForwardOnly .ActiveConnection = cnn$ .Open strSql, Options:=adCmdTextEnd With 加快表记录的读取速度如果读取的记录数很大,为了加快记录的读取速度,不要直接读取表对象的记录,应该采取以下的方法:fldCount=rstTemp.Fields.CountDim fld(fldCount) As ADODB.FieldWith rstTemp For i = 0 To fldCount-1 Set fld(i) = .Fields(i) Next i i = 0 Do While Not .EOF i = i + 1 Call Redim_Double2(i, NewSpCurve()For j = 0 To fldCount-1 NewSpCurve(j, i) = fld(j).Value Nexi j .MoveNext LoopEnd With 对象的循环搜索使用 For Each obj In objSet 要比 for i = 0 To objSet.Count 1 快。附录:匈牙利命名法匈牙利命名法MFC、句柄、控件及结构的命名规范 Windows类型样本变量MFC类样本变量HWNDhWnd;CWnd*pWnd;HDLGhDlg;CDialog*pDlg;HDChDC;CDC*pDC;HGDIOBJhGdiObj;CGdiObject*pGdiObj;HPENhPen;CPen*pPen;HBRUSHhBrush;CBrush*pBrush;HFONT hFont; CFont*pFont;HBITMAP hBitmap;CBitmap*pBitmap;HPALETTE hPaltte;CPalette*pPalette;HRGN hRgn;CRgn*pRgn;HMENU hMenu;CMenu*pMenu;HWND hCtl;CState* pState;HWND hCtl;CButton*pButton;HWND hCtl;CEdit*pEdit;HWND hCtl;CListBox*pListBox;HWND hCtl;CComboBox*pComboBox;HWND hCtl;CScrollBar*pScrollBar;HSZ hszStr;CString pStr;POINT pt;CPoint pt;SIZE size;CSize size;RECT rect;CRect rect;一般前缀命名规范 前缀类型实例C类或结构CDocument,CPrintInfom_成员变量m_pDoc,m_nCustomers变量命名规范 前缀类型描述实例chchar8位字符chGradech TCHAR如果_UNICODE定义,则为16位字符chNamebBOOL布尔值bEnablen int整型(其大小依赖于操作系统)nLengthn UINT 无符号值(其大小依赖于操作系统)nHeightw WORD 16位无符号值wPosl LONG 32位有符号整型lOffsetdw DWORD 32位无符号整型 dwRangep * 指针pDoclp FAR* 远指针 lpszNamelpsz LPSTR 32位字符串指针lpszNamelpsz LPCSTR 32位常量字符串指针lpszNamelpsz LPCTSTR 如果_UNICODE定义,则为32位常量字符串指针lpszNameh handle Windows对象句柄hWndlpfn callback指向CALLBACK函数的远指针 ?应用程序符号命名规范 前缀符号类型实例范围IDR_ 不同类型的多个资源共享标识IDR_MAIINFRAME10x6FFFIDD_对话框资源IDD_SPELL_CHECK 10x6FFFHIDD_对话框资源的Help上下文HIDD_SPELL_CHECK 0x200010x26FFIDB_ 位图资源IDB_COMPANY_LOGO 10x6FFFIDC_光标资源IDC_PENCIL 10x6FFFIDI_图标资源IDI_NOTEPAD 10x6FFFID_来自菜单项或工具栏的命令ID_TOOLS_SPELLING 0x80000xDFFFHID_命令Help上下文HID_TOOLS_SPELLING 0x180000x1DFFFIDP_消息框提示IDP_INVALID_PARTNO 80xDEEFHIDP_消息框Help上下文HIDP_INVALID_PARTNO 0x300080x3DEFFIDS_串资源IDS_COPYRIGHT 10x7EEFIDC_对话框内的控件IDC_RECALC 80xDEEFMicrosoft MFC宏命名规范 名称类型_AFXDLL唯一的动态连接库(Dynamic Link Library,DLL)版本_ALPHA仅编译DEC Alpha处理器_DEBUG包括诊断的调试版本_MBCS

温馨提示

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

评论

0/150

提交评论