軟件開發(fā)編程規(guī)則.doc_第1頁
軟件開發(fā)編程規(guī)則.doc_第2頁
軟件開發(fā)編程規(guī)則.doc_第3頁
軟件開發(fā)編程規(guī)則.doc_第4頁
軟件開發(fā)編程規(guī)則.doc_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件開發(fā)編程規(guī)則2008.8軟件開發(fā)編程規(guī)則1慨述為了規(guī)范軟件開發(fā),提高程序的編寫質(zhì)量和可讀性、可維護(hù)性,特編制本編程規(guī)則。所有編程人員必須執(zhí)行此規(guī)則,系統(tǒng)設(shè)計(jì)師對(duì)程序員有指導(dǎo)、監(jiān)督、審查責(zé)任。2編程規(guī)則21總則用戶界面,做到藝術(shù)化、人性化。整體風(fēng)格應(yīng)該是簡(jiǎn)潔、穩(wěn)重。程序模塊功能單一化。盡量避免采用非標(biāo)準(zhǔn)的或者第三方的ActiveX控件。數(shù)據(jù)庫接口用ADO。22用戶界面控制窗體應(yīng)該采用Windows標(biāo)準(zhǔn)形式,多窗口顯示,主窗體要有菜單欄、工具欄、狀態(tài)欄。對(duì)話窗體的布局要按功能區(qū)分布,盡量采用圖示化來表示對(duì)象。顏色的基調(diào)是灰白、白和黑,慎用彩色的背景。字體的大小一般應(yīng)為小5號(hào)和9磅,主要功能按鈕的名稱應(yīng)該采取“確認(rèn)”、“放棄”、“撤消”、“退出”。窗體尺寸特別大的,在屏幕的分辨率比較小時(shí)應(yīng)該自動(dòng)匹配窗體尺寸大小。23編程231命名基本上引用“匈牙利命名法”,參見附錄。 子程序和函數(shù)名應(yīng)該體現(xiàn)所要完成的功能,用下劃線連接功能名稱。比如:Line_CreateBy_P1P2表示由二個(gè)點(diǎn)生成一條直線, 對(duì)象名應(yīng)該由二部分組成。前綴是對(duì)象的性質(zhì)縮寫(一般為三個(gè)小寫字符),后面是對(duì)象的名稱。比如:cnnPipe表示管路數(shù)據(jù)庫的連接,rstPipe表示管路數(shù)據(jù)庫表。其中:cnn表示數(shù)據(jù)庫連接對(duì)象,rst表示數(shù)據(jù)庫表對(duì)象,Pipe是具體的對(duì)象名稱。前綴除以上二個(gè)外,還有以下的命名約定:cnn表示數(shù)據(jù)庫連接對(duì)象rst表示數(shù)據(jù)庫表對(duì)象frm表示窗體。cmd表示命令按鈕。cur表示當(dāng)前使用的。tmp表示臨時(shí)的。col表示集合。obj表示對(duì)象。exl 表示Excel.Application.cad表示AUTOCAD.Application。sod表示三維實(shí)體。lin表示線條。dim表示標(biāo)注。sel表示選擇集。 變量名應(yīng)該采用顯示說明,也即使用As Variant對(duì)變量進(jìn)行聲明。變量名應(yīng)該專業(yè)化,如果有沖突,應(yīng)該使用前綴。前綴有以下的命名約定:str表示字符串。cmm表示數(shù)據(jù)庫操作命令。hull表示船體。pipe表示管路。duct表示螺旋風(fēng)管。elec表示電氣。vent表示方風(fēng)管。stru表示鋼結(jié)構(gòu)(鐵舾裝)。eqp表示設(shè)備。comp表示部件。stan表示支架。paint表示涂裝。cabin表示居裝(艙室)。數(shù)據(jù)庫表名應(yīng)該采用專業(yè)術(shù)語,表分二類,第一類是通用的全船適用的或者基礎(chǔ)性的表,第二類是各專業(yè)用的表,它們的命名規(guī)則分別是:第一類表的表名沒有前后綴;第二類表的命名規(guī)則是帶前綴,前綴由一個(gè)專業(yè)代碼和分割符“_”組成,例如(e_System)。專業(yè)代碼如下:e代表電氣。g代表總體。h代表船體。p代表管系。v代表通風(fēng)。s代表鋼結(jié)構(gòu)(鐵舾裝)。c代表居裝(艙室)。o代表涂裝。232形式參數(shù)子程序和函數(shù)的形式參數(shù)應(yīng)該聲明類型。比如:Sub Line_CreateBy_P1P2(P1 As XyzType, P2 As XyzType, LineObj As AcadLine, Doc As AcadDocument, Block As AcadBlock, ByVal ToWhich$)注意,ByVal聲明的參數(shù),一般僅作為輸入值,不要出現(xiàn)在等號(hào)的左面。233定制類每個(gè)產(chǎn)品就是一個(gè)定制類。定制類的層次盡量扁平化。產(chǎn)品通過類的對(duì)象存取屬性和顯示模型。定制類必須具有以下屬性和方法: 屬性Count計(jì)數(shù)。Item()對(duì)象數(shù)組。Item可以是對(duì)象名。 方法Find查找定位。Delete刪除。AddNew增加。Save保存。Search檢索。Draw_2D二維顯示。Draw_3D三維顯示。234注釋對(duì)子程序和函數(shù)的功能和形式參數(shù)必須寫注釋。重要的變量必須寫注釋。235 ACAD的圖層ACAD的圖層反映了不同專業(yè)模型和處理對(duì)象。專業(yè)模型是指作用于整個(gè)船舶模型的,任何程序模塊都能參考的,可以獲取基本信息但是不能修改的三維實(shí)體。處理對(duì)象是指本專業(yè)程序模塊要處理的對(duì)象,它們可由程序模塊任意處理。 專業(yè)三維模型圖層Pipe管系Duct螺旋風(fēng)管Vent方風(fēng)管WaySolid電纜托架WaySupport電纜托架腳EquipSolid設(shè)備FittingSolid舾裝件HullSolid船體Temp臨時(shí)的,比如臨時(shí)隱藏的對(duì)象。 專業(yè)對(duì)象圖層PipeSolid管系的管路三維實(shí)體PipeLine管系的管路線條PipeAttf管系的管路連接件和附件PipeStand管系的管路支架DuctSolid螺旋風(fēng)管的管路實(shí)體DuctLine螺旋風(fēng)管的管路線條DuctAtt螺旋風(fēng)管附件VentSolid方風(fēng)管的管路實(shí)體VentLine方風(fēng)管的管路線條VentStand方風(fēng)管的管路支架WayLine電纜通道線條WayBase電氣設(shè)備底座PipeDim管系信息標(biāo)注DuctDim螺旋風(fēng)管信息標(biāo)注ElecDim電氣信息標(biāo)注VentDim方風(fēng)管信息標(biāo)注EquipDim設(shè)備信息標(biāo)注236 ACAD對(duì)象的擴(kuò)展數(shù)據(jù)(XDATA)ACAD對(duì)象的擴(kuò)展數(shù)據(jù)(XDATA)反映了產(chǎn)品對(duì)象的屬性。在三維模型中,每個(gè)對(duì)象都應(yīng)該帶有XDATA擴(kuò)展數(shù)據(jù)。 XDATA數(shù)據(jù)規(guī)則XdataType(0)=1001XdataType(1n)=1000XdataValue(0)=專業(yè)名稱 +“-”+產(chǎn)品名,方括號(hào)中的內(nèi)容可選。XdataValue(1)= 產(chǎn)品名XdataValue(2n)=屬性值特別注意:產(chǎn)品名中不要出現(xiàn)“/”、“=”之類的字母。 專業(yè)名稱的約定:專業(yè)名稱一般由二部分組成,第一部分是主專業(yè)名稱,應(yīng)該完整表達(dá)專業(yè)性質(zhì);第二部分是具體的專業(yè)對(duì)象,可以是縮寫。二個(gè)部分直接連寫,每個(gè)部分的第一個(gè)字母為大寫。PipeDiagram管系原理圖PipeWay管系的管路線條PipeSolid管系的管路實(shí)體PipeAttf管系的連接件、附件PipeStand管系的管路支架DuctWay螺旋風(fēng)管的管路線條DuctSolid螺旋風(fēng)管的管路實(shí)體DuctAttf螺旋風(fēng)管附件VentWay方風(fēng)管的管路線條VentSolid方風(fēng)管的管路實(shí)體VentAttf方風(fēng)管附件VentStand方風(fēng)管的管路支架ElecDiagram電氣系統(tǒng)圖CableWay電纜通道線條WaySolid電纜托架CableSolid-Pena電纜電纜框EquipSolid設(shè)備實(shí)體FittingSolid舾裝件實(shí)體MasterShipMasterShip系統(tǒng)的船體結(jié)構(gòu)Hull船體結(jié)構(gòu)237 ACAD的線條線條的形式約定。Public Const Line_Solid = 0 直線Public Const Line_Dash = 1 虛線Public Const Line_DashDot = 2 點(diǎn)劃線Public Const Line_DashDotDot = 3 雙點(diǎn)劃線Public Const Line_Trajectory = 4 軌道線Public Const Line_SolidSolid = 5 雙線Public Const Line_SolidDash = 6 一直一虛線238 ACAD的顏色顏色分為三種狀態(tài)。第一,在三維建模形態(tài)下本專業(yè)的對(duì)象的顏色;第二,在瀏覽形態(tài)或者作為其他專業(yè)的背景時(shí)的顏色;第三,在輸出二維圖紙的形態(tài)下的線條的顏色,它們還起到了線條的寬度的作用。前二種形態(tài),系統(tǒng)通過用戶界面,由用戶決定。本規(guī)則對(duì)第三種形態(tài)作約定,當(dāng)然,系統(tǒng)也應(yīng)該可以讓用戶修改系統(tǒng)的約定。顏色的值是ACAD的顏色的index值,其中值從1到7應(yīng)該選用ACAD的顏色常數(shù),也是輸出二維圖紙的形態(tài)下的線條的顏色,一般情況下不考慮選用其他顏色。線條的顏色和寬度約定。acRed線寬=acYellow線寬= acGreen線寬=acCyan線寬=acBlue線寬=acMagenta線寬=acWhite線寬=239其他 標(biāo)準(zhǔn)的Excel連接方式: On Error Resume Next 查找一個(gè)正在運(yùn)行的 Excel 拷貝 Set exlApp = GetObject(Excel.Application) 如果 Excel 沒有運(yùn)行則 If err.Number 0 Then 運(yùn)行它 Set exlApp = CreateObject(Excel.Application) End If 清除發(fā)生錯(cuò)誤的 Err 對(duì)象err.Clear 標(biāo)準(zhǔn)的AUTOCAD連接方式: On Error Resume Next 查找一個(gè)正在運(yùn)行的 AUTOCAD拷貝 Set cadApp = GetObject(,AUTOCAD.Application) 如果 AUTOCAD沒有運(yùn)行則 If err.Number 0 Then 運(yùn)行它 Set cadApp = CreateObject(AUTOCAD.Application) End If 清除發(fā)生錯(cuò)誤的 Err 對(duì)象 err.Clear 標(biāo)準(zhǔn)的數(shù)據(jù)庫連接With cnn$ If .State = adStateOpen Then .Close .Provider = Microsoft.Jet.OLEDB.4.0.Properties(Jet OLEDB:System database) = system.mdw.Open strConnectEnd With其中:cnn$是數(shù)據(jù)庫連接對(duì)象,strConnect是數(shù)據(jù)庫路徑,Provider應(yīng)該隨使用的數(shù)據(jù)庫引擎而變。 標(biāo)準(zhǔn)的數(shù)據(jù)庫表調(diào)用 With rst$ If .State = adStateOpen Then .Close .Source = .LockType = adLockOptimistic .CursorLocation = adUseServer .CursorType = adOpenDynamic .ActiveConnection = cnn$ .Open Strsql, Options:=adCmdTextEnd With其中:rst$是數(shù)據(jù)庫表對(duì)象,Strsql是SQL語句。如果是只讀方式打開表,則應(yīng)該是:With rst$ If .State = adStateOpen Then .Close .Source = .LockType = adLockReadOnly .CursorLocation = adUseClient .CursorType = adOpenForwardOnly .ActiveConnection = cnn$ .Open strSql, Options:=adCmdTextEnd With 加快表記錄的讀取速度如果讀取的記錄數(shù)很大,為了加快記錄的讀取速度,不要直接讀取表對(duì)象的記錄,應(yīng)該采取以下的方法: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 對(duì)象的循環(huán)搜索使用 For Each obj In objSet 要比 for i = 0 To objSet.Count 1 快。附錄:匈牙利命名法匈牙利命名法MFC、句柄、控件及結(jié)構(gòu)的命名規(guī)范 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;一般前綴命名規(guī)范 前綴類型實(shí)例C類或結(jié)構(gòu)CDocument,CPrintInfom_成員變量m_pDoc,m_nCustomers變量命名規(guī)范 前綴類型描述實(shí)例chchar8位字符chGradech TCHAR如果_UNICODE定義,則為16位字符chNamebBOOL布爾值bEnablen int整型(其大小依賴于操作系統(tǒng))nLengthn UINT 無符號(hào)值(其大小依賴于操作系統(tǒng))nHeightw WORD 16位無符號(hào)值wPosl LONG 32位有符號(hào)整型lOffsetdw DWORD 32位無符號(hào)整型 dwRangep * 指針pDoclp FAR* 遠(yuǎn)指針 lpszNamelpsz LPSTR 32位字符串指針lpszNamelpsz LPCSTR 32位常量字符串指針lpszNamelpsz LPCTSTR 如果_UNICODE定義,則為32位常量字符串指針lpszNameh handle Windows對(duì)象句柄hWndlpfn callback指向CALLBACK函數(shù)的遠(yuǎn)指針 ?應(yīng)用程序符號(hào)命名規(guī)范 前綴符號(hào)類型實(shí)例范圍IDR_ 不同類型的多個(gè)資源共享標(biāo)識(shí)IDR_MAIINFRAME10x6FFFIDD_對(duì)話框資源IDD_SPELL_CHECK 10x6FFFHIDD_對(duì)話框資源的Help上下文HIDD_SPELL_CHECK 0x200010x26FFIDB_ 位圖資源IDB_COMPANY_LOGO 10x6FFFIDC_光標(biāo)資源IDC_PENCIL 10x6FFFIDI_圖標(biāo)資源IDI_NOTEPAD 10x6FFFID_來自菜單項(xiàng)或工具欄的命令I(lǐng)D_TOOLS_SPELLING 0x80000xDFFFHID_命令Help上下文HID_TOOLS_SPELLING 0x180000x1DFFFIDP_消息框提示IDP_INVALID_PARTNO 80xDEEFHIDP_消息框Help上下文HIDP_INVALID_PARTNO 0x300080x3DEFFIDS_串資源IDS_COPYRIGHT 10x7EEFIDC_對(duì)話框內(nèi)的控件IDC_RECALC 80xDEEFMicrosoft MFC宏命名規(guī)范 名稱類型_AFXDLL唯一的動(dòng)態(tài)連接庫(Dynamic Link Library,DLL)版本_ALPHA僅編譯DEC Alpha處理器_DEBUG包括診斷的調(diào)試版本_MBCS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論