版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)說明書設(shè)計(jì)名稱:數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)題 目:學(xué)校飯?zhí)孟M(fèi)管理系統(tǒng)的設(shè)計(jì)學(xué)生姓名:孫璐專業(yè):網(wǎng)絡(luò)工程班級:12網(wǎng)絡(luò)1班學(xué)號:指導(dǎo)教師:顧艷春、韋慶清、李婭、胡明日期:2015年01 月14 日課程設(shè)計(jì)任務(wù)書網(wǎng)絡(luò)工程專業(yè)12年級_J班 孫璐一、設(shè)計(jì)題目學(xué)校飯?zhí)孟M(fèi)管理系統(tǒng)二、主要內(nèi)容通過對學(xué)生在學(xué)校飯?zhí)没虿蛷d的消費(fèi)流程進(jìn)行分析,完成具有食品管 理、 消費(fèi)管理、帳戶管理、餐廳管理等相關(guān)功能的小型數(shù)據(jù)庫管理應(yīng)用系統(tǒng) (消費(fèi)刷 卡可以通過手工輸入來模擬完成)1. 根據(jù)任務(wù)要求完成有關(guān)表的設(shè)計(jì)(表的設(shè)計(jì)需要遵循 3NF)。2. 完成飯?zhí)茫ú蛷d)員工表、消費(fèi)人員及帳戶表、餐廳表、食品價目表的 維護(hù)
2、。3. 完成消費(fèi)表的生成,并計(jì)算消費(fèi)折扣(可現(xiàn)金消費(fèi)也可刷卡消費(fèi))。4. 按人員、時間、餐廳統(tǒng)計(jì)計(jì)算消費(fèi)總額。5. 按食品類別、時間、餐廳統(tǒng)計(jì)計(jì)算消費(fèi)總額。6. 完成用戶帳戶管理功能。7. 完成數(shù)據(jù)備份與恢復(fù)功能。三、具體要求圍繞課程設(shè)計(jì)的目的和意義,基本要求如下:1、鞏固和加深對數(shù)據(jù)庫系統(tǒng)原理的理解,提高綜合運(yùn)用本課程所學(xué)知識 的能力。2、培養(yǎng)學(xué)生選用參考書,查閱手冊及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考、 深入研究、分析問題、解決問題以及團(tuán)隊(duì)協(xié)作能力。3、通過實(shí)際系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握數(shù)據(jù)庫軟件的分析設(shè)計(jì)方法和鞏固軟件工程方法。軟件開發(fā)的流程可參見軟件工程課程教材。(見第六部分)4、能夠按
3、要求編寫課程設(shè)計(jì)報告書,能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果、正確 繪制系統(tǒng)數(shù)據(jù)流圖和E-R圖。5、通過課程設(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ì)只要求大家完成一個基本的數(shù)據(jù)庫軟件的開發(fā)工作,系統(tǒng) 開發(fā)不要求大而全數(shù)據(jù)庫軟件的開發(fā),只要完成數(shù)據(jù)的增、刪、改、查等 基本功能,并設(shè)計(jì)一個較友好系統(tǒng)操作界面(最好是圖形界面) 。7 、系統(tǒng)開發(fā)平臺不做統(tǒng)一要求。四、進(jìn)度安排依照教學(xué)計(jì)劃,課程設(shè)計(jì)時間為: 2 周。本設(shè)計(jì)要求按照軟件工程的基本過程完成設(shè)計(jì)。建議將時間分為四個階段: 第一階段,根據(jù)題目要求,確定系統(tǒng)的總體設(shè)計(jì)方案(概要設(shè)計(jì)) :即系統(tǒng)包括 哪些功能模塊,每個
4、模塊的實(shí)現(xiàn)方法,同時編寫相應(yīng)的設(shè)計(jì)文檔;第二階段,完 成系統(tǒng)的詳細(xì)設(shè)計(jì)工作; 第三階段, 完成數(shù)據(jù)庫設(shè)計(jì)和編寫程序代碼并調(diào)試, 再 將調(diào)試通過的各個子模塊進(jìn)行集成調(diào)試; 第四階段,歸納文檔資料, 按要求填寫 在課程設(shè)計(jì)說明書 上,并參加答辯。三個階段時間分配的大概比例是: 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ì)說明書編寫。五、完成后應(yīng)上交的材料 本課程設(shè)計(jì)要求
5、按照學(xué)校有關(guān)規(guī)范的要求完成,在課程設(shè)計(jì)完成后需要提 交的成果和有關(guān)文檔資料包括課程設(shè)計(jì)的說明書, 課程設(shè)計(jì)有關(guān)源程序及可運(yùn)行 程序(含運(yùn)行環(huán)境),其內(nèi)容不能過于簡單,必須包括的內(nèi)容有: 1課程設(shè)計(jì)的基本思想,系統(tǒng)的總功能和各子模塊的功能說明; 2數(shù)據(jù)庫設(shè)計(jì)中有關(guān)數(shù)據(jù)流圖和 E-R 圖,并對重要的操作畫出有關(guān)算法流 程圖;3源程序中核心代碼的說明;4本課程設(shè)計(jì)的個人總結(jié),主要包括以下內(nèi)容: 課程設(shè)計(jì)中遇到的主要問題和解決方法; 你的創(chuàng)新和得意之處; 設(shè)計(jì)中存在的不足及改進(jìn)的設(shè)想; 本次課程設(shè)計(jì)的感想和心得體會。5.源代碼要求在關(guān)鍵的位置有注釋,增加程序的可讀性。程序結(jié)構(gòu)和變量 等命名必須符合有關(guān)
6、軟件開發(fā)的技術(shù)規(guī)范(參見有關(guān)文獻(xiàn))。六、總評成績指導(dǎo)教師簽名日期年月日系主任審核日期年 月 日目 錄一. 設(shè)計(jì)任務(wù)分析 5系統(tǒng)總功能分析 5系統(tǒng)總框架 5設(shè)計(jì)思想簡述5二. 總體設(shè)計(jì)思路 6三. 需求分析 6數(shù)據(jù)字典 7數(shù)據(jù)庫用到的表 7各表的說明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ù)庫的實(shí)施 19數(shù)據(jù)的載入 19八. 數(shù)
7、據(jù)庫的試運(yùn)行 22視圖中的數(shù)據(jù)22視圖的查詢 23九. 數(shù)據(jù)庫運(yùn)行和維護(hù) 23系統(tǒng)開發(fā)工具的介紹 23VB 與 SQL sever 的連接24VB 實(shí)現(xiàn)學(xué)校餐廳的管理 27登錄界面27管理員功能學(xué)生功能57十課程設(shè)計(jì)的總結(jié)報告一.設(shè)計(jì)任務(wù)分析系統(tǒng)總功能分析通過對學(xué)生在學(xué)校飯?zhí)没虿蛷d的消費(fèi)流程進(jìn)行分析,完成具有食品管理、消費(fèi)管理、帳戶管理、餐廳管理等相關(guān)功能的小型數(shù)據(jù)庫管理應(yīng)用系統(tǒng)。根據(jù)任務(wù)要求完成有關(guān)表的設(shè)計(jì)(表的設(shè)計(jì)需要遵循3NF)。同時還要完成進(jìn)人員、餐廳、食品價目表的維護(hù),完成消費(fèi)表的生成,并計(jì)算消費(fèi)折扣。以及按人員、時 間段、餐廳統(tǒng)計(jì)計(jì)算消費(fèi)總額,按食品類別、時間段、餐廳統(tǒng)計(jì)計(jì)算消費(fèi)總
8、額, 最后完成用戶管理功能,完成數(shù)據(jù)備份與恢復(fù)功能。系統(tǒng)總框架查、設(shè)計(jì)、這思這個管理員功能想簡J系統(tǒng)我建立了管理 表,為了學(xué)高 立了以餐廳編號、學(xué)生學(xué)號、備餐廳、食品和餐廳營學(xué)生功能杳找速度,管我為前五食品纟 學(xué)生本建操作消更清生地表達(dá)查詢,理我為、員工、學(xué)生、基本表以主鍵建立了唯一索引看 1消費(fèi)時間一起的唯一索引 食與和餐廳營業(yè)表建立丹號不餐廳、業(yè)表0了視:張基為營 為了 圖。學(xué)業(yè)改 簡化 自退出系統(tǒng)求分析息的調(diào)杳分析,我得出了餐廳以下幾點(diǎn)特點(diǎn):心、 _息 通過我對學(xué)校餐廳 工作人員分為管理員,一般員工。管理員都有唯一的工號,姓名,密碼,其中初始密碼為工號。而一般員工都有唯一的工號、姓名、職
9、位和所屬餐廳。其 中只有管理員可以登錄系統(tǒng),對餐廳、學(xué)生、一般員工、食品進(jìn)行管理,對餐廳 營業(yè)表進(jìn)行查詢消費(fèi)總額。每位同學(xué)都有唯一的學(xué)號、姓名、密碼、專業(yè)和學(xué)生卡內(nèi)余額,其中初始 密碼為學(xué)號后5位,學(xué)生可以利用學(xué)號和初始密碼登錄系統(tǒng)進(jìn)行修改密碼,查看自己的基本信息以及查詢自己卡內(nèi)的余額。餐廳分為兩個,每個餐廳都有唯一的編號和姓名。食品的類別分為素菜和肉菜,每個食品都有唯一的編號,食品名稱,素菜 的單價為2元,肉菜的單價為4元。學(xué)生在學(xué)校餐廳就餐,就有所就餐的餐廳編號、該學(xué)生的學(xué)號、所食用的食 品編號、食品數(shù)量、該食品的類別,付款方式(現(xiàn)金或者刷卡)和就餐時間。消費(fèi)表就是建立的視圖,包括學(xué)生學(xué)號
10、、餐廳號、食品號、食品單價、食 品數(shù)量、折扣后價格。以上就是我對學(xué)校餐廳管理系統(tǒng)的需求分析,要求系統(tǒng)能有效、快速、安 全、可靠和無誤的完成上述操作,服務(wù)器程序利于維護(hù)。數(shù)據(jù)字典:數(shù)據(jù)庫表名關(guān)系模式名稱man ager管理員信息表stude nt學(xué)生信息表restaura nt餐廳信息表food食品價格表operati on餐廳營業(yè)表worker員工信息表pf operati on消費(fèi)表(視圖)各表的說明表一管理員信息表兒糸變量名數(shù)據(jù)類型備注工號mnoChar(9)主鍵(非空)姓名mn ameChar(20)非空密碼mpswChar(18)非空表二學(xué)生信息表兒糸變量名數(shù)據(jù)類型備注學(xué)號snoCha
11、r(9)主鍵(非空)姓名sn ameChar(20)非空密碼spswChar(18)非空專業(yè)sdeptChar(20)非空余額sbala neeInt表三餐廳信息表兒糸變量名數(shù)據(jù)類型備注編號rnoChar(9)主鍵(非空)名稱rn ameChar(20)非空表四食品價格表兒糸變量名數(shù)據(jù)類型備注食口口編號fnoChar(9)r主鍵(非空)食品名稱fnameChar(20)非空食品單價fprieeInt非空食品類別fbel ongChar(20)非空表五餐廳營業(yè)表兒糸變量名數(shù)據(jù)類型備注餐廳編號rnoChar(9)Restaura nt 的外鍵學(xué)號snoChar(9)Student的外鍵食口口編號f
12、noChar(9)Food的外鍵食品數(shù)量fnumChar(10)r非空消費(fèi)時間etimeDatetime允許空值付款方式wayChar(10)非空食品類別fbel ongChar(20)非空表六員工信息表備注主鍵(非空)非空非空非空兀素 工號.姓名 職位所屬餐廳C數(shù)據(jù)類型Cha(9)學(xué)號四.概念結(jié)構(gòu)設(shè)學(xué)生消除不必要的冗余,設(shè)計(jì)基本的 由需求分析的結(jié)果可知,本系統(tǒng)設(shè)計(jì)的實(shí)體包括: 員工基本信息:員工工號、員工姓名、員工職位、所屬餐廳。 管理員基本信息消費(fèi)管理員工號、(1)(2)(3)(05)編食品基本信息:食品編生、E-R圖上基本信息:學(xué)本信息:理員密碼。者之間的多對多聯(lián)系轉(zhuǎn)換出來的表|,:、卡
13、內(nèi)余額:號、學(xué)生姓名、學(xué)生密碼、餐廳名稱。菜 食品名稱、食品單價、食品類別。餐廳、食號、號、廳的營業(yè)不必實(shí)體間的聯(lián)系包牯:(1)每位學(xué)生可以在多個餐廳里消費(fèi),每個餐廳也可以是其基!本(3)每個餐廳可以合并分E-R圖卜學(xué)生可以點(diǎn)沽多名員,管理總品o銷售食品名食物,每個食物也可以被多個學(xué)生點(diǎn) ,而每個員工只能在一個食品號工E-R圖食品類別個學(xué)生的飯菜卡內(nèi)余額五.姓密O工工號號學(xué)生密碼單屬餐數(shù)據(jù)模型的優(yōu)化 數(shù)據(jù)庫邏輯設(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ù)庫應(yīng)用系統(tǒng)的性能,1) 確定數(shù)據(jù)依賴;2) 對于各個關(guān)系模式之間
14、的數(shù)據(jù)依賴進(jìn)行極小化的處理,消除冗余的聯(lián)系;3) 按照數(shù)據(jù)依賴的理論對關(guān)系模式逐一進(jìn)行分析,考察是否存在部分函數(shù)、傳 遞依賴、多值依賴等,確定各關(guān)系模式分別處于第幾范式。由于并不是規(guī)范化程度越高的關(guān)系就越優(yōu),一般說來,第三范式就足夠了,所以對于本系統(tǒng), 按照要求,達(dá)到第三范式。4) 按照需求分析階段得到的處理要求,分析對于這樣的應(yīng)用環(huán)境這些模式是否 合適,確定是否要對模式進(jìn)行合并或分解。本系統(tǒng)中的管理員皆是餐廳的員 工,但是只要管理員擁有密碼可以對餐廳進(jìn)行管理,所以我把他們分為管理 員表和員工表。5)對關(guān)系模式進(jìn)行必要的分解,提高數(shù)據(jù)操作的效率和存儲空間的利用率。 由E-R圖得到的關(guān)系模式數(shù)據(jù)
15、結(jié)構(gòu)名組成管理員信息工號,姓名,密碼學(xué)生信息學(xué)號,姓名,密碼,專業(yè),卡內(nèi)余額餐廳信息一編號,名稱食品價格表食品號,食品名,食品價,食品類別營業(yè)表餐廳編號,學(xué)號,食品號,食品數(shù)量,消費(fèi)時間,付 款方式,食品類別員工信息工號,姓名,職位,所屬餐廳(下劃線標(biāo)注的屬性為主碼)六.物理結(jié)構(gòu)設(shè)計(jì)為關(guān)系模式選擇存取方法數(shù)據(jù)庫在物理設(shè)備上的存儲結(jié)構(gòu)與存取方法稱為數(shù)據(jù)庫的物理結(jié)構(gòu),它依 賴于選定的數(shù)據(jù)庫管理系統(tǒng)。為一個給定的邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán) 境的物理結(jié)構(gòu)的過程,就是數(shù)據(jù)庫的物理設(shè)計(jì)。這個系統(tǒng)我選擇使用索引,為前五個基本表以主鍵建立了唯一索引,為營業(yè)表建立了以餐廳編號、學(xué)生學(xué)號、食品編號和消費(fèi)時間
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è)表 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)余額=原余額-食品單價X數(shù)量X折扣。只有當(dāng)學(xué)生的付款方式為刷卡時才計(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ù)庫的實(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ā)器會自動修改學(xué)生卡內(nèi)余
23、額, 截圖是在所有消費(fèi)記錄輸入過以后的,所以插入數(shù)據(jù)時的余額跟截圖的余額會有不同3) 向餐廳表中插入數(shù)據(jù)清風(fēng)樓');映月閣');VALUES('01',' 紅 燒 魚 塊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è)表中插入數(shù)據(jù)(插入了兩天的營業(yè)記錄,時間自動為系統(tǒng)時間)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ù)庫的試運(yùn)行 視圖中的數(shù)據(jù) 視圖的查詢 經(jīng)計(jì)算,結(jié)果正確 九數(shù)據(jù)庫運(yùn)行和維護(hù)系統(tǒng)開發(fā)工具的介紹微軟公司的Visual Basic是Windows應(yīng)用程序開發(fā)工具,是目前最為廣泛 的、易學(xué)易用的面向?qū)ο蟮拈_發(fā)工具。 Visual Basic 提供了大量的控件,這些 控件可用于設(shè)計(jì)界面和實(shí)現(xiàn)各種功能, 減少了編程人員的工作量, 也簡化了界面設(shè)計(jì)過程,從而有效的提高了應(yīng)用程序的運(yùn)
28、行效率和可靠性。利用VISUALBASIC程序設(shè)計(jì)語言,可以很方便地設(shè)計(jì)出在 WINDOWS境下運(yùn)行的應(yīng)用程序。故而, 實(shí)現(xiàn)本系統(tǒng)VB是一個相對較好的選擇。ADO對象能夠存取到數(shù)據(jù)庫的內(nèi)容,首先要求數(shù)據(jù)庫的驅(qū)動程序(ODBC區(qū)動 程序與OLEDB驅(qū)動程序)必須安裝上,否則,ADO寸象是無法存取數(shù)據(jù)庫中內(nèi)容, 其原理示意圖如下圖所示:se客ew戶連接客戶客戶VB 與 SQL如果在一臺新的電腦上I該先附加數(shù)扌, 就是說要先有數(shù)據(jù)資源。對于我們的實(shí)驗(yàn)關(guān)機(jī)后會使數(shù)據(jù)庫中我們自對象立的數(shù)據(jù)庫不見, 同下圖的步驟:DO寸所以可以進(jìn)行如選擇mdf格式文件即可,各種數(shù)示附庫所對應(yīng)的點(diǎn)擊ccess、e下代碼以及
29、即可實(shí)現(xiàn)VB與數(shù)據(jù)庫SQL的連接Opti on ExplicitPublic strSQL As Stri ngPublic Fun ction ExecuteSQL(ByVal strSQL As Stri ng) AsOn Error GoTo ErrorTrap'聲明對象變量Dim objConnection As'聲明對象變量Dim objRecordset As'聲明一個存放SQL查詢條件的數(shù)組Dim strArray() As Stri ng'定義新連接Set objC onnection = New'創(chuàng)建新連接=Conn ectStri n
30、g'打開數(shù)據(jù)庫'Split函數(shù)返回一個下標(biāo)從零開始的一維數(shù)組,包含指定數(shù)目的子字符串strArray = Split(strSQL)If In Str("INSER,DELETE,UPDATE", UCase(strArray(0) The n' 執(zhí)行SQL查詢strSQLElse' 打開記錄集Set objRecordset = NewTrim(strSQL), objConnection, _ adOpenKeyset, adLockOptimisticSet ExecuteSQL = objRecordsetEnd If' 釋放
31、對象Set objRecordset = NothingSet objConnection = NothingExit Function' 出錯處理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=.;" (本地數(shù)據(jù)庫寫 . 即可)End FunctionVB 實(shí)現(xiàn)學(xué)校餐廳的管理登錄界面分為管理員和學(xué)生兩種使用者, 管理員有兩個, 初始登錄密碼是自己的工號, 登 錄后可以自己修改。代碼如下:Private Sub Command1_Click()' 聲明對象變量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 " 用戶名錯誤! ", vbExclamation + vbOKOnly, " 警告 "= LenExit SubEnd If' 從數(shù)據(jù)庫中獲得用戶名mno = (0)' 查找用密碼strSQL = "select mno from manage
34、r where mpsw='" & _ Trim & "'"' 獲得符合輸入的密碼記錄集Set objRecordset = ExecuteSQL(strSQL)' 如果輸入的密碼不存在If = True Or mno <> (0) ThenMsgBox " 密碼錯誤! ", 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 "用戶名錯誤! ", vbExclamation + vbOKOnly, "= 0= Len Exit SubEnd If' 從數(shù)據(jù)庫中獲得用戶名sno = (0)' 查找用密碼strSQL = &qu
36、ot;select sno from student where spsw='" & _Trim & "'"' 獲得符合輸入的密碼記錄集Set objRecordset = ExecuteSQL(strSQL)' 如果輸入的密碼不存在If = True Or sno <> (0) ThenMsgBox " 密碼錯誤! ", 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管理員功能 其中一個管理員進(jìn)行登錄: 點(diǎn)擊登錄,進(jìn)入管理員界面1) 查詢消費(fèi)總額 當(dāng)摁下管理員界面的查詢餐廳總額按鈕后會顯示出未查詢前, 數(shù)據(jù)庫
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' 綁定時間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' 綁定時間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é)號,rno 餐廳編號,fno 菜編號,fprice 菜單價,fnum 菜量,price折扣后價格,fbelong 菜類,ctime 消費(fèi)時間 from pf_operation"Set =End Sub2) 管理學(xué)生信息* 查找學(xué)生 * 和查詢總額相似,點(diǎn)擊查詢學(xué)生后,即可看見學(xué)生表中全部信息,點(diǎn)擊查 詢后,看到某個學(xué)生信息。按“返回”按鈕可返回到管理員界面,按“退 出”按鈕直接退出。代碼如下:Private Sub Command1_Click()Dim strSQL As Strin
42、gstrSQL = "select sno 學(xué)生學(xué)號 ,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é)號 ,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é)號處利用Comb(按鈕,下拉選擇學(xué)生學(xué)號即可。點(diǎn)擊“查看原信息”按鈕 即可查看學(xué)生原來信息,方便管理員修改。點(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)管理食品信息(代碼與說明部分和學(xué)生信息管理相似,不再贅述) * 查詢食品 * 增加食品 * 修改食品 * 刪除食品 *4)管理管理員信息(代碼與說明部分和學(xué)生信息管理相似,不再贅述)* 查找管理員 * 增加管理員 * 修改管理員 * 刪除管理員 *5)管理員工信息(代碼與說明部分和學(xué)生信息管理相似,不再贅述)* 查找員工 * 增加員工 * 修改員工 * 刪除員工 *6)管理餐廳信息(代碼與說明部分和學(xué)生信息管理相似,不再贅述)* 查找餐廳 * 編輯餐廳 *因?yàn)榍懊嫖业脑鰟h修改都不在同一個窗體, 而餐廳的信息比較簡單, 所以我做了 另外一種不同于之前的簡單編輯窗體。按“初始化”按
53、鈕后可以使 text 的值為空,免去增加后又想刪除時還要手動按 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)擊瀏覽按鈕會彈出電腦磁盤圖框, 進(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 "對不起,數(shù)據(jù)備份失敗 !", vbOKOnly + vbExclamation, "示"End IfEnd SubPrivate Sub Command3_Click() 管理員界面 .ShowUnload MeEnd Sub* 恢復(fù) *點(diǎn)擊瀏覽按鈕會彈出電腦磁盤圖框, 進(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ù)并且覆蓋后無法恢復(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國碳捕獲與利用 (CCU)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國棉紡在線單錠測試系統(tǒng)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 外債借款合同標(biāo)準(zhǔn)模板-
- 二零二五年度高性能纖維材料采購合同2篇
- 終身學(xué)習(xí)者的修煉之路
- 2025年度農(nóng)業(yè)灌溉水溝改造升級工程合同范本3篇
- 二零二五年度蟲草采摘與加工服務(wù)合同3篇
- 二零二五年度賓館客房衛(wèi)生清潔外包合同樣本3篇
- 金融機(jī)構(gòu)安保業(yè)務(wù)合同管理的關(guān)鍵點(diǎn)
- 2025年度個人房屋防水維修服務(wù)協(xié)議
- 加油加氣站安全生產(chǎn)風(fēng)險分級管控體系全套資料
- 2025地下停車位使用權(quán)買賣合同 標(biāo)準(zhǔn)版模板
- 微信小程序用戶服務(wù)協(xié)議和隱私政策-帶目錄
- 江蘇省徐州市、宿遷市2025年高三下期末測試化學(xué)試題含解析
- 要分手費(fèi)的分手協(xié)議書(標(biāo)準(zhǔn))
- 2024夏季廣東廣州期貨交易所招聘高頻難、易錯點(diǎn)500題模擬試題附帶答案詳解
- 浙江省2024年高考化學(xué)模擬試題(含答案)2
- 2024新人教七年級英語上冊 Unit 2 Were Family!(大單元教學(xué)設(shè)計(jì))
- 碳排放管理員 (碳排放核查員)技能考核內(nèi)容結(jié)構(gòu)表三級、技能考核要素細(xì)目表三級
- DB12T 1339-2024 城鎮(zhèn)社區(qū)公共服務(wù)設(shè)施規(guī)劃設(shè)計(jì)指南
- 電競賽事策劃全解析
評論
0/150
提交評論