數(shù)據(jù)庫原理課程設(shè)計 進銷存管理系統(tǒng)_第1頁
數(shù)據(jù)庫原理課程設(shè)計 進銷存管理系統(tǒng)_第2頁
數(shù)據(jù)庫原理課程設(shè)計 進銷存管理系統(tǒng)_第3頁
數(shù)據(jù)庫原理課程設(shè)計 進銷存管理系統(tǒng)_第4頁
數(shù)據(jù)庫原理課程設(shè)計 進銷存管理系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、長治學(xué)院課程設(shè)計報告 課程名稱: 數(shù)據(jù)庫原理課程設(shè)計設(shè)計題目: 進銷存管理系統(tǒng) 系 別: 計算機系 專 業(yè): 計算機科學(xué)與技術(shù) 組 別: 第一組 學(xué)生姓名: 韓偉偉 學(xué) 號: 08407106 起止日期: 2011年6月7日 2011年6月22日 指導(dǎo)教師: 馬桂芳2 目 錄一、 系統(tǒng)規(guī)劃 . 3二、 總體設(shè)計 . 42.1系統(tǒng)功能簡述. 5三、數(shù)據(jù)庫原理 . 53.1 系統(tǒng)原理概述 . 53.2邏輯結(jié)構(gòu)設(shè)計. 6四、模塊劃分(系統(tǒng)管理模塊實現(xiàn) .13 4.1 系統(tǒng)登錄界面及代碼 . 134.2系統(tǒng)管理模塊界面及代碼 . . 13五、系統(tǒng)的優(yōu)點及不足之處 .14 六、總結(jié)和致謝 .15 七、參

2、考文獻 . 153進銷存管理系統(tǒng)系統(tǒng)背景說明待開發(fā)的軟件系統(tǒng)的名稱:進銷存管理系統(tǒng)軟件項目的用途:用于數(shù)據(jù)庫課程設(shè)計及商業(yè)用途 軟件項目的范圍:系統(tǒng)涉及企業(yè)的庫存,銷售與進貨提供了管理 功能,為庫存,銷售,進貨等管理數(shù)據(jù)提供了分析功能小組成員成員:韓偉偉,令狐巖,李江民,楊捷指導(dǎo)老師:馬桂芳隨著技術(shù)發(fā)展,電腦操作及管理日趨簡化,電腦知識日趨普及,同時市場經(jīng)濟快速多變,競爭激烈,因此企業(yè)采用電腦管理進貨、庫存、銷售等諸多環(huán)節(jié)也已成為趨勢及必然。一、 系統(tǒng)規(guī)劃1.1 可行性分析經(jīng)濟上可行性分析現(xiàn)在,計算機的價格已經(jīng)十分低廉,性能卻有了長足的進步。而本系統(tǒng)的開發(fā),為企業(yè)的工作效率帶來了一個質(zhì)的飛躍,

3、為此主要表現(xiàn)有以下幾個方面: 第一,本系統(tǒng)的運行可以代替人工進行許多繁雜的勞動; 第二,本系統(tǒng)的運行可以節(jié)省許多資源;第三,本系統(tǒng)的運行可以大大的提高企業(yè)的工作效率;第四,本系統(tǒng)可以使敏感文檔更加安全,等等。本產(chǎn)品的開發(fā)所需的設(shè)備在現(xiàn)有條件下,只需要少量的投入資金就可以實現(xiàn)。因此在經(jīng)濟上是可行的。技術(shù)上可行性分析a ) 軟件可行性PowerBuilder 具有豐富的數(shù)據(jù)庫功能,可以直接建立和編輯數(shù)據(jù)庫,使用結(jié)構(gòu)化查詢語言直接訪問SQL Sever 上的數(shù)據(jù)庫,并提供簡單的面向?qū)ο蟮膸觳僮髅?、多用戶?shù)據(jù)庫的加鎖機制和網(wǎng)絡(luò)數(shù)據(jù)庫的編程技術(shù)。 SQL Sever2000是由微軟公司推出的,能提供超

4、大型系統(tǒng)所需的數(shù)據(jù)庫4 服務(wù),并對數(shù)據(jù)庫提供全面的保護,具有防止問題發(fā)生的安全措施,他是一個采用SQL 語言的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。作為客戶機/服務(wù)器的后端數(shù)據(jù)庫,他是所有數(shù)據(jù)的匯總和管理中心。b ) 硬件可行性CPU:奔騰三代以上。OS (操作系統(tǒng)):Windows2000/windows98以上。內(nèi)存:64MB 以上。硬盤:30G 以上。本系統(tǒng)的開發(fā)利用Microsoft SQL Server2000作為本系統(tǒng)的數(shù)據(jù)庫,它是一個支持多用戶的新型數(shù)據(jù)庫,適用于大中規(guī)模的數(shù)據(jù)量需求。使用PowerBuilder 作為系統(tǒng)開發(fā)的開發(fā)環(huán)境,此開發(fā)工具開發(fā)數(shù)據(jù)庫管理系統(tǒng),采用面向?qū)ο蟮姆绞剑奖?、?/p>

5、捷、功能強大。管理上可行性分析課設(shè)指導(dǎo)老師給與了精心的講解和大力的支持。綜上所述,系統(tǒng)在技術(shù)上、經(jīng)濟上、管理上都是可行的。二、 總體設(shè)計 5 2.1系統(tǒng)功能簡述根據(jù)生活經(jīng)驗,我們開發(fā)該系統(tǒng)主要是為了實現(xiàn):方便的查詢信息,簡單準(zhǔn)確的進行插入和刪除等操作。所以在該系統(tǒng)中,我們主要實現(xiàn)了它的以上幾個功能:查詢功能是在查詢客戶消費、購物情況等信息,是提供給管理者參考的;插入、刪除和保存功能是在客戶信息表和購物信息表以及庫存信息表中得到實現(xiàn)。三、數(shù)據(jù)庫原理3.1 系統(tǒng)原理概述管理信息系統(tǒng)的開發(fā)是一個復(fù)雜的系統(tǒng)工程,它涉及到計算機的處理技術(shù)、系統(tǒng)理論、組織結(jié)構(gòu)、管理功能、管理知識等各方面的問題,每一種開發(fā)

6、方法都要遵循相應(yīng)的開發(fā)策略。數(shù)據(jù)庫由DBMS (數(shù)據(jù)庫管理系統(tǒng))處理,DBMS 則由專業(yè)開發(fā)人員和用戶通過應(yīng)用程序直接或間接的使用。數(shù)據(jù)庫管理系統(tǒng)是指數(shù)據(jù)庫系統(tǒng)中管理數(shù)據(jù)的軟件系統(tǒng)。它是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)據(jù)庫的一切操作,包括定義,更新及各種控制,都是通過它實現(xiàn)的。它總是基于某種數(shù)據(jù)模型,可以把DBMS 看成是某種數(shù)據(jù)模型在計算機系統(tǒng)上的具體實現(xiàn)。根據(jù)數(shù)據(jù)模型的不同,DBMS 可以分成層次型、關(guān)系型、面向?qū)ο笮偷取?管理信息系統(tǒng)的開發(fā)是一個復(fù)雜的系統(tǒng)工程,它涉及到計算機的處理技術(shù)、 表一 商品信息表 表五 商品庫存信息表 -1創(chuàng)建庫存視圖if exists (select 1 fro

7、m sysobjects where name = 'view_storage_product' drop view view_storage_product gocreate view view_storage_product as select a.*,b.StorageAddress,b.StorageNumber from ProductInfo a inner join StorageInfo b on a.ProductID = b.ProductID go-查看庫存視圖select * from view_storage_product -2創(chuàng)建訂單信息視圖if

8、exists (select * from sysobjects where name = 'view_CustomerInfo_OrderInfo_ProductInfo' drop view view_CustomerInfo_OrderInfo_ProductInfo gocreate view view_CustomerInfo_OrderInfo_ProductInfo as select CustomerName,ProductName,OrderTime,OrderNumber, RequireDate,OrderEmployee,IsConsignment fr

9、om CustomerInfo a inner join OrderInfo b on a.CustomerID = b.CustomerID inner join ProductInfo c on b.ProductID = c.ProductID goselect * from view_CustomerInfo_OrderInfo_ProductInfo -3. 創(chuàng)建添加客戶信息的存儲過程if exists (select 1 from sysobjects where name = 'proc_InsertCustomerInfo' drop proc proc_Ins

10、ertCustomerInfo gocreate procedure proc_InsertCustomerInfoCustomerName nvarchar(20,CustomerAddress nvarchar(50,CustomerPhone nvarchar(11, Taxno nvarchar(10,Repute nvarchar(10,Country nvarchar(10 ='中國',Province nvarchar(10 as begin insert into CustomerInfovalues(CustomerName,CustomerAddress,C

11、ustomerPhone,Taxno,Repute,Country,Province end go-調(diào)用存儲過程exec proc_InsertCustomerInfo '胡雷松',' 湖北神農(nóng)架','622512','622512',' 優(yōu)秀',default,' 河南' select * from CustomerInfo-4. 創(chuàng)建添加產(chǎn)品信息存儲過程(需驗證產(chǎn)品的價格必須大于等于0 if exists (select 1 from sysobjects where name = 'p

12、roc_InsertProductInfo' drop procedure proc_InsertProductInfo gocreate proc proc_InsertProductInfoComponyID int,ProductName nvarchar(20,ProductType nvarchar(20,NumberPerMonth int ,Price money as begin if(Price>=0 begin insert into ProductInfovalues(ComponyID,ProductName,ProductType,NumberPerMo

13、nth,Price end else begin print '產(chǎn)品價格必須大于0!' end end go-調(diào)用存儲過程exec proc_InsertProductInfo NULL,'C#入門經(jīng)典',' 書籍',3000,65 select * from ProductInfo-5. 創(chuàng)建進貨時庫存信息變化的觸發(fā)器-如果沒有該產(chǎn)品的信息,則將數(shù)據(jù)添加到庫存信息表中 -如果倉庫中已經(jīng)存在該產(chǎn)品,則增加該產(chǎn)品的庫存數(shù)量if exists (select 1 from sysobjects where name = 'trg_StockI

14、nfo_Insert' drop trigger trg_StockInfo_Insert gocreate trigger trg_StockInfo_Insert on StockInfo for insert as declare ProductID int,StockNumber int select ProductID = ProductID from inserted select StockNumber = StockNumber from inserted where ProductID = ProductID if (ProductID not in (select

15、ProductID from StorageInfo begin insert into StorageInfo values(ProductID,'東北倉庫',StockNumber end else begin update StorageInfo set StorageNumber = StorageNumber + StockNumber where ProductID = ProductID end go-測試觸發(fā)器insert into StockInfo values(4,350,NULL,NULL,NULL,getdate(,'張三'select

16、 * from StorageInfoselect * from StockInfo-6. 創(chuàng)建添加訂單信息存儲過程-訂單時間默認(rèn)為系統(tǒng)單前時間,驗證訂單數(shù)量必須大于0驗證產(chǎn)品需要時間必須大于系統(tǒng)當(dāng)前時間1月以上,根據(jù)庫存信息與產(chǎn)品生產(chǎn)能力判斷,是否能在產(chǎn)品需要時間之前完成該產(chǎn)品的生產(chǎn),驗證訂單業(yè)務(wù)員長度必須大于2,默認(rèn)是否發(fā)貨為“否” if exists (select * from sysobjects where name = 'proc_InsertOrderInfo'drop proc proc_InsertOrderInfogocreate proc proc_In

17、sertOrderInfoProductID int,OrderNumber int,OrderEmployee nvarchar(20,CustomerID int,Price money,Ordersum money,RequireDate datetime,IsConsignment nvarchar(2asbegindeclare OrderTime char(20select ProductID = ProductID from insertedselect OrderNumber = OrderNumber from insertedselect OrderEmployee = O

18、rderEmployee from insertedselect CustomerID= CustomerID from insertedselect Price = Price from insertedselect Ordersum = Ordersum from insertedset OrderTime = convert(char(20,getdate(,120set RequireDate = convert(char(20,dateadd(month,1,getdate(,120if(OrderNumber>0 and len(OrderEmployee>2 andd

19、atediff(dd,OrderTime,dateadd(month,1,getdate(=0 beginif(OrderNumber < (select NumberPerMonth from ProductInfo whereProductID=ProductIDbegininsert into OrderInfovalues(CustomerID,ProductID,OrderTime,OrderNumber,Price,Ordersum,RequireDate,OrderEmployee,'否'endendendgo-7. 發(fā)貨時庫存信息的變化的觸發(fā)器-如果發(fā)完貨

20、后,庫存為0,則將該貨物從庫存信息表中刪除,如果發(fā)完貨后,庫存不為0,則減少相應(yīng)的庫存數(shù)量if exists (select 1 from sysobjects where name = 'trg_SendInfo_Insert'drop trigger trg_SendInfo_Insertgocreate trigger trg_SendInfo_Inserton SendInfofor insertasdeclare ProductID int,OrderID int,StorageNumber intselect OrderID = OrderID from inser

21、tedselect StorageNumber = StorageNumber from StorageInfo where ProductID = ProductIDgocreate proc proc_StorageChangeStorageNumber int,ProductID int,OrderNumber intasselect StorageNumber = StorageNumber from StorageInfo where ProductID = ProductIDif(StorageNumber = 0beginselect ProductID = ProductID

22、from OrderInfo where OrderID = (select OrderID from SendInfodelete from StorageInfo where ProductID = ProductIDendelsebeginselect OrderNumber = OrderNumber from OrderInfo where OrderID = (select OrderID from SendInfo select ProductID = ProductID from OrderInfo where OrderID = (select OrderID from Se

23、ndInfoupdate StorageInfo set StorageNumber = StorageNumber - OrderNumber where ProductID = ProductIDendgoselect * from StorageInfo;select * from SendInfo;select * from OrderInfo-8. 創(chuàng)建入庫時總價自動生成的觸發(fā)器if exists (select 1 from sysobjects where name = 'trg_StockInfo_InsertandUpdate'drop trigger trg

24、_StockInfo_InsertandUpdategocreate trigger trg_StockInfo_InsertandUpdateon StockInfofor insert,updateasdeclare ProductID int,StockNumber int,Stock money,Stocksum money select ProductID = ProductID from insertedselect StockNumber = StockNumber from inserted where ProductID = ProductID select Stock =

25、Stock from inserted where ProductID = ProductIDbeginupdate StockInfo set Stocksum = Stock * StockNumber where ProductID = ProductID end四、模塊劃分(系統(tǒng)管理模塊實現(xiàn)4.1 系統(tǒng)登錄界面及代碼 定義的函數(shù)wf_connect:String ls_databaseuserid=Trim(useridpassword=Trim(passwordIF password="" THEN RETURN -1ls_database="Conne

26、ctString='DSN=SellManageSystem;"sqlca.dbparm=ls_database+"UID="+userid+"PWD="+password+"'"connect using sqlca;return sqlca.sqlcode確定按鈕的代碼:SetPointer(hourglass!ls_user_id=string(sle_userid.textIF parent.wf_connect(sle_userid.text,sle_password.text=-1 thenMes

27、sageBox("連接數(shù)據(jù)庫錯誤!"," 連接失敗"+sqlca.sqlerrtexthaltelseclose(parentopen(w_mainend if4.2系統(tǒng)管理模塊界面及代碼 查詢按鈕的代碼:if (sle_1.text="" and sle_2.text="" thenmessagebox("","不能為空!"end ifinteger bstring bbif sle_1.text="" thenbb=sle_2.textdw_1.retrieve(bbend ifif sle_2.text="" thenb=dec(sle_1.textdw_1.retrieve(bend if添加按鈕的代碼:dw_1.insertrow(0刪除按鈕的代碼:dw_1.deleterow(0更新按鈕的代碼:if dw_1.update(>0 thencommit;elsemessagebox("","無法保存!"r

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論