




已閱讀5頁(yè),還剩59頁(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)介
課程設(shè)計(jì)說(shuō)明書 設(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): 2012394108 指導(dǎo)教師:顧艷春、韋慶清、李婭、胡明日 期: 2015 年 01 月 14 日 課程設(shè)計(jì)任務(wù)書 網(wǎng)絡(luò)工程 專業(yè) 12 年級(jí) 1 班 孫璐 一、 設(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ù)。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é)生選用參考書,查閱手冊(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、能夠按要求編寫課程設(shè)計(jì)報(bào)告書,能正確闡述設(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è)模塊的實(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ō)明書上,并參加答辯。三個(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ō)明書編寫。五、 完成后應(yīng)上交的材料 本課程設(shè)計(jì)要求按照學(xué)校有關(guān)規(guī)范的要求完成,在課程設(shè)計(jì)完成后需要提交的成果和有關(guān)文檔資料包括課程設(shè)計(jì)的說(shuō)明書,課程設(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)容:1 課程設(shè)計(jì)中遇到的主要問(wèn)題和解決方法;2 你的創(chuàng)新和得意之處;3 設(shè)計(jì)中存在的不足及改進(jìn)的設(shè)想;4 本次課程設(shè)計(jì)的感想和心得體會(huì)。5. 源代碼要求在關(guān)鍵的位置有注釋,增加程序的可讀性。程序結(jié)構(gòu)和變量等命名必須符合有關(guān)軟件開(kāi)發(fā)的技術(shù)規(guī)范(參見(jiàn)有關(guān)文獻(xiàn))。六、 總評(píng)成績(jī) 指導(dǎo)教師 簽名日期 年 月 日系 主 任 審核日期 年 月 日 目 錄一設(shè)計(jì)任務(wù)分析5 1.1系統(tǒng)總功能分析5 1.2系統(tǒng)總框架5 1.3設(shè)計(jì)思想簡(jiǎn)述5二總體設(shè)計(jì)思路6三需求分析6 3.1數(shù)據(jù)字典7 3.1.1數(shù)據(jù)庫(kù)用到的表 7 3.1.2 各表的說(shuō)明 7四概念結(jié)構(gòu)設(shè)計(jì)8 4.1消除不必要的冗余,設(shè)計(jì)基本的E-R圖 8 4.2合并分E-R圖,生成總的E-R圖 9五邏輯結(jié)構(gòu)設(shè)計(jì)10 5.1數(shù)據(jù)模型的優(yōu)化 10 5.2 由E-R圖得到的關(guān)系模式10六物理結(jié)構(gòu)設(shè)計(jì)10 6.1為關(guān)系模式選擇存取方法10 6.2 選擇存取路徑10 6.3 創(chuàng)建基本表11 6.4建立索引146.5建立觸發(fā)器176.6建立視圖187 數(shù)據(jù)庫(kù)的實(shí)施197.1數(shù)據(jù)的載入198 數(shù)據(jù)庫(kù)的試運(yùn)行228.1視圖中的數(shù)據(jù)228.2 視圖的查詢23九數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)23 9.1系統(tǒng)開(kāi)發(fā)工具的介紹23 9.2 VB 6.0與SQL sever的連接 24 9.3 VB實(shí)現(xiàn)學(xué)校餐廳的管理 27 9.3.1 登錄界面27 9.3.2 管理員功能30 9.3.3 學(xué)生功能57十課程設(shè)計(jì)的總結(jié)報(bào)告 60 一設(shè)計(jì)任務(wù)分析 1.1系統(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)總額,最后完成用戶管理功能,完成數(shù)據(jù)備份與恢復(fù)功能。1.2系統(tǒng)總框架用戶登錄驗(yàn)證密碼密碼錯(cuò)誤 密碼正確退出系統(tǒng)管理員功能學(xué)生功能 查看自己基本信息查詢學(xué)生卡余額修改自己的密碼備份與恢復(fù)對(duì)餐廳信息查增刪改對(duì)員工信息查增刪改對(duì)管理員信息查增刪改對(duì)食品信息查增刪改對(duì)學(xué)生信息查增刪改查詢消費(fèi)總額 1.3設(shè)計(jì)思想簡(jiǎn)述這個(gè)系統(tǒng)我建立了管理員、員工、學(xué)生、餐廳、食品和餐廳營(yíng)業(yè)表六張基本表,為了提高查找速度,我為前五個(gè)基本表以主鍵建立了唯一索引,為營(yíng)業(yè)表建立了以餐廳編號(hào)、學(xué)生學(xué)號(hào)、食品編號(hào)和消費(fèi)時(shí)間一起的唯一索引。為了簡(jiǎn)化操作,更清晰地表達(dá)查詢,我為學(xué)生、餐廳、食品和餐廳營(yíng)業(yè)表建立了視圖。二 總體設(shè)計(jì)思路三 需求分析通過(guò)我對(duì)學(xué)校餐廳的調(diào)查分析,我得出了餐廳以下幾點(diǎn)特點(diǎn):工作人員分為管理員,一般員工。管理員都有唯一的工號(hào),姓名,密碼,其中初始密碼為工號(hào)。而一般員工都有唯一的工號(hào)、姓名、職位和所屬餐廳。 其中只有管理員可以登錄系統(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)、餐廳號(hào)、食品號(hào)、食品單價(jià)、食品數(shù)量、折扣后價(jià)格。以上就是我對(duì)學(xué)校餐廳管理系統(tǒng)的需求分析,要求系統(tǒng)能有效、快速、安全、可靠和無(wú)誤的完成上述操作,服務(wù)器程序利于維護(hù)。3.1數(shù)據(jù)字典:3.1.1數(shù)據(jù)庫(kù)用到的表數(shù)據(jù)庫(kù)表名關(guān)系模式名稱manager管理員信息表student學(xué)生信息表restaurant餐廳信息表food食品價(jià)格表operation餐廳營(yíng)業(yè)表worker員工信息表pf_operation消費(fèi)表(視圖)3.1.2 各表的說(shuō)明表一 管理員信息表元素變量名數(shù)據(jù)類型備注工號(hào)mnoChar(9)主鍵(非空)姓名mnameChar(20)非空密碼mpswChar(18)非空表二 學(xué)生信息表元素變量名數(shù)據(jù)類型備注學(xué)號(hào)snoChar(9)主鍵(非空)姓名snameChar(20)非空密碼spswChar(18)非空專業(yè)sdeptChar(20)非空余額sbalanceInt表三 餐廳信息表元素變量名數(shù)據(jù)類型備注編號(hào)rnoChar(9)主鍵(非空)名稱rnameChar(20)非空表四 食品價(jià)格表元素變量名數(shù)據(jù)類型備注食品編號(hào)fnoChar(9)主鍵(非空)食品名稱fnameChar(20)非空食品單價(jià)fpriceInt非空食品類別fbelongChar(20)非空表五 餐廳營(yíng)業(yè)表元素變量名數(shù)據(jù)類型備注餐廳編號(hào)rnoChar(9)Restaurant的外鍵學(xué)號(hào)snoChar(9)Student的外鍵食品編號(hào)fnoChar(9)Food的外鍵食品數(shù)量fnumChar(10)非空消費(fèi)時(shí)間ctimeDatetime允許空值付款方式wayChar(10)非空食品類別fbelongChar(20)非空表六 員工信息表元素變量名數(shù)據(jù)類型備注工號(hào)wnoChar(9)主鍵(非空)姓名wnameChar(20)非空職位wpostChar(18)非空所屬餐廳rnoChar(9)非空4 概念結(jié)構(gòu)設(shè)計(jì) 4.1消除不必要的冗余,設(shè)計(jì)基本的E-R圖 由需求分析的結(jié)果可知,本系統(tǒng)設(shè)計(jì)的實(shí)體包括:(1) 員工基本信息:?jiǎn)T工工號(hào)、員工姓名、員工職位、所屬餐廳。(2) 管理員基本信息: 管理員工號(hào)、管理員姓名、管理員密碼。(3) 學(xué)生基本信息:學(xué)生學(xué)號(hào)、學(xué)生姓名、學(xué)生密碼、專業(yè)、卡內(nèi)余額。(4) 餐廳基本信息:餐廳編號(hào)、餐廳名稱。(5) 食品基本信息:食品編號(hào)、食品名稱、食品單價(jià)、食品類別。 由于餐廳的營(yíng)業(yè)表學(xué)生、餐廳、食品三者之間的多對(duì)多聯(lián)系轉(zhuǎn)換出來(lái)的表,是其基本屬性,不必畫在E-R圖上。 這些實(shí)體間的聯(lián)系包括:(1)每位學(xué)生可以在多個(gè)餐廳里消費(fèi),每個(gè)餐廳也可以供給多個(gè)學(xué)生的飯菜。(2)每個(gè)學(xué)生可以點(diǎn)多種食物,每個(gè)食物也可以被多個(gè)學(xué)生點(diǎn)。(3)每個(gè)餐廳可以有多名員工,而每個(gè)員工只能在一個(gè)食堂工作。4.2合并分E-R圖,生成總的E-R圖學(xué)生密碼卡內(nèi)余額單價(jià)工作銷售員工編號(hào)名稱專業(yè)姓名學(xué)號(hào)食品類別食品名食品號(hào)點(diǎn)菜食品學(xué)生消費(fèi)餐廳管理姓名管理員工號(hào)密碼工號(hào)姓名所屬餐廳職位五 邏輯結(jié)構(gòu)設(shè)計(jì)5.1數(shù)據(jù)模型的優(yōu)化數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的結(jié)果不是唯一的。為了進(jìn)一步提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能,還應(yīng)該根據(jù)應(yīng)用需求適當(dāng)?shù)匦薷?、調(diào)整數(shù)據(jù)模型的結(jié)構(gòu),這就是數(shù)據(jù)模型的優(yōu)化。方法為:1) 確定數(shù)據(jù)依賴;2) 對(duì)于各個(gè)關(guān)系模式之間的數(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ǔ)空間的利用率。 5.2 由E-R圖得到的關(guān)系模式數(shù)據(jù)結(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ì)6.1為關(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í)間一起的唯一索引。 6.2 選擇存取路徑create database 學(xué)校餐廳on ( name=學(xué)校餐廳_data,filename=d:slslsl學(xué)校餐廳_data.mdf)log on ( name=學(xué)校餐廳_log, filename=d:slslsl學(xué)校餐廳_log.ldf)6.3 創(chuàng)建基本表1) 創(chuàng)建管理員表CREATE TABLE manager (mno CHAR(9) PRIMARY KEY, mname CHAR(20) NOT NULL, mpsw CHAR(18) NOT NULL );2)創(chuàng)建學(xué)生表CREATE TABLE student (sno CHAR(9) PRIMARY KEY, sname CHAR(20) NOT NULL, spsw CHAR(18) 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 TABLE 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 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) );6.4建立索引CREATE UNIQUE INDEX worker_wno ON worker(wno);CREATE UNIQUE INDEX manager_mno ON manager(mno);CREATE UNIQUE INDEX student_sno ON student(sno);CREATE UNIQUE INDEX restaurant_rno ON restaurant(rno);CREATE UNIQUE INDEX food_fno ON food(fno);CREATE UNIQUE INDEX operation_rsft ON operation(rno ASC,sno ASC,fno ASC,ctime ASC);6.5創(chuàng)建觸發(fā)器CREATE TRIGGER student_balance ON operationAFTER INSERT AS BEGINDECLARE card char(10) 定義變量DECLARE time datetimeselect card = way, time = ctime from inserted if card = card beginUPDATE student SET student.sbalance=student.sbalance-food.fprice*operation.fnum*1 FROM student, operation, food WHERE student.sno = operation.sno and operation.fno = food.fno and ctime = time end END 學(xué)生卡內(nèi)余額=原余額-食品單價(jià)X數(shù)量X折扣。 只有當(dāng)學(xué)生的付款方式為刷卡時(shí)才計(jì)算,支付現(xiàn)金不計(jì)算。6.6創(chuàng)建視圖CREATE VIEW pf_operationASSELECT student.sno,restaurant.rno,food.fno,fprice,fnum,fnum*fprice*1 price,food.fbelong,ctimeFROM operation,restaurant,student,foodWHERE operation.sno=student.sno AND operation.rno=restaurant.rno AND operation.fno=food.fno七 數(shù)據(jù)庫(kù)的實(shí)施 7.1數(shù)據(jù)的載入 1)向管理員表中插入數(shù)據(jù)INSERT INTO manager(mno,mname,mpsw) VALUES(30481,王紅,30481);INSERT INTO manager(mno,mname,mpsw) VALUES(30482,李明,30482);2)向?qū)W生表中插入數(shù)據(jù)INSERT INTO student(sno,sname,spsw,sdept,sbalance) VALUES(201215121,李勇,15121,cs,101);INSERT INTO student(sno,sname,spsw,sdept,sbalance) VALUES(201215143,劉晨,15143,cs,140);INSERT INTO student(sno,sname,spsw,sdept,sbalance) VALUES(201247384,王敏,47384,ma,99);INSERT INTO student(sno,sname,spsw,sdept,sbalance) VALUES(201268974,張立,68974,is,70); 由于建立了觸發(fā)器會(huì)自動(dòng)修改學(xué)生卡內(nèi)余額,截圖是在所有消費(fèi)記錄輸入過(guò)以后的,所以插入數(shù)據(jù)時(shí)的余額跟截圖的余額會(huì)有不同。3) 向餐廳表中插入數(shù)據(jù)INSERT INTO restaurant(rno,rname) VALUES(01,清風(fēng)樓);INSERT INTO restaurant(rno,rname) VALUES(02,映月閣);4)向食品表中插入數(shù)據(jù)INSERT INTO food(fno,fname,fprice,fbelong) VALUES(01,紅燒魚塊,4,carn);INSERT INTO food(fno,fname,fprice,fbelong) VALUES(02,炸雞腿,4,carn);INSERT INTO food(fno,fname,fprice,fbelong) VALUES(03,清炒西洋菜,2,veg);INSERT INTO food(fno,fname,fprice,fbelong) VALUES(04,苦瓜炒蛋,2,veg);INSERT INTO food(fno,fname,fprice,fbelong) VALUES(05,酸辣土豆絲,2,veg);INSERT INTO food(fno,fname,fprice,fbelong) VALUES(06,家常豆腐,2,veg);5)向餐廳營(yíng)業(yè)表中插入數(shù)據(jù)(插入了兩天的營(yíng)業(yè)記錄,時(shí)間自動(dòng)為系統(tǒng)時(shí)間)INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(01,201215121,01,01,cash,carn);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(01,201215121,03,01,cash,veg);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(01,201215143,02,02,cash,carn);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(01,201215143,05,01,cash,veg);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(02,201247384,01,02,cash,carn);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(02,201247384,03,01,cash,veg);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(02,201247384,04,01,cash,veg);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(02,201247384,05,01,cash,veg);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(02,201268974,01,01,cash,carn);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(02,201268974,05,01,cash,veg);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(02,201268974,02,01,cash,carn);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(01,201215121,04,01,card,veg);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(01,201215143,06,01,card,veg);INSERT INTO operation(rno,sno,fno,fnum,way,fbelong) VALUES(02,201268974,03,01,card,veg);6)向員工表中插入數(shù)據(jù)INSERT INTO worker(wno,wname,wpost,rno) VALUES(40481,張?zhí)m,經(jīng)理,01);INSERT INTO worker(wno,wname,wpost,rno) VALUES(40482,馬燕,廚師,01);INSERT INTO worker(wno,wname,wpost,rno) VALUES(40483,周揚(yáng),經(jīng)理,02);INSERT INTO worker(wno,wname,wpost,rno) VALUES(40484,王剛,廚師,02);8 數(shù)據(jù)庫(kù)的試運(yùn)行8.1視圖中的數(shù)據(jù)8.2 視圖的查詢經(jīng)計(jì)算,結(jié)果正確九數(shù)據(jù)庫(kù)運(yùn)行和維護(hù) 9.1系統(tǒng)開(kāi)發(fā)工具的介紹微軟公司的Visual Basic 6.0是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)行效率和可靠性。利用VISUAL BASIC 程序設(shè)計(jì)語(yǔ)言,可以很方便地設(shè)計(jì)出在WINDOWS環(huán)境下運(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)程序與OLE DB驅(qū)動(dòng)程序)必須安裝上,否則,ADO對(duì)象是無(wú)法存取數(shù)據(jù)庫(kù)中內(nèi)容,其原理示意圖如下圖所示:客戶端客戶端客戶端ADO對(duì)象各種數(shù)據(jù)庫(kù)所對(duì)應(yīng)的驅(qū)動(dòng)程序各種數(shù)據(jù)庫(kù)(如Access、SQL Server以及Oracle等)9.2 VB 6.0與SQL sever的連接 如果在一臺(tái)新的電腦上應(yīng)該先附加數(shù)據(jù)庫(kù),就是說(shuō)要先有數(shù)據(jù)資源。對(duì)于我們的實(shí)驗(yàn)關(guān)機(jī)后會(huì)使數(shù)據(jù)庫(kù)中我們自己建立的數(shù)據(jù)庫(kù)不見(jiàn),所以可以進(jìn)行如同下圖的步驟: 選擇mdf格式文件即可,會(huì)提示附加數(shù)據(jù)庫(kù)成功。點(diǎn)擊VB工程處添加,新增一個(gè)模塊,在里面輸入如下代碼,即可實(shí)現(xiàn)VB與數(shù)據(jù)庫(kù)SQL的連接。Option ExplicitPublic strSQL As StringPublic Function ExecuteSQL(ByVal strSQL As String) As ADODB.Recordset On Error GoTo ErrorTrap 聲明ADODB.Connection對(duì)象變量 Dim objConnection As ADODB.Connection 聲明ADODB.Recordset對(duì)象變量 Dim objRecordset As ADODB.Recordset 聲明一個(gè)存放SQL查詢條件的數(shù)組 Dim strArray() As String 定義新連接 Set objConnection = New ADODB.Connection 創(chuàng)建新連接 objConnection.ConnectionString = ConnectString 打開(kāi)數(shù)據(jù)庫(kù) objConnection.Open Split函數(shù)返回一個(gè)下標(biāo)從零開(kāi)始的一維數(shù)組,包含指定數(shù)目的子字符串 strArray = Split(strSQL) If InStr(INSER,DELETE,UPDATE, UCase(strArray(0) Then 執(zhí)行SQL查詢 objConnection.Execute strSQL Else 打開(kāi)記錄集 Set objRecordset = New ADODB.Recordset objRecordset.Open Trim(strSQL), objConnection, _ adOpenKeyset, adLockOptimistic Set ExecuteSQL = objRecordset End If 釋放對(duì)象 Set objRecordset = Nothing Set objConnection = Nothing Exit Function出錯(cuò)處理ErrorTrap: Set objRecordset = Nothing Set objConnection = NothingEnd Function連接字符串賦值函數(shù)Public Function ConnectString() As String ConnectString=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=學(xué)校餐廳;Data Source=.; (本地?cái)?shù)據(jù)庫(kù)寫.即可)End Function9.3 VB實(shí)現(xiàn)學(xué)校餐廳的管理 9.3.1 登錄界面分為管理員和學(xué)生兩種使用者,管理員有兩個(gè),初始登錄密碼是自己的工號(hào),登錄后可以自己修改。代碼如下:Private Sub Command1_Click()聲明ADODB.Recordset對(duì)象變量 Dim objRecordset As ADODB.Recordset 聲明SQL字符串 Dim strSQL As String Select Case opt Case 1 查找用戶名 strSQL = select mno from manager where mno= & _ Trim(txtno.Text) & 獲得符合輸入的用戶記錄集 Set objRecordset = ExecuteSQL(strSQL) 如果輸入的用戶不存在 If objRecordset.EOF = True Then MsgBox 用戶名錯(cuò)誤!, vbExclamation + vbOKOnly, 警告 txtno.SetFocus txtno.SelStart = 0 txtno.SelLength = Len(txtno.Text) Exit Sub End If 從數(shù)據(jù)庫(kù)中獲得用戶名 mno = objRecordset.Fields(0) 查找用密碼 strSQL = select mno from manager where mpsw= & _ Trim(txtpsw.Text) & 獲得符合輸入的密碼記錄集 Set objRecordset = ExecuteSQL(strSQL) 如果輸入的密碼不存在 If objRecordset.EOF = True Or mno objRecordset.Fields(0) Then MsgBox 密碼錯(cuò)誤!, vbExclamation + vbOKOnly, 警告 txtpsw.SetFocus txtpsw.SelStart = 0 txtpsw.SelLength = Len(txtpsw.Text) Exit Sub End If 顯示主界面 管理員界面.Show Case 2 查找用戶名 strSQL = select sno from student where sno= & _ Trim(txtno.Text) & 獲得符合輸入的用戶記錄集 Set objRecordset = ExecuteSQL(strSQL) 如果輸入的用戶不存在 If objRecordset.EOF = True Then MsgBox 用戶名錯(cuò)誤!, vbExclamation + vbOKOnly, 警告 txtno.SetFocus txtno.SelStart = 0 txtno.SelLength = Len(txtno.Text) Exit Sub End If 從數(shù)據(jù)庫(kù)中獲得用戶名 sno = objRecordset.Fields(0) 查找用密碼 strSQL = select sno from student where spsw= & _ Trim(txtpsw.Text) & 獲得符合輸入的密碼記錄集 Set objRecordset = ExecuteSQL(strSQL) 如果輸入的密碼不存在 If objRecordset.EOF = True Or sno objRecordset.Fields(0) Then MsgBox 密碼錯(cuò)誤!, vbExclamation + vbOKOnly, 警告 txtpsw.SetFocus txtpsw.SelStart = 0 txtpsw.SelLength = Len(txtpsw.Text) Exit Sub End If 顯示主界面 學(xué)生界面.StudentID = & Trim(txtno.Text) & 學(xué)生界面.Show End Select 卸載登陸窗體 Unload MeEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Option1_Click()opt = 1End SubPrivate Sub Option2_Click()opt = 2End Sub9.3.2 管理員功能其中一個(gè)管理員進(jìn)行登錄:點(diǎn)擊登錄,進(jìn)入管理員界面1) 查詢消費(fèi)總額當(dāng)摁下管理員界面的查詢餐廳總額按鈕后會(huì)顯示出未查詢前,數(shù)據(jù)庫(kù)中的所有消費(fèi)記錄,和pf_operation視圖的數(shù)據(jù)相同。這是利用了adodc部件和DataGrid部件,二者經(jīng)常搭配使用。點(diǎn)擊“查詢”按鈕可查詢相關(guān)內(nèi)容:按“返回”按鈕可返回到管理員界面,按“退出”按鈕直接退出。代碼如下:Private Sub Form_Load() Dim objRecordset As ADODB.Recordset 綁定學(xué)生 strSQL = select DISTINCT sno from student Set objRecordset = ExecuteSQL(strSQL) objRecordset.MoveFirst Combo1.Clear Do While Not objRecordset.EOF Combo1.AddItem objRecordset.Fields(0) objRecordset.MoveNext Loop Combo1.ListIndex = 0 綁定時(shí)間 strSQL = select DISTINCT convert(char(10),ctime,120) From operation Set objRecordset = ExecuteSQL(strSQL) objRecordset.MoveFirst Combo2.Clear Do While Not objRecordset.EOF Combo2.AddItem objRecordset.Fields(0) objRecordset.MoveNext Loop Combo2.ListIndex = 0 綁定餐廳 strSQL = select DISTINCT rno from restaurant Set objRecordset = ExecuteSQL(strSQL) objRecordset.MoveFirst Combo3.Clear Do While Not objRecordset.EOF Combo3.AddItem objRecordset.Fields(0) objRecord
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中物理第07章機(jī)械能守恒定律專題7.1追尋守恒量-能量情景分組訓(xùn)練新人教版必修2
- 2025年地?zé)嵊媚蜔釢撍姳庙?xiàng)目合作計(jì)劃書
- 電池電源企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 聚酯催化用三氧化二銻企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 冷凝器設(shè)備企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 大型機(jī)動(dòng)客車車輪總成企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 日用五金企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 再生鋅企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 病床秤企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 不銹鋼鍍層板帶企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 去乙酰毛花苷的雜質(zhì)分析與測(cè)定
- JGJT280-2012 中小學(xué)校體育設(shè)施技術(shù)規(guī)程
- 東北三省三校2024年高三二模(第二次聯(lián)合模擬考試)英語(yǔ)試卷(含標(biāo)準(zhǔn)答案)
- 北師大版二年級(jí)下冊(cè)數(shù)學(xué)計(jì)算題300道及答案
- 投標(biāo)項(xiàng)目分析報(bào)告案例模板
- 大樹(shù)移植方案可行性論證
- GB 24542-2023墜落防護(hù)帶剛性導(dǎo)軌的自鎖器
- 固體物理課件完全版
- 人民衛(wèi)生出版社選題表
- 《大學(xué)生安全教育》教案-第十一課 預(yù)防激情犯罪
- Higg?FEM?平臺(tái)操作介紹
評(píng)論
0/150
提交評(píng)論