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

正文內(nèi)容

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

2025-11-24 19:30本頁(yè)面

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

  

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