


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)據(jù)庫原理課程設(shè)計報告專業(yè):計算機科學(xué)與技術(shù)班級: 0410308 班學(xué)號:03100810姓名:蒲振宇題目名稱:超市物流管理系統(tǒng)完成日期: 2005年12月10日重慶郵電學(xué)院計算機學(xué)院實驗中心一、系統(tǒng)定義:當今中國零售業(yè)發(fā)展正盛,大量超市涌現(xiàn)于各個城市,很大程度上改 變了人民的消費方式。大量頻繁的物資流通,使得傳統(tǒng)低效的人工管理已 不合時宜。本系統(tǒng)以一個統(tǒng)一的界面,給收銀員、采購員和管理人員提供 了不同的操作與管理功能。數(shù)據(jù)庫服務(wù)器可配置在獨立的服務(wù)器上,也可 配置在一臺運行本系統(tǒng)的計算機上。適用于中小型無連鎖店,或連鎖店間 經(jīng)濟獨立的超市的物流管理。二、需求分析:(一)系統(tǒng)綜合需求作為一個
2、超市物流管理系統(tǒng),應(yīng)該給用戶提供方便、 友好而簡潔的界面進行應(yīng)用,并對超市的運營過程中物資的流動詳細記錄歸檔,并將這些數(shù)據(jù)進行邏輯上的融合,以便于用戶查看、分析與管理。針對中小型超市的運營模式,有三類核心員工:收銀員、采購員和管理人員,分別有三個核心功能需要實現(xiàn),銷售功能,采購功能,庫存管理和員工管理功能。管理人員的功能應(yīng)該在此基礎(chǔ)上進行擴展,實現(xiàn)銷售記錄查詢,采購記錄查詢,商品信息查詢、添加、刪除和修 改,以與促銷活動的設(shè)置。很多超市實行了會員制度, 會員享受優(yōu)惠待遇。所以本系統(tǒng)應(yīng)該引入會員管理的模塊,對會員進行注冊、刪除、查詢、消費跟蹤。此外,一個成熟的管理系統(tǒng)不僅應(yīng)該具有基本的處理、查詢
3、功能,還應(yīng)該有一些分析、后臺監(jiān)控的功能。所以可以將基本的供銷數(shù)據(jù)進 行融合,以圖形化的界面展示給用戶進行供銷情況的分析。在后臺實 時監(jiān)控商品庫存量,當?shù)陀谀骋恢禃r,向前臺發(fā)出預(yù)警通知。最后,本系統(tǒng)中對實際中應(yīng)該機械化處理的過程, 如條形碼掃描儀, 讀卡機等,進行手工操作模擬的簡化,加入相應(yīng)功能模塊即可在現(xiàn)實 中使用。(二)系統(tǒng)邏輯模型1數(shù)據(jù)流圖:消費清單顧客P0收銀系統(tǒng)銷售商品信息,會員卡號ft應(yīng)收金額銷會員信息消 費 金 額商品信息米購入庫采購信息V戶會查1員詢條件息A *優(yōu)惠規(guī)則A優(yōu)惠規(guī)則管理消 費 清 單會員管理銷售記錄歷 史 銷 售庫 存 商 品 信!人修 改 的 信商品及庫存管理2
4、.數(shù)據(jù)字典項目本 次 采 購 信 息采購員采購記錄商品信息列表歷史采購信息采購管理用戶查詢條件采 購 記 錄采 購 查 詢 條件 1錄町一件商品查詢條件r宀x銷售管理銷售記錄 丿銷售查詢條件商品修改信息費會員查詢條件>管理人員優(yōu)惠規(guī)則修改信息當前優(yōu)惠規(guī)則圖1-1系統(tǒng)數(shù)據(jù)流圖組成類型來源去向存儲使用頻變動頻者度度當前打折情況數(shù)據(jù)流管理人員收銀員(打折信息)會員優(yōu)惠規(guī)管理人員管理人員-(當前優(yōu)惠規(guī)則)貝y,全場優(yōu)惠規(guī)則頻繁有時優(yōu)惠規(guī)則數(shù)據(jù)存儲-管理人員銷售商品信息商品編號,售(銷售信息)價,銷售數(shù)數(shù)據(jù)收銀員管理增加頻(歷史銷售記錄)量,銷售日期,會員編流人員頻繁繁,基 本無更銷售記錄號,收銀
5、員工號數(shù)據(jù)存儲-收銀員改會員信息會員編號,姓管理人 員,收 銀員(會員資料)名,住址,電話,身份證號,消費金額數(shù)據(jù)管理人員-頻繁增加不頻繁,商品編號,售流基本無消費清單價,銷售數(shù)量,銷售日期,會員編收銀員管理人員-更改號,收銀員工號會員信息會員編號,姓名,住址,電話,身份證號數(shù)據(jù)存儲-管理人員商品信息歹y表編號,名稱,規(guī)格,供應(yīng) 商,售價,庫 存量數(shù)據(jù)流管理人 員,采 購員,收銀員管理人員-頻繁增加不頻繁, 更改不頻繁商品信息數(shù)據(jù)存儲-管理人員本次米購信息采購編號,商 品編號,采購 價格,采購數(shù)量,采購日期,采購員數(shù)據(jù)流采購員管理人員-有時增加有 時,基 本無更 改歷史米購信息米購信息采購記錄
6、采購記錄數(shù)據(jù)存儲-采購員表1.1系統(tǒng)數(shù)據(jù)字典三、系統(tǒng)設(shè)計:(一)概念結(jié)構(gòu)設(shè)計售價銷售時間姓名編號銷售數(shù)量編號電話銷住址名稱編號身份證規(guī)格姓名當前售價工號供應(yīng)商登陸密碼采購職位采購數(shù)量編號米購時間購價售會員一消費金額/商品k庫存量員工在職情況(二)邏輯結(jié)構(gòu)設(shè)計員工信息表Employee字段名類型NULL 其他備注e_idvarchar(IO)PK員工號e_n amevarchar(IO)In dex員工姓名e_pwdvarchar(100)Y登陸密碼e_positi ontin yi nt(1)職位(0:管理人員1:收銀員2:采購人e_statebit(1)在職情況會員信息表Member字段名類
7、型NULL其他備注m_idbig in t(8)PK會員編號m_n amevarchar(IO)In dex會員姓名m_addrvarchar(50)會員住址m_telvarchar(15)會員電話m_codevarchar(18)會員身份證號m_con sumedecimal會員消費金額商品信息表Product字段名類型NULL其他備注P_idbigi nt(8)PK商品編號p_n amevarchar(30)In dex商品名稱p_scalevarchar(6)規(guī)格p_pricedecimal商品當前單價p_ma nuvarchar(30)供應(yīng)商p_qtyin t(5)In dex庫存量米
8、購記錄表Buy字段名類型NULL其他備注b_idbig in t(8)PK采購編號P_idbig in t(8)In dex,FK商口口編號b_pricedecimal購入價格b_qtyin t(5)購入數(shù)量b_timevarchar(19)采購時間e_idvarchar(IO)FK采購員工號銷售記錄表Sell字段名類型NULL其他備注s_idbig in t(10)PK銷售編號P_idbig in t(8)In dex,FK商口口編號s_pricedecimal銷售價格s_qtyin t(5)銷售數(shù)量s_timevarchar(19)銷售時間e_idvarchar(10)FK收銀員m_idb
9、ig in t(8)YFK,I ndex會員編號預(yù)警日志表Warni ng字段名類型NULL其他備注w_idint(4)PK預(yù)警編號w_contenttext預(yù)警內(nèi)容優(yōu)惠規(guī)則表Discou nt字段名類型NULL其他備注m_allfloat所有會員打折數(shù)d allfloat全場打折數(shù)productp_idp J老砒p sc al ep jricep_mamu$employeesell號_i d1 gs timea_i dm i i部分表關(guān)系圖:(三)子模塊劃分與功能概述系統(tǒng)設(shè)置三種權(quán)限:收銀員、采購員和管理人員。登陸后,可以進入不同的功能模塊,在登陸界面可以修改登陸密碼。子模塊劃分如下:收銀臺
10、POS系統(tǒng)(需要權(quán)限:收銀員)顧客拿商品到收銀臺時,首先出示會員卡(如果是會員),收銀員 通過讀卡機讀取會員卡的會員號,然后通過條形碼掃描儀一一掃描商 品,獲得商品編號,并手動輸入購買數(shù)量,結(jié)算后顯示應(yīng)付金額。在掃描過程中,結(jié)算之前,可以取消某項商品的購買信息。收銀員還可 以在這里看到管理人員發(fā)送的通知消息。采購入庫(需要權(quán)限:采購員)采購員只能采購數(shù)據(jù)庫中已存在的商品。對每種采購的商品輸入采購的商品編號,采購數(shù)量,和采購價格,這些商品的信息和采購的信息顯示在列表中,結(jié)算入庫后列表清空,并將數(shù)據(jù)寫入數(shù)據(jù)庫。商品與庫存管理(需要權(quán)限:管理人員)1. 引入新商品:填寫商品的名稱,規(guī)格,供應(yīng)商和售價
11、,將商品弓I入超市。添加后的商品庫存量為0,需要采購。供應(yīng)商或規(guī)否格不同的同名商品,應(yīng)作為不同的商品對待2. 商品查詢:可以根據(jù)商品的名稱,供應(yīng)商,庫存量進行查詢,填寫查詢信息搜索數(shù)據(jù)庫一顯示結(jié)果查詢?nèi)坎⒖梢圆榭此猩唐返男畔⒘斜怼?顯示的信息包括編號,名稱, 規(guī)格,供應(yīng)商和庫存量。是3. 刪除商品:只能刪除庫存量為0的商品,表明不再引進此商品支持批量刪除4. 修改商品信息:在商品信息列表中選擇一行,對其基本信息進 行修改。會員管理(需要權(quán)限:管理人員)1. 會員注冊:填寫顧客姓名,住址,電話與身份證號,即可注冊否成為會員,享受優(yōu)惠待遇2. 會員查詢:可以按會員的編號和姓名進行查詢,并可以查
12、看所填寫查詢信息搜索數(shù)據(jù)庫_顯示結(jié)果查詢?nèi)?有會員的信息列表。顯示的信息包括編號,姓名,住址,電話, 身份證號和累計消費金額。3. 取消會員身份:刪除會員資料,使其會員卡失效。支持批量刪除是4. 查看消費記錄:在會員信息列表中選擇一行,對其詳細的消費 記錄進行查詢。銷售管理(需要權(quán)限:管理人員)對歷史的銷售記錄進行查看。 可以按商品編號,商品名稱或日期進 行查詢,也可以列出所有的銷售記錄。顯示信息包括商品編號,商品 名稱,商品規(guī)格,銷售數(shù)量,銷售價格,收銀員和銷售時間。填寫查詢信息搜索數(shù)據(jù)庫 _J顯示結(jié)果查詢?nèi)繂T工管理(需要權(quán)限:管理人員)否1. 增加員工:添加新上崗的員工的信息。需要填寫
13、工號,姓名, 登陸密碼和職位。2. 員工信息列表:列出了所有員工的信息列表。顯示的信息包括工號,姓名,職位和在職情況3. 員工離職:將離職員工的在職情況置為“離職”4. 修改員工信息:在員工信息列表中選擇一行,修改其基本信息(姓名和職位)。5. 向收銀臺發(fā)送消息:輸入運行本系統(tǒng)的收銀臺的IP和消息,可以向收銀員發(fā)送通知消息采購管理(需要權(quán)限:管理人員)對歷史的采購記錄進行查看。 可以按商品編號,商品名稱或日期進填寫查詢信息 j搜索數(shù)據(jù)庫顯示結(jié)果查詢?nèi)啃胁樵?,也可以列出所有的采購記錄。顯示信息包括商品編號,商品 名稱,商品規(guī)格,供應(yīng)商,采購數(shù)量,采購價格,采購時間,采購員 和當前庫存量。供銷情
14、況分析(需要權(quán)限:管理人員)對歷史采購與銷售數(shù)據(jù),用圖形的方式顯示其供銷情況與盈利狀搜集數(shù)據(jù)庫數(shù)據(jù)圖表顯示結(jié)果況,直觀的供管理人員分析優(yōu)惠規(guī)則管理(需要權(quán)限:管理人員)1. 會員優(yōu)惠規(guī)則:設(shè)置對會員購物實行多少折優(yōu)惠。2. 全場優(yōu)惠規(guī)則:設(shè)置促銷活動,全場商品打折多少。缺貨報告日志(需要權(quán)限:管理人員)后臺實時監(jiān)測商品的庫存量,當庫存量低于某值時,就發(fā)出預(yù)警, 并記入日志。這里可以查看和清空所有的預(yù)警日志。管理員可控制預(yù) 警幵關(guān),如果打幵,則發(fā)出報警,否則,只在后臺寫入日志。查看缺貨日志顯示掃描數(shù)據(jù)庫檢 查庫存量其他附加功能1 .修改密碼,重新登陸2. 配置數(shù)據(jù)源連接,將數(shù)據(jù)源連接信息寫入配置
15、文件,避免硬編碼數(shù)據(jù)源名,用戶名和密碼帶來的弊端。3. 幫助文檔:解釋如何配置服務(wù)器與一些常見問題。4. 備份(增量備份和完全備份),恢復(fù)數(shù)據(jù)庫。四、詳細設(shè)計(一)幵發(fā)平臺與工具幵發(fā)工具 Microsoft Visual C+ 6.0DBMS :Microsoft SQL Server 2000建模工具:Microsoft Visio, Sybase PowerDesig ner第三方庫:Skin+換膚庫,MD5加密類說明 :為了方便的實現(xiàn)多線程與 Socket 通信等功能,以與個 人熟悉程度的因素,選擇了 VC 6.0 的開發(fā)平臺。而在 Windows 平臺上為數(shù)不多的 DBMS 產(chǎn)品中,
16、Oracle 過 于龐大,不利于在低配置的機器上運行; Access 又過于小型,不 能負載大量的數(shù)據(jù)訪問請求,所以選擇了適中的 MS SQL Server 。為了彌補 VC 做界面困難的缺陷,軟件用了一個換膚的共享庫 Skin+ ,以 dll 形式附帶在程序包中。另外在登陸密碼的加密存儲中,用到了流行的 MD5 加密,算 法實現(xiàn)來源于。二) 存儲過程與觸發(fā)器 作為數(shù)據(jù)庫應(yīng)用系統(tǒng),數(shù)據(jù)的一致性需要得到保證,通過單純 的手工編碼方式,工作煩瑣,容易出錯,而且不易于擴展。采用 DBMS 的外碼約束, Unique 約束,觸發(fā)器的使用來解決這一問題。在查詢效率方面, 三表與四表連接查詢的過程用存儲過
17、程實現(xiàn)。 對商品,采購,銷售表的外碼沒有強制級聯(lián)刪除和級聯(lián)修改, 因不再進購某種商品,或某雇員辭職,不應(yīng)該影響過去的采購,銷 售記錄。查詢銷售記錄的存儲過程CREATE PROCEDURE dbo.search_sell_recid varchar(8), name varchar(30),time varchar(30),mid varchar(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 AS
18、 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_idand S.e_id = E.e_idORDER BY S.s_id descENDIF (mid<>'
19、')BEGINSELECT P.p_id AS pid, P .p_name AS pname , P .p_scale AS pscale ,S.s_qty AS sqty , S.s_price AS sprice , S.s_time ASstime ,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.
20、s_time like '%'+time+'%' and S.m_id=mid andS.p_id = P .p_idand S.e_id = E.e_idORDER BY S.s_id descENDGO查詢采購記錄的存儲過程CREATE PROCEDURE dbo.search_buy_rec id varchar(8),name varchar(30),time varchar(30)ASBEGINSELECT P.p_id AS pid, P .p_name AS pname , P .p_scaleAS pscale , P .p_manu AS pm
21、anu,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_id like '%'+id+'%' and P.p_name like '%'+name+'%' andB.b_time like '%'+time+'%' and B.p_id = P.p_idand B.e_id = E.e_idORDER BY B.
22、b_id descENDGO觸發(fā)器:采購商品后,自動增長庫存量CREATE TRIGGER qty_inc ON dbo.buyFOR 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_id觸發(fā)器: 銷售商品后, 自動減少庫存量, 并為相應(yīng)會員增加其消費金額記錄CREATE TRIGGER qty_dec ON dbo.sellFOR INSERTASUPDATE P SET P.p_qty = P .p_qty - I.s_qt
23、yFROM 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_price FROM INSERTED)if member <> ''BEGINUPDATE member SET m_consume = m_consume + consumeWHERE m_id = member
24、END觸發(fā)器:刪除商品時,如果庫存量不為 0 ,則撤銷操作。并 將相應(yīng)銷售與采購記錄的編號字段置空CREATE TRIGGER p_del ON ductFOR DELETEASDECLARE qty intSET qty = (SELECT D.p_qty FROM DELETED AS D)IF (qty <> 0)BEGINRAISERROR (' 該商品的庫存量不為 0 ,不能刪除 ',0,1)ROLLBACK TRANSACTIONENDELSEUpdate S SET S.p_id = NULLFROM sell AS S INNER JO
25、IN DELETED AS DON S.p_id= D.p_idUpdate B SET B.p_id = NULLFROM buy AS B INNER JOIN DELETED AS DON B.p_id =D.p_idCOMMIT TRANSACTION觸發(fā)器:刪除會員時, 將相應(yīng)銷售記錄中會員編號字段置空CREATE TRIGGER mem_del ON dbo.memberFOR DELETEASUPDATE sell SET m_id = null WHERE m_id =( SELECT m_id FROM DELETED )三) 編碼設(shè)計系統(tǒng)采用 MFC 對話框應(yīng)用程序以方便開
26、發(fā), MFC 對常用 API 做了很好的封裝。 每個對話框?qū)?yīng)一個類, 每個數(shù)據(jù)庫表對應(yīng)一個 類。根據(jù)程序需要,自己再一次做了封裝。1. 在數(shù)據(jù)源連接方面,使用 ini 配置文件來存儲 DSN, UID, PWD 的信息, 以避免硬編碼方式帶來的種種問題: 不能修改密碼, 不 能 換 數(shù) 據(jù) 庫 用 戶 等 等 。 主 要 采 用 了 GetPrivatePro 和 WritePrivatePro 兩個 Windows API 。1. 很 多 數(shù)據(jù)需 要通 過 列表 框來顯 示 ,因 此封裝 了 一個 CListStyle 類來設(shè)置列表框樣式與對其進行通用操作。#ifndef _LISTSET
27、_H_#define _LISTSET_H_class CListStyleprotected:CListCtrl *m_pList; / 列表框控件指針public:CListStyle();void AttachCtrl (CListCtrl *pList);/ 把 對 象 與 列 表24 / 30框關(guān)聯(lián)void SetStyle(void);/ 設(shè) 置 列 表 框 的ExStyle/ 為列表框添加 Header 屬性void SetCol(CString*pCol, int *pWidth, intsize);/ 將上兩個函數(shù)融合void SetStyleAndCol(CString*pCol, int *pWidth, intsize);/ 向列表框插入一行數(shù)據(jù)void InsertItems(int nItem , CString *pItem , int size);#endif2. 由于存儲過程不能通過 ClassWizard 創(chuàng)建類,所以手工完 成類建立和 RFX 數(shù)據(jù)交換。3. 在需要的地方采用多線程。 程序啟動初始化數(shù)據(jù)庫連接時,顯示啟動畫面。 備份數(shù)據(jù)庫時顯示進度。后臺監(jiān)控商品庫存量(四)界面設(shè)計登陸界面:收銀臺POS界面:采購入庫界面:管理人員主界面:五、參考文獻1. Visual C+ .net 2003 程序設(shè)計
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2031年中國差壓變送器行業(yè)市場調(diào)查研究及發(fā)展趨勢預(yù)測報告
- 排氣管墊行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 2025-2030年中國無苯全能裝修漆行業(yè)深度研究分析報告
- 2025年鐵磨鏈項目投資可行性研究分析報告
- 2020-2025年中國云梯消防車行業(yè)發(fā)展趨勢及投資前景預(yù)測報告
- 2025年中國牙科綜合治療臺行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報告
- 中國隱形文胸行業(yè)市場調(diào)查研究及發(fā)展戰(zhàn)略研究報告
- 2025-2030年中國丙帕硝酯行業(yè)深度研究分析報告
- 設(shè)施供貨合同范本
- 年產(chǎn)20萬噸奶牛飼料項目可行性研究報告建議書
- 地下室車庫綜合管線施工布置
- 月度及年度績效考核管理辦法
- 采購訂單模板
- 畢業(yè)設(shè)計鋼筋彎曲機的結(jié)構(gòu)設(shè)計
- 工程結(jié)構(gòu)質(zhì)量特色介紹
- 清華大學(xué)MBA課程——運籌學(xué)
- 濕法冶金浸出凈化和沉積PPT課件
- 生產(chǎn)現(xiàn)場作業(yè)十不干PPT課件
- 雨污水管網(wǎng)勞務(wù)施工分包合同
- 通信桿路工程施工
- 初中物理光學(xué)經(jīng)典題(共23頁)
評論
0/150
提交評論