資料介紹
?Panorama系統程序開發規范之二
1.匈牙利命名規則
變動?? 前綴???? 類型
??????? a?????? Array??????????????????????????????????????????????????
??????? b?????? Boolean????????????????????????????????????????????????
??????? by????? Byte???????????????????????????????????????????????????
??????? c?????? Char?????????????????????????? //有符號型字符???????????????????
??????? cb????? Char Byte?????????????????????? //無符號型字符(沒多大用處)?????
??????? cr????? ColorRef??????????????????????? //顏色參考值?????????????????????
??????? cx,cy?? Length of x,y (ShortInt)??????????? //坐標差(長度)?????????????????
??????? dw????? Double Word???????????????????????????????????????????????????
??????? fn????? Function????????????????????????????????????????????????????????
??????? h?????? Handle?????????????????????????????????????????????????????????
??????? i?????? Integer??????????????????????????????????????????????????????????
??????? m_????? Member of a class????????????????????????????????????????????????
??????? n?????? Short Integer????????????????????????????????????????????????????
??????? np????? Near Pointer?????????????????????????????????????????????????????
??????? p?????? Pointer????????????????????????? lp????? Long Pointer?????????????????????????????????????????????????????
×(str)?? s?????? String??????????????????????????????????????????????????????
??????? sz????? String with Zero End????????????? //以字符'\0'結尾的字符串?????????
??????? tm????? Text?????????????????????????? //文本內容???????????????????????
??????? w?????? Word?????????????????????????????????????????????????????????
??????? x,y???? Coordinate????????????????????? //坐標????????????????????????????
?????????????????? 2.Panorama系統的命名約定
2.1 VC中變量命名時的前綴約定
Array?????? a...??????????????????????? //例:CStringArray saText??????????????????????????????????????
BOOL????? b...
UINT?????? n...
int????????? i...
short??????? n...
long???????? l...
WORD????? w...
DWORD???? dw...
float???????? f...
char???????? c...
char*??????? psz...
TCHAR*???? psz...
LPCTSTR??? lpsz...
CString????? str...
COLORREF? cr...
LPLOGPALETTE lp...? (包括LP開頭的類型都是這樣)
POINT????? pt...
CPoint????? pt...
HANDLE?? h...
HGLOBAL? h...?????? (包括H開頭的類型都是這樣)
說明:
???? 1.如果是指向上述類型的指針,就在上面規范前加 "p" ;
???? 2.如果是指向上述類型的雙重指針,就在上面規范前加 "pp" ;
???? 3.如果是類成員變量,則在上面規范前加 "m_";
???? 4.全局變量,則在上面規范前加 "g_";
???? 5.在類型前加了"const",命名約定不變;
2.2 VC中變量命名時的后綴約定
1.MFC類
CWnd*? p...Wnd? 省去的地方一般為該類的用途 (如果是某一個類的成員,則還應該在前加 "m_")又如:CView* p...View
2.3 局部變量應盡量易懂簡潔,使用常見的變量,如Num,nCount,i,j,k,n,len,pos, offset,nReadNum,index,nRet,ret, string,filename臨時變量,如ltmp,ftmp,tmpStr,tempStr 。。。
2.4 函數命名也應該見名知意。如CalcAllDataStyle(),ReadDocDataFromTime(),GetIndexInfo()
常見的函數Init_, Open_, Create_, Get_, Set_, Read_, Load_, Write_, Start_, Stop_, Check_, Test_, Fill_, Process_, Sort_, Do_, Select_, Is_, Exist_,_Ex…
2.5 禁止使用漢語拼音來命名;
2.6在代碼中盡量不用具體的大小數值,定義成宏,便于以后維護,如:
#define MAX_DOWNLOADNUM 20
struct DownInfo m_DownInfo[MAX_DOWNLOADNUM];
2.7 VC中一些控件的縮寫:
ComboBox? cmb
Edit??????? edt
Dialog????? dlg
ListBox???? lst
Picture????? pic
Animate???? ani
????????????????????????? 3. 編排
3.1 函數間要有空行分開,一個程序中的空行數目最好占8%-16% ;
3.2 變量的定義盡可能放在最開始處,多態函數和功能相近的函數集中放在一起;
3.3 聲明變量時對齊變量名,并在定義時加以注釋說明;
????????????????????????? 4. 程序開發環境規約
4.1 工作目錄結構的規定:?
project name(項目名稱)?
——bin ??? 執行文件
? ——log ??? 日志文件?
——lib ??? 庫文件?
——include 頭文件?
——src ??? 源程序?
——dat ??? 數據文件
4.2工程中不起作用的文件或類應刪除,工程目錄下的非工程文件也應該移走,保持工程的清潔,避免混淆難于管理;
4.3在VC環境下,建議將常用的頭文件全部放入stdafx.h中,而在每個cpp開始處嵌入stdafx.h。避免頭文件的交叉引用,如果有嚴重的交叉引用,適當使用類的聲明。
4.4 將獨立性比較強的模塊抽出來,做成DLL,控件或COM組件,該模塊可單獨編寫和測試,也增強了其可重用性。
4.5 一個比較大的工程應留有一定的消息接口或插件接口等。
4.6 工程的版本控制要嚴格,版本格式為xx.xx.xx,必要時使用Build次數或日期。高版本盡量兼容低版本的用法、數據或協議。
4.7 工程的編譯宏定義和工程參數設置應正確,每作一個新工程時應檢查工程參數是否正確。建議字節對齊方式為1字節對齊。
?????????????????????????? 5. 程序備份
5.1. 要有備份記錄
備份時注明備份日期和主要增加的功能
5.2. 定時備份
??? 根據程序量的多少,可以每天備份一次,也可以半天備份。
5.3. 多種介質備份
?? 至少在硬盤上做2個備份,在軟盤上做一個備份;在使用他人主機進行備份時,不可放于沒有密碼保護的ftp服務器上,可以發送到自己的email信箱中進行備份。??
???
5.4 在軟盤上備份時,應該去掉中間文件和執行文件,vc可以自動生成的文件如*.clw, *.ncb, *.opt等也可刪除,最后壓成一個zip文件,復制到軟盤中。
???????????????????????? 6.? VC程序界面設計規范
6.1.顏色選擇:
? 6.1.1 基調應以WINDOWS顏色(灰色)為主,同一個窗體中除白、黑、灰色之外,其它的顏色總數不宜超過3種(對以生產和學習為目的的軟件而言,娛樂性軟件可以做得花哨一些;
? 6.1.2 窗體和控件(除EDIT、RICH EDIT等編輯控件外)的背景色也宜用灰色,當一個控件有輸入焦點或鼠標焦點時,可以用較明亮的顏色;
? 6.1.3 非激活狀態下,字體前景宜用黑色,背景用灰色;
6.2.字體的選擇:
? 6.2.1 漢字字體一般選宋體,字體大小選10號;
? 6.2.2 一般選系統常用的字體,絕對不要選自己加入的而系統沒有的字體;
6.3.圖片的選擇
? 6.3.1 在窗體的工具攔中的按鈕可以用圖標,文字可以寫上也可以不寫,如果不寫則一定要使用tip來提示用戶該按鈕完成的功能;
? 6.3.2 在按鈕中使用的圖片要能表達按鈕對應功能的意義;
? 6.3.3 不宜對普通的按鈕只用圖標做外觀;
6.4.操作的便利性
? 6.4.1 為方便用戶的使用,所有的輸入控件應該按tab鍵和回車鍵排序,特別是密碼輸入時,應該能用回車切換輸入框的焦點;
6.5.數據安全
? 6.5.1 對程序的退出、寫數據等有破壞可能或數據丟失可能的操作應該給用戶一次確認的機會;
6.6.幫助文件
? 6.6.1 幫助文件宜用html格式,因為hlp格式的文件只能在windows中用;
6.7.窗體大小的確定
? 6.7.1 一般窗體的大小應該可以讓用戶自己調整,窗體的初始長寬比例為4:3
? 6.7.2 要考慮到用戶可能會用到不同的分辨率,在開發時應使用當時流行的分辨率;
? 6.7.3 除非必要,否則不宜用模態窗體,但可以讓用戶選擇使窗體成為模態窗體;
? 6.7.4 應用程序的大小不固定時(拖動窗口的右下角時可以改變窗體大小),應處理窗體變化時窗體內各控件大小和位置的變化;
6.8.視圖的選擇(單/多文檔界面類型)
? 6.8.1 對于一個簡單的文本編輯器應用程序,選擇CEditView;
? 6.8.2 對于一個能編輯多信息文本格式( RT F )文件的應用程序,選擇CRichEditView(這一選擇將導致應用程序為文檔類選擇CRichEditDoc類);
? 6.8.3 對于一個圖形應用程序,選擇CScrollView;
? 6.8.4 對于一個簡單的監控或帳目管理應用程序,選擇CListView;
? 6.8.5 要著手創建一個資源管理器類型的應用程序,請選擇CTreeView(在以后的步驟中,可以手工添加一個
CListView);
? 6.8.6 在對話框模板外創建一個視圖,選擇CFormView(一個對話框是一個被幾個控件窗口占據的窗口,諸如按鈕和編輯框);
6.9. MFC應用程序類型的選擇:
? 6.9.1 如果創建一個用戶界面需求有限的應用程序,或如果想界面完全單一,那么就創建一個對話框應用程序。典型的對話框應用程序包括配置硬件設備的應用程序、屏幕保護程序和游戲程序等;
對話框要易用且簡潔,字體和控件的組織搭配要得體,能簡單不復雜,各控件的焦點、Tab順序等要講究,視應用場合要適當支持鍵盤。在簡潔易用的前提下,力求個性化,設計得更加友好。程序各對話框的風格要保持一致。
? 6.9.2 如果應用程序要編輯一個文檔,應該選擇單/多文檔界面類型。這里的“編輯一個文檔”是廣義上的意思,所指的文檔可以是一個文本文件、電子數據表文件、第三方數據庫的一個或多個表、或者是自己的二進制文件,甚至可以是大量硬件設備的儲存設置。編輯僅僅表示對其中任何一個類型的文檔進行添加、刪除或修改操作。
? 6.9.3 單文檔界面應用程序一次只允許處理一個文檔。如果應用程序實際上一次只需處理一個文檔,諸如監視一組硬件設備的應用程序,那么應該選擇單文檔界面;否則應該創建一個多文檔界面應用程序,即使在開始時一次編輯多個文檔并未顯出有任何好處。
? 6.9.4 一個多文檔界面應用程序允許一次編輯多個文檔,它并不比一個單文檔界面應用程序復雜,但卻帶來了一次至少查看多個文檔的方便。
6.9.5 在重要的窗口或區域應能彈出右鍵,實現常見操作。工具欄上放最常用的操作按鈕,必要時動態更換按鈕。狀態欄顯示足夠多的有用信息。消息主控在Mainframe中,單文檔的主控也可在View中,所有的對話框的彈出或非模態對話框的控制都在主控窗口中完成,具體的數據處理放在單獨的文件中或設計成類。在App類中實現Ini讀寫,各數據對象的定義和析構,全局變量的賦值和初始計算,存盤退出等。各視圖的OnDraw和GDI畫圖盡量使用內存位圖的方式,以免閃爍。
6.10. 操作進度指示
6.10.1 把鼠標光標暫時變成沙漏形狀,以指示一個漫長的操作,要求用戶應該等待。
? 6.10.2 可以用沙漏光標指示短暫的等待。對于長時間的等待,可以考慮使用一個無模式對話框,并在上面顯示簡短的消息,描述正進行什么處理;
6.11. 分隔線控件
? 6.11.1 為統一起見不要使用分組框、按鈕等控件做分隔線,應按如下做法:用Picture Control,屬性設為Etched和Frame,使該控件縮小到一條直線;
7. 其他?
7.1. 為保證系統間的兼容性,不使用int類型(因為不同系統之間的存儲字節長度往往
不同),應使用long或short型。?
7.2. 頭文件名應小寫,如用#include“abcdef.h”;
7.3. 本系統中注釋統一只用“//”;
7.4? if(0 == GetDataType(…))比if(GetDataType(…) == 0) 好,縱使誤將==寫成=,在編譯一層就會報錯。
7.5? 函數定義short GetInputType( const char * lpzInput)比short GetInputType (char * lpzInput)好,以免lpzInput在函數體中被破壞。
7.6 變量在定義時賦初值,類析構時或程序退出時判斷釋放所有變量。
7.7 編碼空間一定要充分預留,編碼時注意可擴充性, 如:定義保留字段,供以后擴充使用
7.8 不要大量使用無符號型變量。無符號變量在判斷時易造成錯誤,甚至死循環,盡量少用。
7.9 少使用malloc,free,realloc;多用new,delete;new,delete是規范的C++語法,通用性強,realloc易造成內存抖動。
7.10 代碼中不要用"+2","+4",要用"+sizeof(short)","+sizeof(int)";不要用 filename[40],而是filename[MAX_PATH]。
??????????????????? 附錄A 程序維護手冊格式說明
文檔編號
版 本 號
密??? 級
程序維護手冊
1引言
1.1? 編寫目的
?????? [ 闡明編寫維護手冊的目的,簡述其內容。指出讀者對象(程序維護人員、研發人員)。]
1.2? 開發單位
?????? [說明項目的提出者、項目的委托單位、開發單位和使用場所。]
1.3? 定義
?????? [ 列出本文擋中用到的專業術語的定義和縮寫詞的原文。]
1.4? 參考資料
?????? [ 可包括:a.用戶操作手冊;b.于本項目有關的文檔。列出這些資料的作者、標題、編號、發表日期、出版單位或資料來源以及保密級別。]
2 系統說明
2.1? 系統用途
?????? [ 說明系統具備的功能,輸入和輸出。]
2.2? 安全保密
?????? [ 說明系統安全保密方面的考慮。]
2.3? 總體說明
????? [ 說明系統的總體功能、對子系統和作業作出綜合性的介紹,并用圖表方式給出系統主要部分的內部關系。]
2.4? 程序說明
????? [ 說明系統中每一程序、分程序的細節和特性。]
2.4.1 程序1的說明
2.4.1.1? 功能 [ 說明程序的功能。]
2.4.1.2? 方法 [ 說明實現方法。]
2.4.1.3? 輸入 [ 說明程序的輸入、媒體、運行數據記錄、運行開始時使用的輸入數據的類型和存放單元、與程序初始化有關的入口要求。]
2.4.1.4? 處理 [ 處理特點和目的,如:a. 用圖表說明程序的運行的邏輯流程; b. 程序主要轉移條件;c. 對程序的約束條件;d. 程序結束時的出口要求;e.與下一個程序的通信與聯結(運行、控制); f. 由該程序產生并供處理使用的輸出數據類型和存放單元。g.程序運行所用存儲量、類型及存儲位置等。]
2.4.1.5 輸出 [ 程序的輸出。]
2.4.1.6? 接口 [ 本程序與本系統其他部分的接口。]
2.4.1.7? 表格 [ 說明程序內部的各種表、項的細節和特性。對每張表的說明至少包括:a. 表的標識符;b. 使用目的;c. 使用此表的其他程序;d. 邏輯劃分,如塊或部,不包括表項;e. 表的基本結構;f. 設計安排,包括表的控制信息。表目結構細節、使用中的特有性質及各表項的標識、位置、用途、類型、編碼表示。]
2.4.1.8? 特有的運行性質 [ 說明在用戶操作手冊中沒有提到的運行性質。]
2.4.2 程序2 的說明 [ 與程序1 的說明相同。以后其他各程序的說明相同。]
3 操作環境
3.1? 設備
?????? [ 逐步說明系統的設備配置極其特性 ]
3.2? 支持文件
?????? [ 列出系統使用的支持軟件、包括他們的名稱和版本號。]
3.3? 數據庫
?????? [ 說明每個數據庫的性質和內容,包括安全考慮。]
3.3.1 總體特征
? [ 如:a. 標識符 b. 使用這些數據庫的程序;c. 靜態數據;d. 動態數據;e. 數據庫的存儲媒體;f. 程序使用數據庫的限制。]
3.3.2 結構及詳細說明
3.3.2.1? 說明該數據庫的結構,包括其中的記錄和項;
3.3.2.2? 說明記錄的組成,包括首部或或控制段、記錄體;
3.3.2.3? 說明每個記錄結構的字段,包括:標記或標號、字段的字符長度和位數該字段的允許值范圍。
3.3.2.4? 擴充:說明為記錄追加字段的規定;
4 維護過程
4.1? 約定
????? [ 列出該軟件系統設計中所使用全部規則和約定,包括:a. 程序、分程序、記錄、字段和存儲區的標識或標號助記符的使用規則;b. 圖表的處理標準、卡片的連接順序、語句和記號中使用的縮寫、出現在圖表中的符號名;c. 使用軟件的技術標準;d. 標準化的數據元素極其特征。]
4.2? 驗證過程
????? [ 說明一個程序修改后,對其進行驗證的要求和過程(包括測試程序和數據)及程序周期性驗證的過程。]
4.3? 出錯及糾正方法
????? [ 列出出錯狀態及其糾正方法。]
4.4? 專門維護過程
????? [ 說明文檔其他地方沒有提到的專門維護過程,如:a. 維護該軟件系統的輸入部分(如數據庫)的要求、過程和驗證方法;b. 運行程序庫維護系統所必須的要求、過程和驗證方法;c. 對閏年、世紀變更所需要的臨時性修改等。]
4.5? 專用維護程序
????? [ 列出維護軟件系統使用的后備技術和專用程序(如文件恢復程序、淘汰過時文件的程序等)的目錄,并加以說明,內容包括:a. 維護作業的輸入輸出要求;b. 輸入的詳細過程及硬件設備上建立、運行并完成維護作業的操作步驟。]
4.6? 程序清單和流程圖
?????? [ 引用資料或提供附錄給出程序清單和流程圖。]
附錄B? 部分編程常用單詞縮寫
規則:較短的單詞可通過去掉“元音”形成縮寫;較長的單詞可取單詞的頭幾個字母形成縮寫;一些單詞有大家公認的縮寫.
- Cat 6 布線系統現場測試規范
- CPCI標準規范中文版 0次下載
- 手機固件系統免費軟件程序下載 21次下載
- 原理圖繪制規范電子版資料下載 0次下載
- OpenVPX接口規范資料合集免費下載 47次下載
- 單片機的C語言基本編程規范詳細說明
- 單片機開發的C語言編程基本規范詳細資料和函數免費下載
- 微信小程序如何開發?微信小程序教程視頻常用組件API開發項目實戰 88次下載
- ThinkPHP開發視頻教程之使用ThinkPHP5.0開發微信小程序商場開發教程 25次下載
- PIC32閃存編程規范
- 《Python開發技術詳解》-隨書附帶程序 0次下載
- 電子模塊總規范標準 119次下載
- 音頻數據加工標準與工作規范標準規范
- Linux系統PCI設備驅動程序開發
- PCI規范及其開發
- Linux 驅動開發與應用開發,你知道多少? 120次閱讀
- 淺談硬件電路開發流程規范 1103次閱讀
- 嵌入式C語言編碼規范 573次閱讀
- Verilog程序編寫規范 3757次閱讀
- 基于AWTK開發應用程序需要遵循的規范和方法 1271次閱讀
- AMetal開發通用外設的流程與規范 1662次閱讀
- Python編寫代碼的規范要求 1730次閱讀
- 16條PLC程序設計相關規范和12點編程建議的資料概述 3886次閱讀
- 嵌入式系統的規范發展回顧 1562次閱讀
- 基于Arm技術的16nm MPSoC開發套件Ultra96 6098次閱讀
- 基于嵌入式Linux內核的系統設備驅動程序開發設計 1113次閱讀
- 嵌入式系統開發中驅動程序設計的5個方法盤點 3058次閱讀
- 接地電阻值多少為標準_標準接地電阻的規范要求 28.9w次閱讀
- CAN協議和標準規范概述 3.4w次閱讀
- FPGA創建一個程序生成規范 776次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 93次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多