數(shù)據(jù)庫原理課程設(shè)計(jì)_畢業(yè)設(shè)計(jì)_超市物流管理系統(tǒng)_第1頁
數(shù)據(jù)庫原理課程設(shè)計(jì)_畢業(yè)設(shè)計(jì)_超市物流管理系統(tǒng)_第2頁
數(shù)據(jù)庫原理課程設(shè)計(jì)_畢業(yè)設(shè)計(jì)_超市物流管理系統(tǒng)_第3頁
數(shù)據(jù)庫原理課程設(shè)計(jì)_畢業(yè)設(shè)計(jì)_超市物流管理系統(tǒng)_第4頁
數(shù)據(jù)庫原理課程設(shè)計(jì)_畢業(yè)設(shè)計(jì)_超市物流管理系統(tǒng)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理課程設(shè)計(jì)報告專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班級: 0410308班 學(xué)號: 03100810 姓名: 蒲 振 宇 題目名稱: 超市物流管理系統(tǒng) 完成日期: 2005年12月10日 重慶郵電學(xué)院計(jì)算機(jī)學(xué)院實(shí)驗(yàn)中心一、系統(tǒng)定義:當(dāng)今中國零售業(yè)發(fā)展正盛,大量超市涌現(xiàn)于各個城市,很大程度上改變了人民的消費(fèi)方式。大量頻繁的物資流通,使得傳統(tǒng)低效的人工管理已不合時宜。本系統(tǒng)以一個統(tǒng)一的界面,給收銀員、采購員和管理人員提供了不同的操作及管理功能。數(shù)據(jù)庫服務(wù)器可配置在獨(dú)立的服務(wù)器上,也可配置在一臺運(yùn)行本系統(tǒng)的計(jì)算機(jī)上。適用于中小型無連鎖店,或連鎖店間經(jīng)濟(jì)獨(dú)立的超市的物流管理。二、需求分析:(一)系統(tǒng)綜合

2、需求作為一個超市物流管理系統(tǒng),應(yīng)該給用戶提供方便、友好而簡潔的界面進(jìn)行應(yīng)用,并對超市的運(yùn)營過程中物資的流動詳細(xì)記錄歸檔,并將這些數(shù)據(jù)進(jìn)行邏輯上的融合,以便于用戶查看、分析及管理。針對中小型超市的運(yùn)營模式,有三類核心員工:收銀員、采購員和管理人員,分別有三個核心功能需要實(shí)現(xiàn),銷售功能,采購功能,庫存管理和員工管理功能。管理人員的功能應(yīng)該在此基礎(chǔ)上進(jìn)行擴(kuò)展,實(shí)現(xiàn)銷售記錄查詢,采購記錄查詢,商品信息查詢、添加、刪除和修改,以及促銷活動的設(shè)置。很多超市實(shí)行了會員制度,會員享受優(yōu)惠待遇。所以本系統(tǒng)應(yīng)該引入會員管理的模塊,對會員進(jìn)行注冊、刪除、查詢、消費(fèi)跟蹤。此外,一個成熟的管理系統(tǒng)不僅應(yīng)該具有基本的處理

3、、查詢功能,還應(yīng)該有一些分析、后臺監(jiān)控的功能。所以可以將基本的供銷數(shù)據(jù)進(jìn)行融合,以圖形化的界面展示給用戶進(jìn)行供銷情況的分析。在后臺實(shí)時監(jiān)控商品庫存量,當(dāng)?shù)陀谀骋恢禃r,向前臺發(fā)出預(yù)警通知。最后,本系統(tǒng)中對實(shí)際中應(yīng)該機(jī)械化處理的過程,如條形碼掃描儀,讀卡機(jī)等,進(jìn)行手工操作模擬的簡化,加入相應(yīng)功能模塊即可在現(xiàn)實(shí)中使用。(二)系統(tǒng)邏輯模型1數(shù)據(jù)流圖:圖1-1 系統(tǒng)數(shù)據(jù)流圖2數(shù)據(jù)字典項(xiàng)目組成類型來源去向存儲者使用頻度變動頻度當(dāng)前打折情況 會員優(yōu)惠規(guī)則,全場優(yōu)惠規(guī)則數(shù)據(jù)流管理人員收銀員-頻繁有時(打折信息)管理人員管理人員(當(dāng)前優(yōu)惠規(guī)則)優(yōu)惠規(guī)則數(shù)據(jù)存儲-管理人員銷售商品信息商品編號,售價,銷售數(shù)量,銷售

4、日期,會員編號,收銀員工號數(shù)據(jù)流收銀員管理人員-頻繁增加頻繁,基本無更改(銷售信息)(歷史銷售記錄)銷售記錄數(shù)據(jù)存儲-收銀員會員信息會員編號,姓名,住址,電話,身份證號,消費(fèi)金額數(shù)據(jù)流管理人員,收銀員管理人員-頻繁增加不頻繁,基本無更改(會員資料)消費(fèi)清單商品編號,售價,銷售數(shù)量,銷售日期,會員編號,收銀員工號收銀員管理人員-會員信息會員編號,姓名,住址,電話,身份證號數(shù)據(jù)存儲-管理人員商品信息列表編號,名稱,規(guī)格,供應(yīng)商,售價,庫存量數(shù)據(jù)流管理人員,采購員,收銀員管理人員-頻繁增加不頻繁,更改不頻繁商品信息數(shù)據(jù)存儲-管理人員本次采購信息采購編號,商品編號,采購價格,采購數(shù)量,采購日期,采購員

5、數(shù)據(jù)流采購員管理人員-有時增加有時,基本無更改歷史采購信息采購信息采購記錄采購記錄數(shù)據(jù)存儲-采購員表1.1 系統(tǒng)數(shù)據(jù)字典三、系統(tǒng)設(shè)計(jì):(一)概念結(jié)構(gòu)設(shè)計(jì)(二)邏輯結(jié)構(gòu)設(shè)計(jì)員工信息表 Employee字段名類型NULL其他備注e_idvarchar(10)PK員工號e_namevarchar(10)Index員工姓名e_pwdvarchar(100)Y登陸密碼e_positiontinyint(1)職位(0:管理人員 1:收銀員 2:采購人員)e_statebit(1)在職情況會員信息表 Member字段名類型NULL其他備注m_idbigint(8)PK會員編號m_namevarchar(10

6、)Index會員姓名m_addrvarchar(50)會員住址m_telvarchar(15)會員電話m_codevarchar(18)會員身份證號m_consumedecimal會員消費(fèi)金額商品信息表 Product字段名類型NULL其他備注p_idbigint(8)PK商品編號p_namevarchar(30)Index商品名稱p_scalevarchar(6)規(guī)格p_pricedecimal商品當(dāng)前單價p_manuvarchar(30)供應(yīng)商p_qtyint(5)Index庫存量采購記錄表 Buy字段名類型NULL其他備注b_idbigint(8)PK采購編號p_idbigint(8)I

7、ndex,FK商品編號b_pricedecimal購入價格b_qtyint(5)購入數(shù)量b_timevarchar(19)采購時間e_idvarchar(10)FK采購員工號銷售記錄表 Sell字段名類型NULL其他備注s_idbigint(10)PK銷售編號p_idbigint(8)Index,FK商品編號s_pricedecimal銷售價格s_qtyint(5)銷售數(shù)量s_timevarchar(19)銷售時間e_idvarchar(10)FK收銀員m_idbigint(8)YFK,Index會員編號預(yù)警日志表 Warning字段名類型NULL其他備注w_idint(4)PK預(yù)警編號w_c

8、ontenttext預(yù)警內(nèi)容優(yōu)惠規(guī)則表 Discount字段名類型NULL其他備注m_allfloat所有會員打折數(shù)d_allfloat全場打折數(shù)部分表關(guān)系圖:(三)子模塊劃分及功能概述系統(tǒng)設(shè)置三種權(quán)限:收銀員、采購員和管理人員。登陸后,可以進(jìn)入不同的功能模塊,在登陸界面可以修改登陸密碼。子模塊劃分如下:l 收銀臺POS系統(tǒng)(需要權(quán)限:收銀員)顧客拿商品到收銀臺時,首先出示會員卡(如果是會員),收銀員通過讀卡機(jī)讀取會員卡的會員號,然后通過條形碼掃描儀一一掃描商品,獲得商品編號,并手動輸入購買數(shù)量,結(jié)算后顯示應(yīng)付金額。在掃描過程中,結(jié)算之前,可以取消某項(xiàng)商品的購買信息。收銀員還可以在這里看到管理

9、人員發(fā)送的通知消息。l 采購入庫(需要權(quán)限:采購員)采購員只能采購數(shù)據(jù)庫中已存在的商品。對每種采購的商品輸入采購的商品編號,采購數(shù)量,和采購價格,這些商品的信息和采購的信息顯示在列表中,結(jié)算入庫后列表清空,并將數(shù)據(jù)寫入數(shù)據(jù)庫。l 商品及庫存管理(需要權(quán)限:管理人員)1. 引入新商品:填寫商品的名稱,規(guī)格,供應(yīng)商和售價,將商品引入超市。添加后的商品庫存量為0,需要采購。供應(yīng)商或規(guī)格不同的同名商品,應(yīng)作為不同的商品對待。2. 商品查詢:可以根據(jù)商品的名稱,供應(yīng)商,庫存量進(jìn)行查詢,并可以查看所有商品的信息列表。顯示的信息包括編號,名稱,規(guī)格,供應(yīng)商和庫存量。3. 刪除商品:只能刪除庫存量為0的商品,

10、表明不再引進(jìn)此商品。支持批量刪除。4. 修改商品信息:在商品信息列表中選擇一行,對其基本信息進(jìn)行修改。l 會員管理(需要權(quán)限:管理人員)1. 會員注冊:填寫顧客姓名,住址,電話及身份證號,即可注冊成為會員,享受優(yōu)惠待遇。2. 會員查詢:可以按會員的編號和姓名進(jìn)行查詢,并可以查看所有會員的信息列表。顯示的信息包括編號,姓名,住址,電話,身份證號和累計(jì)消費(fèi)金額。3. 取消會員身份:刪除會員資料,使其會員卡失效。支持批量刪除。4. 查看消費(fèi)記錄:在會員信息列表中選擇一行,對其詳細(xì)的消費(fèi)記錄進(jìn)行查詢。l 銷售管理(需要權(quán)限:管理人員)對歷史的銷售記錄進(jìn)行查看。可以按商品編號,商品名稱或日期進(jìn)行查詢,也

11、可以列出所有的銷售記錄。顯示信息包括商品編號,商品名稱,商品規(guī)格,銷售數(shù)量,銷售價格,收銀員和銷售時間。l 員工管理(需要權(quán)限:管理人員)1. 增加員工:添加新上崗的員工的信息。需要填寫工號,姓名,登陸密碼和職位。2. 員工信息列表:列出了所有員工的信息列表。顯示的信息包括工號,姓名,職位和在職情況。3. 員工離職:將離職員工的在職情況置為“離職”。4. 修改員工信息:在員工信息列表中選擇一行,修改其基本信息(姓名和職位)。5. 向收銀臺發(fā)送消息:輸入運(yùn)行本系統(tǒng)的收銀臺的IP和消息,可以向收銀員發(fā)送通知消息。l 采購管理(需要權(quán)限:管理人員)對歷史的采購記錄進(jìn)行查看。可以按商品編號,商品名稱或

12、日期進(jìn)行查詢,也可以列出所有的采購記錄。顯示信息包括商品編號,商品名稱,商品規(guī)格,供應(yīng)商,采購數(shù)量,采購價格,采購時間,采購員和當(dāng)前庫存量。l 供銷情況分析(需要權(quán)限:管理人員)對歷史采購及銷售數(shù)據(jù),用圖形的方式顯示其供銷情況及盈利狀況,直觀的供管理人員分析。l 優(yōu)惠規(guī)則管理(需要權(quán)限:管理人員)1. 會員優(yōu)惠規(guī)則:設(shè)置對會員購物實(shí)行多少折優(yōu)惠。2. 全場優(yōu)惠規(guī)則:設(shè)置促銷活動,全場商品打折多少。l 缺貨報告日志(需要權(quán)限:管理人員)后臺實(shí)時監(jiān)測商品的庫存量,當(dāng)庫存量低于某值時,就發(fā)出預(yù)警,并記入日志。這里可以查看和清空所有的預(yù)警日志。管理員可控制預(yù)警開關(guān),如果打開,則發(fā)出報警,否則,只在后臺

13、寫入日志。l 其他附加功能1修改密碼,重新登陸2.配置數(shù)據(jù)源連接,將數(shù)據(jù)源連接信息寫入配置文件,避免硬編碼數(shù)據(jù)源名,用戶名和密碼帶來的弊端。3.幫助文檔:解釋如何配置服務(wù)器及一些常見問題。4.備份(增量備份和完全備份),恢復(fù)數(shù)據(jù)庫。四、詳細(xì)設(shè)計(jì)(一)開發(fā)平臺及工具l 開發(fā)工具M(jìn)icrosoft Visual C+ 6.0l DBMS:Microsoft SQL Server 2000l 建模工具:Microsoft Visio, Sybase PowerDesignerl 第三方庫:Skin+換膚庫, MD5加密類說明:為了方便的實(shí)現(xiàn)多線程及Socket通信等功能,以及個人熟悉程度的因素,選擇

14、了VC 6.0的開發(fā)平臺。而在Windows平臺上為數(shù)不多的DBMS產(chǎn)品中,Oracle過于龐大,不利于在低配置的機(jī)器上運(yùn)行;Access又過于小型,不能負(fù)載大量的數(shù)據(jù)訪問請求,所以選擇了適中的MS SQL Server。為了彌補(bǔ)VC做界面困難的缺陷,軟件用了一個換膚的共享庫Skin+,以dll形式附帶在程序包中。另外在登陸密碼的加密存儲中,用到了流行的MD5加密,算法實(shí)現(xiàn)來源于。(二)存儲過程及觸發(fā)器作為數(shù)據(jù)庫應(yīng)用系統(tǒng),數(shù)據(jù)的一致性需要得到保證,通過單純的手工編碼方式,工作煩瑣,容易出錯,而且不易于擴(kuò)展。采用DBMS的外碼約束,Unique約束,觸發(fā)器的使用來解決這一問題。在查詢效率方面,三

15、表及四表連接查詢的過程用存儲過程實(shí)現(xiàn)。對商品,采購,銷售表的外碼沒有強(qiáng)制級聯(lián)刪除和級聯(lián)修改,因不再進(jìn)購某種商品,或某雇員辭職,不應(yīng)該影響過去的采購,銷售記錄。l 查詢銷售記錄的存儲過程CREATE PROCEDURE dbo.search_sell_recid varchar(8),name varchar(30),time varchar(30),midvarchar(8) ASIF (mid = ) BEGINSELECT P.p_id AS pid, P.p_name AS pname , P.p_scale AS pscale , S.s_qty AS sqty , S.s_price

16、 AS sprice , S.s_time AS stime , E.e_name AS ename FROM product P, sell S, employee EWHERE P.p_id like %+id+% and P.p_name like %+name+% and S.s_time like %+time+% and S.p_id = P.p_id and S.e_id = E.e_idORDER BY S.s_id desc ENDIF (mid) BEGINSELECT P.p_id AS pid, P.p_name AS pname , P.p_scale AS psca

17、le , S.s_qty AS sqty , S.s_price AS sprice , S.s_time AS stime , E.e_name AS ename , P.p_qty AS pqty FROM product P, sell S, employee EWHERE P.p_id like %+id+% and P.p_name like %+name+% and S.s_time like %+time+% and S.m_id =mid and S.p_id = P.p_id and S.e_id = E.e_idORDER BY S.s_id desc ENDGOl 查詢采

18、購記錄的存儲過程CREATE PROCEDURE dbo.search_buy_recid varchar(8),name varchar(30),time varchar(30) ASBEGINSELECT P.p_id AS pid, P.p_name AS pname , P.p_scale AS pscale , P.p_manu AS pmanu,B.b_qty AS bqty , B.b_price AS bprice ,B.b_time AS btime , E.e_name AS ename FROM product P, buy B, employee EWHERE P.p_

19、id like %+id+% and P.p_name like %+name+% andB.b_time like %+time+% and B.p_id = P.p_id and B.e_id = E.e_idORDER BY B.b_id descENDGOl 觸發(fā)器:采購商品后,自動增長庫存量CREATE TRIGGER qty_inc ON dbo.buy FOR INSERTASUPDATE P SET P.p_qty = P.p_qty + I.b_qtyFROM product AS P INNER JOIN INSERTED AS ION P.p_id = I.p_idl 觸

20、發(fā)器:銷售商品后,自動減少庫存量,并為相應(yīng)會員增加其消費(fèi)金額記錄CREATE TRIGGER qty_dec ON dbo.sell FOR INSERTASUPDATE P SET P.p_qty = P.p_qty - I.s_qtyFROM product AS P INNER JOIN INSERTED AS ION P.p_id = I.p_idDECLARE member varchar(10)DECLARE consume decimal(9,2)SET member = (SELECT m_id FROM INSERTED)SET consume = (SELECT s_pri

21、ce FROM INSERTED)if member BEGIN UPDATE member SET m_consume = m_consume + consume WHERE m_id = member ENDl 觸發(fā)器:刪除商品時,如果庫存量不為0,則撤銷操作。并將相應(yīng)銷售及采購記錄的編號字段置空CREATE TRIGGER p_del ON duct FOR DELETEASDECLARE qty intSET qty = (SELECT D.p_qty FROM DELETED AS D)IF (qty 0) BEGIN RAISERROR (該商品的庫存量不為0,不能刪

22、除,0,1) ROLLBACK TRANSACTION ENDELSE Update S SET S.p_id = NULL FROM sell AS S INNER JOIN DELETED AS D ON S.p_id = D.p_id Update B SET B.p_id = NULLFROM buy AS B INNER JOIN DELETED AS DON B.p_id = D.p_id COMMIT TRANSACTIONl 觸發(fā)器:刪除會員時,將相應(yīng)銷售記錄中會員編號字段置空CREATE TRIGGER mem_del ON dbo.member FOR DELETE ASU

23、PDATE sell SET m_id = null WHERE m_id =( SELECT m_id FROM DELETED )(三)編碼設(shè)計(jì)系統(tǒng)采用MFC對話框應(yīng)用程序以方便開發(fā),MFC對常用API做了很好的封裝。每個對話框?qū)?yīng)一個類,每個數(shù)據(jù)庫表對應(yīng)一個類。根據(jù)程序需要,自己再一次做了封裝。1. 在數(shù)據(jù)源連接方面,使用ini配置文件來存儲DSN, UID, PWD的信息,以避免硬編碼方式帶來的種種問題:不能修改密碼,不能換數(shù)據(jù)庫用戶等等。主要采用了GetPrivateProfileString和WritePrivateProfileString兩個Windows API。1. 很多數(shù)

24、據(jù)需要通過列表框來顯示,因此封裝了一個CListStyle類來設(shè)置列表框樣式及對其進(jìn)行通用操作。#ifndef _LISTSET_H_#define _LISTSET_H_class CListStyleprotected:CListCtrl*m_pList;/列表框控件指針public:CListStyle();void AttachCtrl(CListCtrl *pList);/把對象與列表框關(guān)聯(lián)void SetStyle(void);/設(shè)置列表框的ExStyle/為列表框添加Header屬性void SetCol(CString *pCol , int *pWidth , int siz

25、e);/將上兩個函數(shù)融合void SetStyleAndCol(CString *pCol , int *pWidth , int size);/向列表框插入一行數(shù)據(jù)void InsertItems(int nItem , CString *pItem , int size);#endif2.由于存儲過程不能通過ClassWizard創(chuàng)建類,所以手工完成類建立和RFX數(shù)據(jù)交換。3.在需要的地方采用多線程。n 程序啟動初始化數(shù)據(jù)庫連接時,顯示啟動畫面。n 備份數(shù)據(jù)庫時顯示進(jìn)度。n 后臺監(jiān)控商品庫存量(四)界面設(shè)計(jì)l 登陸界面:l 收銀臺POS界面:l 采購入庫界面:l 管理人員主界面:五、參考文獻(xiàn)1.Visual C+ .net 2003程序設(shè)計(jì) 何煒等 冶金工業(yè)出版社 P247-2612.數(shù)據(jù)庫系統(tǒng)概論(第三版) 薩師煊等 高等教育出

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論