freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計-基于ios的飯店點菜系統(tǒng)的設(shè)計與實現(xiàn)-資料下載頁

2025-11-24 19:30本頁面

【導(dǎo)讀】傳統(tǒng)的手工點菜方式由于其難計算、難查找、難更改、易出錯、效率低。等缺點使其逐漸被淘汰。為了提高競爭力,飯店餐飲業(yè)點菜信息化的需求與日俱增。要通過點菜機了解更多菜品和服務(wù)信息的體驗。本文針對這種不夠人性化的服務(wù)提出了基于iOS結(jié)構(gòu)的飯店點菜系統(tǒng)。系統(tǒng)顧客就能夠通過基于iOS移動終端進行點菜操作。系統(tǒng)實現(xiàn)了顧客與餐館的互。該點菜系統(tǒng)使用iOS系統(tǒng)作為其工作平臺,使用FMDB作為數(shù)據(jù)庫,用。Objective-C為開發(fā)語言在Xcode開發(fā)環(huán)境下開發(fā)。為了來解決內(nèi)存泄露的問題,系。統(tǒng)運用Xcode的ARC內(nèi)存管理機制。

  

【正文】 式的數(shù)據(jù)存儲。而CoreData 提供了存儲管理,包括查詢、插入、刪除、更新、回滾、會話管理、鎖管理等一系列數(shù)據(jù)庫操作。另外,開發(fā)者還可以在 xcode 中使用 .xcdatamodel 擴展名的文件,以圖形化的形式編輯數(shù)據(jù)模型,這里包括了 Entities、 Properties、 Attributes、Relationships 四個概念,這里跟關(guān)系型數(shù)據(jù)庫有很大的相似點。 PersistentStor 這個是數(shù)據(jù)真正存儲的地方, CodeData 提供了兩種存儲的選擇,分別是 sqlite 和二進制文件。 PersistentStore 本身并不是 objc 類,僅僅是數(shù)據(jù)存儲。 DataModel 對應(yīng)的 objc 類為 NSManagedObjectModel,一個典型的應(yīng)用如: (NSManagedObjectModel *)managedObjectModel { if (managedObjectModel != nil) { 基于 iOS 的飯店點菜系統(tǒng)的設(shè)計與實現(xiàn) 24 return managedObjectModel。 } managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain]。 return managedObjectModel。 } PersistentStoreCoordinator 對應(yīng)的 objc 類為 NSPersistentStoreCoordinator,這個類用來控制對 PersistentStore 的訪問。 PersistentStoreCoordinator 提供了一些列的高級調(diào)用供其他類來使用,對 PersistentStore 進行讀和寫。 ManagedObjects 對應(yīng)的類為 NSManagedObject。上面的 CoreData 框架圖中Entities, Entity 定義了數(shù)據(jù)的結(jié)構(gòu),但他并不是數(shù)據(jù),真正的數(shù)據(jù) NSManagedObject類或他的子類。 NSManagedObject 類支持 KeyValue 編碼 ( KVC) ,像 NSDictionary差不多。 NSManagedObject 提供了 valueForKey:和 setValue:forKey:用來設(shè)置和查詢的方法。另外他也提供了對關(guān)系操作的方法。 ManagedObjectsContext 對應(yīng)的類為 NSManagedObjectsContext。這個類是一個用戶對 persistentStore 操作的網(wǎng)關(guān),他維護了用戶創(chuàng)建或者加載的 managed objects。他記錄了用戶對 managed objects 的所有改變,以便用來 undo 或 redo,另外當(dāng)用戶要存儲現(xiàn)在的 managed objects 到 persistentstore 時,只需調(diào)用 managedObjectsContext的 save 方法就行了。每個應(yīng)用至少需要一個 context,當(dāng)然可以同時存在多個 context,比如多線程時,如 NSOperationQueue。 context 并不是線程安全的,因此在這種情況中用戶要自己做好安全工作。下面是一個簡單應(yīng)用實例: (NSManagedObjectContext *) managedObjectContext { if (managedObjectContext != nil) { return managedObjectContext。 } NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator]。 if (coordinator != nil) { managedObjectContext = [[NSManagedObjectContext alloc] init]。 基于 iOS 的飯店點菜系統(tǒng)的設(shè)計與實現(xiàn) 25 [managedObjectContext setPersistentStoreCoordinator: coordinator]。 } return managedObjectContext。 } NSFetchedResultsController 這個類是用來管理 CoreData Fetch request 返回的對象的。 在創(chuàng)建這個控制器之前,必須先創(chuàng)建 fetch request。 fetch request 描述了詳細的查詢規(guī)則,還可以添加查詢結(jié)果的排序描述( sort descriptor)。 fetchResultsController根據(jù)已經(jīng)創(chuàng)建完的 fetch request 來創(chuàng)建,它是 NSFetchedResultsController 的實例,這個實例的主要任務(wù)就是使用 fetch request 來保證它所關(guān)聯(lián)的數(shù)據(jù)的新鮮性。創(chuàng)建了 fetchResultsController 實例后要做一下初始化,一般初始化是向這個控制器發(fā)送PerformFetch 消息,下面是這一過程的代碼: (NSFetchedResultsController *)fetchedResultsController { if (fetchedResultsController != nil) { return fetchedResultsController。 } NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]。 NSEntityDescription *entity = [NSEntityDescription entityForName:@Event inManagedObjectContext:managedObjectContext]。 [fetchRequest setEntity:entity]。 [fetchRequest setFetchBatchSize:20]。 NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@timeStamp ascending:NO]。 NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor,nil]。 [fetchRequest setSortDescriptors:sortDescriptors]。 NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 基于 iOS 的飯店點菜系統(tǒng)的設(shè)計與實現(xiàn) 26 managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:@Root]。 = self。 = aFetchedResultsController。 [aFetchedResultsController release]。 [fetchRequest release]。 [sortDescriptor release]。 [sortDescriptors release]。 return fetchedResultsController。 } 數(shù)據(jù)表的設(shè)計 概念結(jié)構(gòu)設(shè)計 概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計是將分析得到的用戶需求抽象為概念模型的過程,即在需求分析的基礎(chǔ)上,設(shè)計出能夠滿足用戶需求的各種實體以及它們之間的相互關(guān)系的模型。概念結(jié)構(gòu)的主要特點是能真實、充分地反映現(xiàn)實世界,易于理解,易于更改,易于向關(guān)系、網(wǎng)狀、層次等各種數(shù)據(jù)模型轉(zhuǎn)換。描述概念模型的有力工具是 ER 模型。基于數(shù)據(jù)庫管理系統(tǒng)的餐飲點菜系統(tǒng)的 ER 圖如圖 所示: 圖 餐飲點菜系統(tǒng)的 ER 圖 邏輯結(jié)構(gòu)設(shè)計 邏輯結(jié)構(gòu)設(shè)計的任務(wù)就是把概念模型結(jié)構(gòu)轉(zhuǎn)換成某個具體的 DBMS 所支持的數(shù)據(jù)模型。設(shè)計邏輯結(jié)構(gòu)時,首先是將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次?;?iOS 的飯店點菜系統(tǒng)的設(shè)計與實現(xiàn) 27 型,其次是將轉(zhuǎn)換來的關(guān)系、網(wǎng)狀、層次模型向特定 DBM 支持下的數(shù)據(jù)模型轉(zhuǎn)換,最后是對數(shù)據(jù)模型進行優(yōu)化。將餐飲點菜系統(tǒng)的 ER 圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型。關(guān)系模式如下: ( 1)菜(菜編號,菜名,類型,價格,狀態(tài)); ( 2)桌臺(桌臺編號,桌臺名稱 ,狀態(tài),服務(wù)員); ( 3)服務(wù)員(編號,姓名,性別,年齡,電話); ( 4)管理員(編號,名稱,密碼)。 物理結(jié)構(gòu)設(shè)計 物理結(jié)構(gòu)設(shè)計數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)計是對于給定的邏輯數(shù)據(jù)模型,選取一個最合適應(yīng)用環(huán)境的物理結(jié)構(gòu)。數(shù)據(jù)庫的物理結(jié)構(gòu)指的是數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法,它依賴于給定的計算機系統(tǒng),是在數(shù)據(jù)庫邏輯結(jié)構(gòu)的基礎(chǔ)上設(shè)計出一組能夠滿足實際需求的關(guān)系、約束、和索引等信息。餐飲點菜系統(tǒng)的數(shù)據(jù)庫表結(jié)構(gòu)如下:本系統(tǒng)的數(shù)據(jù)庫總共包含三個主要的表,分別是菜品群組分類表( groupTable),菜品名稱表( menuTable)和已點菜品表( orderTable),詳情請見下面的數(shù)據(jù)庫表: 1. 菜品群組表( groupTable) 這個表是主要存放的是該飯店有多少種類的飯菜(在 kind 里面顯示)以及他們的二級分類(在 name 里面顯示),還有這些種類的圖片(在 image 里面顯示)以及被選中之后的圖片(在 highlighted_image 里面顯示),如圖 : 基于 iOS 的飯店點菜系統(tǒng)的設(shè)計與實現(xiàn) 28 圖 菜品群組表 2. 菜品名稱表( menuTable) 這個表中存放的是菜品群組表( groupTable)里面的二級菜單( name)下面的三級菜單。這個表中的 iKind 列顯示的即時他們的上一級菜單。該表中的 name 表示的即是具體的可以點的菜的名稱。該表的 price 表示的是該種菜的價格, unit 表示的是該菜品的單位(條,只,位,克等等),該表的 picName 表示的是這個菜在 APP中顯示的圖片,如圖 : 圖 菜品名稱表 3. 已點菜品表( orderTable) 這個表存放的是顧客已經(jīng)下單的菜品的詳細信息,記錄了他們的 id 是為了記錄基于 iOS 的飯店點菜系統(tǒng)的設(shè)計與實現(xiàn) 29 即來到的先后順序, menuName 是為了記錄客人下單的菜品的名字, Price 是為了記錄該菜品的價格, kind 是為了記錄該菜品的種類,可以由負責(zé)該類菜品的大廚去做,menuNum 是為了記錄該菜品客人一共點了多少份, remark 是為了記錄客人有什么樣的特殊要求,比如說不要太咸,不要辣椒等等,如圖 所示 : 圖 已點菜品表 基于 iOS 的飯店點菜系統(tǒng)的設(shè)計與實現(xiàn) 30 6 程序模塊 程序說明 iOS 系統(tǒng)的客人點餐管理信息系統(tǒng) (以下簡稱點餐 )系統(tǒng)是一套既實用、操作簡單、功能齊全、便于維護、管理和查詢的軟件。采用了 b/s 模型架構(gòu),分成數(shù)據(jù)訪問層、業(yè)務(wù)規(guī)則表示層這二層。其中前端表示層包括基礎(chǔ)數(shù)據(jù)設(shè)置、業(yè)務(wù)信息管理 (客人消費管理)、廚房管理 (廚房做菜 )、查詢統(tǒng)計信息。本系統(tǒng)以點餐為中心,涵蓋了部門人員、菜系菜品、客人消費,廚房做菜、以及查詢、顯示等功能,具有高效率、安全性強、數(shù)據(jù)完整有條理等優(yōu)點。滿足操作人員的各種需求。為了能結(jié)構(gòu)化的管理和實施系統(tǒng)的開發(fā),采用軟件工程的方法來設(shè)計軟件,其基本思想是:用系統(tǒng)的思想和系統(tǒng)工程的方法,結(jié)構(gòu)化,模塊化地自上而下的對生命周期進行分析和設(shè)計。我們可以將整個系統(tǒng)開始過程分為以下 4 個一次連接的階段: ( 1)系統(tǒng)規(guī)劃階段 ( 2)系統(tǒng)開發(fā)階段 ( 3)系統(tǒng)運行維護階段 ( 4)系統(tǒng)更新階段 這四個階段共同構(gòu)成了系統(tǒng)開發(fā)的生命周期。系統(tǒng)規(guī)劃是酒企銷售系統(tǒng)的起 始階段。這一階段的主要任務(wù)是:明確企業(yè)對管理系統(tǒng)的需求,以制定酒企銷售 的設(shè)計總計劃。包括對酒企銷售系統(tǒng)的規(guī)劃、需求分析和資源分配三個主要階段。 系統(tǒng)開發(fā)是酒企銷售系統(tǒng)建設(shè)的一個最重要的階段。系統(tǒng)開發(fā)的生命周期一般分 為以下三個階段:系統(tǒng)分析、系統(tǒng)設(shè)計和系統(tǒng)實施。系統(tǒng)運行與維護階段優(yōu)勢整 個生命周期中歷時最久的階段,也是酒企銷售系統(tǒng)實現(xiàn)其功能,獲得效益的階段。 而系統(tǒng)更新階段是新舊系統(tǒng)并存的時期。 具體模塊劃分 如果沙盒中沒有本系統(tǒng)需要的數(shù)據(jù)庫的話,就首先需要把數(shù)據(jù)庫拷貝到沙盒中。如果已經(jīng)拷貝的話就不需要拷貝了。下面是數(shù)據(jù)庫的拷貝方法: (void)copyDataBase 基于 iOS 的飯店點菜系統(tǒng)的設(shè)計與實現(xiàn) 31 { NSString *databasePath = [[NSBundle
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1