




已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
數(shù)據(jù)庫課程設計超市物流管理系統(tǒng)課 程 設 計 報 告課程名稱 數(shù)據(jù)庫原理課程設計 課題名稱 專 業(yè) 計算機科學與技術(shù) 班 級 學 號 姓 名 指導教師 2010年 3 月 30 日目 錄一、系統(tǒng)定義.1二、需求分析.1三、系統(tǒng)設計.5四、詳細設計13五、課程設計總結(jié)20六、參考文獻21七、附錄22一、系統(tǒng)定義當今中國零售業(yè)發(fā)展正盛,大量超市涌現(xiàn)于各個城市,很大程度上改變了人民的消費方式。大量頻繁的物資流通,使得傳統(tǒng)低效的人工管理已不合時宜。本系統(tǒng)以一個統(tǒng)一的界面,給收銀員、采購員和管理人員提供了不同的操作及管理功能。數(shù)據(jù)庫服務器可配置在獨立的服務器上,也可配置在一臺運行本系統(tǒng)的計算機上。適用于中小型無連鎖店,或連鎖店間經(jīng)濟獨立的超市的物流管理。二、需求分析(一)系統(tǒng)綜合需求作為一個超市物流管理系統(tǒng),應該給用戶提供方便、友好而簡潔的界面進行應用,并對超市的運營過程中物資的流動詳細記錄歸檔,并將這些數(shù)據(jù)進行邏輯上的融合,以便于用戶查看、分析及管理。針對中小型超市的運營模式,有三類核心員工:收銀員、采購員和管理人員,分別有三個核心功能需要實現(xiàn),銷售功能,采購功能,庫存管理和員工管理功能。管理人員的功能應該在此基礎上進行擴展,實現(xiàn)銷售記錄查詢,采購記錄查詢,商品信息查詢、添加、刪除和修改,以及促銷活動的設置。很多超市實行了會員制度,會員享受優(yōu)惠待遇。所以本系統(tǒng)應該引入會員管理的模塊,對會員進行注冊、刪除、查詢、消費跟蹤。此外,一個成熟的管理系統(tǒng)不僅應該具有基本的處理、查詢功能,還應該有一些分析、后臺監(jiān)控的功能。所以可以將基本的供銷數(shù)據(jù)進行融合,以圖形化的界面展示給用戶進行供銷情況的分析。在后臺實時監(jiān)控商品庫存量,當?shù)陀谀骋恢禃r,向前臺發(fā)出預警通知。最后,本系統(tǒng)中對實際中應該機械化處理的過程,如條形碼掃描儀,讀卡機等,進行手工操作模擬的簡化,加入相應功能模塊即可在現(xiàn)實中使用。(二)系統(tǒng)邏輯模型1數(shù)據(jù)流圖:圖1-1 系統(tǒng)數(shù)據(jù)流圖2數(shù)據(jù)字典項目組成類型來源去向存儲者使用頻度變動頻度當前打折情況 會員優(yōu)惠規(guī)則,全場優(yōu)惠規(guī)則數(shù)據(jù)流管理人員收銀員-頻繁有時(打折信息)管理人員管理人員(當前優(yōu)惠規(guī)則)優(yōu)惠規(guī)則數(shù)據(jù)存儲-管理人員銷售商品信息商品編號,售價,銷售數(shù)量,銷售日期,會員編號,收銀員工號數(shù)據(jù)流收銀員管理人員-頻繁增加頻繁,基本無更改(銷售信息)(歷史銷售記錄)銷售記錄數(shù)據(jù)存儲-收銀員會員信息會員編號,姓名,住址,電話,身份證號,消費金額數(shù)據(jù)流管理人員,收銀員管理人員-頻繁增加不頻繁,基本無更改(會員資料)消費清單商品編號,售價,銷售數(shù)量,銷售日期,會員編號,收銀員工號收銀員管理人員-會員信息會員編號,姓名,住址,電話,身份證號數(shù)據(jù)存儲-管理人員商品信息列表編號,名稱,規(guī)格,供應商,售價,庫存量數(shù)據(jù)流管理人員,采購員,收銀員管理人員-頻繁增加不頻繁,更改不頻繁商品信息數(shù)據(jù)存儲-管理人員本次采購信息采購編號,商品編號,采購價格,采購數(shù)量,采購日期,采購員數(shù)據(jù)流采購員管理人員-有時增加有時,基本無更改歷史采購信息采購信息采購記錄采購記錄數(shù)據(jù)存儲-采購員表1.1 系統(tǒng)數(shù)據(jù)字典三、系統(tǒng)設計(一)概念結(jié)構(gòu)設計(二)邏輯結(jié)構(gòu)設計員工信息表 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)Index會員姓名m_addrvarchar(50)會員住址m_telvarchar(15)會員電話m_codevarchar(18)會員身份證號m_consumedecimal會員消費金額商品信息表 Product字段名類型NULL其他備注p_idbigint(8)PK商品編號p_namevarchar(30)Index商品名稱p_scalevarchar(6)規(guī)格p_pricedecimal商品當前單價p_manuvarchar(30)供應商p_qtyint(5)Index庫存量采購記錄表 Buy字段名類型NULL其他備注b_idbigint(8)PK采購編號p_idbigint(8)Index,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會員編號預警日志表 Warning字段名類型NULL其他備注w_idint(4)PK預警編號w_contenttext預警內(nèi)容優(yōu)惠規(guī)則表 Discount字段名類型NULL其他備注m_allfloat所有會員打折數(shù)d_allfloat全場打折數(shù)部分表關(guān)系圖:(三)子模塊劃分及功能概述系統(tǒng)設置三種權(quán)限:收銀員、采購員和管理人員。登陸后,可以進入不同的功能模塊,在登陸界面可以修改登陸密碼。子模塊劃分如下:l 收銀臺POS系統(tǒng)(需要權(quán)限:收銀員)顧客拿商品到收銀臺時,首先出示會員卡(如果是會員),收銀員通過讀卡機讀取會員卡的會員號,然后通過條形碼掃描儀一一掃描商品,獲得商品編號,并手動輸入購買數(shù)量,結(jié)算后顯示應付金額。在掃描過程中,結(jié)算之前,可以取消某項商品的購買信息。收銀員還可以在這里看到管理人員發(fā)送的通知消息。l 采購入庫(需要權(quán)限:采購員)采購員只能采購數(shù)據(jù)庫中已存在的商品。對每種采購的商品輸入采購的商品編號,采購數(shù)量,和采購價格,這些商品的信息和采購的信息顯示在列表中,結(jié)算入庫后列表清空,并將數(shù)據(jù)寫入數(shù)據(jù)庫。l 商品及庫存管理(需要權(quán)限:管理人員)1. 引入新商品:填寫商品的名稱,規(guī)格,供應商和售價,將商品引入超市。添加后的商品庫存量為0,需要采購。供應商或規(guī)格不同的同名商品,應作為不同的商品對待。2. 商品查詢:可以根據(jù)商品的名稱,供應商,庫存量進行查詢,并可以查看所有商品的信息列表。顯示的信息包括編號,名稱,規(guī)格,供應商和庫存量。3. 刪除商品:只能刪除庫存量為0的商品,表明不再引進此商品。支持批量刪除。4. 修改商品信息:在商品信息列表中選擇一行,對其基本信息進行修改。l 會員管理(需要權(quán)限:管理人員)1. 會員注冊:填寫顧客姓名,住址,電話及身份證號,即可注冊成為會員,享受優(yōu)惠待遇。2. 會員查詢:可以按會員的編號和姓名進行查詢,并可以查看所有會員的信息列表。顯示的信息包括編號,姓名,住址,電話,身份證號和累計消費金額。3. 取消會員身份:刪除會員資料,使其會員卡失效。支持批量刪除。4. 查看消費記錄:在會員信息列表中選擇一行,對其詳細的消費記錄進行查詢。l 銷售管理(需要權(quán)限:管理人員)對歷史的銷售記錄進行查看。可以按商品編號,商品名稱或日期進行查詢,也可以列出所有的銷售記錄。顯示信息包括商品編號,商品名稱,商品規(guī)格,銷售數(shù)量,銷售價格,收銀員和銷售時間。l 員工管理(需要權(quán)限:管理人員)1. 增加員工:添加新上崗的員工的信息。需要填寫工號,姓名,登陸密碼和職位。2. 員工信息列表:列出了所有員工的信息列表。顯示的信息包括工號,姓名,職位和在職情況。3. 員工離職:將離職員工的在職情況置為“離職”。4. 修改員工信息:在員工信息列表中選擇一行,修改其基本信息(姓名和職位)。5. 向收銀臺發(fā)送消息:輸入運行本系統(tǒng)的收銀臺的IP和消息,可以向收銀員發(fā)送通知消息。l 采購管理(需要權(quán)限:管理人員)對歷史的采購記錄進行查看。可以按商品編號,商品名稱或日期進行查詢,也可以列出所有的采購記錄。顯示信息包括商品編號,商品名稱,商品規(guī)格,供應商,采購數(shù)量,采購價格,采購時間,采購員和當前庫存量。l 供銷情況分析(需要權(quán)限:管理人員)對歷史采購及銷售數(shù)據(jù),用圖形的方式顯示其供銷情況及盈利狀況,直觀的供管理人員分析。l 優(yōu)惠規(guī)則管理(需要權(quán)限:管理人員)1. 會員優(yōu)惠規(guī)則:設置對會員購物實行多少折優(yōu)惠。2. 全場優(yōu)惠規(guī)則:設置促銷活動,全場商品打折多少。l 缺貨報告日志(需要權(quán)限:管理人員)后臺實時監(jiān)測商品的庫存量,當庫存量低于某值時,就發(fā)出預警,并記入日志。這里可以查看和清空所有的預警日志。管理員可控制預警開關(guān),如果打開,則發(fā)出報警,否則,只在后臺寫入日志。l 其他附加功能1修改密碼,重新登陸2.配置數(shù)據(jù)源連接,將數(shù)據(jù)源連接信息寫入配置文件,避免硬編碼數(shù)據(jù)源名,用戶名和密碼帶來的弊端。3.幫助文檔:解釋如何配置服務器及一些常見問題。4.備份(增量備份和完全備份),恢復數(shù)據(jù)庫。四、詳細設計(一)開發(fā)平臺及工具l 開發(fā)工具Microsoft Visual C+ 6.0l DBMS:Microsoft SQL Server 2000l 建模工具:Microsoft Visio, Sybase PowerDesignerl 第三方庫:Skin+換膚庫, MD5加密類說明:為了方便的實現(xiàn)多線程及Socket通信等功能,以及個人熟悉程度的因素,選擇了VC 6.0的開發(fā)平臺。而在Windows平臺上為數(shù)不多的DBMS產(chǎn)品中,Oracle過于龐大,不利于在低配置的機器上運行;Access又過于小型,不能負載大量的數(shù)據(jù)訪問請求,所以選擇了適中的MS SQL Server。為了彌補VC做界面困難的缺陷,軟件用了一個換膚的共享庫Skin+,以dll形式附帶在程序包中。另外在登陸密碼的加密存儲中,用到了流行的MD5加密,算法實現(xiàn)來源于。(二)存儲過程及觸發(fā)器作為數(shù)據(jù)庫應用系統(tǒng),數(shù)據(jù)的一致性需要得到保證,通過單純的手工編碼方式,工作煩瑣,容易出錯,而且不易于擴展。采用DBMS的外碼約束,Unique約束,觸發(fā)器的使用來解決這一問題。在查詢效率方面,三表及四表連接查詢的過程用存儲過程實現(xiàn)。對商品,采購,銷售表的外碼沒有強制級聯(lián)刪除和級聯(lián)修改,因不再進購某種商品,或某雇員辭職,不應該影響過去的采購,銷售記錄。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 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 pscale , 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 查詢采購記錄的存儲過程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_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 觸發(fā)器:銷售商品后,自動減少庫存量,并為相應會員增加其消費金額記錄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_price FROM INSERTED)if member BEGIN UPDATE member SET m_consume = m_consume + consume WHERE m_id = member ENDl 觸發(fā)器:刪除商品時,如果庫存量不為0,則撤銷操作。并將相應銷售及采購記錄的編號字段置空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,不能刪除,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ā)器:刪除會員時,將相應銷售記錄中會員編號字段置空CREATE TRIGGER mem_del ON dbo.member FOR DELETE ASUPDATE sell SET m_id = null WHERE m_id =( SELECT m_id FROM DELETED )(三)編碼設計系統(tǒng)采用MFC對話框應用程序以方便開發(fā),MFC對常用API做了很好的封裝。每個對話框?qū)粋€類,每個數(shù)據(jù)庫表對應一個類。根據(jù)程序需要,自己再一次做了封裝。1. 在數(shù)據(jù)源連接方面,使用ini配置文件來存儲DSN, UID, PWD的信息,以避免硬編碼方式帶來的種種問題:不能修改密碼,不能換數(shù)據(jù)庫用戶等等。主要采用了GetPrivateProfileString和WritePrivateProfileString兩個Windows API。1. 很多數(shù)據(jù)需要通過列表框來顯示,因此封裝了一個CListStyle類來設置列表框樣式及對其進行通用操作。#ifndef _LISTSET_H_#define _LISTSET_H_class CListStyleprotected:CListCtrl*m_pList;/列表框控件指針public:CListStyle();void AttachCtrl(CListCtrl *pList);/把對象與列表框關(guān)聯(lián)void SetStyle(void);/設置列表框的ExStyle/為列表框添加Header屬性void SetCol(CString *pCol , int *pWidth , int size);/將上兩個函數(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ù)庫時顯示進度。n 后臺監(jiān)控商品庫存量(四)界面設計l 登陸界面:l 收銀臺POS界面:l 采購入庫界面:l 管理人員主界面:五、課程設計總結(jié)這次課程設計我花了兩個星期的時間來完成,前期做了一些準備工作,了解了一般超市物流管理方面的背景知識,然后再權(quán)衡了時間和人力,做了適量簡化,并完成了初步的需求分析。稍作細化后,便開始設計數(shù)據(jù)庫。而后做了界面設計,完成了程序大部分的主要界面。而在編碼方面,我從系統(tǒng)的功能、規(guī)模和實用方面考慮,并沒有去學習和采用過多花哨的新技術(shù),如.net、分布式等企業(yè)級應用。我在規(guī)劃前,進行了近半個月的時間來學習MFC ODBC的使用,以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工地安全作業(yè)責任合同書
- 餐飲店品牌連鎖加盟及運營管理合同模板
- 車輛掛靠汽車維修保養(yǎng)代理管理協(xié)議
- 離婚協(xié)議中關(guān)于按揭房產(chǎn)及貸款的解決方案
- 車棚充電設施建設與運營管理承包協(xié)議
- 引進高端外國專家意向性工作合同中英文版本
- 高中一年級物理《彈力-基本相互作用》
- 公司生產(chǎn)經(jīng)營部管理制度
- 甲苯二異氰酸脂管理制度
- 科技特派團內(nèi)部管理制度
- 腹部血管解剖詳解課件
- 外來物種對生物多樣性影響課件
- 2023版初中化學跨學科實踐活動(化學)
- 醫(yī)院職工代表大會暨工會會員代表大會提案表
- Oxford-3000-牛津核心詞匯
- 散打裁判的基本手勢
- 《延安我把你追尋》課件
- 石材產(chǎn)品質(zhì)量保證書
- 兒童意外傷害預防-ppt課件
- 衰老生物學ppt課件(PPT 57頁)
- 外研版必修二短語(教師版)
評論
0/150
提交評論