20087110130138-王瑩-數(shù)據(jù)庫應(yīng)用課程設(shè)計報告書-簡短_第1頁
20087110130138-王瑩-數(shù)據(jù)庫應(yīng)用課程設(shè)計報告書-簡短_第2頁
20087110130138-王瑩-數(shù)據(jù)庫應(yīng)用課程設(shè)計報告書-簡短_第3頁
20087110130138-王瑩-數(shù)據(jù)庫應(yīng)用課程設(shè)計報告書-簡短_第4頁
20087110130138-王瑩-數(shù)據(jù)庫應(yīng)用課程設(shè)計報告書-簡短_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

-PAGE17-北京廣播電視大學(xué)

數(shù)據(jù)庫應(yīng)用課程設(shè)計報告書題目:小超市進(jìn)銷存管理系統(tǒng)姓名:學(xué)號:班級:08春計算機(jī)信息管理專業(yè)(專)分校:北京廣播電視大學(xué)分校指導(dǎo)教師:姚行洲設(shè)計日期:2009年11月目

錄目

錄 2摘要 3第一章

言 41.1

課題來源 41.2開發(fā)工具的選擇 41.3本文所做工作 4第二章

數(shù)據(jù)庫開發(fā)工具 52.1delphi6.0簡介 52.2delphi6.0控件 62.2.1ado數(shù)據(jù)訪問組件 62.2.2數(shù)據(jù)控制類datacontrol 72.2.3數(shù)據(jù)訪問類dataaccess 72.2.4sql語言在delphi中的應(yīng)用 72.3access簡介 8第三章

系統(tǒng)總體設(shè)計 93.1

系統(tǒng)需求分析 93.2

系統(tǒng)概要設(shè)計 103.2.1系統(tǒng)結(jié)構(gòu)設(shè)計 103.2.2數(shù)據(jù)庫設(shè)計 10第四章

系統(tǒng)應(yīng)用程序設(shè)計 144.1

系統(tǒng)窗體模塊組成 144.2

數(shù)據(jù)模塊窗體的設(shè)置 164.3

主窗體功能模塊的實現(xiàn) 164.4入庫、出庫窗體模塊的實現(xiàn) 184.5查詢功能的實現(xiàn) 244.6系統(tǒng)登陸窗體模塊的實現(xiàn) 25結(jié)束語 26參考文獻(xiàn) 27附錄 29附錄A數(shù)據(jù)庫表結(jié)構(gòu) 29附錄BE-R圖 31摘要本系統(tǒng)主要完成對小超市進(jìn)銷存管理,包括物品入庫、出庫、庫存,員工信息,供應(yīng)商信息以及密碼管理等六個方面。系統(tǒng)可以完成對各類信息的瀏覽、查詢、添加、刪除、修改、報表等功能。系統(tǒng)的核心是入庫、庫存和出庫三者之間的聯(lián)系,每一個表的修改都將聯(lián)動的影響其它的表,當(dāng)完成入庫或出庫操作時系統(tǒng)會自動地完成庫存的修改。查詢功能也是系統(tǒng)的核心之一,在系統(tǒng)中即有單條件查詢和多條件查詢,也有精確查詢和模糊查詢,系統(tǒng)不僅有靜態(tài)的條件查詢,也有動態(tài)生成的條件查詢,其目的都是為了方便用戶使用。系統(tǒng)有完整的用戶添加、刪除和密碼修改功能,并具備報表打印功能。系統(tǒng)采用microsoftoffice中的access2000來設(shè)計數(shù)據(jù)庫,并使用當(dāng)前優(yōu)秀的開發(fā)工具—delphi6.0,它有著最為靈活的數(shù)據(jù)庫結(jié)構(gòu),對數(shù)據(jù)庫應(yīng)用有著良好的支持。論文主要介紹了本課題的開發(fā)背景,所要完成的功能和開發(fā)的過程。重點(diǎn)的說明了系統(tǒng)設(shè)計的重點(diǎn)、設(shè)計思想、難點(diǎn)技術(shù)和解決方案。第一章

言1.1

課題來源隨著社會經(jīng)濟(jì)的迅速發(fā)展和科學(xué)技術(shù)的全面進(jìn)步,計算機(jī)事業(yè)的飛速發(fā)展,以計算機(jī)與通信技術(shù)為基礎(chǔ)的信息系統(tǒng)正處于蓬勃發(fā)展的時期。隨著經(jīng)濟(jì)文化水平的顯著提高,人們對生活質(zhì)量及工作環(huán)境的要求也越來越高。

在計算機(jī)飛速發(fā)展的今天,將計算機(jī)這一信息處理利器應(yīng)用于倉庫的日常管理已是勢必所然,而且這也將為倉庫管理帶來前所未有的改變,它可以帶來意想不到的效益,同時也會為企業(yè)的飛速發(fā)展提供無限潛力。采用計算機(jī)管理信息系統(tǒng)已成為倉庫管理科學(xué)化和現(xiàn)代化的重要標(biāo)志,它給企業(yè)管理來了明顯的經(jīng)濟(jì)效益和社會效益。主要體現(xiàn)在:

極大提高了倉庫工作人員的工作效率,大大減少了以往入出存流程繁瑣,雜亂,周期長的弊端。

基于倉庫管理的全面自動化,可以減少入庫管理、出庫管理及庫存管理中的漏洞,可以節(jié)約不少管理開支,增加企業(yè)收入。

倉庫的管理的操作自動化和信息的電子化,全面提高了倉庫的管理水平。

隨著我國改革開放的不斷深入,經(jīng)濟(jì)飛速的發(fā)展,企業(yè)要想生存、發(fā)展,要想在激烈的市場競爭中立于不敗之地,沒有現(xiàn)代化的管理是萬萬不行的,倉庫管理的全面自動化、信息化則是其中極其重要的部分。為了加快倉庫管理自動化的步伐,提高倉庫的管理業(yè)務(wù)處理效率,建立倉庫管理系統(tǒng)已變得十分心要。

通過對倉庫管理日常工作的詳細(xì)調(diào)查,搜集了大量的資料,從系統(tǒng)結(jié)構(gòu)的組織,功能的實現(xiàn),技術(shù)的要求以及可行性等多方面進(jìn)行考慮,認(rèn)為本課題是一個適應(yīng)現(xiàn)今圖書倉庫管理需求的計算機(jī)信息管理系統(tǒng),具有一定的實際開發(fā)價值和使用價值。1.2開發(fā)工具的選擇采用ACCESS來做這個數(shù)據(jù)庫實驗報告1.3本文所做工作引言部分介紹了本系統(tǒng)的課題來源以及對數(shù)據(jù)庫開發(fā)工具的選擇。

第四章根據(jù)第四章的設(shè)計結(jié)果利用access2000和delphi6.0進(jìn)行了具體的窗體和應(yīng)用程序設(shè)計。

總結(jié)部分介紹了設(shè)計體會和編程體會,并指出了系統(tǒng)設(shè)計中的不足和改進(jìn)的方向第二章

數(shù)據(jù)庫開發(fā)工具2.1delphi6.0簡介delphi類可以粗略地分成兩部分:一部分是組件類,這些組件類通常以某種方式出現(xiàn)在組件面板上,當(dāng)用戶從組件面板上點(diǎn)取一個類的圖標(biāo)后,在程序中就自動生成了該類的對象(非可視組件除外);另一部分是功能類,這此功能類的對象通常出現(xiàn)在程序代碼中,起著不可代替的作用,但是這些功能類在組件面板上是找不到的。在delphi中,每一個類的祖先都是tobject類,整個類的層次結(jié)構(gòu)就像一棵倒掛的樹,在最頂層的樹根即為tobject類。這樣,按照面向?qū)ο缶幊痰幕舅枷耄褪沟糜脩艨捎胻object類這個類型代替任何其它類的數(shù)據(jù)類型。實際上在delphi的類庫中,tobject類派生出了為數(shù)相當(dāng)眾多的子類,它們形成了一個龐大的體系,通常情況下,如果不自行開發(fā)組件,就不必了解整個類的體系結(jié)構(gòu),只用到類層次樹的葉結(jié)點(diǎn)就足夠了。圖形組件與窗口組件并列,是另一大類組件。圖形組件不是基于窗口的,因而不能有窗口句柄,不能接受輸入焦點(diǎn)和包含其它組件,圖形組件的基類是tgraphiccontrol,在實際編程中,它們必須寄生于它們的宿主——窗口組件類的對象,由它們的擁有者負(fù)責(zé)其顯示,而且它們還能觸發(fā)一些和鼠標(biāo)活動相關(guān)的事件。圖形控件最典型的例子是tlabel和tspeedbutton。由此可以看出圖形組件的功能很弱,有讀者會問圖形組件的用處何在呢?其實使用圖形組件的最大好處在于節(jié)省資源,正是因為它們的功能較弱,所以使用的系統(tǒng)資源就要少。在一個應(yīng)用程序中,如果能在不影響其功能的前提下合理大量地使用圖形組件,將會大減少程序?qū)ο到y(tǒng)資源的消耗。

非可視組件是與可視組件相并列的另一類組件,非可視組件在程序運(yùn)行中是不可見的(除各種對話框組件之外,事實上有人認(rèn)為對話框組件不能歸入非可視組件,應(yīng)該是另一種介于可視與非可視之間的組件)。2.2delphi6.0控件用delphi6開發(fā)數(shù)據(jù)庫應(yīng)用,重點(diǎn)是和各種數(shù)據(jù)庫組件打交道,當(dāng)然也要使用其它的一些組件,現(xiàn)在就我在系統(tǒng)設(shè)計中所使用的重要組件給與簡單介紹。2.2.1ado數(shù)據(jù)訪問組件ado數(shù)據(jù)對象(activedataobjects)實際是一種提供訪問各種數(shù)據(jù)類型的鏈接機(jī)制。ado設(shè)計為一種極簡單的格式,通過odbc的方法同數(shù)據(jù)庫接口中,可以使用任何一種odbc數(shù)據(jù)源,即不止適合于sqlserver、oracle、access等數(shù)據(jù)庫應(yīng)用程序,也適合于excel表格、文本文件、圖形文件和無格式的數(shù)據(jù)在delphi中使用sql語言非常方便,一般來說,都是通過tquery組件來使用sql語言的。可以在tquery組件的sql屬性中設(shè)置sql語句。設(shè)計程序時,在該組件的屬性對話框中選擇sql屬性,單擊帶省略號的按鈕,就可以打開stringlisteditor對話框,然后我們就可以在對話框中添加sql語句。還可以使用delphi的sqlbuilder來自動生成sql語句,這樣可以避免手工編寫sql而可能造成的語法錯誤。

select

*

from

students

wherestudentcode=:studentcode;方法,關(guān)閉tquery部件,然后再調(diào)用clear方法清除sql屬性中現(xiàn)存的sql命令語句,最后再調(diào)用add方法為sql屬性設(shè)置新的sql命令語句。例如:

query1.close{關(guān)閉query1)

query1.sql.clear{清除sql屬性中的sql命令語句}

query1.sql.add('select*fromstudents');須先行進(jìn)行關(guān)閉,待清除掉sql…中所有的sql語句后才可以添加新的sql語句。而且,在每一次修改完成以后,還應(yīng)該記得重新將adoquery激活。其它的使用方法與ttquery有許多的相似之處。2.3access簡介建立一個數(shù)據(jù)庫我們有多種選擇,現(xiàn)在市場上有各種各樣的數(shù)據(jù)庫,而且每一種數(shù)據(jù)庫都有其自身的特點(diǎn),不能說哪一種更好,只能在其中尋找一種能更好地適應(yīng)系統(tǒng)需求、更好地滿足用戶的要求以及適應(yīng)開發(fā)人員的習(xí)慣。在本系統(tǒng)中,做為圖書倉庫管理系統(tǒng)是一個比較小的應(yīng)用系統(tǒng),它所產(chǎn)生和處理的數(shù)據(jù)量也比較小。因此,沒有必要使用像sqlserver和oracle這樣的大型數(shù)據(jù)庫。我首先想到的數(shù)據(jù)庫是borland公司的paradox數(shù)據(jù)庫。另外,microsoftoffice中的access數(shù)據(jù)庫在計算機(jī)上的應(yīng)用比較普及,是開發(fā)小型數(shù)據(jù)庫系統(tǒng)的比較理想的選擇,所以,在本系統(tǒng)中我選擇了access數(shù)據(jù)庫。

access做為一個數(shù)據(jù)庫管理系統(tǒng),它被集成在microsoftoffice中。access數(shù)據(jù)庫處理的基本結(jié)構(gòu),采取關(guān)系型數(shù)據(jù)庫模式。與其他的數(shù)據(jù)庫系統(tǒng)相比,access更加簡單易學(xué),一個普通的計算機(jī)用戶可以很快地掌握它。access2000的功能十分強(qiáng)大,利用它可以方便地實現(xiàn)對信息保存、維護(hù)、查詢、統(tǒng)計、打印、交流、發(fā)布,而且它可以十分方便地與office其他組件交流數(shù)據(jù),這些功能對一個一般用戶而言已經(jīng)足夠了。第三章

系統(tǒng)總體設(shè)計軟件系統(tǒng)的總體設(shè)計大約要經(jīng)歷可行性分析和項目開發(fā)計劃,需求分析,概要設(shè)計,詳細(xì)設(shè)計,編碼,測試以及維護(hù)等七個階段。可行性分析和項目開發(fā)計劃在前面已經(jīng)敘述,下面所要做的是進(jìn)行軟件需求分析,概要設(shè)計和詳細(xì)設(shè)計。編碼過程將在下一節(jié)論述,而測試和維護(hù)過程不在本文敘及。3.1

系統(tǒng)需求分析在經(jīng)過前一階段的分析之后,我確定了我的開發(fā)課題為小超市進(jìn)銷存管理。現(xiàn)在所要做的是要準(zhǔn)確定義系統(tǒng)必須做什么以及系統(tǒng)必須具備的功能。

系統(tǒng)的概要設(shè)計中最重要的就是系統(tǒng)的模塊化。模塊化是指解決一個復(fù)雜問題時自項向下逐層把軟件系統(tǒng)劃分成若干個模塊的過程。每個模塊完成一個特定的功能,所有的模塊按某種方法組織起來,成為一個整體,完成整個系統(tǒng)所要求的功能。

將系統(tǒng)劃分為多個模塊是為了降低軟件系統(tǒng)的復(fù)雜性,提高可讀性、可維護(hù)性,但模塊的劃分不能是任意的,應(yīng)盡量保持其獨(dú)立性。也就是說,每個模塊只完成系統(tǒng)要求的獨(dú)立的子功能,并且與其他模塊的聯(lián)系最少且接口簡單,即盡量做到高內(nèi)聚低耦合,提高模塊的獨(dú)立性,為設(shè)計高質(zhì)量的軟件結(jié)構(gòu)奠定基礎(chǔ)。

在系統(tǒng)的概要設(shè)計中我采用結(jié)構(gòu)化設(shè)計(structuredesign,簡稱sd),sd以需所有表格都達(dá)到了三范式的要求。針對本系統(tǒng)的特點(diǎn),在對所搜集的數(shù)據(jù)進(jìn)行規(guī)范化之后,定義了如下六張表格,分別是庫存信息表,入庫信息表,出庫信息表,員工信息表,供應(yīng)商信息表和密碼信息表。通過對這六張表格的操作可以較好地完成系統(tǒng)設(shè)計的各項功能,六張表格之間有著不同程度的聯(lián)系。表的建立圖1.1

庫存信息表

庫存信息表主要用于記錄倉庫中現(xiàn)存放的所有物品的詳細(xì)信息,包括物品編號、名稱、供應(yīng)商、價格、數(shù)量等有關(guān)物品的各類信息,它即是該數(shù)據(jù)庫主表,也是系統(tǒng)主界面的主要內(nèi)容。

在該表中物品編號是主鍵,它按物品入庫的先后次序來編寫,每當(dāng)有物品入庫,圖1.2

員工信息表

員工信息表主要用于記錄有關(guān)員工的各類信息,包括姓名、職稱、出生日期、聯(lián)系供應(yīng)商信息表主要用于記錄有關(guān)供應(yīng)商的各類信息,包括名稱、地址、電話、付款方式等。它主要用來為系統(tǒng)提供供應(yīng)商的有關(guān)信息,在系統(tǒng)中入庫記錄是與供應(yīng)商記錄相聯(lián)系的,通過入庫記錄可以查找相關(guān)的供應(yīng)商信息。在供應(yīng)商信息中,考慮當(dāng)實際情況,我特別加入了email和付款方式這兩個字段,因為在當(dāng)今信息世界中,多種多樣的通訊方式和多種多樣的付款方式是必然的,是數(shù)據(jù)庫中必須與以記錄。圖1.4

出庫信息表圖1.5

入庫信息表入庫信息表主要用于記錄有關(guān)入庫的詳細(xì)信息,包括入庫數(shù)量、入庫日期以及圖書、員工、供應(yīng)商三方的編號,以便查詢。出庫信息表主要用于記錄有關(guān)出庫的詳細(xì)信息,包括出庫數(shù)量、出庫日期以及物品、員工的編號。出庫信息表和入庫信息表一樣,其實它們都屬于聯(lián)系類型,系統(tǒng)通過這兩個表可以聯(lián)接上其它的表為用戶提供多種條件的聯(lián)接查詢。值得提出的一點(diǎn)是入庫記錄和出庫記錄的添第四章

系統(tǒng)應(yīng)用程序設(shè)計4.1

系統(tǒng)窗體模塊組成

對某個表進(jìn)行查詢(根據(jù)物品名稱,出庫日期和數(shù)量查詢,也可根據(jù)別的信息)對表中的數(shù)據(jù)進(jìn)行修改,如改名字對某個表進(jìn)行報表設(shè)計4.2

數(shù)據(jù)模塊窗體的設(shè)置在編寫數(shù)據(jù)庫應(yīng)用程序時,經(jīng)常要遇到這樣的情況,即好多組件、窗體同時

sql.add('select*frombookrecordwherepublisher=:pub');file://添加新的sql語句

parameters.parambyname('pub').value:=(senderastmenuitem).caption;

open;

file://重新打開mainquery

end;

end;

*********************************************************************

proceduretmainform.speedbutton1click(sender:tobject);

vars1,s2,s3,s4,s5:string;

file://設(shè)立5個變量以方便實現(xiàn)模糊查詢

begin

file://主窗口庫存查詢按鈕事件

withdatamoduleform.mainquerydo

begin

close;

ifedit5.text<>''

then

s5:='%'+edit5.text+'%'

else

s5:='%';

parameters.parambyname('booktype').value:=s5;

file://給變量s2賦值

open;

iffieldvalues['bookid']=null

file://判斷是否找到記錄

then

begin

messagedlg('沒有找到你所需要的記錄!',mtinformation,[mbok],0);

edit1.text:='';edit2.text:='';edit3.text:='';edit4.text:='';edit5.textsql.add('selectdistinctpublisherfrombookrecord');

open;

popupmenu1:=tpopupmenu.create(self);

file://自動生成快捷菜單

popupmenu1.autohotkeys:=mamanual;

file://自定義熱鍵

whilenoteofdo

begin

file://根據(jù)出版社內(nèi)容生成菜單子項

popupitem:=tmenuitem.create(self);

popupitem.caption:=fieldbyname('publisher').asstring;

popupmenu1.items.add(popupitem);

popupitem.onclick:=popup1handler;

file://確定菜單子項的點(diǎn)擊事件

next;

end;

end;

popupmenu1.popup(384,67);

file://在指定位置顯示快捷菜單1

end;

*********************************************************************

proceduretmainform.formactivate(sender:tobject);

begin

file://系統(tǒng)初始化,在進(jìn)入mainform時自動添加數(shù)據(jù)源

mainform.dbgrid1.datasource:=datamoduleform.mainsource;

mainform.dbnavigator1.datasource:=datamoduleform.mainsource;

mainform.dbgrid2.datasource:=datamoduleform.empsource;

statusbar1.panels[4].text:=timetostr(time);

end;4.4入庫、出庫窗體模塊的實現(xiàn)proceduretinoutform.speedbutton4click(sender:tobject);

begin

file://入庫管理查找按鈕事件

withdatamoduleform.bookquerydo

file://入庫查詢處理

edit11.readonly:=true;edit11.color:=clmenu;

edit12.text:=fieldvalues['number1'];

edit12.readonly:=true;edit12.color:=clmenu;

if

fieldvalues['addation']<>null

close;

sql.clear;

sql.add('select*frominrecordwhereinid>=all(selectinidfrominrecord)');

open;

file://找到入庫編號中最大的一個

edit26.readonly:=false;

edit26.text:=fieldvalues['inid']+1;

file://最大的入庫編號加1形成新的入庫編號

edit26.readonly:=true;edit26.color:=clmenu;

file://設(shè)置編號的不

close;

sql.clear;

sql.add('insertintoinrecordvalues(:inid,:bookid,:empid,:shopid,

:number,:indate)');

file://向入庫信息表中插入記錄

parameters.parambyname('inid').value:=edit26.text;

file://向edit框取值

parameters.parambyname('bookid').value:=edit13.text;

edit13.setfocus;

end;

end;

end;

end;

*********************************************************************

proceduretinoutform.speedbutton2click(sender:tobject);

begin

file://入庫管理確定按鈕事件

if(edit2.text='')or(edit3.text='')or(edit4.text='')or(edit5.text='')

or(edit6.text='')or(edit7.text='')or(edit8.text='')or

parameters.parambyname('shopid').value:=edit3.text;

parameters.parambyname('number').value:=edit4.text;

parameters.parambyname('indate').value:=edit5.text;

execsql;

end;

withdatamoduleform.bookquerydo

begin

close;

begi

溫馨提示

  • 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

提交評論