999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

無第三方軟件支持的數據庫應用程序開發

2014-02-27 01:33:21蔡洪濤田中軒
武漢工程大學學報 2014年6期
關鍵詞:按鈕數據庫用戶

蔡洪濤,田中軒

武漢工程大學機電工程學院,湖北 武漢 430205

0 引 言

材料是壓力容器與設備設計過程最重要的參數,它影響到壓力容器與設備的設計、制造、安裝與運行.GB150中提供了眾多材料可供設計選擇[1].這些材料能滿足一般設計要求;但是隨著材料技術的進步,新材料不斷出現;國際貿易使得國外材料的選用也日益頻繁.這些都要求能讓用戶方便地在設備強度計算軟件包中增加新材料、刪除淘汰的老材料.為此軟件包必須提供“用戶材料數據庫管理”模塊.其運行界面如圖1所示.

圖1 用戶材料數據庫管理系統界面Fig.1 The interface of user material database management system

啟動時左邊列表中最后的材料處于選中狀態,右邊則表明該材料的名稱、標準號及材料類型、力學性能等.用戶點擊左邊不同的材料,右邊各項相應做出改變.當點擊“增加”按鈕,則右邊上部各控件清空,下方的表格也消失;當選中“強度數據類型”下的任一選項時,又會彈出表格,讓用戶輸入材料力學性能,且表格上方的紅色文字與選項相匹配.當點擊“更新、保存”按鈕,將該材料的各項參數寫入文件中,并在列表最后增加一行.當點擊“刪除”按鈕時,首先從列表中刪除被選中的一行,然后從文件中刪除這種材料的各項參數,最后將光標移到列表最后一行,右邊顯示該材料的各項參數.

1 用戶材料數據庫管理模塊技術分析及編程思路

從圖1中可以看出,運行界面是一個有兩個屬性頁的屬性對話框,屬性頁名分別為“用戶材料數據操作(1)”和“用戶材料數據操作(2)”.第一頁主要由名為“請選擇材料:”的列表控件和4個成組框控件組成,這4個成組框的名稱分別是“材料類型”、“材料類別”、“應力類別”和“強度數據類型”;右下角的是兩個CMSFlexGrid型網格控件,都是10行、2列,用于材料在20個不同溫度下的強度值的輸入.第二頁主要由兩個成組框組成,名稱分別是“基于彈性模量的材料分類”和“基于線膨脹系數的材料分類”.

CMSFlexGrid網格控件是Visual C++提供的已注冊的ActiveX控件,以表格的形式顯示和操作數據.該控件在MSDN中有用于VB的詳細的文檔;但是用于VC的說明卻沒有.該控件不具備對網格的編輯功能.給CMSFlexGrid控件添加編輯功能的思路是[2]:設置一個編輯框控件,該控件可以在網格控件移動,并與某個單元格重合,在該編輯框控件中輸入數據,并將該數據寫入單元格中.

在VC環境下開發數據庫應用程序一般都要采用第三方軟件如Microsoft Office Access、Microsoft Office Excel、Microsoft Visual FoxPro等形成數據文件,然后注冊形成數據源[3-4],再通過ODBC、DAO或ADO技術操縱數據源以實現對數據的管理.本文利用MFC的文件讀寫功能在模塊中形成數據文件,不需要第三方軟件的支持.MFC的鏈表類包括CPtrList、CStringList、CobList[5],本文利用CptrList類創建鏈表對象.

2 用戶材料數據庫管理模塊框架的編程實現

首先啟動VC++6.0,創建一個名為yhmaterial的單文檔工程,該工程視類的基類是CFormView,其余保持默認選項不變.添加兩個對話框資源,其ID分別為IDD_PROPPAGE1和IDD_PROPPAGE2.參照圖1在兩個對話框中添加各控件.對話框IDD_PROPPAGE1中添加各控件后,還要添加一個多余的編輯框控件“Edit”,用于網格控件的編輯化.右下角網格控件的添加方法是點擊工程添加到工程Components and Controls,在彈出的對話框中選擇Registered and ActiveX Controls文件夾,雙擊之,再選擇Microsoft FlexGrid Control,version 6.0,點擊insert按鈕,彈出Confirm Class對話框.選中前面三項,點擊OK.此時在控件工具箱中出現Microsoft FlexGrid Control的圖標.并且在工程的ClassView區出現剛才選中的三個類:CMSflexGrid、CRowCursor和ColeFont,在工程的FileView區出現類的頭文件msflexgrid.h、font.h和rowcursor.h及源文件msflexgrid.cpp、font.cpp和rowcursor.cpp.兩次添加Microsoft FlexGrid Control到IDD_PROPPAGE1上.修改其ID分別為IDC_MSFLEXGRID1和IDC_MSFLEXGRID2.參照圖1設置其屬性,并適當調節網格控件所占范圍的大小,使得后面設置的網格的高度與寬度既能完全顯示出來,又無黑邊.注意設置四個成組框控件下面第一個控件的“Group”屬性.將列表控件設置為“Report”屬性.為各控件綁定變量,為這兩個對話框資源添加響應的類Cpage1和Cpage2,并創建屬性對話框.

此時編譯運行,發現屬性對話框要么完全顯示出來,但是只占整個視區的一部分,要么占住整個視區,但是只顯示了一部分,多了兩個滾動條,需要滾動才能看到屬性對話框的各個部位.要想將屬性對話框完全嵌入視區,不出現滾動條,可以添加函數void CYhmaterialView::OnSize(UINT nType,int cx,int cy).

void CYhmaterialView::OnSize(UINT nType,int cx,int cy)

{

CFormView::OnSize(nType,cx,cy);

propSheet.SetWindowPos(NULL,0,0,cx,cy,SWP_NOACTIVATE);

CTabCtrl* m_tabctrl=propSheet.GetTabControl( );//

m_tabctrl->SetWindowPos(NULL,0,0,cx,cy,SWP_NOACTIVATE);//

CRect rect;CSize size;

GetClientRect(&rect);//獲取當前客戶區view大小

size.cx=rect.right-rect.left;

size.cy=rect.bottom-rect.top;

SetScrollSizes(MM_TEXT,size);//將CScrollView的大小設置為當前客戶區大小

}

再次編譯運行,發現無滾動條,調節視區大小(用鼠標拖動),對話框的尺寸也跟著變化,視區與對話框大小同步.效果如圖1所示.

3 用戶材料數據庫管理各功能的編程實現

3.1 網格控件的可編輯化

編輯網格就是在單擊單元格時能接受用戶的輸入.為此按第二節的思路進行.首先要響應FlexGrid控件的Click事件.利用類向導在類Cpage1中添加響應函數void Cpage1::OnClickMsflexgrid1()和void Cpage1::OnClickMsflexgrid2().

當編輯完成釋放焦點之后,將數據寫回單元格.此時應該響應CEdit控件的EN_KILLFOCUS事件.利用類向導添加函數void Cpage1::OnKillfocusEdit().

3.2 建立材料參數結構體

材料參數眾多,其中最主要的是材料的力學性能指標.由于各種材料適用的溫度范圍不同,故力學性能的個數也不同.本章給出的溫度等級數為20(參考GB150),當材料力學性能溫度等級不夠20時,以0補齊溫度與力學性能.構建如下的結構體:

struct CAILIAOCANSHU

{

CString name;//材料名稱

CString biaozhun;//材料標準

double houdumax,houdumin,wendumin,wendumax,cailiaomidu,sigma,qufu;//最小、最大尺寸,最高、最低適用溫度,材料重度,常溫抗拉強度及屈服極限

int banfou,gangfou,gaoyinglifou,qiangdulei;//材料形式、材質類別、應力高低、應力類別

double yingli[20];//應力等級值

double wendu[20];//溫度等級值

};

材料形式即板材、鍛件等之分;材質類別有碳鋼、不銹鋼、銅、鋁及鈦材之分;應力高低即高應力與低應力.GB150對某些材料在同一個溫度下給出了兩種許用應力,應力較高者僅適用于允許產生微量永久變形的元件;對于法蘭或其他有微量永久變形就引起泄漏或故障的場合則采用較低應力以增加元件的尺寸,增加安全可靠性.

3.3 用戶材料數據庫管理模塊啟動功能的實現

圖1是啟動界面.可以看出啟動時將文件中的各個材料名稱讀入屬性頁的列表控件中,光標處于最后一個材料,并將這個材料的參數顯示在屬性頁的各個控件中.用戶點擊任意一個材料名稱,則右邊各控件數據跟著變化.如果文件為空,或不存在,則顯示空白的界面,即各個控件為空.

實現思路是:先將網格控件和列表控件初始化;打開文件,將數據讀入材料參數結構體,形成一個鏈結點添加到鏈尾,直到文件讀完.再遍歷鏈表,將每一個結點中對應的材料名稱數據及應力類別寫到列表框,并將最后一個材料的參數寫入各個編輯框中.這些工作可由函數BOOL Cpage1::OnInitDialog()完成.

3.4 用戶材料數據庫管理模塊各按鈕功能的實現

“增加”按鈕的功能實現.用戶單擊該按鈕時,首先將網格控件隱藏,各控件數據清空,將此按鈕變灰,等待用戶輸入數據,當選擇材料力學性能單選按鈕時,再彈出網格控件,并將網格控件上方的靜態文本控件的標題做出相應的修改.在Cpage1類中添加“增加”按鈕IDC_BUTTONADD單擊消息響應函數OnButtonadd().

在Cpage1類中添加單選按鈕“溫度下許用應力”、“溫度下屈服極限”和“溫度下持久極限”的單擊消息響應函數,以修改網格控件上方的靜態文本控件的標題.添加WM_CTLCOLOR消息響應函數HBRUSH Cpage1::OnCtlColor(CDC* pDC,CWnd* pWnd,UINT nCtlColor) ,將靜態文本標題顏色修改為紅色.

“更新、保存”按鈕的功能實現.首先將用戶輸入的數據形成一個結構體,并得到新的鏈節點添加到鏈尾.此鏈是在函數OnInitDialog()中形成的.再將新增加的材料名稱及應力類別數據寫入列表框的最后面.最后將該材料的數據寫入文件末尾;并將本按鈕變灰,恢復“增加”按鈕.

“刪除”按鈕的功能實現.首先在列表框中捕獲用戶要刪除的材料表項,將此表項刪除,然后從鏈表中刪除該材料對應的結點,并從文件中刪除該材料的數據(實際上重寫整個文件),并將最后一個結點的材料顯示在各個控件中.

最后還要添加列表框選中表項改變時的消息響應函數OnItemchangedList1(),并將對應的材料參數顯示在各個控件中以便用戶查看瀏覽.

“更新、保存”按鈕單擊響應函數程序框圖如圖2所示.

圖2 “更新、保存”按鈕單擊消息響應函數框圖Fig.2 The block diagram of message response function clicking update and save button

4 運行結果及結論

本模塊的運行界面如圖1所示,在模塊目錄下生成一個文本文件.實踐表明不需第三方軟件的支持也可以進行數據庫應用程序的開發.該方法不需要考慮數據源,也不需要考慮安裝目錄問題;只有一個運行文件.在數據量不太大的情況下,相比需要第三方軟件的數據庫開發方法,該方法簡單、靈活.

致 謝

本人在學習MFC編程的過程中得到武漢工程大學計算機科學與工程學院盧濤博士的指點,在此表示衷心的感謝!

[1] GB150-2011.《壓力容器》[S].北京:中國標準出版社,2003.

GB150-2011.Pressure Vessels [S].Beijing:Standards Press of China,2003.(in Chinese)

[2] 王勇,申延平.在Visual C++中實現MSFlexGrid控件的網格編輯功能[J].電腦編程技巧與維護,2001(10):45-47.

WANG Yong,SHEN Yan-ping.To achieve Mesh editing functionsof MSFlexGrid control in Visual C++ in[J].Computer Programming Skills & Maintenance,2001(10):45-47.(in Chinese)

[3] 范冠雄.基于Visual C++的數據庫訪問技術比較研究[J].計算機與數字工程,2010,38(1):64-66.

FAN Guan-xiong.Visual C++ based database access technology comparison[J].Computer & Digital Eng ineering,2010,38(1):64-66.(in Chinese)

[4] 陳偉亞,劉芳芳.地理信息系統在水污染控制規劃中的應用[J].武漢工程大學學報,2013,35(1):21-26.

CHEN Wei-ya,LIU Fang-fang.Application of geographic information system technology in planning of water pollution control[J].Journal of Wuhan Institute of Technology,2010,32(7):9-14.(in Chinese)

[5] Microsoft Developer Network Library Visual Studio 6.0[EB/OL].http://download.csdn.net/download/medium_ck/3973780.[2012-06-12]

猜你喜歡
按鈕數據庫用戶
這些按鈕能隨便按嗎?
當你面前有個按鈕
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
內心不能碰的按鈕
商業評論(2014年9期)2015-02-28 04:32:41
主站蜘蛛池模板: 在线欧美日韩| 日韩无码视频专区| 亚洲欧美在线看片AI| 老司机午夜精品网站在线观看| 国产全黄a一级毛片| 国产在线小视频| 日韩a级毛片| 久久人妻系列无码一区| 精品91自产拍在线| 在线精品欧美日韩| 老色鬼欧美精品| 国产幂在线无码精品| 久久国产精品麻豆系列| 狠狠v日韩v欧美v| 亚洲第一色网站| 少妇高潮惨叫久久久久久| 成人福利在线免费观看| 免费观看男人免费桶女人视频| 国产小视频a在线观看| 成年午夜精品久久精品| h视频在线观看网站| 毛片手机在线看| 一区二区午夜| 精品综合久久久久久97超人| 女人爽到高潮免费视频大全| 欧洲熟妇精品视频| 久久精品国产在热久久2019 | 114级毛片免费观看| 午夜日b视频| 国产成人亚洲精品蜜芽影院| 天堂中文在线资源| 欧美日韩国产综合视频在线观看| 精品无码日韩国产不卡av| 亚洲欧美自拍中文| 99久久99视频| 国产美女91视频| 日韩欧美综合在线制服| 九色视频在线免费观看| 欧美三级视频在线播放| 日韩123欧美字幕| 欧美日韩另类在线| 亚洲天堂在线视频| 国产欧美日韩va另类在线播放| 1024国产在线| 国产成人AV大片大片在线播放 | 91蜜芽尤物福利在线观看| 欧美人在线一区二区三区| 一级毛片在线播放免费观看| 亚洲一区二区三区在线视频| 久久久久人妻一区精品| 久久精品中文字幕少妇| 99性视频| 欧美三級片黃色三級片黃色1| 国产精品美女免费视频大全| 国产丝袜91| 欧美精品v日韩精品v国产精品| 性69交片免费看| 精品无码一区二区在线观看| 精品国产免费人成在线观看| 欧美国产日产一区二区| 国产精品白浆无码流出在线看| 91亚洲国产视频| 黄片一区二区三区| 国产97公开成人免费视频| 永久成人无码激情视频免费| 国产日韩欧美在线视频免费观看| 亚洲精品你懂的| 免费看久久精品99| 欧美激情视频二区三区| 曰韩人妻一区二区三区| 欧美一道本| 午夜限制老子影院888| 美女视频黄又黄又免费高清| 熟妇丰满人妻| 日韩av手机在线| 国产精品成人一区二区不卡| 99国产精品一区二区| 91免费国产高清观看| 狠狠色狠狠色综合久久第一次 | 亚洲人成网址| 国产激情无码一区二区免费| 91青草视频|