數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告餐飲管理系統(tǒng)_第1頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告餐飲管理系統(tǒng)_第2頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告餐飲管理系統(tǒng)_第3頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告餐飲管理系統(tǒng)_第4頁
數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告餐飲管理系統(tǒng)_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告(餐飲管理系統(tǒng))系 別電子信息系專業(yè)名稱計(jì)算機(jī)科學(xué)與技術(shù)班級(jí)學(xué)號(hào)*學(xué)生姓名*指導(dǎo)教師*成 績 2011年 7 月 1 日1 概述隨著人民生活水平的提高,越來越多的人到餐館里就餐,使得餐飲業(yè)有了更多的發(fā)展機(jī)會(huì),但同時(shí)餐飲業(yè)的競(jìng)爭(zhēng)也在不斷的加劇。要想在競(jìng)爭(zhēng)激烈的市場(chǎng)上立于不敗之地,好的管理是必不可少的。加強(qiáng)管理不能只重視人為因素,技術(shù)因素也是非常重要的,好的管理方法如果引入了先進(jìn)的技術(shù)手段,即引入計(jì)算機(jī)技術(shù)會(huì)使管理走上一個(gè)新的臺(tái)階。目前,餐飲業(yè)發(fā)展迅速,各類管理系統(tǒng)應(yīng)用而生。有針對(duì)大飯店、大酒店的酒店管理系統(tǒng),這類系統(tǒng)的開發(fā)已經(jīng)非常成熟。然而,為數(shù)眾多的小餐飲企業(yè)卻沒有一個(gè)合適

2、的管理系統(tǒng),因此開發(fā)此類管理系統(tǒng)是十分必要的。1.1 設(shè)計(jì)題目及實(shí)現(xiàn)目標(biāo)設(shè)計(jì)題目:基于c#語言windows窗體界面的餐飲管理系統(tǒng);實(shí)現(xiàn)目標(biāo): (1)系統(tǒng)采用人機(jī)交互的方式,界面美觀友好,信息查詢方便,數(shù)據(jù)存儲(chǔ)安全; (2)實(shí)現(xiàn)對(duì)餐飲顧客開臺(tái)、點(diǎn)菜、賬目查詢和結(jié)賬等操作; (3)對(duì)數(shù)據(jù)輸入的數(shù)據(jù)進(jìn)行數(shù)據(jù)檢驗(yàn),盡可能的避免人為錯(cuò)誤; (4)對(duì)消費(fèi)賬目進(jìn)行自動(dòng)結(jié)算; (5)實(shí)現(xiàn)對(duì)消費(fèi)的歷史記錄進(jìn)行查詢; (6)系統(tǒng)應(yīng)最大限度的實(shí)現(xiàn)以維護(hù)性和易操作性。1.2 開發(fā)環(huán)境簡介開發(fā)ide:microsoft visual studio 2010;開發(fā)語言:c#.net;數(shù)據(jù)庫:sql server 200

3、8;開發(fā)環(huán)境:windows 7;開發(fā)周期:10天;開發(fā)人數(shù):4人。2 需求分析2.1 系統(tǒng)功能描述從顧客角度來看,能實(shí)現(xiàn)即時(shí)點(diǎn)菜、結(jié)賬、取消開臺(tái)等功能;從管理員角度可實(shí)現(xiàn)即時(shí)營業(yè)情況,記錄員工信息、桌臺(tái)信息、菜單信息并實(shí)現(xiàn)增刪改等基本信息功能;不同的用戶有不同的權(quán)限,系統(tǒng)管理員有所有的功能權(quán)限,經(jīng)理擁有除系統(tǒng)維護(hù)功能以外的所有功能權(quán)限,一般用戶只能對(duì)查看餐館運(yùn)行情況,客戶點(diǎn)菜結(jié)賬等基本功能,但不可以看菜單基本信息和人員基本信息等。2.2 系統(tǒng)功能結(jié)構(gòu)描述餐飲管理系統(tǒng)屬于c/s模式的系統(tǒng),其功能結(jié)構(gòu)圖如圖1所示:圖1 餐飲管理系統(tǒng)功能結(jié)構(gòu)圖系統(tǒng)功能介紹:(1)在進(jìn)入系統(tǒng)時(shí),根據(jù)用戶輸入的內(nèi)容判

4、斷用戶的合法身份。合法用戶分為普通用戶,經(jīng)理和系統(tǒng)管理員,其中系統(tǒng)用戶擁有所有的權(quán)限,經(jīng)理擁有系統(tǒng)維護(hù)以外的所有權(quán)限,普通用戶擁有輔助工具、系統(tǒng)設(shè)置、退出、開臺(tái)、點(diǎn)菜、結(jié)賬等權(quán)限;(2)桌臺(tái)信息管理可以進(jìn)行桌臺(tái)的增加、刪除、修改和查詢;(3)職員信息管理可以進(jìn)行職員的增加、刪除、修改和查詢;(4)菜品信息管理可以進(jìn)行菜品的增加、刪除、修改和查詢;(5)輔助工具可對(duì)記事本、日歷、計(jì)算器進(jìn)行調(diào)用,方便快捷;(6)系統(tǒng)維護(hù)是系統(tǒng)管理員所擁有的功能,可以對(duì)其它用戶的權(quán)限進(jìn)行賦值,并可進(jìn)行系統(tǒng)維護(hù)和系統(tǒng)備份;(7)系統(tǒng)設(shè)置下的密碼修改可以方便用戶對(duì)自己密碼的重置,系統(tǒng)鎖定可以對(duì)當(dāng)前的系統(tǒng)進(jìn)行鎖定,使系統(tǒng)

5、不能進(jìn)行其它操作;(8)點(diǎn)擊桌面上的圖標(biāo),可以對(duì)桌臺(tái)進(jìn)行開臺(tái)、點(diǎn)菜、取消開臺(tái)、消費(fèi)查詢、結(jié)賬等操作,采用圖形化界面,方便、直觀;(9)界面友好,并實(shí)時(shí)給予用戶操作提示。3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)本餐飲管理系統(tǒng)涉及到的表有:系統(tǒng)用戶表,用于保存所有用戶信息;職員表,用于保存所有職員信息;菜品表,用于保存餐館所有菜品的信息;桌臺(tái)表,用于保存餐館中所有桌臺(tái)的信息;顧客消費(fèi)信息表,用于保存顧客消費(fèi)的信息以便于消費(fèi)查詢和結(jié)賬??偣灿?張表,根據(jù)業(yè)務(wù)和用戶需求各個(gè)系統(tǒng)用例的不同,表格各不相同,下面是本系統(tǒng)數(shù)據(jù)庫的詳細(xì)設(shè)計(jì)。3.1數(shù)據(jù)庫e-r圖 圖2 用于登錄信息表e-r圖 圖3 菜譜信息表e-r圖圖4 服務(wù)員

6、信息表e-r圖圖5 桌臺(tái)信息表e-r圖、圖6 消費(fèi)信息表e-r圖圖7 數(shù)據(jù)庫cmdb關(guān)系圖3.2 數(shù)據(jù)庫邏輯設(shè)計(jì)根據(jù)設(shè)計(jì)好的e-r圖在數(shù)據(jù)庫中創(chuàng)建各表,系統(tǒng)數(shù)據(jù)庫中各個(gè)表的結(jié)構(gòu)如下:表1 用戶登錄信息表(users)字段名數(shù)據(jù)類型長度主鍵是否可以為空說明user_idvarchar50是否用戶名user_pwdvarchar50否否用戶登錄密碼user_powerchar10否否用戶權(quán)限表2 菜譜信息表(foods)字段名數(shù)據(jù)類型長度主鍵是否可以為空說明food_idvarchar50是否菜品編號(hào)food_namevarchar50否是菜品名稱food_pricedecimal9否是食品價(jià)格f

7、ood_typechar10否是食品類別表3 服務(wù)員信息表(waiters)字段名數(shù)據(jù)類型長度主鍵是否可以為空說明waiter_idvarchar50是否服務(wù)員編號(hào)waiter_namevarchar50否是服務(wù)員姓名waiter_sexchar10否是服務(wù)員性別waiter_agechar10否是服務(wù)員年齡waiter_cardvarchar50否是身份證號(hào)waiter_telvarchar50否是服務(wù)員電話waiter_salarydecimal9否是服務(wù)員薪水表4 桌臺(tái)信息表(tables)字段名數(shù)據(jù)類型長度主鍵是否可以為空說明table_idvarchar50是否桌臺(tái)編號(hào)table_n

8、amevarchar50否是桌臺(tái)名稱table_roomchar10否是桌臺(tái)位置table_statuschar10否是桌臺(tái)狀態(tài)table_typechar10否是桌臺(tái)類型table_bjfdecimal9否是包間費(fèi)table_personint10否是顧客人數(shù)table_startvarchar50否是開餐時(shí)間table_remarkvarchar50否是桌臺(tái)備注表5 顧客消費(fèi)信息表(consume)字段名數(shù)據(jù)類型長度主鍵是否可以為空說明idint4是否消費(fèi)流水號(hào)food_idvarchar50否是食品編號(hào)food_numchar10否是消費(fèi)數(shù)量food_allpricedecimal9否是

9、食品價(jià)格table_idvarchar50否是消費(fèi)桌臺(tái)waiter_idvarchar50否是服務(wù)員號(hào)datevarchar50否是消費(fèi)日期remarkvarchar50否是備注其中,前4張表是系統(tǒng)中的實(shí)體表,表5是消費(fèi)表,其id為消費(fèi)流水號(hào),由系統(tǒng)自動(dòng)生成,用作表的主鍵,這樣可以避免不同顧客的消費(fèi)號(hào)重復(fù)。表2,3,4的主鍵分別分別用作表5消費(fèi)表的外鍵,用于關(guān)聯(lián)與顧客消費(fèi)相關(guān)的信息。4 程序核心代碼及控件描述由于餐飲管理系統(tǒng)對(duì)數(shù)據(jù)庫的訪問比較頻繁,為此,設(shè)計(jì)一個(gè)公共類databaselink.cs,用于建立對(duì)數(shù)據(jù)的連接,當(dāng)其它模塊需要對(duì)數(shù)據(jù)庫訪問時(shí),調(diào)用此模塊,這樣可以減小程序的代碼量,使程序

10、的可移植性更加良好。代碼如下: class databaselink public static sqlconnection dataconn() string str = server=localhost;uid=sa;pwd=0000;database=cmdb; sqlconnection sqlconn = new sqlconnection(str); return sqlconn; 4.1用戶登錄模塊設(shè)計(jì)為了使系統(tǒng)的安全性得到保障,登錄模塊是必不可少的,只有系統(tǒng)的合法用戶才能登錄系統(tǒng)。并且在用戶登錄時(shí)其身份和權(quán)限也被驗(yàn)證和。本系統(tǒng)的登錄模塊只需輸入用戶名和密碼,單擊【登錄】按鈕即可

11、進(jìn)行驗(yàn)證。主要用到textbox和button控件,分別用于用戶名和密碼輸入,登錄和取消選擇。核心代碼: if (textboxpwd.text = ) messagebox.show(請(qǐng)輸入密碼, 警告, messageboxbuttons.ok, messageboxicon.warning); else /數(shù)據(jù)庫連接 sqlconnection conn = publicclass.databaselink.dataconn(); conn.open(); sqlcommand cmd = new sqlcommand(select count(*) from users where u

12、ser_id= + textboxusername.text + and user_pwd= + textboxpwd.text + ,conn); int i = convert.toint32(cmd.executescalar(); if (i 0) /用戶身份驗(yàn)證,并驗(yàn)證權(quán)限 cmd = new sqlcommand(select * from users where user_id= + textboxusername.text + , conn); sqldatareader sdr = cmd.executereader(); sdr.read(); string userpow

13、er = sdruser_power.tostring().trim(); conn.close(); formmain main = new formmain(); main.power = userpower; main.names = this.textboxusername.text; main.times = datetime.now.toshortdatestring(); main.show(); this.hide(); else messagebox.show(用戶名或密碼錯(cuò)誤!); 運(yùn)行結(jié)果顯示:圖8 用戶登錄界面4.2基礎(chǔ)信息模塊設(shè)計(jì)餐飲管理的基礎(chǔ)信息模塊,包括桌臺(tái)信息、

14、職員信息和菜品信息,各個(gè)小模塊用到的知識(shí)點(diǎn)都是一樣的,主要功能是實(shí)現(xiàn)桌臺(tái)、職員和菜品的增刪改查功能。下面以職員信息的設(shè)計(jì)為例介紹此模塊的功能設(shè)計(jì)。此模塊主要用到button、textbox、combobox和datagridview控件。分別用于功能選擇,信息寫入顯示、信息選擇和總體信息顯示等功能。職員信息模塊核心代碼如下:(1) datagridview控件顯示核心代碼 private void binddata() /數(shù)據(jù)庫連接并讀取數(shù)據(jù) sqlconnection conn = publicclass.databaselink.dataconn(); sqldataadapter sda

15、 = new sqldataadapter(select waiter_id,waiter_name,waiter_sex,waiter_age,waiter_card,waiter_tel,waiter_salary from waiters order by waiter_id desc,conn); dataset ds = new dataset(); sda.fill(ds); datagridview1.datasource = ds.tables0; (2)執(zhí)行保存功能的核心代碼 private void button3_click(object sender, eventarg

16、s e) int32 salary; /判斷工資輸入的合法性 if (int32.tryparse(textboxsalary.text, system.globalization.numberstyles.integer, system.globalization.numberformatinfo.currentinfo, out salary) sqlconnection conn = publicclass.databaselink.dataconn(); conn.open(); sqlcommand cmd = new sqlcommand(select count(*) from

17、waiters where waiter_id= + textboxid.text + , conn); int i = convert.toint32(cmd.executescalar(); /如果數(shù)據(jù)庫中已存在此waiter_id的記錄,則修改 if (i 0) cmd = new sqlcommand(update waiters set waiter_id= + textboxid.text + ,waiter_name= + textboxname.text + ,waiter_sex= + comboboxsex.selecteditem.tostring() + ,waiter

18、_age= + textboxage.text + ,waiter_card= + textboxcard.text + ,waiter_tel= + textboxtel.text + ,waiter_salary= + salary + where waiter_id= + textboxid.text + , conn); cmd.executenonquery(); conn.close(); binddata(); else if (textboxid.text = ) messagebox.show(沒有填入數(shù)據(jù)!); else /如果無此記錄,則刪除 cmd = new sqlc

19、ommand(insert into waiters(waiter_id,waiter_name,waiter_sex,waiter_age,waiter_card,waiter_tel,waiter_salary) values( + textboxid.text + , + textboxname.text + , + comboboxsex.selecteditem.tostring() + , + textboxage.text + , + textboxcard.text + , + textboxtel.text + , + textboxsalary.text + ), conn

20、); cmd.executenonquery(); conn.close(); binddata(); else messagebox.show(工資必須為數(shù)字); (3)執(zhí)行刪除功能的核心代碼 private void button6_click(object sender, eventargs e) /數(shù)據(jù)庫連接 sqlconnection conn = publicclass.databaselink.dataconn(); conn.open(); /刪除數(shù)據(jù) sqlcommand cmd = new sqlcommand(delete from waiters where waite

21、r_id=+datagridview1.selectedcells0.value.tostring()+,conn); cmd.executenonquery(); conn.close(); /刪除后列表顯示 binddata(); 運(yùn)行結(jié)果顯示: 圖9 職員信息管理運(yùn)行界面 圖10 桌臺(tái)管理運(yùn)行界面圖11 菜品管理運(yùn)行界面4.3輔助工具模塊設(shè)計(jì)輔助工具欄目中日歷主要用到monthcalendar控件,用于日歷的顯示。記事本和計(jì)算器則直接調(diào)用系統(tǒng)的這些功能。本部分沒有用到數(shù)據(jù)庫的知識(shí),但在餐飲管理系統(tǒng)中起到了工具的作用,為操作者帶來了方便。核心代碼如下: private void 日歷too

22、lstripmenuitem_click(object sender, eventargs e) formcalender calender = new formcalender(); calender.showdialog(); private void 記事本toolstripmenuitem_click(object sender, eventargs e) system.diagnostics.process.start(notepad.exe); private void 計(jì)算器toolstripmenuitem_click(object sender, eventargs e) s

23、ystem.diagnostics.process.start(calc.exe); 運(yùn)行結(jié)果顯示: 圖12 記事本和計(jì)算器顯示結(jié)果圖13 查看日歷運(yùn)行界面4.4系統(tǒng)維護(hù)模塊設(shè)計(jì)系統(tǒng)維護(hù)模塊主要是系統(tǒng)管理能運(yùn)用的功能,包括權(quán)限管理,系統(tǒng)備份和系統(tǒng)還原三個(gè)部分。對(duì)于權(quán)限管理模塊主要用到的控件是combobox其主要功能是對(duì)用戶選擇和對(duì)權(quán)限設(shè)置級(jí)別。對(duì)于系統(tǒng)備份和還原模塊用到的主要控件是textbox,并且設(shè)置為只讀屬性,其主要功能是數(shù)據(jù)庫名和備份還原路徑顯示。并且三個(gè)界面都用了button控件,用于控制選擇。其主要代碼如下:(1)系統(tǒng)權(quán)限管理主要代碼: string userpower = ;

24、switch(combobox2.selecteditem.tostring() case 超級(jí)管理員: userpower = 0; break; case 經(jīng)理: userpower = 1; break; case 一般用戶: userpower = 2; break; sqlconnection conn = publicclass.databaselink.dataconn(); conn.open(); sqlcommand cmd = new sqlcommand(update users set user_power=+userpower+where user_id=+comb

25、obox1.selecteditem.tostring()+,conn); cmd.executenonquery(); if(messagebox.show(權(quán)限修改成功,提示,messageboxbuttons.ok,messageboxicon.exclamation)=dialogresult.ok) this.close(); 界面顯示:圖14 權(quán)限管理運(yùn)行界面(2)系統(tǒng)備份主要代碼: private void button1_click(object sender, eventargs e) try /備份路徑設(shè)置 string strg = application.startup

26、path.tostring(); strg = strg.substring(0, strg.lastindexof(); strg = strg.substring(0, strg.lastindexof(); strg += data; string sqltext = backup database cmdb to disk=+strg+textboxpath.text.trim()+.bak+ with init; /數(shù)據(jù)庫連接并寫入 sqlconnection conn = publicclass.databaselink.dataconn(); conn.open(); sqlco

27、mmand cmd = new sqlcommand(sqltext, conn); cmd.executenonquery(); conn.close(); if (messagebox.show(備份成功,提示,messageboxbuttons.ok,messageboxicon.exclamation) = dialogresult.ok) this.close(); catch (exception ex) messagebox.show(ex.message.tostring(); 運(yùn)行結(jié)果顯示:圖15 數(shù)據(jù)庫備份運(yùn)行界面(3)系統(tǒng)還原模塊核心代碼: private void bu

28、tton1_click(object sender, eventargs e) try string str = use master restore database cmdb from disk= + textbox1.text.trim() + with replace; sqlconnection conn = publicclass.databaselink.dataconn(); conn.open(); sqlcommand cmd = new sqlcommand(str,conn); cmd.executenonquery(); if (messagebox.show(恢復(fù)成

29、功,提示,messageboxbuttons.ok,messageboxicon.exclamation) = dialogresult.ok) this.close(); catch (exception ex) messagebox.show(ex.message.tostring(); 運(yùn)行結(jié)果顯示:圖16 數(shù)據(jù)庫恢復(fù)模塊運(yùn)行結(jié)果顯示4.5系統(tǒng)設(shè)置模塊設(shè)計(jì)餐飲管理系統(tǒng)的系統(tǒng)設(shè)置模塊主要功能是用戶可以對(duì)自己的密碼進(jìn)行重置,并可以對(duì)自己正在使用的系統(tǒng)進(jìn)行鎖定,當(dāng)鎖定系統(tǒng)時(shí),用戶不可以進(jìn)行其它任何操作。從而增加了系統(tǒng)的安全性。其主要用到的控件有button和textbox,功能分別是事件確定和

30、密碼輸入。其中對(duì)于系統(tǒng)鎖定窗口的formborderstyle屬性應(yīng)設(shè)置為none,目的是不顯示窗體的邊框。密碼重置的核心代碼如下: private void button1_click(object sender, eventargs e) if (textboxpwd1.text = ) messagebox.show(請(qǐng)輸入密碼); textboxpwd1.focus(); else if (textboxpwd2.text != textboxpwd1.text) messagebox.show(兩次密碼不一致); textboxpwd2.focus(); else sqlconnec

31、tion conn = publicclass.databaselink.dataconn(); conn.open(); sqlcommand cmd = new sqlcommand(update users set user_pwd=+textboxpwd1.text+ where user_id=+names+,conn); cmd.executenonquery(); if (messagebox.show(密碼修改成功,提示,messageboxbuttons.ok,messageboxicon.asterisk) = dialogresult.ok) this.close();

32、結(jié)果顯示:圖17 密碼修改頁面顯示系統(tǒng)鎖定解鎖的核心代碼:private void buttonunlock_click(object sender, eventargs e) sqlconnection conn = publicclass.databaselink.dataconn(); conn.open(); sqlcommand cmd = new sqlcommand(select count(*) from users where user_pwd=+textbox1.text.trim()+ and user_id=+owner+,conn); int i = convert.

33、toint32(cmd.executescalar(); if (i 0) this.close(); else if (messagebox.show(密碼錯(cuò)誤,警告,messageboxbuttons.okcancel,messageboxicon.warning) = dialogresult.ok) textbox1.text = ; textbox1.focus(); 運(yùn)行結(jié)果顯示:圖18 系統(tǒng)鎖定運(yùn)行效果4.6開臺(tái)模塊設(shè)計(jì)當(dāng)顧客要進(jìn)行消費(fèi)時(shí),首先要看一下是否有可用的桌臺(tái),這在主窗體的圖形化界面可以很容易的看出來。如果有空閑的桌臺(tái),那么就可以為顧客開臺(tái),只有在開臺(tái)后才能為顧客點(diǎn)菜、查

34、詢和結(jié)賬,所以開臺(tái)模塊在整個(gè)系統(tǒng)中非常重要。在某個(gè)桌臺(tái)上選擇其右鍵中的【開臺(tái)】命令。根據(jù)提示,輸入相應(yīng)的開臺(tái)信息,如顧客人數(shù)和服務(wù)員等,然后【保存】,則開臺(tái)便完成了。其用到的主要控件有button、textbox、combobox和datetimepicker,分別用于功能選擇,信息錄入和服務(wù)員及選擇日期顯示等功能。其核心代碼如下: /窗口頁面加載 private void formopen_load(object sender, eventargs e) conn = publicclass.databaselink.dataconn(); conn.open(); sqlcommand c

35、md = new sqlcommand(select * from tables where table_name=+name+,conn); sqldatareader sdr = cmd.executereader(); while (sdr.read() textboxname.text = sdrtable_name.tostring().trim(); sdr.close(); cmd = new sqlcommand(select * from waiters,conn); sdr = cmd.executereader(); while (sdr.read() comboboxw

36、n.items.add(sdrwaiter_name.tostring().trim(); comboboxwn.selectedindex = 0; sdr.close(); private void buttonsave_click(object sender, eventargs e) if (textboxperson.text = | convert.toint32(textboxperson.text) = 0) messagebox.show(請(qǐng)輸入用餐人數(shù)!); else /消費(fèi)信息寫入 string roomname = textboxname.tostring(); sql

37、command cmd1 = new sqlcommand(update tables set table_guest=+textboxguest.text+,table_start=+datetimepicker1.value.tostring()+,table_person=+convert.toint32(textboxperson.text)+,table_status=使用 where table_name=+name+,conn); cmd1.executenonquery(); this.close(); 運(yùn)行結(jié)果顯示:圖19 開臺(tái)模塊運(yùn)行顯示4.7點(diǎn)菜模塊設(shè)計(jì)當(dāng)顧客選定好桌臺(tái)后

38、,會(huì)根據(jù)顧客的需要點(diǎn)菜和點(diǎn)酒水飲料等食物。在點(diǎn)菜窗口中,會(huì)根據(jù)菜品的不同類別顯示餐廳里可以提供的食物,用戶可以對(duì)不同的食物進(jìn)行選擇。系統(tǒng)的點(diǎn)菜模塊主要利用了treeview控件顯示所有的菜系,利用datagridview控件顯示顧客消費(fèi)的所有信息,當(dāng)單擊某個(gè)菜品時(shí),右側(cè)將出現(xiàn)次食品的所有信息,選擇菜品后單擊“添加”按鈕完成添加食品的操作。6個(gè)textbox控件分別用于顯示餐廳所有菜品,顯示某個(gè)菜品的編號(hào)、名稱、單價(jià)、數(shù)量、點(diǎn)菜后的總價(jià)格和備注等信息。combox控件用于選擇服務(wù)員。三個(gè)button按鈕功能分別為保存、刪除和退出。模塊運(yùn)行結(jié)果顯示:圖20 點(diǎn)菜模塊運(yùn)行顯示程序核心代碼:點(diǎn)菜界面加

39、載核心代碼: /界面加載,顯示所有可以點(diǎn)的菜品 private void formdc_load(object sender, eventargs e) /采用樹形圖分類顯示,增加了點(diǎn)菜界面的直觀性 this.text = rname + 點(diǎn)/加菜; /根節(jié)點(diǎn) treenode newnode1 = treeviewfood.nodes.add(鍋底); treenode newnode2 = treeviewfood.nodes.add(涼菜); treenode newnode3 = treeviewfood.nodes.add(熱菜); treenode newnode4 = treev

40、iewfood.nodes.add(酒水); treenode newnode5 = treeviewfood.nodes.add(主食); sqlconnection conn = publicclass.databaselink.dataconn(); conn.open(); sqlcommand cmd = new sqlcommand(select * from foods where food_type=1,conn); sqldatareader sdr = cmd.executereader(); while (sdr.read() newnode1.nodes.add(sdr1.tostring().trim(); sdr.close(); cmd = new sqlcommand(select * from foods where food_type=2, conn); sdr = cmd.executereader(); while (sdr.read(

溫馨提示

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

評(píng)論

0/150

提交評(píng)論