版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
./摘要隨著傳統(tǒng)的購物方式正在向網(wǎng)絡(luò)化發(fā)展,為了學(xué)校食堂業(yè)務(wù)水平和效率,實現(xiàn)比傳統(tǒng)就餐方式更有效的就餐,訂餐系統(tǒng)因運而生。通過對訂餐流程和業(yè)務(wù)進行全面考察分析,結(jié)合目前最先進的軟件開發(fā)技術(shù),實現(xiàn)了訂餐的網(wǎng)絡(luò)化管理。本文在介紹C#和ASP.NET相關(guān)技術(shù)和國外發(fā)展現(xiàn)狀的基礎(chǔ)上,系統(tǒng)采用C/S結(jié)構(gòu),客戶端與客戶端以及客戶端與服務(wù)器端之間通過Socket傳送消息,采用多線程、多任務(wù)的設(shè)計思想,開發(fā)出性能穩(wěn)定,功能全面的服務(wù)器,并完整的實現(xiàn)系統(tǒng)的功能。本文給出了訂餐系統(tǒng)在國外的現(xiàn)狀,針對現(xiàn)狀做出需求分析,并介紹了一些開發(fā)系統(tǒng)所用到的開發(fā)語言、開發(fā)工具和一些技術(shù),然后詳細(xì)分析,給出概要設(shè)計,最后展示出具體實現(xiàn)和測試結(jié)果。本系統(tǒng)分為客戶端和服務(wù)器端。在客戶端系統(tǒng)能為顧客提供瀏覽菜品介紹、點菜訂餐及評分、管理個人基本信息、向管理員投訴和留言等功能;在服務(wù)器端,管理員通過主界面直接管理服務(wù)器,通過服務(wù)器主界面提供的功能管理入口進入各功能管理界面,包括管理顧客信息、管理菜單信息、管理訂單信息、管理管理員信息等界面。本系統(tǒng)采用模塊化設(shè)計方法,方便顧客的使用,同時便于管理員的管理,提高了學(xué)校食堂的工作效率,優(yōu)化了學(xué)校食堂的管理。該系統(tǒng)適合在大學(xué)食堂中推廣使用,它能夠優(yōu)化就餐業(yè)務(wù)流程,實現(xiàn)餐廳價值大化,同時又使成本最低化,并最終提高學(xué)校食堂網(wǎng)絡(luò)化管理水平。關(guān)鍵字:網(wǎng)上訂餐;C#;ASP.NET;C/S;多線程.目錄摘要1目錄11概述11.1國外訂餐系統(tǒng)的現(xiàn)狀介紹11.2C#語言2了解C#的發(fā)展歷史21.2.2C#語言的特點32系統(tǒng)開發(fā)工具與網(wǎng)絡(luò)技術(shù)32.1開發(fā)工具32.2開發(fā)環(huán)境32.3TCP/IP及Socket42.3.1TCP/IP協(xié)議常識42.3.2Socket的簡介63學(xué)校食堂訂餐系統(tǒng)的系統(tǒng)設(shè)計83.1課題來源及概述83.2需求分析9可行性分析93.2.2系統(tǒng)性能需求103.3訂餐系統(tǒng)分析與程序設(shè)計11訂餐程序的總體設(shè)計要點11具體系統(tǒng)功能實現(xiàn)123.3.3數(shù)據(jù)流圖133.4數(shù)據(jù)庫的設(shè)計14數(shù)據(jù)庫需求14數(shù)據(jù)庫詳細(xì)設(shè)計154概要設(shè)計174.1系統(tǒng)實現(xiàn)原理174.2各模塊詳細(xì)結(jié)構(gòu)功能18服務(wù)器端結(jié)構(gòu)184.2.2客戶端結(jié)構(gòu)184.3系統(tǒng)的設(shè)計過程19客戶端19服務(wù)器205學(xué)校食堂訂餐系統(tǒng)的具體實現(xiàn)及測試215.1系統(tǒng)用戶界面設(shè)計215.2客戶端主界面215.3服務(wù)器主界面24總結(jié)27致28參考文獻29附錄30.1概述1.1國外訂餐系統(tǒng)的現(xiàn)狀介紹近年來,我國餐飲業(yè)快速發(fā)展,餐飲管理信息系統(tǒng)是傳統(tǒng)餐飲服務(wù)業(yè)與計算機信息管理相結(jié)合的成果,它能有效避免手工管理中的不便,實現(xiàn)管理方式的升級。預(yù)計,到20XX我國餐飲業(yè)零售額將達到2萬億元,基于良好的發(fā)展空間,餐飲行業(yè)對自身提供服務(wù)的質(zhì)量和能力也有了更高的要求。在快速發(fā)展的同時,多數(shù)餐飲業(yè)在同常經(jīng)營管理中仍普遍采用手工管理方式,整體科技含量低。隨著餐飲店規(guī)模的不斷擴大,手工管理在工作效率、人員成本、提供決策信息方面都已經(jīng)難以適應(yīng)現(xiàn)代化經(jīng)營管理的要求,嚴(yán)重制約了整個餐飲業(yè)的規(guī)模化發(fā)展和整體服務(wù)水平的提升。國外很早就開始在餐飲業(yè)采用計算機進行信息管理,隨著計算機的飛速發(fā)展,經(jīng)過幾十年的開發(fā)及應(yīng)用,已經(jīng)非常成熟。國酒店業(yè)在80年代隨著國外酒店管理方式的引進,開始應(yīng)用計算機,主要是一些高星級的賓館,軟件主要采用國外的系統(tǒng)。隨著中國對外的不斷開放,餐飲管理信息系統(tǒng)正在越來越多的被國餐飲企業(yè)應(yīng)用于餐飲管理領(lǐng)域。餐飲管理系統(tǒng)正因此而越來越受到重視。餐飲企業(yè)只有通過不斷的技術(shù)手段革新和管理制度上的創(chuàng)新,才能始終贏得顧客的信任,才能長久維持顧客的忠誠。這樣,餐飲企業(yè)的經(jīng)營活動就會呈現(xiàn)出在保證服務(wù)質(zhì)量的同時大幅度降低成本的局面,或者是在稍許增加成本的情況下大幅度增加收益的狀況。也就是說,采用先進的科技手段,使餐飲企業(yè)營銷策略的選擇性增強,具有了更加靈活的銷售手段??梢?在餐飲企業(yè)中實施信息化管理是必要的。1.2C#語言了解C#的發(fā)展歷史C#<讀做"Csharp",中文譯音暫時沒有.專業(yè)人士一般讀"Csharp",很多非專業(yè)一般讀"C井"。它是微軟公司在20XX7月發(fā)布的一種全新且簡單、安全、面向?qū)ο蟮某绦蛟O(shè)計語言,是專門為.NET的應(yīng)用而開發(fā)的語言。它吸收了C++、VisualBasic、Delphi、Java等語言的優(yōu)點,體現(xiàn)了當(dāng)今最新的程序設(shè)計技術(shù)的功能和精華。C#繼承了C語言的語法風(fēng)格,同時又繼承了C++的面向?qū)ο筇匦?并且C#成為ECMA與ISO標(biāo)準(zhǔn)規(guī)。不同的是,C#的對象模型已經(jīng)面向Internet進行了重新設(shè)計,使用的是.NET框架的類庫;C#不再提供對指針類型的支持,使得程序不能隨便訪問存地址空間,從而更加健壯;C#不再支持多重繼承,避免了以往類層次結(jié)構(gòu)中由于多重繼承帶來的可怕后果。.NET框架為C#提供了一個強大的、易用的、邏輯結(jié)構(gòu)一致的程序設(shè)計環(huán)境。同時,公共語言運行時〔CommonLanguageRuntime為C#程序語言提供了一個托管的運行時環(huán)境,使程序比以往更加穩(wěn)定、安全。1.2.2C#語言的特點〔1語言簡潔?!?保留了C++的強大功能?!?快速應(yīng)用開發(fā)功能?!?語言的自由性?!?強大的Web服務(wù)器控件?!?支持跨平臺?!?與XML相融合。2系統(tǒng)開發(fā)工具與網(wǎng)絡(luò)技術(shù)2.1開發(fā)工具基于C#聊天系統(tǒng)的設(shè)計主要運用C#語言、ASP.NET技術(shù)和Socket類結(jié)合而開發(fā)。其開發(fā)的主要環(huán)境包括:服務(wù)器端:〔Windows平臺首先應(yīng)有VisualStudio開發(fā)工具,建議采用VisualStudio2005及其以上版本,本系統(tǒng)開發(fā)工具為VisualStudio2005;另外,需要安裝SQLSever數(shù)據(jù)庫,建議采用SQLSever2005及其以上版本,本系統(tǒng)采用SQLSever2005;客戶端:應(yīng)有VisualStudio開發(fā)工具,建議采用VisualStudio2005及其以上版本,本系統(tǒng)開發(fā)工具為VisualStudio2005;2.2開發(fā)環(huán)境本系統(tǒng)運行環(huán)境所需用到的環(huán)境為:
硬件配置:中央處理器〔CPU:AMDⅡx2240的處理器;硬
盤:40GB以上硬盤;
存:512DDR存;顯示器:17寸顯示器等;顯
卡:128M顯存顯卡軟件環(huán)境:WINDOWSXP、MicrosoftVisualStudio2005、SQLServer2005等2.3TCP/IP及SocketTCP/IP協(xié)議常識TCP/IP〔TransmissionControlProtocol/InternetProtocol是傳輸控制協(xié)議/網(wǎng)際協(xié)議的縮寫,TCP/IP是當(dāng)今網(wǎng)絡(luò)互聯(lián)的核心協(xié)議。TCP/IP協(xié)議的體系結(jié)構(gòu)共有四個層次,即應(yīng)用層、傳輸層、網(wǎng)絡(luò)互聯(lián)層和網(wǎng)絡(luò)接口層。IP協(xié)議的作用:第一,它是網(wǎng)絡(luò)層的協(xié)議,提供互聯(lián)網(wǎng)上數(shù)據(jù)傳輸?shù)慕y(tǒng)一格式。第二,提供不可靠的無連接的服務(wù)。第三,定義了互聯(lián)網(wǎng)上的傳輸數(shù)據(jù)的基本單元,提供了供路由選擇的信息,沒有差錯校驗和處理的機制。TCP協(xié)議的功能:差錯控制——可靠性、面向連接、分段〔Segment、端口號。TCP是傳輸控制協(xié)議,是面向連接的提供了一種可靠的傳輸服務(wù),它用三次握手和滑動窗口機制來保證傳輸?shù)目煽啃?及進行流量控制。<1>TCP/IP協(xié)議具有以下特點:1>協(xié)議標(biāo)準(zhǔn)具有開放性,其獨立于特定的計算機硬件及操作系統(tǒng),可以免費使用。2>統(tǒng)一分配網(wǎng)絡(luò)地址,使得每個TCP/IP設(shè)備在網(wǎng)絡(luò)中都具有唯一的IP地址。3>實現(xiàn)了高層協(xié)議的標(biāo)準(zhǔn)化,能為用戶提供多種可靠的服務(wù)。<2>TCP/IP協(xié)議進行傳輸數(shù)據(jù)傳輸?shù)倪^程:在基于TCP/IP協(xié)議的網(wǎng)絡(luò)中,套接字<Socket>是通信的基石,是網(wǎng)絡(luò)通信的基本操作單元,應(yīng)用程序為了傳輸數(shù)據(jù)會調(diào)用TCP,將數(shù)據(jù)和對應(yīng)的參數(shù)傳給TCP,將TCP數(shù)據(jù)包封裝在IP包,通過網(wǎng)絡(luò)送給目的TCP。接收方TCP在接收到數(shù)據(jù)后通知上層應(yīng)用程序,TCP將保證接收數(shù)據(jù)的正確性。在實現(xiàn)TCP的主機上,TCP可以被看成是一個模塊,和文件系統(tǒng)區(qū)別不大,TCP也可以調(diào)用一些操作系統(tǒng)的功能,TCP不直接和網(wǎng)絡(luò)打交道,控制網(wǎng)絡(luò)的任務(wù)由專門的設(shè)備驅(qū)動模塊完成。TCP只是調(diào)用IP接口,向TCP提供所有TCP需要的服務(wù)。<3>端口號:有的時候,一個ip地址不能完整的標(biāo)識一臺服務(wù)器,這是應(yīng)為一臺物理性的計算機同時運行著多個應(yīng)用程序,這就需要我們來區(qū)別同一臺機子上的不同的服務(wù),所以就在傳輸層和應(yīng)用層上設(shè)置接口,就是端口。端口實際是一個16位長的地址,他的圍是0~65535之間,其中0~1023是熟知端口,主要是給提供服務(wù)的應(yīng)用程序使用,這些端口是所有應(yīng)用進程都只道的,1024~65535為一般端口,也稱動態(tài)端口、連接端口,用來隨時分配要求通信的個客戶端應(yīng)用程序。在數(shù)據(jù)傳輸過程中,各種服務(wù)器不斷的檢測分配給他的端口,一邊發(fā)現(xiàn)要求和他通信的客戶端。Socket的簡介Socket,簡稱套接字,用于實現(xiàn)網(wǎng)絡(luò)上客戶和服務(wù)器之間的連接。也就是說網(wǎng)絡(luò)上兩個或兩個以上雙工方式通信的進程之間總有一個連接,這個連接的端點成為套接字,套接字是在比較低的層次上通信的。具體的說:一個服務(wù)器應(yīng)用程序一般偵聽一個特定的端口等待客戶端的連接請求,當(dāng)一個連接請求到達時,客戶端和服武器端建立一個通信連接,在連接過程中,客戶端被分配一個本地端口與一個socket建立連接,客戶端通過寫socket來通知服務(wù)器,以讀socket中的信息,類似的服務(wù)器也獲得一個本地端口,它需要一個新的端口號來偵聽原始端口上的其他連接請求。服務(wù)器也通過它的本地端口連接一個socket,通過讀寫和客戶端通信。<1>建立Socket連接:在通信開始之前由通信雙方確認(rèn)身份,建立一條專用的虛擬連接通道。<2>數(shù)據(jù)通信:利用虛擬連接通道傳送數(shù)據(jù)信息進行通道。<3>關(guān)閉:通信結(jié)束時,再將所建的虛擬連接拆除。Socket程序的工作過程,如圖2.11所示:圖2.11客戶機/服務(wù)器socket通訊的工作模式圖第一次握手:原主機發(fā)送一個帶有本次連接的序號的請求的一個數(shù)據(jù)幀。第二次握手:目的主機收到請求后,如果同意連接,則發(fā)回一個帶有一個本次連接序號和源端機連接序列號的確認(rèn)。第三此握手:源端機收到含有兩次初始序列號的應(yīng)答后,在向目的主機發(fā)送一個帶有兩次連接的序列號的確認(rèn)。具體的三次握手過程,如下圖2.12所示。圖2.12三次握手由此可見,通過客戶端和服務(wù)器的"三次握手",雙方可以建立暢通的通信信道,在此信道上雙方互相傳輸數(shù)據(jù)。3學(xué)校食堂訂餐系統(tǒng)的系統(tǒng)設(shè)計3.1課題來源及概述隨著我國餐飲行業(yè)的發(fā)展,因餐飲業(yè)門坎較低,中國的大多數(shù)餐飲企業(yè)還是人工管理,尤其是在很多大學(xué)的食堂中,并沒有一套現(xiàn)代管理體制,所以從觀念意識、經(jīng)營思想和管理水平還有待專業(yè)化。隨著人們生活水平的提高,餐飲業(yè)在服務(wù)行業(yè)中占有越來越重要的地位。通過方便快捷的管理,在當(dāng)前餐飲行業(yè)日趨激烈的競爭中脫穎而出,已成為每位餐飲業(yè)經(jīng)營者所追求的目標(biāo)。通過網(wǎng)絡(luò)訂餐初步解決了大學(xué)食堂中就餐不方便的難題。另外,在計算機普及后的今天,中國進入了互聯(lián)網(wǎng)信息時代,生活、學(xué)習(xí)和工作節(jié)奏都隨著信息傳遞速度的加快而變得急促。傳統(tǒng)的購物方式也正在向網(wǎng)絡(luò)方面發(fā)展,出現(xiàn)了"網(wǎng)購"這種越來越受歡迎的新型消費方式。同樣,作為為高校學(xué)生服務(wù)的學(xué)校餐廳不可避免地趨向網(wǎng)絡(luò)化發(fā)展。3.2需求分析可行性分析社會可行性:基于C/S的訂餐系統(tǒng)將傳統(tǒng)的交易流程信息化、數(shù)字化,一方面以信息流代替了面對面的交易,可以大量減少人力、物力,降低了成本;另一方面突破了時間和空間的限制,使得交易活動可以在任何時間、任何地點進行,從而大大提高了效率。經(jīng)濟可行性:由于本系統(tǒng)的主要背景是課程設(shè)計,不注重直接的經(jīng)濟效益和其后的發(fā)展方向,只在注重自身水平和能力的提高,對自身的經(jīng)濟要求并不高,只要有一臺能運行Java軟件的電腦便可,所以不用考慮到經(jīng)濟問題。技術(shù)可行性:本系統(tǒng)的開發(fā)采用C#語言和簡單的網(wǎng)絡(luò)通信協(xié)議,只實現(xiàn)一些基本功能,練習(xí)上課所學(xué)容,因此本系統(tǒng)是一個小型的基于C/S的訂餐系統(tǒng),功能并不是很強大。運行可行性:本系統(tǒng)為一個小型的訂餐系統(tǒng),所耗費的資源不多,現(xiàn)在一般的電腦無論是硬件還是軟件均可滿足作為客戶端的條件,服務(wù)器配置要求也不是太高。因此,本系統(tǒng)在運行上是可行的。綜上所述,本系統(tǒng)的設(shè)計與開發(fā)在技術(shù)上和硬件設(shè)備上的條件都是滿足的,因此,它是可行的。系統(tǒng)性能需求界面友好:為顧客提供良好的登錄界面,方便顧客進行各種操作。實用性:使得學(xué)校學(xué)生及教職工更加方便的就餐,食堂管理人員方便有效地進行作業(yè)管理。技術(shù)先進:產(chǎn)品的系統(tǒng)設(shè)計和開發(fā)應(yīng)緊跟著整個計算機發(fā)展潮流,采用當(dāng)時先進的設(shè)計思想,利用比較新的開發(fā)技術(shù)和開發(fā)工具。使系統(tǒng)能夠無論在功能設(shè)計上,還是在技術(shù)實現(xiàn)上,都處于同行業(yè)的較領(lǐng)先地位。操作簡單:本系統(tǒng)適用于學(xué)校學(xué)生及教職工,只需通過客戶端登錄到系統(tǒng),就可以進行訂餐及其他相關(guān)的操作,因此要求系統(tǒng)的操作盡可能簡單易行。安裝使用簡便:服務(wù)器端的安裝簡潔明了,客戶機無需再裝任何軟件就可以直接登陸,進行相關(guān)操作。適應(yīng)性:應(yīng)該能廣泛應(yīng)用于大學(xué)各大食堂中。系統(tǒng)采用模塊化設(shè)計,顧客可以根據(jù)自己的實際情況進行操作,使系統(tǒng)在不同的硬件環(huán)境下都能得以應(yīng)用。3.3訂餐系統(tǒng)分析與程序設(shè)計訂餐程序的總體設(shè)計要點訂餐系統(tǒng)的正常運行,首先是要有一個完整穩(wěn)定的服務(wù)器端,并且擁有很多個客戶端??头艘哂袑崿F(xiàn)顧客登陸和訂餐功能,在登陸成功后,要顯示出為顧客提供多種功能入口的主界面,顧客可以進行相關(guān)的操作實現(xiàn)管理個人基本信息、查看菜單和訂餐以及發(fā)表留言和投訴等。在顧客上線和下線時要更新服務(wù)器界面顯示的顧客列表,后臺管理顧客、菜單、訂單及顧客留言等信息。因此,在設(shè)計聊天系統(tǒng)的過程中必須要考慮好以下幾個設(shè)計要點:1.實現(xiàn)思想基于C/S的訂餐程序一般都是以服務(wù)器模塊提供遠程訪問,處理訂單為主,顧客通過客戶端模塊登錄系統(tǒng),然后進行相關(guān)操作。因此,程序要在TCP/IP環(huán)境下實現(xiàn)服務(wù)器和客戶端兩個模塊的程序。2.服務(wù)器模塊工作流程服務(wù)器模塊通過socket<>系統(tǒng)調(diào)用創(chuàng)建一個Socket數(shù)組后與指定的本地端口綁定,就可以在端口進行偵聽ServerListen<>。如果有顧客登陸請求則建立一個Socket,將客戶端地址賦給這個Socket。管理員通過服務(wù)器后臺管理顧客、菜單、顧客留言和投訴以及顧客發(fā)送的訂單。3.客戶端模塊工作流程客戶端程序相對簡單,只需要建立一個Socket與服務(wù)器模塊連接,通過這個Socket接收服務(wù)器發(fā)來的允許登陸的信息以及向服務(wù)器發(fā)送訂單信息。顧客登陸成功,進行訂餐或其他相關(guān)操作。具體系統(tǒng)功能實現(xiàn)本系統(tǒng)主要通過客戶端和服務(wù)器端來體現(xiàn)學(xué)校食堂訂餐系統(tǒng)的基本功能。1.服務(wù)器端〔1處理顧客和管理員登錄〔2管理顧客信息〔3處理用戶發(fā)送信息,服務(wù)器監(jiān)控訂餐容〔4處理用戶得到信息〔5處理用戶退出〔6管理菜單信息〔7管理訂單信息〔8管理顧客留言信息和投訴信息2.客戶端〔1顧客登錄界面及結(jié)果〔2顧客登錄后主界面及結(jié)果〔3顧客修改個人基本信息〔4顧客查看菜單信息界面及結(jié)果,同時參與給菜評分〔5顧客訂餐界面及結(jié)果〔6顧客投訴、留言界面及結(jié)果〔7顧客退出界面及結(jié)果數(shù)據(jù)流圖1.頂層數(shù)據(jù)流圖,如圖3.1所示。訂餐顧客訂餐顧客學(xué)校食堂訂餐系統(tǒng)圖3.1頂層數(shù)據(jù)流圖2.一層數(shù)據(jù)流圖,如圖3.2所示。服務(wù)器客戶端服務(wù)器客戶端訂餐顧客管理員數(shù)據(jù)庫返回信息 通信管理服務(wù)器圖3.2一層數(shù)據(jù)流圖3.二層數(shù)據(jù)流圖,如圖3.3所示。訂餐顧客訂餐顧客管理個人信息客戶端查看菜單訂餐留言和投訴服務(wù)器管理員管理訂單管理顧客管理菜單管理留言和投訴數(shù)據(jù)庫日志顧客訂單圖3.3系統(tǒng)二層數(shù)據(jù)流圖3.4數(shù)據(jù)庫的設(shè)計數(shù)據(jù)庫需求本系統(tǒng)采用MicrosoftSQLServer20005數(shù)據(jù)庫,它是典型的關(guān)系型數(shù)據(jù)庫,使用集成的商業(yè)智能<BI>工具提供了企業(yè)級的數(shù)據(jù)管理。MicrosoftSQLServer2005數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,使用戶可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。在學(xué)校食堂訂餐系統(tǒng)中,數(shù)據(jù)庫位于服務(wù)器,顧客可以遠程訪問數(shù)據(jù)庫,管理員在服務(wù)器上管理系統(tǒng)中的信息,于是要求服務(wù)器具有良好的性能和安全可靠的存儲功能。數(shù)據(jù)庫詳細(xì)設(shè)計1.顧客信息表,如表3-1所示。 表3-1顧客信息表名稱描述數(shù)據(jù)類型是否為空主鍵cid用戶名nchar<10>否是cnamenchar<10>是否cpsw密碼nchar<30>是否cmoney賬戶余額float是否ctel聯(lián)系方式nchar<11>是否cphoto照片image是否2.管理員信息表,如表3-2所示。表3-2管理員信息表名稱描述數(shù)據(jù)類型是否為空主鍵aid用戶名nchar<10>否是apsw密碼nchar<30>是否anamenchar<10>是否ctel聯(lián)系方式nchar<11>是否3.菜單信息表,如表3-3所示。表3-3菜單信息表名稱描述數(shù)據(jù)類型是否為空主鍵mnum食物編號nchar<10>否是mname食物名nchar<20>是否mwindow所屬窗口nchar<20>否是mprice價格float是否mdose配料nchar<50>是否mscore所得評分float是否assesscnt已評次數(shù)int是否4.訂單信息表,如表3-4所示。表3-4訂單信息表名稱描述數(shù)據(jù)類型是否為空主鍵ofnum訂單編號int否是mnum食物編號nchar<10>是否mname食物名nchar<20>是否mwindow所屬窗口nchar<20>是否ofcnt份數(shù)int是否cid顧客用戶名nchar<10>是否ctel顧客聯(lián)系方式nchar<11>是否mprice價格float是否oftime訂餐時間datatime是否ofstate狀態(tài)nchar<6>是否5.留言信息和投訴信息表如表3-5所示。表3-4留言信息和投訴信息表名稱描述數(shù)據(jù)類型是否為空主鍵msgnum信息編號int否是cid顧客用戶名nchar<10>是否msgcont容nchar<200>是否msgtime時間datetime是否backmsgcont回復(fù)信息nchar<200>是否msgtype類型nchar<4>是否4概要設(shè)計4.1系統(tǒng)實現(xiàn)原理原理圖,如圖4.1所示。訂餐顧客訂餐顧客訂餐顧客訂餐顧客管理員數(shù)據(jù)庫客戶端服務(wù)器客戶端客戶端……………圖4.1學(xué)校食堂系統(tǒng)工作原理4.2各模塊詳細(xì)結(jié)構(gòu)功能管理員管理顧客信息管理菜單信息管理投訴、留言管理訂單服務(wù)器數(shù)據(jù)庫服務(wù)器端結(jié)構(gòu)管理員管理顧客信息管理菜單信息管理投訴、留言管理訂單服務(wù)器數(shù)據(jù)庫圖4.2服務(wù)器端結(jié)構(gòu)圖查看菜單信息訂餐顧客管理個人信息投訴、留言訂餐客戶端客戶端結(jié)構(gòu)查看菜單信息訂餐顧客管理個人信息投訴、留言訂餐客戶端圖4.3客戶端結(jié)構(gòu)圖4.3系統(tǒng)的設(shè)計過程客戶端1.顧客登陸顧客通過客戶端發(fā)送登錄請求到服務(wù)器端,服務(wù)器啟動用戶登錄管理線程,發(fā)送允許登錄信息,客戶端獲取允許登錄信息,進行遠程訪問數(shù)據(jù)庫,進行登錄驗證,登錄到系統(tǒng)。2.管理個人信息顧客登錄成功后,進入客戶端系統(tǒng)主界面,在菜單欄找到管理個人信息的入口,進行修改個人信息或修改密碼,顧客提交自己修改的信息,遠程訪問數(shù)據(jù)庫進行個人信息的更新。3.查看菜單及訂餐顧客登錄成功后,進入客戶端系統(tǒng)主界面,在菜單欄找到查看菜單及訂餐的入口,顧客進入查看菜單界面,遠程訪問數(shù)據(jù)庫,按照不同〔食堂窗口查看相關(guān)菜單,再查看同時,顧客可以對所查看的某食物下訂單〔即訂購。4.留言和投訴為提高學(xué)校食堂的服務(wù)質(zhì)量,本系統(tǒng)為顧客提供了投訴和留言功能。顧客登錄成功后,進入客戶端系統(tǒng)主界面,在菜單欄找到留言和投訴的入口,進入留言和投訴界面,添加自己的留言或投訴容,提交后,遠程添加到數(shù)據(jù)庫。顧客也可以在留言和投訴界面查看管理員對自己留言和投訴容的回復(fù)。服務(wù)器 1.管理員管理服務(wù)器 管理員通過登錄界面登錄到服務(wù)器,并開啟服務(wù)器不停地接收來在客戶端的請求,在發(fā)生異?;蝈e誤時,管理員及時進程相應(yīng)的處理。 2.服務(wù)器接收客戶端信息 服務(wù)器為客戶端開放某個端口,允許多個客戶端發(fā)送請求。服務(wù)器接收三種客戶端請求信息:一、顧客登錄請求,為每個登錄的顧客建立一個Socket,并用此Socket向客戶端發(fā)送相應(yīng)信息;二、顧客發(fā)送訂單請求,在接收到客戶端發(fā)來的訂單后,對訂單進行處理,存儲到數(shù)據(jù)庫,并向客戶端發(fā)送成功信息;三、顧客退出系統(tǒng)信息,顧客退出系統(tǒng)時,客戶端向服務(wù)器自動發(fā)送退出消息,服務(wù)器接收到顧客的退出消息后,更新在線用戶列表,并刪除與此用戶建立的Socket。 3.管理員管理個人信息 管理員在服務(wù)器上登錄,通過管理個人信息界面和管理管理員界面,后臺管理個人信息及添加新的管理員、刪除管理員。 4.管理員管理顧客信息 管理員通過管理顧客入口,進入管理顧客信息界面,進行添加新顧客用戶、查顧客信息、修改顧客信息、刪除顧客信息等操作,提交后系統(tǒng)對數(shù)據(jù)庫進行更新操作。5.管理員管理菜單信息管理員通過管理菜單入口,進入管理菜單信息界面,進行添加新菜單、查菜單信息、修改菜單信息、刪除菜單信息操作,提交后系統(tǒng)對數(shù)據(jù)庫進行更新操作。6.管理員管理顧客留言和投訴管理員通過管理管理顧客留言和投訴入口,進入管理管理顧客留言和投訴信息界面,進行相關(guān)操作,提交后系統(tǒng)對數(shù)據(jù)庫進行更新操作。5學(xué)校食堂訂餐系統(tǒng)的具體實現(xiàn)及測試5.1系統(tǒng)用戶界面設(shè)計界面是人機交互的窗口,界面接收用戶的輸入信息、執(zhí)行操作,并輸出執(zhí)行的結(jié)果。良好的用戶界面能夠提升用戶的工作效率,方便用戶使用,給用戶留下好的印象,使系統(tǒng)得到更好的聲譽。根據(jù)用例可以制定出系統(tǒng)界面,主要由提供各種操作入口的客戶端主界面和服務(wù)器主界面組成,兩個主界面又包括一些相應(yīng)功能的操作界面。5.2客戶端主界面客戶端界面主要包括:登陸界面、主界面、顧客管理個人信息界面、查看菜單及評分和訂餐界面、投訴和留言界面??蛻舳酥饕瓿膳c服務(wù)器的連接、訂單信息傳送和遠程訪問數(shù)據(jù)庫更新或瀏覽相關(guān)信息,為顧客提供良好的人機界面。1.顧客要進入訂餐系統(tǒng)必須先登錄到客戶端,如圖5.1所示。圖5.1顧客登錄界面2.登錄成功后顧客進入客戶端主界面,如圖5.2所示圖5.2客戶端主界面3.在客戶端主界面中,顧客可以根據(jù)自己的需要進行相關(guān)的操作,個人信息管理和安全管理是管理顧客的基本信息和密碼。在個人信息管理中用戶可以查看和修改自己的基本信息,如圖5.3所示為顧客修改個人信息的界面。圖5.3顧客修改個人信息界面4.查看菜單及訂餐入口為顧客提供查看菜單和訂餐的服務(wù),包括按窗口查看菜單、訂餐、查看訂單三個子入口,使顧客訂餐更加方便,顧客在查看菜單的同時可以對選中的菜評分。如圖5.4所示為顧客訂餐界面。圖5.4顧客訂餐界面5.在下服務(wù)為顧客提供投訴和留言功能,使顧客參與到學(xué)校食堂的管理中來,顧客的監(jiān)督可以進一步提高學(xué)校食堂的服務(wù)質(zhì)量,真正做到"顧客就是上帝"的服務(wù)目標(biāo)。圖5.5所示為顧客留言的界面和圖5.5所示為顧客留言的界面。圖5.5顧客留言界面圖5.6投訴回復(fù)界面6.最后,顧客通過"退出系統(tǒng)"入口退出訂餐系統(tǒng),或者直接關(guān)閉訂餐系統(tǒng)。5.3服務(wù)器主界面 服務(wù)器界面主要包括:管理員登錄界面、主界面、管理個人信息及管理員信息界面、管理顧客信息界面、管理菜單信息界面、管理訂單信息界面、管理投訴和留言信息界面。服務(wù)器主要為客戶端提供連接、接收客戶端傳送的信息和管理員對數(shù)據(jù)庫更新或瀏覽操作。1.管理員登錄界面和顧客登陸界面相同,只不過管理員登錄直接訪問數(shù)據(jù)庫。管理員登錄到服務(wù)器主界面,管理服務(wù)器正常運行。如圖5.7所示為服務(wù)器主界面。圖5.7服務(wù)器主界面2.管理員通過管理員權(quán)限入口,可以啟動和關(guān)閉服務(wù)器,以及管理個人信息和添加和刪除管理員信息。服務(wù)器啟動后,服務(wù)器接收客戶端發(fā)來的信息。圖5.8所示為服務(wù)器接收客戶訂單。然后,服務(wù)器對訂單進行處理,存儲到數(shù)據(jù)庫。圖5.8服務(wù)器接收顧客訂單3.管理員通過訂單管理,可以查看、修改和刪除訂單,如圖5.9所示為修改訂單的界面,但系統(tǒng)只允許修改"是否完成"。修改界面同時允許管理員刪除訂單。圖5.9修改訂單4.管理員可以對菜單管理,管理時按照不同食堂窗口來進行管理,基本管理方法有增、刪、查、改,在查看的同時可以修改和刪除。如圖5.10所示為按窗口查看所有菜單。圖5.10查看菜單5.管理員對顧客信息管理,對顧客信息進行增、刪、查、改等操作,在查看的同時可以進行修改和刪除操作。圖5.11所示為刪除顧客信息。圖5.11刪除顧客信息總結(jié)此次基于C#的學(xué)校食堂訂餐系統(tǒng)的設(shè)計與實現(xiàn)的課題設(shè)計,是我對Socket編程的第一次使用,也是目前做過的最大的程序。平時觀察學(xué)校食堂學(xué)生及教職工就餐情況,感覺傳統(tǒng)就餐模式不僅使顧客感到麻煩,而且不便于食堂的管理。因此,自己想要設(shè)計一款學(xué)校食堂訂餐系統(tǒng)。基本C#的學(xué)校食堂訂餐系統(tǒng)的設(shè)計與實現(xiàn)是一款C/S模式的系統(tǒng),對我來說是一個新的領(lǐng)域,憑著探索新知識的熱情和對自己能力的挑戰(zhàn),我選擇了該設(shè)計題目。在這次畢業(yè)設(shè)計中,我盡全力做好每一部分的工作。但由于時間有限,再加上自己的水平不高,而且初次接觸C#編程語言,沒有什么基礎(chǔ),因此,本系統(tǒng)仍存在很多不完善的地方,例如系統(tǒng)反應(yīng)能力不是太快,服務(wù)器處理事物能力相對不完善,顧客訂餐有延遲等等。盡管畢業(yè)設(shè)計到現(xiàn)在已接近尾聲,但是對于上述的缺陷,自己還會不斷對學(xué)校食堂訂餐系統(tǒng)進一步的完善,期望在今后的日子里憑借自身的技術(shù)把系統(tǒng)做成一款深受歡迎并能夠投入使用的訂餐系統(tǒng)。再設(shè)計系統(tǒng)的過程中我花費了大量的時間來重新學(xué)習(xí)C#語言,學(xué)習(xí)相關(guān)的Socket通信機制,瀏覽相關(guān)書籍和論文,畢竟個人能力有限,沒有將系統(tǒng)做到盡善盡美。在今后時間里,我會進一步完善不足之處,并逐步優(yōu)化該系統(tǒng),以提供更完善的功能??傊?通過本次的畢業(yè)設(shè)計,使我平時學(xué)到的理論知識得到了很好地升華,理論與實際得到一次很好的結(jié)合,為我C#課程的學(xué)習(xí)暫時畫上了一個句號,為我今后參加工作打下了堅實的基礎(chǔ),使我受益匪淺。致緊而忙碌的課題設(shè)計就要結(jié)束了,通過這幾周來的忙碌和學(xué)習(xí),由于是首次接觸C#并且是一次一個人完成這項任務(wù),經(jīng)驗的匱乏,難免有許多考慮不周全的地方,但是在完成了系統(tǒng)的功能設(shè)計后,我還是感到由衷的喜悅和自豪。首先,我要感王老師在課程設(shè)計期間給了我悉心的關(guān)懷、教導(dǎo),并且給了我許多關(guān)鍵的、建設(shè)性的建議。本次課題設(shè)計從選題到完成,王老師始終都給予了細(xì)心的指導(dǎo)和不懈的支持,每一步都是在導(dǎo)帥的指導(dǎo)下完成的,本次課題設(shè)計的順利完成,傾注了導(dǎo)師大量的心血。在此對導(dǎo)師給予我學(xué)習(xí)上的幫助表示衷心的感。其次,本次課題設(shè)計最終得以順利完成,也是與我身邊的同學(xué)的幫助分不開的,雖然他們沒有直接參與我的課題設(shè)計,但在開題時也給我提供了不少的意見,提出了一系列可行性的建議,在課題設(shè)計過程中,積極幫助我解決我遇到的問題,在此向他們表示深深的感!最后,謹(jǐn)向百忙之中抽出寶貴時問評審本論文的老師致以最誠摯的意!參考文獻[1]宇軍.C#程序設(shè)計基礎(chǔ)[M].:清華大學(xué),2011.[2]希仁.計算機網(wǎng)絡(luò)[M].:電子工業(yè),2008.1.[3]吳,巖,明廷堂.C#項目案例導(dǎo)航[M].:電子工業(yè),2012.[4]歐立奇.Visualc#.NET案例開發(fā)集錦[M].:電子工業(yè),2009.[5]爽.高校食堂網(wǎng)上訂餐系統(tǒng)[J].電腦知識與技術(shù),2010,06.[6]汪永江.高校餐飲管理信息系統(tǒng)的分析與設(shè)計[D].大學(xué),2011.[7]云,志山,黃日勝等.網(wǎng)上訂餐系統(tǒng)研究與開發(fā)[J].電腦學(xué)習(xí),2010,<3>.[8]王斌.基于J2EE的網(wǎng)上訂餐系統(tǒng)的設(shè)計與實現(xiàn)[D].大學(xué).2011.[9]紹芳.基于Web2.0的餐飲管理系統(tǒng)的設(shè)計與開發(fā)[D].2009.[10]單杰.網(wǎng)上訂餐系統(tǒng)需求分析[J].決策與信息,2009<4>.
[11]西陸.基于WEB的網(wǎng)上訂餐系統(tǒng)[J].商場現(xiàn)代化,2008<21>.[13]曉英.ASP.NET實用教程[M].:理工大學(xué),2009.7.[14]銘鐸.餐飲概論[M].:科學(xué).2008.[15]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].:高等教育.2007.附錄學(xué)校食堂訂餐系統(tǒng)主界面部分代碼。服務(wù)器端:以下是部分服務(wù)器主界面部分代碼:TcpClientclient;TcpListenerlisten;NetworkStreamns;Threadgetmsg;//服務(wù)器接受信息delegatevoidAddListBoxCallBack<stringtext>;AddListBoxCallBackaddlist;AddListBoxCallBackdgb;Threadsevergetmsg;//實現(xiàn)多用戶登錄Dictionary<string,Socket>dic=newDictionary<string,Socket><>;Threadtt1;staticstringtts="";stringstr="";intt=0;privatevoidForm1_Load<objectsender,EventArgse>{str="歡迎"+CurrentLogAdmin.aname+"登錄";str+="";tool_user.Text=str;tool_time.Text=DateTime.Now.ToString<>;timer1.Enabled=true;Control.CheckForIllegalCrossThreadCalls=false;addlist=newAddListBoxCallBack<listBoxadd>;dgb=newAddListBoxCallBack<listBox2add>;}voidlistBoxadd<strings>{tts=s;tt1=newThread<newThreadStart<excute>>;tt1.Start<>;}voidexcute<>{intd=0;byte[]sentmsg=newbyte[1024];string[]str=tts.Split<'|'>;if<str[0]=="odfm">{listBox1.Items.Add<"訂單:"+tts>;OrderForminf.mnum=str[1];OrderForminf.mname=str[2];OrderForminf.mwindow=str[3];OrderForminf.ofcnt=Convert.ToInt32<str[4]>;OrderForminf.cid=str[5];OrderForminf.ctele=str[6];OrderForminf.mprice=Convert.ToDouble<str[7]>;OrderForminf.oftime=Convert.ToDateTime<str[8]>;OrderForminf.ofstate=str[9];d=DBHelp.AddOrderForm<>;if<d>0>{//MessageBox.Show<"odfmok">;sentmsg=Encoding.Default.GetBytes<"odfmok">;ns.Write<sentmsg,0,sentmsg.Length>;}else{sentmsg=Encoding.Default.GetBytes<"odfmno">;ns.Write<sentmsg,0,sentmsg.Length>;}}elseif<str[0]=="exit">{dic[str[1]].Close<>;listBox1.Items.Add<"退出消息:"+tts>;for<inti=0;i<listBox2.Items.Count;i++>{stringistr=listBox2.Items[i].ToString<>;if<istr==str[1].Replace<"\0","">>{dic[listBox2.Items[i].ToString<>].Close<>;listBox2.Items.RemoveAt<i>;break;}}}}voidlistBox2add<strings>{listBox2.Items.Add<s>;}privatevoidbutton1_Click<objectsender,EventArgse>{try{IPEndPointiep=newIPEndPoint<IPAddress.Parse<textBox1.Text>,Convert.ToInt32<textBox2.Text>>;listen=newTcpListener<iep>;listen.Start<10>;getmsg=newThread<newThreadStart<receive>>;getmsg.Start<>;}catch<Exceptionex>{MessageBox.Show<ex.Message>;}}voidreceive<>{while<true>{try{client=listen.AcceptTcpClient<>;dic.Add<client.Client.RemoteEndPoint.ToString<>,client.Client>;severgetmsg=newThread<newThreadStart<servermsg>>;severgetmsg.Start<>;listBox2.Invoke<dgb,client.Client.RemoteEndPoint.ToString<>>;}catch<Exceptionex>{//MessageBox.Show<ex.Message>;}}}voidservermsg<>{TcpClientc1=client;stringenfpoint=c1.Client.RemoteEndPoint.ToString<>;byte[]sentmsg=newbyte[1024];sentmsg=Encoding.Default.GetBytes<"true|"+enfpoint+"|">;ns=client.GetStream<>;ns.Write<sentmsg,0,sentmsg.Length>;while<true>{try{ns.Flush<>;ns=client.GetStream<>;intl=client.Available;if<l>0>{byte[]buffer=newbyte[1024];ns.Read<buffer,0,buffer.Length>;strings=Encoding.Default.GetString<buffer>;tts=s;tt1=newThread<newThreadStart<excute>>;tt1.Start<>;}}catch<Exceptionex>{}}}privatevoidbutton2_Click<objectsender,EventArgse>{byte[]sentmsg=newbyte[1024];sentmsg=Encoding.Default.GetBytes<textBox3.Text>;ns.Write<sentmsg,0,sentmsg.Length>;}privatevoidForm1_FormClosing<objectsender,FormClosingEventArgse>{
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級語文上學(xué)期期中專題二 詞語(成語)辨析及運用(重點強訓(xùn))(原卷版)
- 商務(wù)運輸合同范例
- 牙科入股合同范例
- 撫養(yǎng)老人合同范例
- 國外醫(yī)療服務(wù)合同范例
- 暖通行業(yè)個人合同范例
- 影視轉(zhuǎn)讓合同范例
- 勞動合同范例 車隊
- 廣告制作安裝員工合同范例
- 東莞電梯保養(yǎng)合同范例
- 《中醫(yī)適宜技術(shù)》期末考試復(fù)習(xí)題庫(含答案)
- 知道網(wǎng)課智慧《設(shè)計創(chuàng)新思維》測試答案
- JT-T-1210.1-2018公路瀝青混合料用融冰雪材料第1部分:相變材料
- 解析德意志意識形態(tài)中的難解之謎生產(chǎn)關(guān)系概念與交往形式等術(shù)語的關(guān)系
- 廣東省廣州市2023-2024學(xué)年一年級下學(xué)期期末數(shù)學(xué)試卷
- 管理英語3-國開機考答案
- 皮膚疾病超聲檢查指南(2022版)
- 國開機考答案-工程力學(xué)(本)(閉卷)
- 碳交易與碳金融基礎(chǔ) 課件全套 第1-9章 碳交易市場形成背景-碳金融工具與創(chuàng)新
- 錢轉(zhuǎn)入別人帳戶協(xié)議書
- President-election-美國總統(tǒng)選舉流程
評論
0/150
提交評論