asp.net酒店服務(wù)管理系統(tǒng)論文_第1頁
asp.net酒店服務(wù)管理系統(tǒng)論文_第2頁
asp.net酒店服務(wù)管理系統(tǒng)論文_第3頁
asp.net酒店服務(wù)管理系統(tǒng)論文_第4頁
asp.net酒店服務(wù)管理系統(tǒng)論文_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGEPAGE酒店服務(wù)管理系統(tǒng)摘要:隨著本國市場經(jīng)濟的迅速發(fā)展和人們生活水平的不斷提高,賓館酒店業(yè)的競爭越來越激烈。要想在競爭中取得優(yōu)勢,就必須在經(jīng)營管理,產(chǎn)品服務(wù)等方面提高服務(wù)管理意識。面對餐飲經(jīng)營中起決定作用的餐飲管理,面對龐大的信息量,就需要一個酒店管理系統(tǒng)來提高酒店理效率。因此,選擇目前應(yīng)用最廣的Windows操作系統(tǒng)作為開發(fā)、測試和運行的平臺,用VisualS2005作為軟件開發(fā)工具,C#作為編程語言,SQLServer2005作為數(shù)據(jù)庫支持,開發(fā)一個方便上手且功能強大的酒店管理系統(tǒng)軟件,以提高酒店管理水平。主要功能包括登記、訂房、退房、結(jié)算、查看客人信息、未結(jié)帳提醒等。關(guān)鍵詞:酒店管理系統(tǒng),C#,數(shù)據(jù)庫設(shè)計,程序設(shè)計TheDesignandRealizationoftheHostelManagementSystemBasedontheC#Abstract:Withtherapiddevelopmentofthedomesticeconomyandtheimprovementofpeople’slifestandard,thecompetitionbetweenhotelindustryisbecomingkeenerandkeener.Itisnecessarytoimprovesinceofserviceandmanagementonmanagement,product,etcinordertogettheadvantageinthecompetition.Facingtheroomadministrationwhichplatsthedecisiveroleontheroommanagementaswellasthelargeinformation,itneedsahotelmanagementsystemtoimproveroommanagementefficiency.Therefore,thebestwaytoimprovethelevelofmanagementistoexploreaconvenientandpowerfulsystematicsoftwareofhotelmanagement.ThatistochoosethewidelyusedWindowsoperationsystemasaplatformofexploration,testandoperation,theVisualS2005asatoolofsoftwaredevelopment,C#asprogrammer-editedlanguage,SQLServer2005asthesupporterofdatabase.It’smainfunctionincludes:registration,roomreservation,settlementofrefunding,roomsituationcheck,touristsinformationcheck,etc.keywords:HostelManagementSystem,C#,databasedesign,programmerdesign目錄前言 1第一章緒論 21.1課題背景 21.2課題研究的目的和意義 21.3課題的主要內(nèi)容 2第二章開發(fā)工具和開發(fā)環(huán)境 32.1SQL語言 32.1.1SQL概述 32.1.2SQL語言的組成 32.2SQLServer2005簡介 32.3C#簡介 42.4ADO數(shù)據(jù)訪問介紹 52.4.1ADO不依賴于連續(xù)的活動連接 52.4.2ADO的優(yōu)點 8第三章系統(tǒng)需求分析及總體設(shè)計 103.1系統(tǒng)功能分析 103.2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 113.2.1系統(tǒng)數(shù)據(jù)流程圖 113.2.2實體關(guān)系圖 123.2.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 14第四章系統(tǒng)詳細設(shè)計與實現(xiàn) 154.1登陸界面 154.2主界面 164.3客戶管理界面 174.4訂房界面 194.5員工信息管理界面 204.6用戶信息管理界面 224.7更改密碼界面 23第五章系統(tǒng)測試 245.1系統(tǒng)測試的目的 245.2系統(tǒng)測試方法 24結(jié)論 25參考文獻 26致謝 27PAGE26前言互聯(lián)網(wǎng)的不斷發(fā)展是推動科技發(fā)展的最直接的動力之一,而在這種趨勢之下,各種管理系統(tǒng)也必須得跟上時代的步伐,新的需求在不斷的產(chǎn)生,管理系統(tǒng)也得跟著需求發(fā)展。對于酒店管理來說,利用先進的管理手段,提高餐飲的管理水平,已是形勢所趨。過去,VisualS主要用于創(chuàng)建有著豐富用戶界面(包括按鈕、列表以及下拉列表框)的應(yīng)用程序。VisualS的編程人員在程序設(shè)計中首次實現(xiàn)完全面向?qū)ο蟮哪芰ΑS捎贑#面向?qū)ο蟮淖吭皆O(shè)計,使它成為廣大編程人員的最理想的選擇之一。酒店管理系統(tǒng)是基于C#編程語言在Microsoft的VisualS平臺下開發(fā)的,運用了SQLServer2005數(shù)據(jù)庫。強大的數(shù)據(jù)庫支持,能完成大量的數(shù)據(jù)處理,使得系統(tǒng)更加穩(wěn)定安全。第一章緒論1.1課題背景隨著本人國市場經(jīng)濟的迅速發(fā)展和人們生活水平的不斷提高,賓館酒店業(yè)的競爭越來越激烈。要想在競爭中取得優(yōu)勢,就必須在經(jīng)營管理,產(chǎn)品服務(wù)等方面提高服務(wù)管理意識。面對餐飲的經(jīng)營起決定作用的是餐飲的管理。如何利用先進的管理手段,提高餐飲的管理水平,是每一個酒店管理者所面臨的重要課題。簡單的服務(wù)標(biāo)準(zhǔn)已經(jīng)不是制勝的法寶,只有管理做到最細微之處,才能讓顧客體會到酒店服務(wù)的高標(biāo)準(zhǔn),高質(zhì)量,而準(zhǔn)確,快捷,周全往往就是最基本的成功要素。面對信息時代的挑戰(zhàn),利用科技手段提高企業(yè)管理無疑是一條行之有效的途徑。因此采用電腦管理業(yè)務(wù),財務(wù)等諸多環(huán)節(jié)已成為賓館酒店業(yè)快速發(fā)展的先決條件。世界經(jīng)濟已從工業(yè)化社會進入信息化社會,西方發(fā)達國家已經(jīng)進入相當(dāng)發(fā)達的信息化階段,而本國的信息產(chǎn)業(yè)目前尚處于起步階段。信息高速公路和經(jīng)濟信息化,無疑將對人類社會的經(jīng)濟發(fā)展帶來根本性的變化,對社會各行各業(yè)的生產(chǎn)、工作和管理方式帶來深刻的變化,對包括酒店在內(nèi)的許多機構(gòu)無疑是一個嚴(yán)峻的挑戰(zhàn)。1.2課題研究的目的和意義國內(nèi)酒店業(yè)的應(yīng)用系統(tǒng)不同,各家供應(yīng)商的軟件也各不相同。對于一家酒店,如果各部門使用的是不同的平臺、不同的軟件,當(dāng)員工進行軟件操作時,需要學(xué)習(xí)各種軟件,這樣不但使員工的學(xué)習(xí)成本增高,也同時影響酒店的效率。這樣就需要一個方便上手且功能強大的管理軟件能解決這些問題,讓員工迅速上崗,減少成本,增加收益。因此,制作一個酒店管理系統(tǒng)來解決這些問題已是勢在必行。針對酒店的具體業(yè)務(wù),主要是酒店理,為用戶提供迅速高效的服務(wù),減免手工處理煩瑣以及誤差,并及時準(zhǔn)確的反映酒店的工作狀況,從而提高酒店管理的服務(wù)質(zhì)量,使酒店獲得更好的經(jīng)濟效益。1.3課題的主要內(nèi)容本酒店管理系統(tǒng)數(shù)據(jù)庫選擇的是SQLServer2005,開發(fā)環(huán)境是Microsoft的VisualS,編程語言C#?;舅枷胧前验_發(fā)過程分成:項目計劃、需求分析、詳細設(shè)計、代碼實現(xiàn)、系統(tǒng)測試以及系統(tǒng)維護等進行完成。酒店管理系統(tǒng)的開發(fā)設(shè)計,包括數(shù)據(jù)庫結(jié)構(gòu)設(shè)計及程序設(shè)計。該系統(tǒng)具有登記、訂房、退餐、結(jié)算、查看客人信息等基本功能,能夠用于一般的中小型酒店餐飲管理。要求具備對某一領(lǐng)域熟悉的情況下去尋找相關(guān)資料并通過自學(xué)逐步掌握該門知識的能力。第二章開發(fā)工具和開發(fā)環(huán)境2.1SQL語言SQL是英文StructuredQueryLanguage的縮寫,即結(jié)構(gòu)化查詢語言,它是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,其功能包括查詢、操縱、定義和控制4個方面,是一個通用的功能極強的關(guān)系數(shù)據(jù)庫語言。2.1.1SQL概述SQL語言是1974年由Boyce和Chamberlin提出的,1975年至1979年IBM公司SanJoseResearchLaboratory研制的關(guān)系數(shù)據(jù)庫管理系統(tǒng)原形系統(tǒng)SystemR實現(xiàn)了這種語言,由于它功能豐富,語言簡潔,使用方法靈活,倍受用戶和計算機業(yè)界的青睞,被眾多的計算機公司和軟件公司采用。經(jīng)過多年的發(fā)展,SQL語言已成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。2.1.2SQL語言的組成SQL語言主要由以下幾部分組成:數(shù)據(jù)定義語言DDLDataDefinitionLanguage數(shù)據(jù)操縱語言DMLDataManipulationLanguage數(shù)據(jù)控制語言DCLDataControlLanguage其它語言要素AdditionalLanguageElementsSQL語句數(shù)目種類較多,其主體大約由40條語句組成。2.2SQLServer2005簡介SQLServer是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的。于1988年推出了第一個OS/2版本,在WindowsNT推出后Microsoft與Sybase在SQLServer的開發(fā)上就分道揚鑣了。Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本。Sybase則較專注于SQLServer在UNIX操作系統(tǒng)上的應(yīng)用。MSSQLServer2005是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng)的最新版本。該版本繼承了SQLServer7.0版本的優(yōu)點同時又比它增加了許多更先進的功能,具有使用方便、可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行MicrosoftWindows98的膝上型電腦到運行MicrosoftWindows2005的大型多處理器的服務(wù)器等多種平臺使用。SQLServer是定位在Server上的系統(tǒng),它只負(fù)責(zé)提供和儲存數(shù)據(jù)就像汽車的引擎,它只提供汽車的動力,其它功能由前端設(shè)計工具如FoxPro、Delphi、PowerBuilder、VisualS、VisualS等來處理,因此我們一般稱SQLServer、Oracle、Informix等數(shù)據(jù)庫系統(tǒng)為數(shù)據(jù)庫引擎。2.3C#簡介VisualS2005,是微軟公司推出的可視化編程工具MSDN之一,是目前世界上使用最廣泛的程序開發(fā)工具。它的快捷的開發(fā)速度,簡單易學(xué)的語法,體貼便利的開發(fā)環(huán)境,不愧為一款優(yōu)秀的編程工具,是初學(xué)者的首選。另外C#提供的是可視化的開發(fā)環(huán)境,我們可以象搭積木一樣構(gòu)建出程序的界面,而且C#提供了豐富的控件組,省去了我們自己寫代碼實現(xiàn)這些效果的麻煩,這樣我們就能把更多的精力放在程序功能的實現(xiàn)上,所以用起來方便。在C#中,應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計方法(OOP),把程序和數(shù)據(jù)封裝起來視為一個對象,每個對象都是可視的。C#功能特點如下:1.具有面向?qū)ο蟮目梢暬O(shè)計工具在C#中,應(yīng)用面向?qū)ο蟮某绦蛟O(shè)計方法(OOP),把程序和數(shù)據(jù)封裝起來視為一個對象,每個對象都是可視的。程序員在設(shè)計時只需用現(xiàn)有工具根據(jù)界面設(shè)計要求,直接在屏幕上“畫”出窗口、菜單、按鈕、滾動條等不同類型的對象,并為每個對象設(shè)置屬性。程序員的編程工作僅限于編寫相關(guān)對象要完成的功能程序,因而程序設(shè)計的效率可大大提高。2.事件驅(qū)動的編程機制事件驅(qū)動是非常適合圖形用戶界面的編程方式。在圖形用戶界面的應(yīng)用程序中,是由用戶的動作即事件掌握著程序運行的流向,每個事件都能驅(qū)動一段程序的運行。程序員只要編寫響應(yīng)用戶動作的代碼,而各個動作之間不一定有聯(lián)系。3.提供了易學(xué)易用的應(yīng)用程序集成開發(fā)環(huán)境在C#集成開發(fā)環(huán)境中,用戶可設(shè)計界面、編寫代碼、調(diào)試程序,直至把應(yīng)用程序編譯成可執(zhí)行文件在Windows中運行,使用戶在友好的開發(fā)環(huán)境中工作。4.結(jié)構(gòu)化的程序設(shè)計語言C#具有豐富的數(shù)據(jù)類型和結(jié)構(gòu)化程序結(jié)構(gòu),作為一種程序設(shè)計語言,它還有如下一些特點:(1)強大的數(shù)值和字符串處理功能(2)豐富的圖形指令,可方便地繪制各種圖形(3)提供靜態(tài)和動態(tài)數(shù)組,有利于簡化內(nèi)存的管理(4)過程可遞歸調(diào)用,使程序更為簡練(5)支持隨機文件和順序文件的訪問(6)提供了一個可供應(yīng)用程序調(diào)用的包含多種類型的圖標(biāo)庫(7)具有完善的運行出錯處理5.支持多種數(shù)據(jù)庫系統(tǒng)的訪問利用數(shù)據(jù)控件可訪問的數(shù)據(jù)庫系統(tǒng)有:MicrosoftAccess、Btrieve、DBASE、MicrosfotFoxPro和Paradox等,也可以訪問MicrosoftExcel、Lotus1-2-3等多種電子表格。6.支持動態(tài)數(shù)據(jù)交換(DDE)、動態(tài)鏈接庫(DLL)和對象的鏈接與嵌入(OLE)技術(shù)7.完備的HELP聯(lián)機幫助功能C#程序設(shè)計的概念就是面向?qū)ο蟮母拍?,對象就是?shù)據(jù)(DATA)和代碼(CODE)互相結(jié)合的綜合體。Windows上面的每一個圖標(biāo),包括窗口本身都是對象,如果沒有任何事情發(fā)生,對象處于停頓狀態(tài)。當(dāng)存在外來事件時,程序段執(zhí)行,它的執(zhí)行是由外來事件決定的。因此是“事件”驅(qū)動的。與Windows環(huán)境下的軟件一樣,在C#中,利用幫助菜單和F1功能鍵,用戶可以隨時方便地得到所需要的幫助信息。C#幫助窗口中顯示了有關(guān)的示例代碼,通過復(fù)制、粘貼操作可獲取大量的示例代碼,為用戶的學(xué)習(xí)和使用提供了極大的方便。2.4ADO數(shù)據(jù)訪問介紹使用ADO開發(fā)應(yīng)用程序時,將有操作數(shù)據(jù)的各種要求。在某些情況下,可能只是想在窗體上顯示數(shù)據(jù)。在其他情況下,則可能需要設(shè)計一種方式來與另一個公司共享信息。無論對數(shù)據(jù)進行怎樣的操作,了解ADO中的數(shù)據(jù)結(jié)構(gòu)、主數(shù)據(jù)組件概念和組件組合方式是很有用的。2.4.1ADO不依賴于連續(xù)的活動連接在傳統(tǒng)的客戶端/服務(wù)器應(yīng)用程序中,組件將建立與數(shù)據(jù)庫的連接,并在應(yīng)用程序運行過程中使連接保持打開狀態(tài)。出于各種原因,該方法在許多應(yīng)用程序中是不實用的: 打開的數(shù)據(jù)庫連接占用寶貴的系統(tǒng)資源。在大多數(shù)情況下,數(shù)據(jù)庫只可以維持少量的并發(fā)連接。維持這些連接的系統(tǒng)開銷將降低應(yīng)用程序的總體性能。類似地,需要打開的數(shù)據(jù)庫連接的應(yīng)用程序極難按比例擴展。對于沒有很好地按比例擴展的應(yīng)用程序而言,也許幾個用戶使用它時執(zhí)行效果是可以接受的,但如果有數(shù)百個用戶使用它時其效果也許就不能被接受了。C#Web應(yīng)用程序尤其需要能夠很輕松地進行擴展,因為Web站點的通信量可能會在非常短的時間內(nèi)突增幾個數(shù)量級。 在C#Web應(yīng)用程序中,組件彼此之間本來就是不連接的。瀏覽器從服務(wù)器請求一頁;在服務(wù)器完成處理并發(fā)送該頁后,服務(wù)器即不再與瀏覽器有任何連接,直到下一次請求為止。在這些情況下,維持打開的數(shù)據(jù)庫連接是不可行的,因為沒有辦法知道數(shù)據(jù)使用者(客戶端)是否需要進一步的數(shù)據(jù)訪問。 基于始終連接數(shù)據(jù)的模型可能使得使用連接結(jié)構(gòu)在應(yīng)用程序和組織邊界之間交換數(shù)據(jù)變得困難且不實際。如果兩個組件需要共享相同的數(shù)據(jù),則二者均必須連接,或者必須為這兩個組件設(shè)計一種方式以相互傳遞數(shù)據(jù)。出于所有這些原因,使用ADO進行數(shù)據(jù)訪問是以有節(jié)制使用連接的結(jié)構(gòu)為中心進行設(shè)計的。應(yīng)用程序連接到數(shù)據(jù)庫的時間僅足夠獲取或更新數(shù)據(jù)。因為數(shù)據(jù)庫并未被大部分時間空閑的連接占用,所以它可以為更多用戶提供服務(wù)。使用數(shù)據(jù)命令執(zhí)行數(shù)據(jù)庫交互若要在數(shù)據(jù)庫中執(zhí)行操作,應(yīng)執(zhí)行SQL語句或存儲過程(它包括SQL語句)。使用SQL語句或存儲過程讀寫行并執(zhí)行聚合函數(shù),例如添加或求平均值。使用SQL語句或存儲過程創(chuàng)建或修改表或列、執(zhí)行事務(wù)等。在ADO中,使用數(shù)據(jù)命令打包SQL語句或存儲過程。例如,想要從數(shù)據(jù)庫讀取一組行,則創(chuàng)建一個數(shù)據(jù)命令并用SQLSelect語句的文本或獲取記錄的存儲過程的名稱配置它。如果要獲取這些行,則執(zhí)行以下操作:1. 打開一個連接。2. 按以下順序調(diào)用命令的執(zhí)行方法:a. 執(zhí)行該命令引用的SQL語句或存儲過程。b. 然后關(guān)閉連接。連接保持打開的時間僅足夠執(zhí)行語句或存儲過程。在調(diào)用命令的執(zhí)行方法后,它將返回一個值。更新數(shù)據(jù)庫的命令返回所影響的行數(shù);其他類型的命令返回一個錯誤代碼。如果該命令使用SELECT語句查詢數(shù)據(jù)庫,則它返回一組行。安全說明當(dāng)使用CommandType屬性設(shè)置為Text的數(shù)據(jù)命令時,請對從客戶端發(fā)送過來的信息進行仔細檢查,然后再將它傳遞給數(shù)據(jù)庫。惡意用戶可能會試圖發(fā)送(插入)修改過的或其他SQL語句,以獲得未經(jīng)授權(quán)的訪問或破壞數(shù)據(jù)庫。在將用戶輸入內(nèi)容傳輸?shù)綌?shù)據(jù)庫之前,應(yīng)始終確認(rèn)這些信息是有效的;如果可能的話,始終使用參數(shù)化查詢或存儲過程,這是最佳措施。如果要執(zhí)行多個操作(例如,讀取一些行,然后更新它們),則可以使用多個數(shù)據(jù)命令,每個操作一個命令。每一操作分別執(zhí)行。例如,要讀取多行,應(yīng)打開連接,讀取這些行,然后關(guān)閉該連接。如果要更新數(shù)據(jù),再次打開連接,執(zhí)行更新,然后再次關(guān)閉該連接。數(shù)據(jù)命令可以包括多個參數(shù)(具體而言,參數(shù)對象的集合),使用這些參數(shù)創(chuàng)建類似以下形式的參數(shù)化查詢:Select*FromcustomersWhere(customer_id=@customerid)然后在運行時設(shè)置這些參數(shù)并執(zhí)行命令以返回或更新所需數(shù)據(jù)。數(shù)據(jù)可被緩存到數(shù)據(jù)集中。最常見數(shù)據(jù)任務(wù)是從數(shù)據(jù)庫檢索數(shù)據(jù)并對數(shù)據(jù)進行某些操作:顯示數(shù)據(jù)、處理數(shù)據(jù)或?qū)?shù)據(jù)發(fā)送給另一個組件。經(jīng)常地,應(yīng)用程序需要處理不止一條記錄,而是一組記錄:例如客戶列表或今天的訂單。通常應(yīng)用程序所需的該組記錄來自多個表:我的客戶及其所有訂單;所有名為"Smith"的作者及他們寫的書;以及其他類似的相關(guān)記錄組。獲取了這些記錄后,應(yīng)用程序通常將它們成組使用。例如,應(yīng)用程序可以允許用戶瀏覽名為"Smith"的所有作者,檢查一個Smith的書,然后檢查下一個Smith的書,等等。在許多情況下,每次應(yīng)用程序需要處理下一條記錄時都返回到數(shù)據(jù)庫是不切實際的。(這樣做可能會失去將打開連接的需求降至最低所帶來的許多好處。)因此解決方案就是臨時存儲從數(shù)據(jù)庫檢索的記錄,然后使用該臨時集。這便是數(shù)據(jù)集的概念。數(shù)據(jù)集是從數(shù)據(jù)源檢索的記錄的緩存。它的工作方式如同虛擬的數(shù)據(jù)存儲區(qū):數(shù)據(jù)集包含一個或多個表(這些表基于實際數(shù)據(jù)庫中的表),并且它可以包含有關(guān)這些表之間的關(guān)系和對表可包含數(shù)據(jù)的約束的信息。數(shù)據(jù)集內(nèi)的數(shù)據(jù)通常是數(shù)據(jù)庫中內(nèi)容的非常精簡的版本。但是,可以用與操作實際數(shù)據(jù)十分類似的方式操作數(shù)據(jù)集。這樣操作時,將保持與數(shù)據(jù)庫的不連接狀態(tài),使數(shù)據(jù)庫可以自由執(zhí)行其他任務(wù)。如果經(jīng)常需要更新數(shù)據(jù)庫中的數(shù)據(jù)(盡管不會像從數(shù)據(jù)庫檢索數(shù)據(jù)那么頻繁)??梢栽跀?shù)據(jù)集上執(zhí)行更新操作,并且這些更新可以直接寫到基礎(chǔ)數(shù)據(jù)庫。數(shù)據(jù)集是數(shù)據(jù)的被動容器這一點很重要。若要實際從數(shù)據(jù)庫獲取數(shù)據(jù)和(可選)將數(shù)據(jù)寫回數(shù)據(jù)庫,請使用數(shù)據(jù)適配器。數(shù)據(jù)適配器包含一個或多個數(shù)據(jù)命令,這些命令用于填充數(shù)據(jù)集中的單個表并更新數(shù)據(jù)庫中的相應(yīng)表。(數(shù)據(jù)適配器通常包含四條命令,分別用于選擇、插入、更新和刪除數(shù)據(jù)庫中的行。)因此,每當(dāng)調(diào)用數(shù)據(jù)適配器的Fill方法時,它都可能執(zhí)行SELECTau_id,au_lname,au_fnameFROMauthors之類的SQL語句。因為數(shù)據(jù)集實際上是數(shù)據(jù)庫數(shù)據(jù)的私有副本,所以它不一定反映數(shù)據(jù)庫的當(dāng)前狀態(tài)。如果想要查看其他用戶進行的最新更改,可以通過調(diào)用適當(dāng)?shù)腇ill方法刷新數(shù)據(jù)集。使用數(shù)據(jù)集的一個便利之處是組件可以根據(jù)需要交換數(shù)據(jù)集。例如,中層的某個業(yè)務(wù)對象可以創(chuàng)建和填充一個數(shù)據(jù)集,然后將它發(fā)送給應(yīng)用程序中其他位置處的另一個組件以供處理。該功能意味著組件不必分別查詢數(shù)據(jù)庫。數(shù)據(jù)集獨立于數(shù)據(jù)源盡管數(shù)據(jù)集是作為從數(shù)據(jù)庫獲取的數(shù)據(jù)的緩存,但數(shù)據(jù)集與數(shù)據(jù)庫之間沒有任何實際關(guān)系。數(shù)據(jù)集是容器;它由從數(shù)據(jù)適配器執(zhí)行的SQL命令或存儲過程填充。由于數(shù)據(jù)集不直接綁定到數(shù)據(jù)源,所以它是來自多個源的數(shù)據(jù)的好的集成點。例如,數(shù)據(jù)集內(nèi)的某些數(shù)據(jù)可能來自數(shù)據(jù)庫,而它的其他部分可能來自另一個數(shù)據(jù)庫或電子表格之類的非數(shù)據(jù)庫源。數(shù)據(jù)集內(nèi)的某些數(shù)據(jù)可能來自另一個組件所發(fā)送的流。一旦數(shù)據(jù)在數(shù)據(jù)集內(nèi),則不管它的原始源是什么,都可以使用一致的對象模型對它進行操作。數(shù)據(jù)保持為XML數(shù)據(jù)需要從數(shù)據(jù)存儲區(qū)移動到數(shù)據(jù)集以及從數(shù)據(jù)集移動到各種組件。在ADO中,傳輸數(shù)據(jù)的格式是XML。類似地,如果需要保持?jǐn)?shù)據(jù)(例如保持到文件中),則將其存儲為XML。如果有XML文件,則可以像使用任何數(shù)據(jù)源一樣使用它,并從它創(chuàng)建數(shù)據(jù)集。實際上,在ADO中,XML是數(shù)據(jù)的基本格式。ADO數(shù)據(jù)API自動用數(shù)據(jù)集內(nèi)的信息創(chuàng)建XML文件或流,并將它們發(fā)送給另一個組件。第二個組件可以調(diào)用類似的API將XML讀回數(shù)據(jù)集。2.4.2ADO的與ADO的早期版本和其他數(shù)據(jù)訪問組件相比,ADO提供了若干好處。這些好處分成以下幾個類別:互操作性ADO應(yīng)用程序可以利用XML的靈活性和廣泛接受性。由于XML是用于在網(wǎng)絡(luò)中傳輸數(shù)據(jù)集的格式,因此可以讀取XML格式的任何組件都可以處理數(shù)據(jù)。實際上,接收組件根本不必是ADO組件:傳輸組件可以只是將數(shù)據(jù)集傳輸給其目標(biāo),而不考慮接收組件的實現(xiàn)方式。目標(biāo)組件可以是VisualStudio應(yīng)用程序或無論用什么工具實現(xiàn)的其他任何應(yīng)用程序。唯一的要求是接收組件能夠讀取XML。作為一項工業(yè)標(biāo)準(zhǔn),XML正是在謹(jǐn)記這種互操作性的情況下設(shè)計的??删S護性在已部署系統(tǒng)的生存期中,適度的更改是可能的,實質(zhì)的結(jié)構(gòu)更改十分困難。因為在事件的自然過程中,這種實質(zhì)上的更改會變得很有必要。例如,當(dāng)已部署的應(yīng)用程序越來越受用戶歡迎時,增加的性能負(fù)荷可能需要進行結(jié)構(gòu)更改。隨著已部署的應(yīng)用程序服務(wù)器上的性能負(fù)荷的增長,系統(tǒng)資源會變得不足,并且響應(yīng)時間或吞吐量會受到影響。面對該問題,軟件設(shè)計者可以選擇將服務(wù)器的業(yè)務(wù)邏輯處理和用戶界面處理劃分到單獨計算機上的單獨層上。實際上,應(yīng)用程序服務(wù)器層將替換為兩層,緩解了系統(tǒng)資源缺乏。該問題并不是要設(shè)計三層應(yīng)用程序。相反,它是要在應(yīng)用程序部署以后增加層數(shù)。如果原始應(yīng)用程序使用數(shù)據(jù)集以ADO實現(xiàn),則該轉(zhuǎn)換很容易進行。當(dāng)用兩層替換單個層時,將安排這兩層交換信息。由于這些層可以通過XML格式的數(shù)據(jù)集傳輸數(shù)據(jù),所以通信相對較容易??删幊绦訴isualStudio中的ADO數(shù)據(jù)組件以不同方式封裝數(shù)據(jù)訪問功能,加快編程速度并減少犯錯幾率。例如,數(shù)據(jù)命令提取生成和執(zhí)行SQL語句或存儲過程的任務(wù)。同樣,由這些工具生成的ADO數(shù)據(jù)類導(dǎo)致類型化數(shù)據(jù)集。使可以通過已聲明類型的編程訪問數(shù)據(jù)。性能對于不連接的應(yīng)用程序,ADO數(shù)據(jù)庫提供的性能優(yōu)于ADO不連接的記錄集。當(dāng)使用COM封送在層間傳輸不連接的記錄集時,會因?qū)⒂涗浖瘍?nèi)的值轉(zhuǎn)換為COM可識別的數(shù)據(jù)類型而導(dǎo)致顯著的處理開銷。在ADO中,這種數(shù)據(jù)類型轉(zhuǎn)換則沒有必要??缮炜s性因為Web可以極大增加對數(shù)據(jù)的需求,所以可縮放性變得很關(guān)鍵。Internet應(yīng)用程序具有無限的潛在用戶供應(yīng)。盡管應(yīng)用程序可以很好地為十幾個用戶服務(wù),但它可能不能向成百上千個(或幾百萬個)用戶提供同樣好的服務(wù)。使用數(shù)據(jù)庫鎖和數(shù)據(jù)庫連接之類資源的應(yīng)用程序不能很好地為大量用戶服務(wù),因為用戶對這些有限資源的需求最終將超出其供應(yīng)。ADO通過鼓勵程序員節(jié)省有限資源來實現(xiàn)可縮放性。由于所有ADO應(yīng)用程序都使用對數(shù)據(jù)的不連接訪問,因此它不會在較長持續(xù)時間內(nèi)保留數(shù)據(jù)庫鎖或活動數(shù)據(jù)庫連接。

第三章系統(tǒng)需求分析及總體設(shè)計3.1系統(tǒng)功能分析系統(tǒng)開發(fā)的總體任務(wù)是實現(xiàn)酒店餐飲各種信息的系統(tǒng)化、規(guī)范化和自動化。本系統(tǒng)可以分為兩個模塊:管理員模塊、營業(yè)員模塊管理員模塊:其使用者為管理員,它的功能可以包括以下幾個方面:添加系統(tǒng)用戶,:包括員工編號,員工姓名,員工性別,員工身份證號碼,員工年齡,用戶名,密碼,角色,角色描述查看開房記錄報表ID,房間號,客人姓名,定金,開房日期,開房時間,退房日期,退房時間,相關(guān)描述查看酒店收入報表,ID,消費類型,消費金額,結(jié)賬時間,結(jié)賬描述公告信息管理公告ID,發(fā)布人,標(biāo)題,發(fā)布時間,公告內(nèi)容員工信息發(fā)放管理支付單ID員工編號支付時間支付金額支付記錄管理員模塊如圖2所示:管理員模塊管理員模塊添加用戶開房記錄報表酒店收入報表公告信息管理員工發(fā)放工資管理圖2.管理員模塊營業(yè)員模塊:其使用者為酒店的前臺營業(yè)員,它的功能主要有以下幾方面:修改賬戶密碼,開設(shè)房間,客人姓名,身份證號,客人性別,電話號碼,客人地址,房間類型,房間編號,預(yù)付定金,詳細備注開房信息管理,房間號,客人編號,所付定金,開房日期,開房時間,相關(guān)信息描述房間信息管理,房間號,床位數(shù),容納客人數(shù),房間類型,房間狀態(tài)(入住或者空閑),房間描述房間類型管理,類型ID,房間類型名稱,房價,是否加床,加床價格,房間描述客人信息管理,客人ID,身份證號,客人姓名,性別,電話號碼,居住地址營業(yè)員模塊如圖3所示:營業(yè)員模塊營業(yè)員模塊修改賬戶密碼開設(shè)房間開房信息管理房間信息管理房間類型管理客人信息管理圖3.營業(yè)員模塊圖3-1程序主要結(jié)構(gòu)圖各子界面設(shè)計:登記界面:客人登記基本信息:姓名、性別、房號、類型、證件類型、證件號碼、押金、人數(shù)、入住時間。訂房界面:基本和登記界面相同,增加了預(yù)定日期項??蛇M行“取消預(yù)定”,“預(yù)定入住”等操作。查看員工信息信息界面:可查看用餐信息、菜單、價格以等,并且可以根據(jù)需要增添新的用餐。修改密碼界面:用于修改管理員密碼。3.2數(shù)據(jù)庫結(jié)構(gòu)設(shè)計3.2.1系統(tǒng)數(shù)據(jù)流程圖客戶登記客戶登記基本信息輸入住房登記顧客信息返回住房信息選定擇結(jié)算信息住房信息返回基本信息輸入圖3-2酒店管理信息系統(tǒng)數(shù)據(jù)流程圖3.2.2實體關(guān)系圖本系統(tǒng)設(shè)計規(guī)劃出的實體有:管理員信息實體、訂房記錄信息實體、員工信息信息實體、客戶信息實體。各個實體具體的描述E-R圖如下:管理員信息實體管理員信息實體用戶名密碼注冊時間圖3-3管理員信息實體E-R圖營業(yè)員營業(yè)員信息實體姓名密碼添加時間編號性別角色圖3-4訂房記錄信息實體E-R圖房間類型實體房間類型實體編號類型ID添加時間圖3-5員工信息信息實體E-R圖房間信息實體房間信息實體房間編號價格圖片添加時間房間類型是否已租結(jié)算金額結(jié)算金額圖3-6客戶信息實體E-R圖登記信息管理登記信息管理登記訂房信息管理訂房訂房時間結(jié)算房間信息管理圖3-7實體之間關(guān)系E-R圖3.2.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計系統(tǒng)設(shè)計了三個數(shù)據(jù)表即“管理員”、“用餐表”、“顧客信息表”。其各個表格的設(shè)計如下:表3-1管理員表列名數(shù)據(jù)類型大小可否為空說明IDint4NOTNULL自增ID主鍵UsernameVarchar50NOTNULL用戶名PwdVarchar50NULL密碼Cxvarchar50NOTNULL權(quán)限addtimedateTime8NULL注冊時間表3-2員工表列名數(shù)據(jù)類型大小可否為空說明IDint4NOTNULL自增ID主鍵bianhaoVarchar50NOTNULL編號XingmingVarchar50NULL姓名Xingbievarchar50NOTNULL性別Shenfenzhengvarchar50NULL注冊時間Nianingvarchar50NULL年齡Yonghumingvarchar50NOTNULL用戶名Mimavarchar50NOTNULL密碼Jiaosevarchar50NULL角色Jiaosemiaoshuvarchar50NULL角色說明addtimedatetime8NOTNULL添加時間表3-3房間類型表列名數(shù)據(jù)類型大小可否為空說明IDint4NOTNULL自增ID主鍵bianhaoVarchar50NOTNULL編號leixingVarchar50NULL類型addtimedateTime8NULL添加時間表3-4房間信息表列名數(shù)據(jù)類型大小可否為空說明IDint4NOTNULL自增ID主鍵bianhaoVarchar50NOTNULL編號leixingVarchar50NULL類型jiagevarchar50NOTNULL價格tupianvarchar50NULL圖片shifouyizuvarchar50NULL是否已租addtimedatetime8NOTNULL添加時間表3-4員工信息信息表列名數(shù)據(jù)類型大小可否為空說明IDint4NOTNULL自增ID主鍵ygbhVarchar50NOTNULL員工編號ygxmVarchar50NULL員工姓名nianint4NOTNULL年份yueint4NULL月份gzfloat50NULL應(yīng)發(fā)信息sdsfloat8NULL所得稅Gz2float8NULL實發(fā)信息表3-4客人信息表列名數(shù)據(jù)類型大小可否為空說明IDint4NOTNULL自增ID主鍵kerenIDVarchar50NOTNULL客人IDxingmingVarchar50NULL姓名xingbieVarchar50NOTNULL性別dianhuaVarchar50NULL電話dizhiVarchar50NULL地址addtimeaddtime8NULL添加時間表3-4客人入住信息表列名數(shù)據(jù)類型大小可否為空說明IDint4NOTNULL自增ID主鍵kerenIDVarchar50NOTNULL客人IDfangjianbianhaoVarchar50NULL房間編號ruzhushijianVarchar50NOTNULL入住時間ruzhutianshuVarchar50NULL入住天數(shù)zongeVarchar50NULL總額yajinVarchar50NULL押金addtimeaddtime8NULL添加時間istfVarchar50NULL是否退房第四章系統(tǒng)詳細設(shè)計與實現(xiàn)4.1登陸界面圖4-1該界面是本系統(tǒng)運行的第一個界面,其他所有操作均必需在本界面之后進行。也是安全性最高的一個模塊。權(quán)限分為管理員和營業(yè)員兩種,登陸后的界面相似,功能模塊各不相同。其實現(xiàn)的主要代碼如下所示:if(TextBox2.Text.ToString().Trim()==""||TextBox1.Text.ToString().Trim()==""){Response.Write("<script>javascript:alert('請輸入完整');history.back();</script>");Response.End();}stringsql;if(RadioButton1.Checked){sql="select*fromalluserswhereusername='"+TextBox2.Text.ToString().Trim()+"'andpwd='"+TextBox1.Text.ToString().Trim()+"'";}else{sql="select*fromyuangongwhereyonghuming='"+TextBox2.Text.ToString().Trim()+"'andmima='"+TextBox1.Text.ToString().Trim()+"'";}DataSetresult=newDataSet();result=newClass1().hsggetdata(sql);//result=newTestOnline.Class1().hsggetdata(sql);if(result!=null){if(result.Tables[0].Rows.Count>0){Session["username"]=TextBox2.Text.ToString().Trim();if(RadioButton1.Checked){Session["role"]=result.Tables[0].Rows[0]["cx"].ToString().Trim();}else{Session["role"]="員工";}Response.Redirect("manage.htm");}else{Response.Write("<script>javascript:alert('對不起,用戶名或密碼不正確!');</script>");}}else{Response.Write("<script>javascript:alert('對不起,系統(tǒng)錯誤,請不要越權(quán)操作!');</script>");}4.2主界面圖4-3主界面頁面名字為manage.htm,它是一個框架結(jié)構(gòu),包括了上左右三部分。主界面設(shè)有各子界面的操作入口,包括管理員管理、員工信息管理,員工信息信息管理、房間類型管理,房間信息管理及個人密碼管理等。界面清爽大方,操作簡約明了。4.3房間管理界面圖4-4intokerenxinxi(kerenID,shenfenzhenghao,xingming,xingbie,dianhua,dizhi)values('"+kerenID.Text.ToString().Trim()+"','"+shenfenzhenghao.Text.ToString().Trim()+"','"+xingming.Text.ToString().Trim()+"','"+ngender+"','"+dianhua.Text.ToString().Trim()+"','"+dizhi.Text.ToString().Trim()+"')";intresult;result=newClass1().hsgexucute(sql);if(result==1){Response.Write("<script>javascript:alert('添加成功');</script>");}else{Response.Write("<script>javascript:alert('系統(tǒng)錯誤,請檢查數(shù)據(jù)庫的連?);</script>");}此圖為管理客戶信息的界面,可以上界面上方進行關(guān)鍵字查詢,再從左側(cè)所列的所有符合條件的信息中選取適合的信息,再在右側(cè)進行相關(guān)的調(diào)閱修改功能。界面還提供添加客戶及刪除客戶信息的功能。實現(xiàn)本模塊功能的主要代碼如下:protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){stringsql;sql="select*fromkerenxinxiorderbyiddesc";getdata(sql);}}privatevoidgetdata(stringsql){DataSetresult=newDataSet();result=newClass1().hsggetdata(sql);if(result!=null){if(result.Tables[0].Rows.Count>0){DataGrid1.DataSource=result.Tables[0];DataGrid1.DataBind();Label1.Text="以上數(shù)據(jù)中共"+result.Tables[0].Rows.Count;}else{DataGrid1.DataSource=null;DataGrid1.DataBind();}}}protectedvoidButton1_Click(objectsender,EventArgse){stringsql;sql="select*fromkerenxinxiwhere1=1";if(bh.Text.ToString().Trim()!=""){sql=sql+"andkerenIDlike'%"+bh.Text.ToString().Trim()+"%'";}if(mc.Text.ToString().Trim()!=""){sql=sql+"andxingminglike'%"+mc.Text.ToString().Trim()+"%'";}sql=sql+"orderbyiddesc";getdata(sql);}4.4客戶入住登記界面圖4-6此界面為客戶選擇員工信息的界面,界面很簡潔。界面上方是用戶名的選擇,下方分為兩邊,左側(cè)顯示所有員工信息,右側(cè)顯示已選菜單,中間用兩個方向相反的箭頭,表示選擇或放棄員工信息,操作簡單。實現(xiàn)本模塊功能的主要代碼如下:protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){stringsql;sql="selectkerenIDfromkerenxinxiorderbyiddesc";getdata(sql);sql="selectbianhaofromfangjianorderbyiddesc";getdata2(sql);}}privatevoidgetdata(stringsql){DataSetresult=newDataSet();result=newClass1().hsggetdata(sql);if(result!=null){if(result.Tables[0].Rows.Count>0){inti=0;for(i=0;i<result.Tables[0].Rows.Count;i++){kerenID.Items.Add(result.Tables[0].Rows[i][0].ToString().Trim());}}}}privatevoidgetdata2(stringsql){DataSetresult=newDataSet();result=newClass1().hsggetdata(sql);if(result!=null){if(result.Tables[0].Rows.Count>0){inti=0;for(i=0;i<result.Tables[0].Rows.Count;i++){fangjianbianhao.Items.Add(result.Tables[0].Rows[i][0].ToString().Trim());}}}}protectedvoidButton1_Click(objectsender,EventArgse){stringsql;sql="insertintokehuruzhu(kerenID,fangjianbianhao,ruzhushijian,ruzhutianshu,zonge,yajin)values('"+kerenID.Text.ToString().Trim()+"','"+fangjianbianhao.Text.ToString().Trim()+"','"+ruzhushijian.Text.ToString().Trim()+"','"+ruzhutianshu.Text.ToString().Trim()+"','"+zonge.Text.ToString().Trim()+"','"+yajin.Text.ToString().Trim()+"')";intresult;result=newClass1().hsgexucute(sql);if(result==1){Response.Write("<script>javascript:alert('添加成功');</script>");}else{Response.Write("<script>javascript:alert('系統(tǒng)錯誤,請檢查數(shù)據(jù)庫的連?);</script>");}}圖4-7圖4-7是客戶入住查詢界面,是訂房的反操作。界面的設(shè)計風(fēng)格承襲了系統(tǒng)設(shè)計的統(tǒng)一風(fēng)格:簡約、明了。界面可分為三部分:最上方為客戶信息查詢模塊,當(dāng)查詢到具體用戶時,系統(tǒng)在中間的版塊顯示該用戶所訂的所有員工信息信息,此時可選擇其中需要退訂的房間,并點擊右方的退房按鈕,即可完成退房操作。4.5員工管理界面圖4-8添加員工信息界面。設(shè)計十分簡約,而且考慮到信息輸入及管理的問題,所以將需要輸入的信息設(shè)置得十分簡單,僅需四個,而且其中“年月”一欄還用下拉菜單選擇。此窗體的界面與客戶信息管理界面相仿,且操作方式亦十分相似,只是針對的對象及需要操作的數(shù)據(jù)有所不同,由于篇幅關(guān)系,不一一詳細說明。第五章系統(tǒng)測試5.1系統(tǒng)測試的目的

溫馨提示

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

評論

0/150

提交評論