數據庫-學校飯?zhí)孟M管理系統(tǒng)的設計說明書.doc_第1頁
數據庫-學校飯?zhí)孟M管理系統(tǒng)的設計說明書.doc_第2頁
數據庫-學校飯?zhí)孟M管理系統(tǒng)的設計說明書.doc_第3頁
數據庫-學校飯?zhí)孟M管理系統(tǒng)的設計說明書.doc_第4頁
數據庫-學校飯?zhí)孟M管理系統(tǒng)的設計說明書.doc_第5頁
免費預覽已結束,剩余59頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

課程設計說明書 設計名稱: 數據庫系統(tǒng)原理課程設計 題 目: 學校飯?zhí)孟M管理系統(tǒng)的設計 學生姓名: 孫璐 專 業(yè): 網絡工程 班 級: 12網絡1班 學 號: 2012394108 指導教師:顧艷春、韋慶清、李婭、胡明日 期: 2015 年 01 月 14 日 課程設計任務書 網絡工程 專業(yè) 12 年級 1 班 孫璐 一、 設計題目學校飯?zhí)孟M管理系統(tǒng)二、 主要內容通過對學生在學校飯?zhí)没虿蛷d的消費流程進行分析,完成具有食品管 理、消費管理、帳戶管理、餐廳管理等相關功能的小型數據庫管理應用系統(tǒng)(消費刷卡可以通過手工輸入來模擬完成)1. 根據任務要求完成有關表的設計(表的設計需要遵循3NF)。2. 完成飯?zhí)茫ú蛷d)員工表、消費人員及帳戶表、餐廳表、食品價目表的維護。3. 完成消費表的生成,并計算消費折扣(可現金消費也可刷卡消費)。 4. 按人員、時間、餐廳統(tǒng)計計算消費總額。5. 按食品類別、時間、餐廳統(tǒng)計計算消費總額。6. 完成用戶帳戶管理功能。7. 完成數據備份與恢復功能。 三、 具體要求 圍繞課程設計的目的和意義,基本要求如下: 1、鞏固和加深對數據庫系統(tǒng)原理的理解,提高綜合運用本課程所學知識的能力。 2、培養(yǎng)學生選用參考書,查閱手冊及文獻資料的能力。培養(yǎng)獨立思考、深入研究、分析問題、解決問題以及團隊協(xié)作能力。 3、通過實際系統(tǒng)的分析設計、編程調試,掌握數據庫軟件的分析設計方法和鞏固軟件工程方法。軟件開發(fā)的流程可參見軟件工程課程教材。(見第六部分) 4、能夠按要求編寫課程設計報告書,能正確闡述設計和實驗結果、正確繪制系統(tǒng)數據流圖和E-R圖。 5、通過課程設計,培養(yǎng)學生嚴謹的科學態(tài)度,嚴肅認真的工作作風,和團隊協(xié)作精神。 6、本課程設計只要求大家完成一個基本的數據庫軟件的開發(fā)工作,系統(tǒng)開發(fā)不要求大而全數據庫軟件的開發(fā),只要完成數據的增、刪、改、查等基本功能,并設計一個較友好系統(tǒng)操作界面(最好是圖形界面)。 7、系統(tǒng)開發(fā)平臺不做統(tǒng)一要求。 四、 進度安排依照教學計劃,課程設計時間為:2周。本設計要求按照軟件工程的基本過程完成設計。建議將時間分為四個階段:第一階段,根據題目要求,確定系統(tǒng)的總體設計方案(概要設計):即系統(tǒng)包括哪些功能模塊,每個模塊的實現方法,同時編寫相應的設計文檔;第二階段,完成系統(tǒng)的詳細設計工作;第三階段,完成數據庫設計和編寫程序代碼并調試,再將調試通過的各個子模塊進行集成調試;第四階段,歸納文檔資料,按要求填寫在課程設計說明書上,并參加答辯。三個階段時間分配的大概比例是:25: 25: 40:10。 具體安排如下: 1月5日-1月6日:資料查找、系統(tǒng)分析,數據流程分析,概要設計。 1月7日-1月8日:系統(tǒng)詳細設計、功能設計。 1月9日-1月14日:算法實現、編程調試。 1月15日-1月16日:功能演示、資料整理、課程設計說明書編寫。五、 完成后應上交的材料 本課程設計要求按照學校有關規(guī)范的要求完成,在課程設計完成后需要提交的成果和有關文檔資料包括課程設計的說明書,課程設計有關源程序及可運行程序(含運行環(huán)境),其內容不能過于簡單,必須包括的內容有: 1 課程設計的基本思想,系統(tǒng)的總功能和各子模塊的功能說明;2 數據庫設計中有關數據流圖和E-R圖,并對重要的操作畫出有關算法流程圖;3 源程序中核心代碼的說明;4 本課程設計的個人總結,主要包括以下內容:1 課程設計中遇到的主要問題和解決方法;2 你的創(chuàng)新和得意之處;3 設計中存在的不足及改進的設想;4 本次課程設計的感想和心得體會。5. 源代碼要求在關鍵的位置有注釋,增加程序的可讀性。程序結構和變量等命名必須符合有關軟件開發(fā)的技術規(guī)范(參見有關文獻)。六、 總評成績 指導教師 簽名日期 年 月 日系 主 任 審核日期 年 月 日 目 錄一設計任務分析5 1.1系統(tǒng)總功能分析5 1.2系統(tǒng)總框架5 1.3設計思想簡述5二總體設計思路6三需求分析6 3.1數據字典7 3.1.1數據庫用到的表 7 3.1.2 各表的說明 7四概念結構設計8 4.1消除不必要的冗余,設計基本的E-R圖 8 4.2合并分E-R圖,生成總的E-R圖 9五邏輯結構設計10 5.1數據模型的優(yōu)化 10 5.2 由E-R圖得到的關系模式10六物理結構設計10 6.1為關系模式選擇存取方法10 6.2 選擇存取路徑10 6.3 創(chuàng)建基本表11 6.4建立索引146.5建立觸發(fā)器176.6建立視圖187 數據庫的實施197.1數據的載入198 數據庫的試運行228.1視圖中的數據228.2 視圖的查詢23九數據庫運行和維護23 9.1系統(tǒng)開發(fā)工具的介紹23 9.2 VB 6.0與SQL sever的連接 24 9.3 VB實現學校餐廳的管理 27 9.3.1 登錄界面27 9.3.2 管理員功能30 9.3.3 學生功能57十課程設計的總結報告 60 一設計任務分析 1.1系統(tǒng)總功能分析 通過對學生在學校飯?zhí)没虿蛷d的消費流程進行分析,完成具有食品管理、消費管理、帳戶管理、餐廳管理等相關功能的小型數據庫管理應用系統(tǒng)。根據任務要求完成有關表的設計(表的設計需要遵循3NF)。同時還要完成進人員、餐廳、食品價目表的維護,完成消費表的生成,并計算消費折扣。以及按人員、時間段、餐廳統(tǒng)計計算消費總額,按食品類別、時間段、餐廳統(tǒng)計計算消費總額,最后完成用戶管理功能,完成數據備份與恢復功能。1.2系統(tǒng)總框架用戶登錄驗證密碼密碼錯誤 密碼正確退出系統(tǒng)管理員功能學生功能 查看自己基本信息查詢學生卡余額修改自己的密碼備份與恢復對餐廳信息查增刪改對員工信息查增刪改對管理員信息查增刪改對食品信息查增刪改對學生信息查增刪改查詢消費總額 1.3設計思想簡述這個系統(tǒng)我建立了管理員、員工、學生、餐廳、食品和餐廳營業(yè)表六張基本表,為了提高查找速度,我為前五個基本表以主鍵建立了唯一索引,為營業(yè)表建立了以餐廳編號、學生學號、食品編號和消費時間一起的唯一索引。為了簡化操作,更清晰地表達查詢,我為學生、餐廳、食品和餐廳營業(yè)表建立了視圖。二 總體設計思路三 需求分析通過我對學校餐廳的調查分析,我得出了餐廳以下幾點特點:工作人員分為管理員,一般員工。管理員都有唯一的工號,姓名,密碼,其中初始密碼為工號。而一般員工都有唯一的工號、姓名、職位和所屬餐廳。 其中只有管理員可以登錄系統(tǒng),對餐廳、學生、一般員工、食品進行管理,對餐廳營業(yè)表進行查詢消費總額。 每位同學都有唯一的學號、姓名、密碼、專業(yè)和學生卡內余額,其中初始密碼為學號后5位,學生可以利用學號和初始密碼登錄系統(tǒng)進行修改密碼,查看自己的基本信息以及查詢自己卡內的余額。 餐廳分為兩個,每個餐廳都有唯一的編號和姓名。 食品的類別分為素菜和肉菜,每個食品都有唯一的編號,食品名稱,素菜的單價為2元,肉菜的單價為4元。 學生在學校餐廳就餐,就有所就餐的餐廳編號、該學生的學號、所食用的食品編號、食品數量、該食品的類別,付款方式(現金或者刷卡)和就餐時間。 消費表就是建立的視圖,包括學生學號、餐廳號、食品號、食品單價、食品數量、折扣后價格。以上就是我對學校餐廳管理系統(tǒng)的需求分析,要求系統(tǒng)能有效、快速、安全、可靠和無誤的完成上述操作,服務器程序利于維護。3.1數據字典:3.1.1數據庫用到的表數據庫表名關系模式名稱manager管理員信息表student學生信息表restaurant餐廳信息表food食品價格表operation餐廳營業(yè)表worker員工信息表pf_operation消費表(視圖)3.1.2 各表的說明表一 管理員信息表元素變量名數據類型備注工號mnoChar(9)主鍵(非空)姓名mnameChar(20)非空密碼mpswChar(18)非空表二 學生信息表元素變量名數據類型備注學號snoChar(9)主鍵(非空)姓名snameChar(20)非空密碼spswChar(18)非空專業(yè)sdeptChar(20)非空余額sbalanceInt表三 餐廳信息表元素變量名數據類型備注編號rnoChar(9)主鍵(非空)名稱rnameChar(20)非空表四 食品價格表元素變量名數據類型備注食品編號fnoChar(9)主鍵(非空)食品名稱fnameChar(20)非空食品單價fpriceInt非空食品類別fbelongChar(20)非空表五 餐廳營業(yè)表元素變量名數據類型備注餐廳編號rnoChar(9)Restaurant的外鍵學號snoChar(9)Student的外鍵食品編號fnoChar(9)Food的外鍵食品數量fnumChar(10)非空消費時間ctimeDatetime允許空值付款方式wayChar(10)非空食品類別fbelongChar(20)非空表六 員工信息表元素變量名數據類型備注工號wnoChar(9)主鍵(非空)姓名wnameChar(20)非空職位wpostChar(18)非空所屬餐廳rnoChar(9)非空4 概念結構設計 4.1消除不必要的冗余,設計基本的E-R圖 由需求分析的結果可知,本系統(tǒng)設計的實體包括:(1) 員工基本信息:員工工號、員工姓名、員工職位、所屬餐廳。(2) 管理員基本信息: 管理員工號、管理員姓名、管理員密碼。(3) 學生基本信息:學生學號、學生姓名、學生密碼、專業(yè)、卡內余額。(4) 餐廳基本信息:餐廳編號、餐廳名稱。(5) 食品基本信息:食品編號、食品名稱、食品單價、食品類別。 由于餐廳的營業(yè)表學生、餐廳、食品三者之間的多對多聯(lián)系轉換出來的表,是其基本屬性,不必畫在E-R圖上。 這些實體間的聯(lián)系包括:(1)每位學生可以在多個餐廳里消費,每個餐廳也可以供給多個學生的飯菜。(2)每個學生可以點多種食物,每個食物也可以被多個學生點。(3)每個餐廳可以有多名員工,而每個員工只能在一個食堂工作。4.2合并分E-R圖,生成總的E-R圖學生密碼卡內余額單價工作銷售員工編號名稱專業(yè)姓名學號食品類別食品名食品號點菜食品學生消費餐廳管理姓名管理員工號密碼工號姓名所屬餐廳職位五 邏輯結構設計5.1數據模型的優(yōu)化數據庫邏輯設計的結果不是唯一的。為了進一步提高數據庫應用系統(tǒng)的性能,還應該根據應用需求適當地修改、調整數據模型的結構,這就是數據模型的優(yōu)化。方法為:1) 確定數據依賴;2) 對于各個關系模式之間的數據依賴進行極小化的處理,消除冗余的聯(lián)系;3) 按照數據依賴的理論對關系模式逐一進行分析,考察是否存在部分函數、傳遞依賴、多值依賴等,確定各關系模式分別處于第幾范式。由于并不是規(guī)范化程度越高的關系就越優(yōu),一般說來,第三范式就足夠了,所以對于本系統(tǒng),按照要求,達到第三范式。4) 按照需求分析階段得到的處理要求,分析對于這樣的應用環(huán)境這些模式是否合適,確定是否要對模式進行合并或分解。本系統(tǒng)中的管理員皆是餐廳的員工,但是只要管理員擁有密碼可以對餐廳進行管理,所以我把他們分為管理員表和員工表。5) 對關系模式進行必要的分解,提高數據操作的效率和存儲空間的利用率。 5.2 由E-R圖得到的關系模式數據結構名組成管理員信息工號,姓名,密碼學生信息學號,姓名,密碼,專業(yè),卡內余額餐廳信息編號,名稱 食品價格表食品號,食品名,食品價,食品類別營業(yè)表餐廳編號,學號,食品號,食品數量,消費時間,付款方式,食品類別員工信息工號,姓名,職位,所屬餐廳(下劃線標注的屬性為主碼) 六 物理結構設計6.1為關系模式選擇存取方法 數據庫在物理設備上的存儲結構與存取方法稱為數據庫的物理結構,它依賴于選定的數據庫管理系統(tǒng)。為一個給定的邏輯數據模型選取一個最適合應用環(huán)境的物理結構的過程,就是數據庫的物理設計。 這個系統(tǒng)我選擇使用索引,為前五個基本表以主鍵建立了唯一索引,為營業(yè)表建立了以餐廳編號、學生學號、食品編號和消費時間一起的唯一索引。 6.2 選擇存取路徑create database 學校餐廳on ( name=學校餐廳_data,filename=d:slslsl學校餐廳_data.mdf)log on ( name=學校餐廳_log, filename=d:slslsl學校餐廳_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)建學生表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è)表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 學生卡內余額=原余額-食品單價X數量X折扣。 只有當學生的付款方式為刷卡時才計算,支付現金不計算。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七 數據庫的實施 7.1數據的載入 1)向管理員表中插入數據INSERT INTO manager(mno,mname,mpsw) VALUES(30481,王紅,30481);INSERT INTO manager(mno,mname,mpsw) VALUES(30482,李明,30482);2)向學生表中插入數據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ā)器會自動修改學生卡內余額,截圖是在所有消費記錄輸入過以后的,所以插入數據時的余額跟截圖的余額會有不同。3) 向餐廳表中插入數據INSERT INTO restaurant(rno,rname) VALUES(01,清風樓);INSERT INTO restaurant(rno,rname) VALUES(02,映月閣);4)向食品表中插入數據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è)表中插入數據(插入了兩天的營業(yè)記錄,時間自動為系統(tǒng)時間)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)向員工表中插入數據INSERT INTO worker(wno,wname,wpost,rno) VALUES(40481,張?zhí)m,經理,01);INSERT INTO worker(wno,wname,wpost,rno) VALUES(40482,馬燕,廚師,01);INSERT INTO worker(wno,wname,wpost,rno) VALUES(40483,周揚,經理,02);INSERT INTO worker(wno,wname,wpost,rno) VALUES(40484,王剛,廚師,02);8 數據庫的試運行8.1視圖中的數據8.2 視圖的查詢經計算,結果正確九數據庫運行和維護 9.1系統(tǒng)開發(fā)工具的介紹微軟公司的Visual Basic 6.0是Windows應用程序開發(fā)工具,是目前最為廣泛的、易學易用的面向對象的開發(fā)工具。Visual Basic提供了大量的控件,這些控件可用于設計界面和實現各種功能,減少了編程人員的工作量,也簡化了界面設計過程,從而有效的提高了應用程序的運行效率和可靠性。利用VISUAL BASIC 程序設計語言,可以很方便地設計出在WINDOWS環(huán)境下運行的應用程序。故而,實現本系統(tǒng)VB是一個相對較好的選擇。 ADO對象能夠存取到數據庫的內容,首先要求數據庫的驅動程序( ODBC驅動程序與OLE DB驅動程序)必須安裝上,否則,ADO對象是無法存取數據庫中內容,其原理示意圖如下圖所示:客戶端客戶端客戶端ADO對象各種數據庫所對應的驅動程序各種數據庫(如Access、SQL Server以及Oracle等)9.2 VB 6.0與SQL sever的連接 如果在一臺新的電腦上應該先附加數據庫,就是說要先有數據資源。對于我們的實驗關機后會使數據庫中我們自己建立的數據庫不見,所以可以進行如同下圖的步驟: 選擇mdf格式文件即可,會提示附加數據庫成功。點擊VB工程處添加,新增一個模塊,在里面輸入如下代碼,即可實現VB與數據庫SQL的連接。Option ExplicitPublic strSQL As StringPublic Function ExecuteSQL(ByVal strSQL As String) As ADODB.Recordset On Error GoTo ErrorTrap 聲明ADODB.Connection對象變量 Dim objConnection As ADODB.Connection 聲明ADODB.Recordset對象變量 Dim objRecordset As ADODB.Recordset 聲明一個存放SQL查詢條件的數組 Dim strArray() As String 定義新連接 Set objConnection = New ADODB.Connection 創(chuàng)建新連接 objConnection.ConnectionString = ConnectString 打開數據庫 objConnection.Open Split函數返回一個下標從零開始的一維數組,包含指定數目的子字符串 strArray = Split(strSQL) If InStr(INSER,DELETE,UPDATE, UCase(strArray(0) Then 執(zhí)行SQL查詢 objConnection.Execute strSQL Else 打開記錄集 Set objRecordset = New ADODB.Recordset objRecordset.Open Trim(strSQL), objConnection, _ adOpenKeyset, adLockOptimistic Set ExecuteSQL = objRecordset End If 釋放對象 Set objRecordset = Nothing Set objConnection = Nothing Exit Function出錯處理ErrorTrap: Set objRecordset = Nothing Set objConnection = NothingEnd Function連接字符串賦值函數Public Function ConnectString() As String ConnectString=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=學校餐廳;Data Source=.; (本地數據庫寫.即可)End Function9.3 VB實現學校餐廳的管理 9.3.1 登錄界面分為管理員和學生兩種使用者,管理員有兩個,初始登錄密碼是自己的工號,登錄后可以自己修改。代碼如下:Private Sub Command1_Click()聲明ADODB.Recordset對象變量 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 用戶名錯誤!, vbExclamation + vbOKOnly, 警告 txtno.SetFocus txtno.SelStart = 0 txtno.SelLength = Len(txtno.Text) Exit Sub End If 從數據庫中獲得用戶名 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 密碼錯誤!, 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 用戶名錯誤!, vbExclamation + vbOKOnly, 警告 txtno.SetFocus txtno.SelStart = 0 txtno.SelLength = Len(txtno.Text) Exit Sub End If 從數據庫中獲得用戶名 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 密碼錯誤!, vbExclamation + vbOKOnly, 警告 txtpsw.SetFocus txtpsw.SelStart = 0 txtpsw.SelLength = Len(txtpsw.Text) Exit Sub End If 顯示主界面 學生界面.StudentID = & Trim(txtno.Text) & 學生界面.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 管理員功能其中一個管理員進行登錄:點擊登錄,進入管理員界面1) 查詢消費總額當摁下管理員界面的查詢餐廳總額按鈕后會顯示出未查詢前,數據庫中的所有消費記錄,和pf_operation視圖的數據相同。這是利用了adodc部件和DataGrid部件,二者經常搭配使用。點擊“查詢”按鈕可查詢相關內容:按“返回”按鈕可返回到管理員界面,按“退出”按鈕直接退出。代碼如下:Private Sub Form_Load() Dim objRecordset As ADODB.Recordset 綁定學生 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 綁定時間 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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論