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

無(wú)第三方軟件支持的數(shù)據(jù)庫(kù)應(yīng)用程序開發(fā)

2014-02-27 01:33:21蔡洪濤田中軒
關(guān)鍵詞:按鈕數(shù)據(jù)庫(kù)用戶

蔡洪濤,田中軒

武漢工程大學(xué)機(jī)電工程學(xué)院,湖北 武漢 430205

0 引 言

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

圖1 用戶材料數(shù)據(jù)庫(kù)管理系統(tǒng)界面Fig.1 The interface of user material database management system

啟動(dòng)時(shí)左邊列表中最后的材料處于選中狀態(tài),右邊則表明該材料的名稱、標(biāo)準(zhǔn)號(hào)及材料類型、力學(xué)性能等.用戶點(diǎn)擊左邊不同的材料,右邊各項(xiàng)相應(yīng)做出改變.當(dāng)點(diǎn)擊“增加”按鈕,則右邊上部各控件清空,下方的表格也消失;當(dāng)選中“強(qiáng)度數(shù)據(jù)類型”下的任一選項(xiàng)時(shí),又會(huì)彈出表格,讓用戶輸入材料力學(xué)性能,且表格上方的紅色文字與選項(xiàng)相匹配.當(dāng)點(diǎn)擊“更新、保存”按鈕,將該材料的各項(xiàng)參數(shù)寫入文件中,并在列表最后增加一行.當(dāng)點(diǎn)擊“刪除”按鈕時(shí),首先從列表中刪除被選中的一行,然后從文件中刪除這種材料的各項(xiàng)參數(shù),最后將光標(biāo)移到列表最后一行,右邊顯示該材料的各項(xiàng)參數(shù).

1 用戶材料數(shù)據(jù)庫(kù)管理模塊技術(shù)分析及編程思路

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

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

在VC環(huán)境下開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序一般都要采用第三方軟件如Microsoft Office Access、Microsoft Office Excel、Microsoft Visual FoxPro等形成數(shù)據(jù)文件,然后注冊(cè)形成數(shù)據(jù)源[3-4],再通過(guò)ODBC、DAO或ADO技術(shù)操縱數(shù)據(jù)源以實(shí)現(xiàn)對(duì)數(shù)據(jù)的管理.本文利用MFC的文件讀寫功能在模塊中形成數(shù)據(jù)文件,不需要第三方軟件的支持.MFC的鏈表類包括CPtrList、CStringList、CobList[5],本文利用CptrList類創(chuàng)建鏈表對(duì)象.

2 用戶材料數(shù)據(jù)庫(kù)管理模塊框架的編程實(shí)現(xiàn)

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

此時(shí)編譯運(yùn)行,發(fā)現(xiàn)屬性對(duì)話框要么完全顯示出來(lái),但是只占整個(gè)視區(qū)的一部分,要么占住整個(gè)視區(qū),但是只顯示了一部分,多了兩個(gè)滾動(dòng)條,需要滾動(dòng)才能看到屬性對(duì)話框的各個(gè)部位.要想將屬性對(duì)話框完全嵌入視區(qū),不出現(xiàn)滾動(dòng)條,可以添加函數(shù)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);//獲取當(dāng)前客戶區(qū)view大小

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

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

SetScrollSizes(MM_TEXT,size);//將CScrollView的大小設(shè)置為當(dāng)前客戶區(qū)大小

}

再次編譯運(yùn)行,發(fā)現(xiàn)無(wú)滾動(dòng)條,調(diào)節(jié)視區(qū)大小(用鼠標(biāo)拖動(dòng)),對(duì)話框的尺寸也跟著變化,視區(qū)與對(duì)話框大小同步.效果如圖1所示.

3 用戶材料數(shù)據(jù)庫(kù)管理各功能的編程實(shí)現(xiàn)

3.1 網(wǎng)格控件的可編輯化

編輯網(wǎng)格就是在單擊單元格時(shí)能接受用戶的輸入.為此按第二節(jié)的思路進(jìn)行.首先要響應(yīng)FlexGrid控件的Click事件.利用類向?qū)г陬怌page1中添加響應(yīng)函數(shù)void Cpage1::OnClickMsflexgrid1()和void Cpage1::OnClickMsflexgrid2().

當(dāng)編輯完成釋放焦點(diǎn)之后,將數(shù)據(jù)寫回單元格.此時(shí)應(yīng)該響應(yīng)CEdit控件的EN_KILLFOCUS事件.利用類向?qū)砑雍瘮?shù)void Cpage1::OnKillfocusEdit().

3.2 建立材料參數(shù)結(jié)構(gòu)體

材料參數(shù)眾多,其中最主要的是材料的力學(xué)性能指標(biāo).由于各種材料適用的溫度范圍不同,故力學(xué)性能的個(gè)數(shù)也不同.本章給出的溫度等級(jí)數(shù)為20(參考GB150),當(dāng)材料力學(xué)性能溫度等級(jí)不夠20時(shí),以0補(bǔ)齊溫度與力學(xué)性能.構(gòu)建如下的結(jié)構(gòu)體:

struct CAILIAOCANSHU

{

CString name;//材料名稱

CString biaozhun;//材料標(biāo)準(zhǔn)

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

int banfou,gangfou,gaoyinglifou,qiangdulei;//材料形式、材質(zhì)類別、應(yīng)力高低、應(yīng)力類別

double yingli[20];//應(yīng)力等級(jí)值

double wendu[20];//溫度等級(jí)值

};

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

3.3 用戶材料數(shù)據(jù)庫(kù)管理模塊啟動(dòng)功能的實(shí)現(xiàn)

圖1是啟動(dòng)界面.可以看出啟動(dòng)時(shí)將文件中的各個(gè)材料名稱讀入屬性頁(yè)的列表控件中,光標(biāo)處于最后一個(gè)材料,并將這個(gè)材料的參數(shù)顯示在屬性頁(yè)的各個(gè)控件中.用戶點(diǎn)擊任意一個(gè)材料名稱,則右邊各控件數(shù)據(jù)跟著變化.如果文件為空,或不存在,則顯示空白的界面,即各個(gè)控件為空.

實(shí)現(xiàn)思路是:先將網(wǎng)格控件和列表控件初始化;打開文件,將數(shù)據(jù)讀入材料參數(shù)結(jié)構(gòu)體,形成一個(gè)鏈結(jié)點(diǎn)添加到鏈尾,直到文件讀完.再遍歷鏈表,將每一個(gè)結(jié)點(diǎn)中對(duì)應(yīng)的材料名稱數(shù)據(jù)及應(yīng)力類別寫到列表框,并將最后一個(gè)材料的參數(shù)寫入各個(gè)編輯框中.這些工作可由函數(shù)BOOL Cpage1::OnInitDialog()完成.

3.4 用戶材料數(shù)據(jù)庫(kù)管理模塊各按鈕功能的實(shí)現(xiàn)

“增加”按鈕的功能實(shí)現(xiàn).用戶單擊該按鈕時(shí),首先將網(wǎng)格控件隱藏,各控件數(shù)據(jù)清空,將此按鈕變灰,等待用戶輸入數(shù)據(jù),當(dāng)選擇材料力學(xué)性能單選按鈕時(shí),再?gòu)棾鼍W(wǎng)格控件,并將網(wǎng)格控件上方的靜態(tài)文本控件的標(biāo)題做出相應(yīng)的修改.在Cpage1類中添加“增加”按鈕IDC_BUTTONADD單擊消息響應(yīng)函數(shù)OnButtonadd().

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

“更新、保存”按鈕的功能實(shí)現(xiàn).首先將用戶輸入的數(shù)據(jù)形成一個(gè)結(jié)構(gòu)體,并得到新的鏈節(jié)點(diǎn)添加到鏈尾.此鏈?zhǔn)窃诤瘮?shù)OnInitDialog()中形成的.再將新增加的材料名稱及應(yīng)力類別數(shù)據(jù)寫入列表框的最后面.最后將該材料的數(shù)據(jù)寫入文件末尾;并將本按鈕變灰,恢復(fù)“增加”按鈕.

“刪除”按鈕的功能實(shí)現(xiàn).首先在列表框中捕獲用戶要?jiǎng)h除的材料表項(xiàng),將此表項(xiàng)刪除,然后從鏈表中刪除該材料對(duì)應(yīng)的結(jié)點(diǎn),并從文件中刪除該材料的數(shù)據(jù)(實(shí)際上重寫整個(gè)文件),并將最后一個(gè)結(jié)點(diǎn)的材料顯示在各個(gè)控件中.

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

“更新、保存”按鈕單擊響應(yīng)函數(shù)程序框圖如圖2所示.

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

4 運(yùn)行結(jié)果及結(jié)論

本模塊的運(yùn)行界面如圖1所示,在模塊目錄下生成一個(gè)文本文件.實(shí)踐表明不需第三方軟件的支持也可以進(jìn)行數(shù)據(jù)庫(kù)應(yīng)用程序的開發(fā).該方法不需要考慮數(shù)據(jù)源,也不需要考慮安裝目錄問(wèn)題;只有一個(gè)運(yùn)行文件.在數(shù)據(jù)量不太大的情況下,相比需要第三方軟件的數(shù)據(jù)庫(kù)開發(fā)方法,該方法簡(jiǎn)單、靈活.

致 謝

本人在學(xué)習(xí)MFC編程的過(guò)程中得到武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院盧濤博士的指點(diǎn),在此表示衷心的感謝!

[1] GB150-2011.《壓力容器》[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2003.

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

[2] 王勇,申延平.在Visual C++中實(shí)現(xiàn)MSFlexGrid控件的網(wǎng)格編輯功能[J].電腦編程技巧與維護(hù),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++的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)比較研究[J].計(jì)算機(jī)與數(shù)字工程,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] 陳偉亞,劉芳芳.地理信息系統(tǒng)在水污染控制規(guī)劃中的應(yīng)用[J].武漢工程大學(xué)學(xué)報(bào),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]

猜你喜歡
按鈕數(shù)據(jù)庫(kù)用戶
這些按鈕能隨便按嗎?
當(dāng)你面前有個(gè)按鈕
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
內(nèi)心不能碰的按鈕
主站蜘蛛池模板: 精品国产自在现线看久久| 国产乱子伦视频三区| 亚洲a免费| 国产麻豆福利av在线播放| 亚洲欧美一区二区三区蜜芽| 最新国产精品鲁鲁免费视频| 亚洲一级毛片免费观看| 本亚洲精品网站| 午夜在线不卡| 青青热久免费精品视频6| 国产精品页| 亚洲无码高清一区| 久视频免费精品6| 丁香五月亚洲综合在线| 高清视频一区| 日韩欧美中文字幕一本 | 欧美福利在线| 欧美第九页| 2021国产在线视频| 免费无码AV片在线观看国产| 国产99在线| 制服丝袜一区二区三区在线| 欧美97色| 亚洲永久精品ww47国产| 在线另类稀缺国产呦| 一本综合久久| a级毛片免费看| 亚洲成人网在线观看| 亚洲一区二区三区在线视频| 亚洲欧洲美色一区二区三区| 污网站在线观看视频| 亚洲精品图区| 久久久久人妻一区精品| 国产午夜无码片在线观看网站| 国产高清免费午夜在线视频| 欧美日本激情| 日韩资源站| 国产精品高清国产三级囯产AV| 凹凸国产分类在线观看| 成年女人a毛片免费视频| 日韩国产一区二区三区无码| 无码日韩人妻精品久久蜜桃| 一级毛片免费观看不卡视频| 成人午夜免费观看| 婷婷在线网站| 高清码无在线看| 18禁黄无遮挡免费动漫网站| 欧美一级特黄aaaaaa在线看片| 色135综合网| 国产福利小视频在线播放观看| 伊人天堂网| 国产杨幂丝袜av在线播放| 国产国产人成免费视频77777| 91精品国产91欠久久久久| 久久国产乱子伦视频无卡顿| 九色91在线视频| 亚洲美女高潮久久久久久久| 亚洲精品视频免费| 国产成人精品第一区二区| 国产黑丝一区| 日韩中文字幕亚洲无线码| 国产免费a级片| 国产永久无码观看在线| 亚洲成a人在线播放www| 欧美成人看片一区二区三区 | 精品视频在线观看你懂的一区| 日韩在线永久免费播放| 黄色网页在线观看| 韩国自拍偷自拍亚洲精品| 亚洲中文字幕国产av| 区国产精品搜索视频| 在线观看无码a∨| 亚洲AV电影不卡在线观看| 亚洲午夜国产片在线观看| 亚洲侵犯无码网址在线观看| 久久五月视频| 成人免费视频一区| 久精品色妇丰满人妻| 第一页亚洲| 怡红院美国分院一区二区| 久夜色精品国产噜噜| 超清无码一区二区三区|