




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、畢業設計說明書(論文)作 者: 學 號:院 系:專 業: 計算機科學與技術 題 目: 旅館管理系統開發 指導者:講師(姓 名) (專業技術職務)評閱者:講師(姓 名) (專業技術職務)2012年6月 南 京47 / 51畢業設計說明書(論文)中文摘要 伴隨著計算機的發展與網絡技術的應用,我們正在快速地向信息化社會邁進,信息自動化的作用變得越來越大。在旅店行業中,旅館住宿規模正在不斷地擴大,住宿人員的數量正在急劇地增加,有關客戶住宿的各種信息量也成倍地增長。 面對龐大的信息量,就需要有旅館管理系統來提高住宿管理工作的效率。通過這樣的系統,可以方便地查詢、添加和修改住宿房間的基本情況、客戶的登記注
2、銷情況,實現信息的規化管理、科學統計和快速查詢,從而減少管理方面的工作量,同時避免由于人為因素造成數據遺漏和誤報等。關鍵字VC6.0 SQL2000 信息化 規化 管理畢業設計說明書(論文)外文摘要Title Hotel management systemAbstractAlong with the development of computers and network technology, we are quickly forward to the information society, the role of information automation becoming more
3、and more.The scale of accommodation in the hotel industry is constantly expanding, the number of residential staff is sharply increased, a variety of the amount of information about customers stay has grown exponentially.Faced with an enormous amount of information, you need to have the hotel manage
4、ment system to improve the efficiency of the accommodation management. Through this system, you can easily query, add and modify the basic situation of the accommodation rooms, customer registration cancellation to achieve the standardization of information management, science, statistics and fast q
5、uery, thereby reducing the workload of management, while avoiding the human factors resulting in data omission and false positives.KeywordsVC6.0, SQL2000, Information technology, Standardization, Management目錄第一章緒論i1.1 旅館管理的文化和業務11.2 關于本課題3第二章開發環境與主要技術42.1 開發平臺42.2 主要技術5第三章系統需求分析83.1 運行平臺83.2 數據庫設計9第
6、四章系統設計與實現124.1 項目創建124.2 主框架設計124.3 數據庫操縱164.4 樹視圖的實現194.5 切換視圖的實現234.6 功能對話框的實現25第五章系統測試315.1 測試的定義和目的315.2 旅館管理系統的測試32第六章結論33致 34參考文獻35附錄:英文技術資料翻譯36第一章 緒論本章主要對發展中的旅館管理系統進行介紹,并對當前流行的旅館管理系統進行簡單的介紹。1.1 旅館管理的文化和業務當今社會,是個高科技、高效率、高度競爭的全新社會。隨著人們物質水平的逐步提高,人們的精神生活也開始趨向豐富多彩。人們已經不再僅僅局限于待在家中,不再把自己
7、局限在周圍的生活圈子里。為了豐富自己的文化生活和自身娛樂,人們已經習慣了利用假期外出旅游。各個地區的旅游業也因此出現了持續增長的好勢頭。這對于各地的酒店來說是一種機遇也是一種挑戰。商場如戰場,競爭十分激烈,在競爭中如果企業本身不能從企業部入手,提高自身的競爭力,就有可能被社會所淘汰。只有提高企業自身的生命力才是企業正確的發展方向。酒店部門以前那種老的運作機制已經不能適應當今社會的需要,單純靠手工去進行大量的信息處理,不但給企業本身帶來很大的不便,同時也給顧客帶來很大的麻煩,造成企業耗費大量的人力、物力和時間,仍然導致工作效率的降低。所以,對于酒店部門來說,建立一套合理有效的管理信息系統迫在眉睫
8、,這也是適應社會發展和增強競爭力的主要手段。1.1.1旅館管理的文化 當今社會,因特網技術的飛速發展正在迅速地改變著人們的生活方式,因特網正在由科學工作者的工具變為普通百姓獲取信息、進行交流的場所,而因特網的商業應用則尤為引人注目。21世紀的酒店,從部管理到外部銷售都將發生質的變化。激烈的市場競爭,要求酒店引入更多、更新、更高的IT技術,非單一的前臺管理軟件甚至傳統的前、后臺軟件所能滿足。現代化的酒店是集客房、餐飲、通訊、娛樂,商務文化與其他各種服務與設施為一體化的消費場所,酒店組織龐大,服務項目多,信息量大,要想提高勞動生產,降低成本,提高服務質量和管理水平,進而促進經濟效益,必須借助計算機
9、來進行現代化的信息管理。成功的酒店是將經濟效益作為酒店的運營宗旨,管理的核心是在于如何提高經濟效益。優秀的酒店客房信息管理系統以酒店的經濟效益為目標,為酒店管理人員和員工提供簡單易用、功能強大并高度靈活的應用工具,激勵他們的積極性,促使他們向酒店提供更好的服務。這些改進使賓客感到更加滿意,為酒店帶來更多的回頭客和收入。同時,通過對人流、物流、資金流的科學管理和有效控制,提高員工的工作效率,降低各種經營成本,從而獲取持久的利潤,因此酒店行業對于酒店管理系統的引進勢在必行。1.1.2 旅館管理的業務伴隨著計算機的發展與網絡技術的應用,我們正在快速地向信息化社會邁進,信息自動化的作用變得越來越大。在
10、旅店行業中,旅館住宿規模正在不斷地擴大,住宿人員的數量正在急劇的增加,有關客戶住宿的各種信息也成倍地增長。面對龐信息量,就需要有旅館管理系統來提高住宿管理工作的效率。通過這樣的系統,可以方便地查詢、添加和修改住宿房間的基本情況、客戶的登記注銷情況,實現信息的規化管理、科學統計和快速查詢,從而減少管理方面的工作量,同時避免由于人為因素造成數據遺漏和誤報等。1.2 關于本課題本課題將在PC機上實現一個簡單的旅館管理系統,可以對房間的標準進行添加、修改和刪除,對房間也可以實現添加、修改和刪除,可以實現客戶信息的登記和注銷,所有操作簡便、人性化。第二章 開發環境與主要技術本章通過一個旅館管理系統的完整
11、開發過程,向讀者介紹目前流行的ADO對象操作技術。這里以單文檔結構為設計基礎,在界面設計方面,采用視圖切分和樹狀容分布以與快捷菜單操縱,數據庫采用Microsoft SQL Server2000。2.1 開發平臺本系統的開發平臺為:操作系統:Microsoft Windows XP程序語言:C+開發平臺:VC6.0 數據庫:Microsoft SQL Server20002.1.1 C+語言在該設計中所使用的編程開發語言是微軟公司所推出的C+語言。C+面向對象的語言。C+語言發展大概可以分為三個階段: 第一階段從80年代到1995年。這一階段C+語言基本上是傳統類型上的面向對象語言,并且憑借著
12、接近C語言的效率,在工業界使用的開發語言中占據了相當大份額; 第二階段從1995年到2000年,這一階段由于標準模板庫(STL)和后來的Boost等程序庫的出現,泛型程序設計在C+中占據了越來越多的比重性。當然,同時由于Java、C#等語言的出現和硬件價格的大規模下降,C+受到了一定的沖擊; 第三階段從2000年至今,由于以Loki、MPL等程序庫為代表的產生式編程和模板元編程的出現,C+出現了發展歷史上又一個新的高峰,這些新技術的出現以與和原有技術的融合,使C+已經成為當今主流程序設計語言中最復雜的一員。2.1.2 C+的組成根據Effective C+第三版第一條款的描述,現在C+由以下四
13、個“子語言”組成: 1、C子語言。C+支持C語言的幾乎全部功能,主要是c89的部分,在語法上與C語言僅有極微妙的差別(如括號表達式的左右值性,具體請參考C+標準文獻)。 2、面向對象的C+語言。C+語言原本不具備面向對象的設計功能,然而隨著面向對象編程的概念的提出以與如Java等語言的發展成熟,C+語言也開發出了支持面向對象功能的版本. 3、泛型編程語言。C+強大(但容易失控的)模板功能使它能在編譯期完成許多工作,從而大大提高運行期效率。 4、STL(C+標準模板庫,Standard Template Library)。隨著STL的不斷發展,它已經逐漸成為C+程序設計中不可或缺的部分,其效率可
14、能比一般的native代碼低些,但是其安全性與規性使它大受歡迎。 特點:C+設計成靜態類型、和C同樣高效且可移植的多用途程序設計語言。 C+設計成直接的和廣泛的支援多種程序設計風格(程序化程序設計、資料抽象化、面向對象程序設計、泛型程序設計)。 C+設計成給程序設計者更多的選擇,即使可能導致程序設計者選擇錯誤。 C+設計成盡可能與C兼容,籍此提供一個從C到C+的平滑過渡。 C+避免平臺限定或沒有普遍用途的特性。C+不使用會帶來額外開銷的特性。 C+設計成無需復雜的程序設計環境。 出于保證語言的簡潔和運行高效等方面的考慮,C+的很多特性都是以庫(如STL)或其他的形式提供的,而沒有直接添加到語言
15、本身里。關于此類話題,Bjarne Stroustrup的C+語言的設計和演化(1994)里做了詳盡的述。2.2主要技術 2.2.1 Microsoft SQL Server2000SQL Server 2000 是Microsoft公司推出的SQL Server 數據庫管理系統的一個版本。該版本繼承了SQL Server 7.0 版本的優點同時又比它增加了許多更先進的功能,具有使用方便,可伸縮性好與相關軟件集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的服務器等多種平臺使用。SQL Ser
16、ver 2000的優點1、高性能設計,可充分利用WindowsNT的優勢。 2、系統管理先進,支持Windows圖形化管理工具,支持本地和遠程的系統管理和配置。 3、強壯的事務處理功能,采用各種方法保證數據的完整性。 4、支持對稱多處理器結構、存儲過程、ODBC,并具有自主的SQL語言。 SQLServer以其置的數據復制功能、強大的管理工具、與Internet的緊密集成和開放的系統結構為廣大的用戶、開發人員和系統集成商提供了一個出眾的數據庫平臺。2.2.2 SQL Server 2000的特性SQL Server 2000 數據庫引擎提供完整的XML 支持。它還具有構成最大的Web 站點的數
17、據存儲組件所需的可伸縮性、可用性和安全功能。SQL Server 2000 程序設計模型與 Windows DNA 構架集成,用以開發 Web 應用程序,并且SQL Server 2000 支持 English Query 和 Microsoft 搜索服務等功能,在Web 應用程序中包含了用戶友好的查詢和強大的搜索功能。 可伸縮性和可用性同一個數據庫引擎可以在不同的平臺上使用,從運行 Microsoft Windows® 98 的便攜式電腦,到運行 Microsoft Windows 2000 數據中心版的大型多處理器服務器。SQL Server 2000 企業版支持聯合服務器
18、、索引視圖和大型存支持等功能,使其得以升級到最大 Web 站點所需的性能級別。 企業級數據庫功能SQL Server 2000 關系數據庫引擎支持當今苛刻的數據處理環境所需的功能。數據庫引擎充分保護數據完整性,同時將管理上千個并發修改數據庫的用戶的開銷減到最小。SQL Server 2000 分布式查詢使您得以引用來自不同數據源的數據,就好象這些數據是 SQL Server 2000 數據庫的一部分,同時分布式事務支持充分保護任何分布式數據更新的完整性。復制同樣使您得以維護多個數據復本,同時確保單獨的數據復本保持同步。可將一組數據復制到多個移動的脫接用戶,使這些用戶自主地工作,然后將他們所做的
19、修改合并回發布服務器。 易于安裝部署和使用SQL Server 2000 中包括一系列管理和開發工具,這些工具可改進在多個站點上安裝、部署、管理和使用 SQL Server 的過程。SQL Server 2000 還支持基于標準的、與 Windows DNA 集成的程序設計模型,使 SQL Server 數據庫和數據倉庫的使用成為生成強大的可伸縮系統的無縫部分。這些功能使您得以快速交付 SQL Server 應用程序,使客戶只需最少的安裝和管理開銷即可實現這些應用程序。 數據倉庫。 SQL Server 2000 中包括析取和分析匯總數據以進行聯機分析處理 (OLAP) 的工具。SQL Ser
20、ver 中還包括一些工具,可用來直觀地設計數據庫并通過 English Query 來分析數據。第三章 系統需求分析3.1 系統分析本系統主要劃分為以下4個子模塊:房間標準模塊、房間信息模塊、登記客戶管理、注銷客戶管理。界面房間標準管理房間信息管理登記客戶管理注銷客戶管理圖3-1 系統功能模塊3.1.1房間標準管理模塊房間標準是對一類房間的共同信息的管理。工作人員通過此模塊與時地修正房間的硬件升級信息與進行價格調整。添加和修改房間標準沒有太大限制,而刪除房間標準,意味著以房間標準為基礎的房間信息將被刪除,同時連帶著當前住在這些房間的客戶信息也將被刪除,歷史記錄有關信息不刪除。3.1.2房間信息
21、管理模塊房間是房間號與房間標準的具體組合。工作人員通過此模塊對房間信息進行相應的增加、修改和刪除操作。房間的添加必須指明房間的標準,且房間標準已存在。房間號需獨一無二。房間修改不能修改房間號和房間標準,可以修改房間備注。房間的刪除也會連帶著刪除當前所住客戶的信息,但歷史記錄的信息不刪除。3.1.3登記客戶管理模塊 一個新的客戶到來時,需填寫基本的客戶信息,并指定房間號。工作人員通過此模塊來記錄基本的客戶信息,以與入住信息。入住時間為登記的當天,指定的房間號應是系統中已存在的切可以入住。3.1.4 注銷客戶管理模塊注銷客戶是結算退房的操作。注銷時間為今天,應付金額是住房天數與房間單價的乘積(不足
22、一天的,以一天計算)。工作人員通過此模塊完成結算退房操作,完成的結果添加到歷史數據庫,房間的該客戶入住信息將被刪除。界面注銷客戶管理登記客戶管理房間標準管理房間信息管理XX聯系方式公司地址年齡性別省份證號修改房間刪除房間添加房間添加標準刪除標準修改標準圖3-2 系統功能模塊流程圖3.2 數據庫設計根據系統功能需求,數據庫采用Microsoft SQL Server2000建立。Microsoft SQL Server2000是新一代大型電子商務、數據倉庫和數據庫解決方案。Microsoft SQL Server2000在分析服務、數據轉換服務、數據倉庫等方面引入了大量新特性。他為Web標準提供
23、了強勁的支持,并為系統管理和調整提供了許多有力的工具。它完全可以適應我們的工作需求,并且它所支持的數據類型十分豐富,操作簡便,維護費用比較低,容易升級。3.2.1 設計概念標準和房間之間是一對多擁有的關系,一個房間有且只有一個標準,而一個標準可以有多個房間。客戶和房間之間是一對多擁有的關系,一個客戶有且只有一個房間,而一個房間可以有多個客戶。RoomtypePK TypeIDTypeNameBedNumHavAirHavTelHavTVHavToiPriceCustomerPK Customer CustomerName CustomerSex CustomerAge CustomerTel
24、CustomerOffHistoryCustomerIDRoomNoInDateOutDatePayRoomsPK RoomNOFK1 TypeID RoomMemoBookinPK,FK1 CustomerIDPK,FK2 RoomNo InDate圖3-3 旅館管理系統數據庫概念設計圖3.2.2 邏輯設計與表設計邏輯設計階段的任務是把概念結構轉換為選用DBMS(數據庫管理系統)所支持的模式。 根據模塊的設計,以與根據規化的設計要求,該系統的數據庫設計如表4至8所示。表3-4 標準信息表(roomtype)字段名稱數據類型字段屬性字段大小描述必填字段索引是否主鍵TypeIDchar10標準編
25、號是有是TypeNamevarchar50標準名稱是無否BedNumint4床位數是無否HavAirint4有空調是無否HavTelint4有是無否HavTvint4有電視是無否HavToiint4有洗手間是無否Pricefloat8價格/天是無否表3-5 房間信息表(rooms)字段名稱數據類型字段屬性字段大小描述必填字段索引是否主鍵RoomNOvarchar50房間號是有是TypeIDchar10標準編號是無否RoomMemotext16房間備注否無否表3-6 客戶信息表(customer)字段名稱數據類型字段屬性字段大小描述必填字段索引是否主鍵CustomerIDvarchar50號是有
26、是CustomerNamevarchar50是無否CustomerSexint4性別否無否CustomerAgeint4年齡否無否CustomerTelvarchar20否無否CustomerOffvarchar20公司否無否表3-7 登記信息表(bookin)字段名稱數據類型字段屬性字段大小描述必填字段索引是否主鍵CustomerIDvarchar50號是有是RoomNOvarchar50房間號是InDatedatetime8入住時間否無否表3-8 注銷歷史信息表(history)字段名稱數據類型字段屬性字段大小描述必填字段索引是否主鍵CustomerIDvarchar50號否無否RoomN
27、Ochar10房間號否無否InDatedatetime8登記時間否無否OutDatedatetime8注銷時間否無否Payfloat8應付錢否無否第四章 系統設計與實現4.1 項目創建根據需求分析和系統的功能,使用Visual C+6.0創建一個基于單文檔的MFC AppWizard(exe)項目,項目名為HMS(Hotel Management System)。如下圖:圖4-14.2 主框架的設計4.2.1新增左邊的樹視圖類CLeftTreeView 從菜單欄中選擇InsertNew Class命令,增加一個類,名為CLeftTreeView,基類為CTreeView。4.2.2 新增右邊顯
28、示住房客戶信息的列表視圖CUserListView從菜單欄中選擇InsertNew Class命令,增加一個類,名為CUserListView,基類為CListView。4.2.3 新增右邊顯示房間標準的Form視圖類CRoomTypeView 由于Form視圖類需要Form資源才能建立,這里可以先建立一個沒有控件的Form資源,完成類的建立。從菜單欄中選擇InsertResource命令,彈出Insert Resource對話框。在Resource type列表中選擇DialogIDD_FORMVIEW,如下圖所示,單擊New按鈕插入對話框資源,其ID設為IDD_FORMVIEW_TYPEI
29、NFO.圖4-2 4.2.4 創建主框架的客戶區1)定義視圖對象由于右邊的視圖是不確定的,會根據具體情況在CUserListView和CRoomTypeView之間切換。所以在類CMainFrame聲明前定義兩個常量,表示右邊視圖的類型。并在其后加入聲明:/定義右邊視的類型#define ROOMTYPEVIEW0#define USERLISTVIEW1class CLeftTreeView;class CRoomTypeView;class CUserListView;class CMainFrame : public CFrameWndprotected: / create from s
30、erialization onlyCMainFrame();DECLARE_DYNCREATE(CMainFrame)/ Attributespublic:CRoomTypeView* m_pRoomTypeView;CUserListView* m_pUserListView;由于左邊的視圖是控制區,大部分操作需要調用左邊視圖來了解程序所處的情況。所以將其定義為全局變量。/HMS.cppCHMSApp theApp;CLeftTreeView *m_pLeftView;/HMS.hextern CHMSApp theApp;extern CLeftTreeView *m_pLeftView;
31、2)視圖分割 為了將客戶區分為左右兩部分,需要使用分隔條,于是在類CMainFrame中添加一個CSplitterWnd類型的成員變量m_wndSplitter,訪問方式為protected,其代碼如下:protected: / control bar embedded membersCStatusBar m_wndStatusBar;CToolBar m_wndToolBar;CSplitterWnd m_wndSplitter; 通過ClassWizard為類CMainFrame添加虛函數OnCreateClient,在該函數中創建被分為兩部分的客戶區。其中左邊為CLeftTreeView
32、,右邊開始設為CRoomTypeView,其代碼如下:BOOL CMainFrame:OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) / TODO: Add your specialized code here and/or call the base class/return CFrameWnd:OnCreateClient(lpcs, pContext);if(!m_wndSplitter.CreateStatic(this,1,2)return FALSE;if(!m_wndSplitter.CreateView
33、(0,0,RUNTIME_CLASS(CLeftTreeView),CSize(100,100),pContext)return FALSE;if(!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CRoomTypeView),CSize(100,100),pContext)return FALSE;m_pLeftView = (CLeftTreeView*)m_wndSplitter.GetPane(0,0);m_pRoomTypeView = (CRoomTypeView*)m_wndSplitter.GetPane(0,1);return TRUE;
34、 3)視圖切換函數SwitchToView 右邊的視圖是不確定的,會根據具體情況在CUserListView和CRoomTypeView之間切換。為了實現切換,為類CmianFrame增加一個public類型的函數SwitchToView,他的實現代碼如下:void CMainFrame:SwitchToView(int nViewType)CView* pView = (CView*)m_wndSplitter.GetPane(0,1);CRect rcRight,rcFrame;pView->GetClientRect(&rcRight);GetClientRect(&
35、;rcFrame);switch(nViewType)case ROOMTYPEVIEW:/CRoomTypeViewm_wndSplitter.DeleteView(0,1);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CRoomTypeView),CSize(rcRight.Width(),rcRight.Height(),NULL);m_wndSplitter.RecalcLayout();m_pRoomTypeView= (CRoomTypeView*)m_wndSplitter.GetPane(0,1);break;case USERLIST
36、VIEW:/CUserListViewCString str;CTreeCtrl *pTree=&(m_pLeftView->GetTreeCtrl();str=pTree->GetItemText(m_pLeftView->m_hHitItem);m_wndSplitter.DeleteView(0,1);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CUserListView),CSize(rcRight.Width(),rcRight.Height(),NULL);m_wndSplitter.RecalcLayout();
37、m_pUserListView= (CUserListView*)m_wndSplitter.GetPane(0,1);m_pUserListView->ShowUsers(str);break;default:break;4.3 數據庫操縱數據庫的操縱包括查詢、插入、修改和刪除等。為了實現同一接口操縱,我們用函數ADOExecute來統一所有的操作。4.3.1引入ADO動態庫 1)在StdAfx.h中加入:#import "C:program filescommon filesSystemadomsado15.dll" no_namespace rename(&qu
38、ot;EOF","EndOfFile") rename("LockTypeEnum","newLockTypeEnum")rename("DataTypeEnum","newDataTypeEnum")rename("FieldAttributeEnum","newFieldAttributeEnum")rename("EditModeEnum","newEditModeEnum")rename("
39、;RecordStatusEnum","newRecordStatusEnum")rename("ParameterDirectionEnum","newParameterDirectionEnum")4.3.2定義智能指針對象 1) 在類CHMSApp的頭文件中定義: class CHMSApp : public CWinApppublic:CHMSApp();public:_RecordsetPtr m_pRs;bool ADOExecute(_RecordsetPtr &ADOSet, _variant_t &
40、amp;strSQL);/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CHMSApp)public:virtual BOOL InitInstance();/AFX_VIRTUAL/ Implementation/AFX_MSG(CHMSApp)afx_msg void OnAppAbout();/ NOTE - the ClassWizard will add and remove member functions here./ DO NOT EDIT what you see in the
41、se blocks of generated code !/AFX_MSGDECLARE_MESSAGE_MAP()private:/ Define ADO Database Connnection_ConnectionPtr m_pConn;4.3.3 初始化智能指針 1)在CHMSApp的InitInstance方法中初始化:BOOL CHMSApp:InitInstance()AfxEnableControlContainer();/ Standard initialization/ If you are not using these features and wish to redu
42、ce the size/ of your final executable, you should remove from the following/ the specific initialization routines you do not need.#ifdef _AFXDLLEnable3dControls();/ Call this when using MFC in a shared DLL#elseEnable3dControlsStatic();/ Call this when linking to MFC statically#endif/ Create ADO Conn
43、ectionif( FAILED(:CoInitialize(NULL) ) AfxMessageBox("ADO Init failed");return false;trym_pConn.CreateInstance(_uuidof(Connection);m_pConn->Open("DSN=HMS;Provider=MSDASQL","sa","", adConnectUnspecified);/ Catch Exceptionscatch(_error &e)CString err;err.
44、Format("%s", (char*)(e.Description() );AfxMessageBox(err);catch(.)AfxMessageBox("Unknown Error.");/ Init ADO RecordSetm_pRs.CreateInstance(_uuidof(Recordset);/ Change the registry key under which our settings are stored./ TODO: You should modify this string to be something approp
45、riate/ such as the name of your company or organization.SetRegistryKey(_T("Local AppWizard-Generated Applications");LoadStdProfileSettings(); / Load standard INI file options (including MRU)/ Register the application's document templates. Document templates/ serve as the connection bet
46、ween documents, frame windows and views.CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CHMSDoc),RUNTIME_CLASS(CMainFrame), / main SDI frame windowRUNTIME_CLASS(CHMSView);AddDocTemplate(pDocTemplate);/ Parse command line for standard shell commands,
47、 DDE, file openCCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);/ Dispatch commands specified on the command lineif (!ProcessShellCommand(cmdInfo)return FALSE;/ The one and only window has been initialized, so show and update it.m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->UpdateWindow();retu
48、rn TRUE; 這里采用ADO連接數據源的方式,數據源名稱為HMS.4.3.4 統一接口ADOExecute的實現 1)在CHMSApp中添加新方法:bool CHMSApp:ADOExecute(_RecordsetPtr &ADOSet, _variant_t &strSQL)if ( ADOSet->State = adStateOpen)ADOSet->Close();try ADOSet->Open(strSQL, m_pConn.GetInterfacePtr(), adOpenStatic, adLockOptimistic, adCmdUnk
49、nown); return true;catch(_error &e) CString err; err.Format("ADO Error: %s",(char*)e.Description(); AfxMessageBox(err); return false;4.4 樹視圖的實現4.4.1編輯圖標 樹視圖中的每一個樹項都對應一個圖標,分別表示標準、房間。樹視圖中使用的圖標共兩個。圖4-3 圖標4.4.2 顯示樹視圖 1)為類CLeftTreeView增加protected類型的成員函數AddRoomTypeToTree和AddRoomToTree ,這兩個函數
50、的作用分別是將房間類型顯示到樹狀圖中和將房間顯示到房間類型下。 定義如下:protected:virtual CLeftTreeView();HTREEITEM AddRoomTypeToTree(CString strTypeName);HTREEITEM AddRoomToTree(HTREEITEM hTypeItem, CString strRoomNum); 實現如下:HTREEITEM CLeftTreeView:AddRoomTypeToTree(CString strTypeName)CTreeCtrl* pCtrl = &GetTreeCtrl();HTREEITEM
51、 hRootItem = pCtrl->GetRootItem();if(hRootItem)while(hRootItem)CString strItemText = pCtrl->GetItemText(hRootItem);if(strItemText = strTypeName)return hRootItem;hRootItem = pCtrl->GetNextSiblingItem(hRootItem);TV_INSERTSTRUCT TCItem;/插入數據項數據結構TCItem.hParent = TVI_ROOT;TCItem.hInsertAfter =
52、TVI_LAST;TCItem.item.mask=TVIF_TEXT|TVIF_PARAM|TVIF_IMAGE|TVIF_SELECTEDIMAGE;/設屏蔽TCItem.item.lParam=0;/序號TCItem.item.iImage=0;/正常圖標TCItem.item.iSelectedImage=0;/選中時圖標TCItem.item.pszText = (LPTSTR)(LPCTSTR)strTypeName;HTREEITEM hSectionItem = pCtrl->InsertItem(&TCItem);/pCtrl->SortChildren(
53、TVI_ROOT);return hSectionItem;HTREEITEM CLeftTreeView:AddRoomToTree(HTREEITEM hTypeItem, CString strRoomNum)if(hTypeItem = NULL)return NULL;CTreeCtrl* pCtrl = &GetTreeCtrl();if(pCtrl->ItemHasChildren(hTypeItem)HTREEITEM hItem = pCtrl->GetChildItem(hTypeItem);while(hItem)CString strItemText = pCtrl->GetItemText(hItem);if(strItemText = strRoomNum)return hItem;hItem = pCtrl->GetNextSiblingItem(hItem);TV_INSERTSTRUCT TCItem;/插入數據項數據結構TCItem.hParent = hTypeItem;TCIt
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 今天山西高考語文作文
- 5-7MSI同步計數器2-74161實現模長小于16任意進制計數器
- 湖北省部分重點中學2023~2024學年高二數學下學期五月聯考試卷含答案
- 上海閔行區2025屆高三高考化學試題系列模擬卷(4)含解析
- 吉林省松原市扶余第一中學2025屆高三下學期第二次階段考試數學試題含解析
- 山西醫科大學晉祠學院《中西醫臨床診療技術》2023-2024學年第一學期期末試卷
- 吉林省長春市第151中學2025屆高三下學期線上周語文試題含解析
- 泉州醫學高等專科學校《軟件項目》2023-2024學年第二學期期末試卷
- 上海市華師大二附中2025屆高三下學期第二次診斷性測驗生物試題試卷含解析
- 南通大學《DSP原理與應用》2023-2024學年第二學期期末試卷
- 人員進出潔凈區更衣流程圖
- 林業政策法規考試題庫(含答案)
- 機械、設備掛靠協議范本、合同、合約
- 抗腫瘤藥物過敏反應和過敏性休克
- 管理前沿理論試題總結
- 馬坑鐵礦450-200鉬礦床的地下開采方案設計采礦工程專業畢業設計畢業論
- 高三英語教研組建設(課堂PPT)
- 排水管道非開挖預防性修復可行性研究報告
- 讀書知識競賽試題含答案
- 企業全面戰略管理、年度經營計劃、預算管理、績效管理
- SOP0420201潔凈空調系統清潔消毒預防性維護保養操作規程報告
評論
0/150
提交評論