數(shù)據(jù)庫(kù)學(xué)校飯?zhí)孟M(fèi)管理系統(tǒng)的設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
數(shù)據(jù)庫(kù)學(xué)校飯?zhí)孟M(fèi)管理系統(tǒng)的設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
數(shù)據(jù)庫(kù)學(xué)校飯?zhí)孟M(fèi)管理系統(tǒng)的設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)說(shuō)明書(shū)設(shè)計(jì)名稱:數(shù)據(jù)庫(kù)系統(tǒng)原理課程設(shè)計(jì)題 目:學(xué)校飯?zhí)孟M(fèi)管理系統(tǒng)的設(shè)計(jì)學(xué)生姓名:孫璐專業(yè):網(wǎng)絡(luò)工程班級(jí):12網(wǎng)絡(luò)1班學(xué)號(hào):指導(dǎo)教師:顧艷春、韋慶清、李婭、胡明日期:2015年01 月14 日課程設(shè)計(jì)任務(wù)書(shū)網(wǎng)絡(luò)工程專業(yè)12年級(jí)_J班 孫璐一、設(shè)計(jì)題目學(xué)校飯?zhí)孟M(fèi)管理系統(tǒng)二、主要內(nèi)容通過(guò)對(duì)學(xué)生在學(xué)校飯?zhí)没虿蛷d的消費(fèi)流程進(jìn)行分析,完成具有食品管 理、 消費(fèi)管理、帳戶管理、餐廳管理等相關(guān)功能的小型數(shù)據(jù)庫(kù)管理應(yīng)用系統(tǒng) (消費(fèi)刷 卡可以通過(guò)手工輸入來(lái)模擬完成)1. 根據(jù)任務(wù)要求完成有關(guān)表的設(shè)計(jì)(表的設(shè)計(jì)需要遵循 3NF)。2. 完成飯?zhí)茫ú蛷d)員工表、消費(fèi)人員及帳戶表、餐廳表、食品價(jià)目表的 維護(hù)

2、。3. 完成消費(fèi)表的生成,并計(jì)算消費(fèi)折扣(可現(xiàn)金消費(fèi)也可刷卡消費(fèi))。4. 按人員、時(shí)間、餐廳統(tǒng)計(jì)計(jì)算消費(fèi)總額。5. 按食品類別、時(shí)間、餐廳統(tǒng)計(jì)計(jì)算消費(fèi)總額。6. 完成用戶帳戶管理功能。7. 完成數(shù)據(jù)備份與恢復(fù)功能。三、具體要求圍繞課程設(shè)計(jì)的目的和意義,基本要求如下:1、鞏固和加深對(duì)數(shù)據(jù)庫(kù)系統(tǒng)原理的理解,提高綜合運(yùn)用本課程所學(xué)知識(shí) 的能力。2、培養(yǎng)學(xué)生選用參考書(shū),查閱手冊(cè)及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考、 深入研究、分析問(wèn)題、解決問(wèn)題以及團(tuán)隊(duì)協(xié)作能力。3、通過(guò)實(shí)際系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握數(shù)據(jù)庫(kù)軟件的分析設(shè)計(jì)方法和鞏固軟件工程方法。軟件開(kāi)發(fā)的流程可參見(jiàn)軟件工程課程教材。(見(jiàn)第六部分)4、能夠按

3、要求編寫課程設(shè)計(jì)報(bào)告書(shū),能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果、正確 繪制系統(tǒng)數(shù)據(jù)流圖和E-R圖。5、通過(guò)課程設(shè)計(jì),培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,嚴(yán)肅認(rèn)真的工作作風(fēng),和團(tuán)隊(duì)協(xié)作精神。6 、本課程設(shè)計(jì)只要求大家完成一個(gè)基本的數(shù)據(jù)庫(kù)軟件的開(kāi)發(fā)工作,系統(tǒng) 開(kāi)發(fā)不要求大而全數(shù)據(jù)庫(kù)軟件的開(kāi)發(fā),只要完成數(shù)據(jù)的增、刪、改、查等 基本功能,并設(shè)計(jì)一個(gè)較友好系統(tǒng)操作界面(最好是圖形界面) 。7 、系統(tǒng)開(kāi)發(fā)平臺(tái)不做統(tǒng)一要求。四、進(jìn)度安排依照教學(xué)計(jì)劃,課程設(shè)計(jì)時(shí)間為: 2 周。本設(shè)計(jì)要求按照軟件工程的基本過(guò)程完成設(shè)計(jì)。建議將時(shí)間分為四個(gè)階段: 第一階段,根據(jù)題目要求,確定系統(tǒng)的總體設(shè)計(jì)方案(概要設(shè)計(jì)) :即系統(tǒng)包括 哪些功能模塊,每個(gè)

4、模塊的實(shí)現(xiàn)方法,同時(shí)編寫相應(yīng)的設(shè)計(jì)文檔;第二階段,完 成系統(tǒng)的詳細(xì)設(shè)計(jì)工作; 第三階段, 完成數(shù)據(jù)庫(kù)設(shè)計(jì)和編寫程序代碼并調(diào)試, 再 將調(diào)試通過(guò)的各個(gè)子模塊進(jìn)行集成調(diào)試; 第四階段,歸納文檔資料, 按要求填寫 在課程設(shè)計(jì)說(shuō)明書(shū) 上,并參加答辯。三個(gè)階段時(shí)間分配的大概比例是: 25: 25: 40:10。具體安排如下:1 月 5日-1 月 6日:資料查找、系統(tǒng)分析,數(shù)據(jù)流程分析,概要設(shè)計(jì)。1 月 7日-1 月 8日:系統(tǒng)詳細(xì)設(shè)計(jì)、功能設(shè)計(jì)。1 月 9日-1 月 14日:算法實(shí)現(xiàn)、編程調(diào)試。1 月 15日-1 月 16日:功能演示、資料整理、課程設(shè)計(jì)說(shuō)明書(shū)編寫。五、完成后應(yīng)上交的材料 本課程設(shè)計(jì)要求

5、按照學(xué)校有關(guān)規(guī)范的要求完成,在課程設(shè)計(jì)完成后需要提 交的成果和有關(guān)文檔資料包括課程設(shè)計(jì)的說(shuō)明書(shū), 課程設(shè)計(jì)有關(guān)源程序及可運(yùn)行 程序(含運(yùn)行環(huán)境),其內(nèi)容不能過(guò)于簡(jiǎn)單,必須包括的內(nèi)容有: 1課程設(shè)計(jì)的基本思想,系統(tǒng)的總功能和各子模塊的功能說(shuō)明; 2數(shù)據(jù)庫(kù)設(shè)計(jì)中有關(guān)數(shù)據(jù)流圖和 E-R 圖,并對(duì)重要的操作畫出有關(guān)算法流 程圖;3源程序中核心代碼的說(shuō)明;4本課程設(shè)計(jì)的個(gè)人總結(jié),主要包括以下內(nèi)容: 課程設(shè)計(jì)中遇到的主要問(wèn)題和解決方法; 你的創(chuàng)新和得意之處; 設(shè)計(jì)中存在的不足及改進(jìn)的設(shè)想; 本次課程設(shè)計(jì)的感想和心得體會(huì)。5.源代碼要求在關(guān)鍵的位置有注釋,增加程序的可讀性。程序結(jié)構(gòu)和變量 等命名必須符合有關(guān)

6、軟件開(kāi)發(fā)的技術(shù)規(guī)范(參見(jiàn)有關(guān)文獻(xiàn))。六、總評(píng)成績(jī)指導(dǎo)教師簽名日期年月日系主任審核日期年 月 日目 錄一. 設(shè)計(jì)任務(wù)分析 5系統(tǒng)總功能分析 5系統(tǒng)總框架 5設(shè)計(jì)思想簡(jiǎn)述5二. 總體設(shè)計(jì)思路 6三. 需求分析 6數(shù)據(jù)字典 7數(shù)據(jù)庫(kù)用到的表 7各表的說(shuō)明7四. 概念結(jié)構(gòu)設(shè)計(jì) 8消除不必要的冗余,設(shè)計(jì)基本的 E-R圖 8合并分E-R圖,生成總的E-R圖9五. 邏輯結(jié)構(gòu)設(shè)計(jì) 10數(shù)據(jù)模型的優(yōu)化 10由E-R圖得到的關(guān)系模式 10六. 物理結(jié)構(gòu)設(shè)計(jì) 10為關(guān)系模式選擇存取方法 10選擇存取路徑 10創(chuàng)建基本表 11建立索引 14建立觸發(fā)器 17建立視圖 18七. 數(shù)據(jù)庫(kù)的實(shí)施 19數(shù)據(jù)的載入 19八. 數(shù)

7、據(jù)庫(kù)的試運(yùn)行 22視圖中的數(shù)據(jù)22視圖的查詢 23九. 數(shù)據(jù)庫(kù)運(yùn)行和維護(hù) 23系統(tǒng)開(kāi)發(fā)工具的介紹 23VB 與 SQL sever 的連接24VB 實(shí)現(xiàn)學(xué)校餐廳的管理 27登錄界面27管理員功能學(xué)生功能57十課程設(shè)計(jì)的總結(jié)報(bào)告一.設(shè)計(jì)任務(wù)分析系統(tǒng)總功能分析通過(guò)對(duì)學(xué)生在學(xué)校飯?zhí)没虿蛷d的消費(fèi)流程進(jìn)行分析,完成具有食品管理、消費(fèi)管理、帳戶管理、餐廳管理等相關(guān)功能的小型數(shù)據(jù)庫(kù)管理應(yīng)用系統(tǒng)。根據(jù)任務(wù)要求完成有關(guān)表的設(shè)計(jì)(表的設(shè)計(jì)需要遵循3NF)。同時(shí)還要完成進(jìn)人員、餐廳、食品價(jià)目表的維護(hù),完成消費(fèi)表的生成,并計(jì)算消費(fèi)折扣。以及按人員、時(shí) 間段、餐廳統(tǒng)計(jì)計(jì)算消費(fèi)總額,按食品類別、時(shí)間段、餐廳統(tǒng)計(jì)計(jì)算消費(fèi)總

8、額, 最后完成用戶管理功能,完成數(shù)據(jù)備份與恢復(fù)功能。系統(tǒng)總框架查、設(shè)計(jì)、這思這個(gè)管理員功能想簡(jiǎn)J系統(tǒng)我建立了管理 表,為了學(xué)高 立了以餐廳編號(hào)、學(xué)生學(xué)號(hào)、備餐廳、食品和餐廳營(yíng)學(xué)生功能杳找速度,管我為前五食品纟 學(xué)生本建操作消更清生地表達(dá)查詢,理我為、員工、學(xué)生、基本表以主鍵建立了唯一索引看 1消費(fèi)時(shí)間一起的唯一索引 食與和餐廳營(yíng)業(yè)表建立丹號(hào)不餐廳、業(yè)表0了視:張基為營(yíng) 為了 圖。學(xué)業(yè)改 簡(jiǎn)化 自退出系統(tǒng)求分析息的調(diào)杳分析,我得出了餐廳以下幾點(diǎn)特點(diǎn):心、 _息 通過(guò)我對(duì)學(xué)校餐廳 工作人員分為管理員,一般員工。管理員都有唯一的工號(hào),姓名,密碼,其中初始密碼為工號(hào)。而一般員工都有唯一的工號(hào)、姓名、職

9、位和所屬餐廳。其 中只有管理員可以登錄系統(tǒng),對(duì)餐廳、學(xué)生、一般員工、食品進(jìn)行管理,對(duì)餐廳 營(yíng)業(yè)表進(jìn)行查詢消費(fèi)總額。每位同學(xué)都有唯一的學(xué)號(hào)、姓名、密碼、專業(yè)和學(xué)生卡內(nèi)余額,其中初始 密碼為學(xué)號(hào)后5位,學(xué)生可以利用學(xué)號(hào)和初始密碼登錄系統(tǒng)進(jìn)行修改密碼,查看自己的基本信息以及查詢自己卡內(nèi)的余額。餐廳分為兩個(gè),每個(gè)餐廳都有唯一的編號(hào)和姓名。食品的類別分為素菜和肉菜,每個(gè)食品都有唯一的編號(hào),食品名稱,素菜 的單價(jià)為2元,肉菜的單價(jià)為4元。學(xué)生在學(xué)校餐廳就餐,就有所就餐的餐廳編號(hào)、該學(xué)生的學(xué)號(hào)、所食用的食 品編號(hào)、食品數(shù)量、該食品的類別,付款方式(現(xiàn)金或者刷卡)和就餐時(shí)間。消費(fèi)表就是建立的視圖,包括學(xué)生學(xué)號(hào)

10、、餐廳號(hào)、食品號(hào)、食品單價(jià)、食 品數(shù)量、折扣后價(jià)格。以上就是我對(duì)學(xué)校餐廳管理系統(tǒng)的需求分析,要求系統(tǒng)能有效、快速、安 全、可靠和無(wú)誤的完成上述操作,服務(wù)器程序利于維護(hù)。數(shù)據(jù)字典:數(shù)據(jù)庫(kù)表名關(guān)系模式名稱man ager管理員信息表stude nt學(xué)生信息表restaura nt餐廳信息表food食品價(jià)格表operati on餐廳營(yíng)業(yè)表worker員工信息表pf operati on消費(fèi)表(視圖)各表的說(shuō)明表一管理員信息表兒糸變量名數(shù)據(jù)類型備注工號(hào)mnoChar(9)主鍵(非空)姓名mn ameChar(20)非空密碼mpswChar(18)非空表二學(xué)生信息表兒糸變量名數(shù)據(jù)類型備注學(xué)號(hào)snoCha

11、r(9)主鍵(非空)姓名sn ameChar(20)非空密碼spswChar(18)非空專業(yè)sdeptChar(20)非空余額sbala neeInt表三餐廳信息表兒糸變量名數(shù)據(jù)類型備注編號(hào)rnoChar(9)主鍵(非空)名稱rn ameChar(20)非空表四食品價(jià)格表兒糸變量名數(shù)據(jù)類型備注食口口編號(hào)fnoChar(9)r主鍵(非空)食品名稱fnameChar(20)非空食品單價(jià)fprieeInt非空食品類別fbel ongChar(20)非空表五餐廳營(yíng)業(yè)表兒糸變量名數(shù)據(jù)類型備注餐廳編號(hào)rnoChar(9)Restaura nt 的外鍵學(xué)號(hào)snoChar(9)Student的外鍵食口口編號(hào)f

12、noChar(9)Food的外鍵食品數(shù)量fnumChar(10)r非空消費(fèi)時(shí)間etimeDatetime允許空值付款方式wayChar(10)非空食品類別fbel ongChar(20)非空表六員工信息表備注主鍵(非空)非空非空非空兀素 工號(hào).姓名 職位所屬餐廳C數(shù)據(jù)類型Cha(9)學(xué)號(hào)四.概念結(jié)構(gòu)設(shè)學(xué)生消除不必要的冗余,設(shè)計(jì)基本的 由需求分析的結(jié)果可知,本系統(tǒng)設(shè)計(jì)的實(shí)體包括: 員工基本信息:?jiǎn)T工工號(hào)、員工姓名、員工職位、所屬餐廳。 管理員基本信息消費(fèi)管理員工號(hào)、(1)(2)(3)(05)編食品基本信息:食品編生、E-R圖上基本信息:學(xué)本信息:理員密碼。者之間的多對(duì)多聯(lián)系轉(zhuǎn)換出來(lái)的表|,:、卡

13、內(nèi)余額:號(hào)、學(xué)生姓名、學(xué)生密碼、餐廳名稱。菜 食品名稱、食品單價(jià)、食品類別。餐廳、食號(hào)、號(hào)、廳的營(yíng)業(yè)不必實(shí)體間的聯(lián)系包牯:(1)每位學(xué)生可以在多個(gè)餐廳里消費(fèi),每個(gè)餐廳也可以是其基!本(3)每個(gè)餐廳可以合并分E-R圖卜學(xué)生可以點(diǎn)沽多名員,管理總品o銷售食品名食物,每個(gè)食物也可以被多個(gè)學(xué)生點(diǎn) ,而每個(gè)員工只能在一個(gè)食品號(hào)工E-R圖食品類別個(gè)學(xué)生的飯菜卡內(nèi)余額五.姓密O工工號(hào)號(hào)學(xué)生密碼單屬餐數(shù)據(jù)模型的優(yōu)化 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的結(jié)果不是唯一的 還應(yīng)該根據(jù)應(yīng)用需求適當(dāng)?shù)匦薷摹⒄{(diào)整數(shù)據(jù)模型的結(jié)構(gòu),這就是數(shù)據(jù)模型的優(yōu)化。 方法為:為了進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,1) 確定數(shù)據(jù)依賴;2) 對(duì)于各個(gè)關(guān)系模式之間

14、的數(shù)據(jù)依賴進(jìn)行極小化的處理,消除冗余的聯(lián)系;3) 按照數(shù)據(jù)依賴的理論對(duì)關(guān)系模式逐一進(jìn)行分析,考察是否存在部分函數(shù)、傳 遞依賴、多值依賴等,確定各關(guān)系模式分別處于第幾范式。由于并不是規(guī)范化程度越高的關(guān)系就越優(yōu),一般說(shuō)來(lái),第三范式就足夠了,所以對(duì)于本系統(tǒng), 按照要求,達(dá)到第三范式。4) 按照需求分析階段得到的處理要求,分析對(duì)于這樣的應(yīng)用環(huán)境這些模式是否 合適,確定是否要對(duì)模式進(jìn)行合并或分解。本系統(tǒng)中的管理員皆是餐廳的員 工,但是只要管理員擁有密碼可以對(duì)餐廳進(jìn)行管理,所以我把他們分為管理 員表和員工表。5)對(duì)關(guān)系模式進(jìn)行必要的分解,提高數(shù)據(jù)操作的效率和存儲(chǔ)空間的利用率。 由E-R圖得到的關(guān)系模式數(shù)據(jù)

15、結(jié)構(gòu)名組成管理員信息工號(hào),姓名,密碼學(xué)生信息學(xué)號(hào),姓名,密碼,專業(yè),卡內(nèi)余額餐廳信息一編號(hào),名稱食品價(jià)格表食品號(hào),食品名,食品價(jià),食品類別營(yíng)業(yè)表餐廳編號(hào),學(xué)號(hào),食品號(hào),食品數(shù)量,消費(fèi)時(shí)間,付 款方式,食品類別員工信息工號(hào),姓名,職位,所屬餐廳(下劃線標(biāo)注的屬性為主碼)六.物理結(jié)構(gòu)設(shè)計(jì)為關(guān)系模式選擇存取方法數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫(kù)的物理結(jié)構(gòu),它依 賴于選定的數(shù)據(jù)庫(kù)管理系統(tǒng)。為一個(gè)給定的邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán) 境的物理結(jié)構(gòu)的過(guò)程,就是數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。這個(gè)系統(tǒng)我選擇使用索引,為前五個(gè)基本表以主鍵建立了唯一索引,為營(yíng)業(yè)表建立了以餐廳編號(hào)、學(xué)生學(xué)號(hào)、食品編號(hào)和消費(fèi)時(shí)間

16、一起的唯一索引。選擇存取路徑create database 學(xué)校餐廳on ( name=學(xué)校餐廳 _data,學(xué)校餐廳')log on ( n ame= 學(xué)校餐廳 _log,學(xué)校餐廳')創(chuàng)建基本表1) 創(chuàng)建管理員表CREATE TABLE manager(mno CHAR(9) PRIMARY KEY,mn ame CHAR(20) NOT NULL,mpsw CHAR(18) NOT NULL);2) 創(chuàng)建學(xué)生表CREATE TABLE stude nt(sno CHAR(9) PRIMARY KEY,sn ame CHAR(20) NOT NULL,spsw CHAR(18

17、) NOT NULL,sdept CHAR(20) NOT NULL,sbalance INT CHECK(sbalance>=0);3) 創(chuàng)建餐廳表 CREATE TABLE restaurant(rno CHAR(9) PRIMARY KEY, rname CHAR(20) NOT NULL );4) 創(chuàng)建食品表 CREATE TABLE food(fno CHAR(9) PRIMARY KEY, fname CHAR(20) NOT NULL, fprice INT NOT NULL, fbelong CHAR(20) NOT NULL );5) 創(chuàng)建餐廳營(yíng)業(yè)表 CREATE TA

18、BLE operation(rno CHAR(9) NOT NULL,sno CHAR(9) NOT NULL,fno CHAR(9) NOT NULL, fnum CHAR(10) NOT NULL, ctime DATETIME DEFAULT GETDATE(), way CHAR(10) NOT NULL, fbelong CHAR(20) NOT NULL, FOREIGN KEY(rno) REFERENCES restaurant(rno), FOREIGN KEY(sno) REFERENCES student(sno), FOREIGN KEY(fno) REFERENCES

19、 food(fno) );6) 創(chuàng)建員工表 CREATE TABLE worker(wno CHAR(9) PRIMARY KEY,wname CHAR(20) NOT NULL, wpost CHAR(18) NOT NULL, rno CHAR(9) NOT NULL, FOREIGN KEY(rno) REFERENCES restaurant(rno) );建立索引CREATE UNIQUE INDEX worker_wno ON worker(wno);CREATE UNIQUE INDEX manager_mno ON manager(mno);CREATE UNIQUE INDE

20、X student_sno ON student(sno);CREATE UNIQUE INDEX restaurant_rno ON restaurant(rno);CREATE UNIQUE INDEX food_fno ON food(fno);CREATEUNIQUEINDEX operation_rsft ON operation(rno ASC,sno ASC,fno ASC,ctime ASC);創(chuàng)建觸發(fā)器CREATE TRIGGER student_balance ON operationAFTER INSERTAS BEGINDECLARE card char(10) 定義變

21、量DECLARE time datetimeselect card = way, time = ctime from insertedif card = 'card'beginUPDATE studentSET =FROM student, operation, foodWHERE = and =and ctime = timeendEND學(xué)生卡內(nèi)余額=原余額-食品單價(jià)X數(shù)量X折扣。只有當(dāng)學(xué)生的付款方式為刷卡時(shí)才計(jì)算,支付現(xiàn)金不計(jì)算 創(chuàng)建視圖CREATE VIEW pf_operationASSELECT ,fprice,fnum,fnum*fprice*1 price,cti

22、meFROM operation,restaurant,student,foodWHERE = AND = AND =七 數(shù)據(jù)庫(kù)的實(shí)施數(shù)據(jù)的載入1 )向管理員表中插入數(shù)據(jù)INSERT INTO man ager(m no,m name,mpsw) VALUES('3O481','王紅','30481');INSERT INTO ma nager(m no,m name,mpsw) VALUES('30482','李明','30482');2) 向?qū)W生表中插入數(shù)據(jù) 由于建立了觸發(fā)器會(huì)自動(dòng)修改學(xué)生卡內(nèi)余

23、額, 截圖是在所有消費(fèi)記錄輸入過(guò)以后的,所以插入數(shù)據(jù)時(shí)的余額跟截圖的余額會(huì)有不同3) 向餐廳表中插入數(shù)據(jù)清風(fēng)樓');映月閣');VALUES('01',' 紅 燒 魚(yú) 塊VALUES('02',' 炸 雞 腿VALUES('03',' 清 炒西 洋菜VALUES('04',' 苦 瓜 炒 蛋VALUES('05',' 酸 辣土 豆絲VALUES('06',' 家 常 豆 腐INSERT INTO restaurant(rno,rname

24、) VALUES('01','INSERT INTO restaurant(rno,rname) VALUES('02','4) 向食品表中插入數(shù)據(jù)INSERT INTO food(fno,fname,fprice,fbelong) ','4','carn');INSERT INTO food(fno,fname,fprice,fbelong) ','4','carn');INSERT INTO food(fno,fname,fprice,fbelong) '

25、,'2','veg');INSERT INTO food(fno,fname,fprice,fbelong) ','2','veg');INSERT INTO food(fno,fname,fprice,fbelong) ','2','veg');INSERT INTO food(fno,fname,fprice,fbelong)','2','veg');5)向餐廳營(yíng)業(yè)表中插入數(shù)據(jù)(插入了兩天的營(yíng)業(yè)記錄,時(shí)間自動(dòng)為系統(tǒng)時(shí)間)6)向員工表中插入數(shù)

26、據(jù)INSERT INTO worker(wno,wname,wpost,rno)VALUES('40481','張?zhí)m','經(jīng)理','01');INSERT INTOworker(wno,wname,wpost,rno)VALUES('40482','馬燕 ','八、J廚師','01');INSERT INTOworker(wno,wname,wpost,rno)VALUES('40483','周揚(yáng)','經(jīng)理','

27、02');INSERT INTOworker(wno,wname,wpost,rno)VALUES('40484','王剛','廚師','02');八數(shù)據(jù)庫(kù)的試運(yùn)行 視圖中的數(shù)據(jù) 視圖的查詢 經(jīng)計(jì)算,結(jié)果正確 九數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)系統(tǒng)開(kāi)發(fā)工具的介紹微軟公司的Visual Basic是Windows應(yīng)用程序開(kāi)發(fā)工具,是目前最為廣泛 的、易學(xué)易用的面向?qū)ο蟮拈_(kāi)發(fā)工具。 Visual Basic 提供了大量的控件,這些 控件可用于設(shè)計(jì)界面和實(shí)現(xiàn)各種功能, 減少了編程人員的工作量, 也簡(jiǎn)化了界面設(shè)計(jì)過(guò)程,從而有效的提高了應(yīng)用程序的運(yùn)

28、行效率和可靠性。利用VISUALBASIC程序設(shè)計(jì)語(yǔ)言,可以很方便地設(shè)計(jì)出在 WINDOWS境下運(yùn)行的應(yīng)用程序。故而, 實(shí)現(xiàn)本系統(tǒng)VB是一個(gè)相對(duì)較好的選擇。ADO對(duì)象能夠存取到數(shù)據(jù)庫(kù)的內(nèi)容,首先要求數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序(ODBC區(qū)動(dòng) 程序與OLEDB驅(qū)動(dòng)程序)必須安裝上,否則,ADO寸象是無(wú)法存取數(shù)據(jù)庫(kù)中內(nèi)容, 其原理示意圖如下圖所示:se客ew戶連接客戶客戶VB 與 SQL如果在一臺(tái)新的電腦上I該先附加數(shù)扌, 就是說(shuō)要先有數(shù)據(jù)資源。對(duì)于我們的實(shí)驗(yàn)關(guān)機(jī)后會(huì)使數(shù)據(jù)庫(kù)中我們自對(duì)象立的數(shù)據(jù)庫(kù)不見(jiàn), 同下圖的步驟:DO寸所以可以進(jìn)行如選擇mdf格式文件即可,各種數(shù)示附庫(kù)所對(duì)應(yīng)的點(diǎn)擊ccess、e下代碼以及

29、即可實(shí)現(xiàn)VB與數(shù)據(jù)庫(kù)SQL的連接Opti on ExplicitPublic strSQL As Stri ngPublic Fun ction ExecuteSQL(ByVal strSQL As Stri ng) AsOn Error GoTo ErrorTrap'聲明對(duì)象變量Dim objConnection As'聲明對(duì)象變量Dim objRecordset As'聲明一個(gè)存放SQL查詢條件的數(shù)組Dim strArray() As Stri ng'定義新連接Set objC onnection = New'創(chuàng)建新連接=Conn ectStri n

30、g'打開(kāi)數(shù)據(jù)庫(kù)'Split函數(shù)返回一個(gè)下標(biāo)從零開(kāi)始的一維數(shù)組,包含指定數(shù)目的子字符串strArray = Split(strSQL)If In Str("INSER,DELETE,UPDATE", UCase(strArray(0) The n' 執(zhí)行SQL查詢strSQLElse' 打開(kāi)記錄集Set objRecordset = NewTrim(strSQL), objConnection, _ adOpenKeyset, adLockOptimisticSet ExecuteSQL = objRecordsetEnd If' 釋放

31、對(duì)象Set objRecordset = NothingSet objConnection = NothingExit Function' 出錯(cuò)處理ErrorTrap:Set objRecordset = NothingSet objConnection = NothingEnd Function' 連接字符串賦值函數(shù)Public Function ConnectString() As StringConnectString="Provider=;Integrated Security=SSPI;Persist Security Info=False;Initial

32、Catalog= 學(xué)校餐廳 ;Data Source=.;" (本地?cái)?shù)據(jù)庫(kù)寫 . 即可)End FunctionVB 實(shí)現(xiàn)學(xué)校餐廳的管理登錄界面分為管理員和學(xué)生兩種使用者, 管理員有兩個(gè), 初始登錄密碼是自己的工號(hào), 登 錄后可以自己修改。代碼如下:Private Sub Command1_Click()' 聲明對(duì)象變量Dim objRecordset As' 聲明SQL字符串Dim strSQL As StringSelect Case optCase 1' 查找用戶名strSQL = "select mno from manager where

33、mno='" & _ Trim & "'"' 獲得符合輸入的用戶記錄集Set objRecordset = ExecuteSQL(strSQL)' 如果輸入的用戶不存在If = True ThenMsgBox " 用戶名錯(cuò)誤! ", vbExclamation + vbOKOnly, " 警告 "= LenExit SubEnd If' 從數(shù)據(jù)庫(kù)中獲得用戶名mno = (0)' 查找用密碼strSQL = "select mno from manage

34、r where mpsw='" & _ Trim & "'"' 獲得符合輸入的密碼記錄集Set objRecordset = ExecuteSQL(strSQL)' 如果輸入的密碼不存在If = True Or mno <> (0) ThenMsgBox " 密碼錯(cuò)誤! ", vbExclamation + vbOKOnly, "= 0= LenExit SubEnd If' 顯示主界面管理員界面 .ShowCase 2' 查找用戶名strSQL = &quo

35、t;select sno from student where sno='" & _ Trim & "'"' 獲得符合輸入的用戶記錄集Set objRecordset = ExecuteSQL(strSQL)' 如果輸入的用戶不存在If = True ThenMsgBox "用戶名錯(cuò)誤! ", vbExclamation + vbOKOnly, "= 0= Len Exit SubEnd If' 從數(shù)據(jù)庫(kù)中獲得用戶名sno = (0)' 查找用密碼strSQL = &qu

36、ot;select sno from student where spsw='" & _Trim & "'"' 獲得符合輸入的密碼記錄集Set objRecordset = ExecuteSQL(strSQL)' 如果輸入的密碼不存在If = True Or sno <> (0) ThenMsgBox " 密碼錯(cuò)誤! ", vbExclamation + vbOKOnly, "= 0= LenExit SubEnd If' 顯示主界面學(xué)生界面 .StudentID =

37、 "'" & Trim & "'" 學(xué)生界面 .ShowEnd Select' 卸載登陸窗體Unload MeEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Option1_Click()opt = 1End SubPrivate Sub Option2_Click()opt = 2End Sub管理員功能 其中一個(gè)管理員進(jìn)行登錄: 點(diǎn)擊登錄,進(jìn)入管理員界面1) 查詢消費(fèi)總額 當(dāng)摁下管理員界面的查詢餐廳總額按鈕后會(huì)顯示出未查詢前, 數(shù)據(jù)庫(kù)

38、中的所有消 費(fèi)記錄,和 pf_operation 視圖的數(shù)據(jù)相同。這是利用了 adodc 部件和 DataGrid 部件,二者經(jīng)常搭配使用。點(diǎn)擊“查詢”按鈕可查詢相關(guān)內(nèi)容: 按“返回”按鈕可返回到管理員界面,按“退出”按鈕直接退出。代碼如下:Private Sub Form_Load()Dim objRecordset As' 綁定學(xué)生strSQL = "select DISTINCT sno from student"Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0' 綁定時(shí)間From

39、operationstrSQL = "select DISTINCTconvert(char(10),ctime,120)Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0' 綁定餐廳strSQL = "select DISTINCT rno from restaurant"Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)LoopstrSQL = "select DISTINCT fbelong from food"

40、; Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0' 綁定時(shí)間From operationstrSQL = "select DISTINCTconvert(char(10),ctime,120)Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0' 綁定餐廳strSQL = "select DISTINCT rno from restaurant"Set objRecordset = ExecuteSQL(str

41、SQL)Do While NotLoop= 0= False="select sno 學(xué)號(hào),rno 餐廳編號(hào),fno 菜編號(hào),fprice 菜單價(jià),fnum 菜量,price折扣后價(jià)格,fbelong 菜類,ctime 消費(fèi)時(shí)間 from pf_operation"Set =End Sub2) 管理學(xué)生信息* 查找學(xué)生 * 和查詢總額相似,點(diǎn)擊查詢學(xué)生后,即可看見(jiàn)學(xué)生表中全部信息,點(diǎn)擊查 詢后,看到某個(gè)學(xué)生信息。按“返回”按鈕可返回到管理員界面,按“退 出”按鈕直接退出。代碼如下:Private Sub Command1_Click()Dim strSQL As Strin

42、gstrSQL = "select sno 學(xué)生學(xué)號(hào) ,sname 學(xué)生姓名 ,spsw 學(xué)生密碼 ,sdept學(xué)生專業(yè),sbalanee 卡內(nèi)余額 from student where sno=”' & Trim & "”'= False= strSQLSet =End SubPrivate Sub Command2_Click()管理員界面 .ShowUnload MeEnd SubPrivate Sub Command3_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim objRecor

43、dset As' 綁定學(xué)生strSQL = "select DISTINCT sno from student"Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0= False= "select sno 學(xué)生學(xué)號(hào) ,sname 學(xué)生姓名 ,spsw 學(xué)生密碼 ,sdept 學(xué)生專 業(yè) ,sbalance 卡內(nèi)余額 from student"Set =End Sub* 增加學(xué)生 * 按“返回”按鈕可返回到管理員界面 代碼如下:Private Sub Command1_Click()

44、'聲明SQL字符串Dim strSQL As StringIf = "" Or = "" Or = "" Or = "" Or = "" ThenMsgBox " 學(xué)生信息中有空值! ", vbOKOnly + vbExclamation, ""Else strSQL = "insert into student values( '" & _Trim & "','" &

45、amp; _Trim & "','" & _Trim & "', '" & _Trim & "','" & _Trim & "') "Set objRecordset = ExecuteSQL(strSQL)MsgBox " 增加學(xué)生信息成功 ", vbOKOnly + vbExclamation, ""End IfEnd SubPrivate Sub Comman

46、d2_Click() 管理員界面 .ShowUnload MeEnd Sub* 修改學(xué)生 *學(xué)生學(xué)號(hào)處利用Comb(按鈕,下拉選擇學(xué)生學(xué)號(hào)即可。點(diǎn)擊“查看原信息”按鈕 即可查看學(xué)生原來(lái)信息,方便管理員修改。點(diǎn)擊“修改”按鈕進(jìn)行修改。代碼如下:Private Sub Command2_Click()Dim strSQL As StringDim objRecordset AsstrSQL = "update student set sname='" & Trim & "'where sno='" & Trim

47、 & "'"Set objRecordset = ExecuteSQL(strSQL)strSQL = "update student set spsw='" & Trim & "'where sno='" & Trim& "'"Set objRecordset = ExecuteSQL(strSQL)strSQL = "update student set sdept='" & Trim &

48、 "'where sno='" & Trim & "'"Set objRecordset = ExecuteSQL(strSQL)strSQL = "update student set sbalance='" & Trim & "'where sno='" &Trim & "'"Set objRecordset = ExecuteSQL(strSQL)MsgBox " 修改學(xué)生信息

49、成功 !", vbOKOnly + vbExclamation, ""End SubPrivate Sub Command3_Click() 管理員界面 .ShowUnload MeEnd SubPrivate Sub Form_Load()Dim objRecordset As' 綁定學(xué)生strSQL = "select DISTINCT sno from student"Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0End Sub* 刪除學(xué)生 *點(diǎn)擊“確認(rèn)刪除”

50、按鈕進(jìn)行刪除。代碼如下:Private Sub Command1_Click()Dim strSQL As StringDim objRecordset AsstrSQL = "delete from operation where sno='" & Trim & "'" strSQL = "delete from student where sno='" & Trim & "'" Set objRecordset = ExecuteSQL(strSQ

51、L)MsgBox " 刪除學(xué)生信息成功 !", vbOKOnly + vbExclamation, "" End SubPrivate Sub Command2_Click()管理員界面 .ShowUnload MeEnd SubPrivate Sub Form_Load()Dim objRecordset As' 綁定學(xué)生strSQL = "select DISTINCT sno from student"Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0E

52、nd Sub3)管理食品信息(代碼與說(shuō)明部分和學(xué)生信息管理相似,不再贅述) * 查詢食品 * 增加食品 * 修改食品 * 刪除食品 *4)管理管理員信息(代碼與說(shuō)明部分和學(xué)生信息管理相似,不再贅述)* 查找管理員 * 增加管理員 * 修改管理員 * 刪除管理員 *5)管理員工信息(代碼與說(shuō)明部分和學(xué)生信息管理相似,不再贅述)* 查找員工 * 增加員工 * 修改員工 * 刪除員工 *6)管理餐廳信息(代碼與說(shuō)明部分和學(xué)生信息管理相似,不再贅述)* 查找餐廳 * 編輯餐廳 *因?yàn)榍懊嫖业脑鰟h修改都不在同一個(gè)窗體, 而餐廳的信息比較簡(jiǎn)單, 所以我做了 另外一種不同于之前的簡(jiǎn)單編輯窗體。按“初始化”按

53、鈕后可以使 text 的值為空,免去增加后又想刪除時(shí)還要手動(dòng)按 delete 鍵。代碼如下:Private Sub Command1_Click() Illi IlliEnd SubPrivate Sub Command2_Click()'聲明SQL字符串Dim strSQL As StringDim objRecordset AsIf = "" Or = "" ThenMsgBox " 餐廳信息中有空值! ", vbOKOnly + vbExclamation, "" ElsestrSQL = "

54、;insert into restaurant values( '" & _Trim & "','" & _Trim & "')"Set objRecordset = ExecuteSQL(strSQL)MsgBox " 增加餐廳信息成功 ", vbOKOnly + vbExclamation, ""End IfEnd SubPrivate Sub Command3_Click()Dim strSQL As StringDim objReco

55、rdset AsstrSQL = "update restaurant set rname='" & Trim & "'where rno='" & Trim & "'"Set objRecordset = ExecuteSQL(strSQL)MsgBox " 修改餐廳信息成功 !", vbOKOnly + vbExclamation, "" End SubPrivate Sub Command4_Click()Dim strSQL

56、 As StringDim objRecordset AsstrSQL = "delete from operation where rno='" & Trim & "'"strSQL = "delete from restaurant where rno='" & Trim & "'"Set objRecordset = ExecuteSQL(strSQL)MsgBox " 刪除餐廳信息成功 !", vbOKOnly + vbEx

57、clamation, "" End SubPrivate Sub Command5_Click()管理員界面 .ShowUnload MeEnd Sub7) 選擇其他功能備份* 點(diǎn)擊瀏覽按鈕會(huì)彈出電腦磁盤圖框, 進(jìn)行選擇備份到的磁盤。 點(diǎn)擊備份按鈕, 進(jìn) 行備份。代碼如下:Private Sub Command1_Click()= "C:"If Len <> 0 ThenOpen For Append As #1Close #1End IfEnd SubPrivate Sub Command2_Click()Dim cn As New學(xué)校餐廳

58、 to disk='" & Trim & ".bak'"Security=SSPI;Persist SecurityDim strSQL As String strSQL = "backup database "Provider=;IntegratedInfo=False;Initial Catalog=學(xué)校餐廳 ;Data Source=.;"strSQL= 0If = 0 ThenMsgBox "A_A恭喜您,數(shù)據(jù)備份成功", vbOKOnly + vbExclamation,&

59、quot;提示"ElseMsgBox "對(duì)不起,數(shù)據(jù)備份失敗 !", vbOKOnly + vbExclamation, "示"End IfEnd SubPrivate Sub Command3_Click() 管理員界面 .ShowUnload MeEnd Sub* 恢復(fù) *點(diǎn)擊瀏覽按鈕會(huì)彈出電腦磁盤圖框, 進(jìn)行選擇備份到的磁盤。 點(diǎn)擊備份按鈕, 進(jìn) 行備份。代碼如下:Private Sub Command1_Click()= "C:"If Len <> 0 ThenOpen For Append As #1C

60、lose #1End IfEnd SubPrivate Sub Command2_Click()ret= MsgBox(" 數(shù)據(jù)恢復(fù)操作將覆蓋以前所有的數(shù)據(jù)并且覆蓋后無(wú)法恢復(fù),你確定要進(jìn)行恢復(fù)操作嗎? ", vbOKOnly + vbExclamation, " 提示 ")If ret = vbOK ThenDim cn As NewDim sn As NewDim s_restore As String"Provider=;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=mast

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論