freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

圖書倉庫管理系統(tǒng)介紹-資料下載頁

2025-04-07 23:05本頁面
  

【正文】 題的出現(xiàn)。我在系統(tǒng)中定義的表格都嚴(yán)格地按照范式的思想和要求去完成,數(shù)據(jù)庫中的所有表格都達(dá)到了三范式的要求。根據(jù)系統(tǒng)ER圖,針對本系統(tǒng)的特點(diǎn),在對所搜集的數(shù)據(jù)進(jìn)行規(guī)范化之后,定義了如下六張表格,分別是庫存信息表,入庫信息表,出庫信息表,員工信息表,供應(yīng)商信息表和密碼信息表。通過對這六張表格的操作可以較好地完成系統(tǒng)設(shè)計的各項功能,六張表格之間有著不同程度的聯(lián)系。(說明:在以下數(shù)據(jù)表中,K代表主鍵,代表外鍵,字段值不為空。)BookRecord 表(庫存信息表) 字段名稱 數(shù)據(jù)類型 說明K BookID 數(shù)字 圖書編號 BookName 文本 圖書名 Author 文本 作者 Publisher 文本 出版社 PubDate 日期/時間 出版日期 Price 貨幣 價格 BookType 文本 圖書類型 Number1 數(shù)字 庫存數(shù)量 Addation 文本 備注 庫存信息表庫存信息表主要用于記錄倉庫中現(xiàn)存放的所有圖書的詳細(xì)信息,包括圖書編號、書名、作者、出版社、圖書類型等有關(guān)圖書的各類信息,它即是該數(shù)據(jù)庫的主表,也是系統(tǒng)主界面的主要內(nèi)容。在該表中圖書編號是主鍵,它按圖書入庫的先后次序來編寫,每當(dāng)有圖書入庫,系統(tǒng)自動給出圖書編號,這樣我們按圖書編號來查找圖書是比較方便的??紤]到編號比較難于記憶,所以使用了出版社和圖書類型兩個字段,在系統(tǒng)中我提供了出版社和圖書類型的分類查找,而且全部采用自動生成,每當(dāng)系統(tǒng)中有新的出版社類型和圖書類型,彈出菜單會自動添中新類型,這樣就可以比較方便地實現(xiàn)按出版社和按圖書類型查找。此外,庫存數(shù)量也是一個比較關(guān)鍵的字段,該字段是在系統(tǒng)初始化時就給定的,每當(dāng)有圖書入庫或出庫操作,系統(tǒng)就會自動修改圖書的庫存數(shù)量,以保持?jǐn)?shù)據(jù)的一致性。做為備注有一點(diǎn)說明,我的數(shù)據(jù)庫中備注的數(shù)據(jù)類型是文本,而不是備注類型,主要考慮到該字段的長度并不大,而且在Delphi中文本數(shù)據(jù)類型的處理也比較方便一點(diǎn)。Employee 表(員工信息表) 字段名稱 數(shù)據(jù)類型 說明K EmployeeID 數(shù)字 員工編號 EmployeeName 文本 員工姓名 Sex 文本 性別 BornDate 日期/時間 出生日期 Grade 文本 職稱 WorkDate 日期/時間 工作日期 Telephone 文本 聯(lián)系電話 Address 文本 聯(lián)系地址 員工信息表員工信息表主要用于記錄有關(guān)員工的各類信息,包括姓名、職稱、出生日期、聯(lián)系電話、聯(lián)系地址等。它主要用來為系統(tǒng)提供員工的有關(guān)信息,因為在系統(tǒng)中,入庫和出庫操作均與員工有著一定的聯(lián)系,在查詢?nèi)霂煨畔⒑统鰩煨畔r,有時需要查找有關(guān)此項記錄有關(guān)的員工信息,在系統(tǒng)中我是通過入庫記錄與員工記錄(出庫記錄和員工記錄)之間的聯(lián)接查詢來完成的。另外,作為一個倉庫也有必要了解其所屬員工的一些基本情況,以便查詢。Shopkeeper 表(供應(yīng)商信息表) 字段名稱 數(shù)據(jù)類型 說明K ShopkeeperID 數(shù)字 供應(yīng)商編號 ShopkeeperName 文本 供應(yīng)商姓名 Address 文本 地址 PostNo 數(shù)字 郵編 OfficePhone 文本 辦公電話 HomePhone 文本 住宅電話 Email 文本 Email PayType 文本 付款方式 供應(yīng)商信息表供應(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ù)庫中必須與以記錄。InRecord 表(入庫信息表) 字段名稱 數(shù)據(jù)類型 說明K InID 數(shù)字 入庫編號 BookID 數(shù)字 圖書編號 EmployeeID 數(shù)字 員工編號 ShopkeeperID 數(shù)字 供應(yīng)商編號 Number 數(shù)字 入庫數(shù)量 BuyDate 日期/時間 入庫日期 入庫信息表OutRecord 表(出庫信息表) 字段名稱 數(shù)據(jù)類型 說明K OutID 數(shù)字 出庫編號 BookID 數(shù)字 圖書編號 EmployeeID 數(shù)字 員工編號 Number2 數(shù)字 出庫數(shù)量 OutDate 日期/時間 出庫日期 出庫信息表入庫信息表主要用于記錄有關(guān)入庫的詳細(xì)信息,包括入庫數(shù)量、入庫日期以及圖書、員工、供應(yīng)商三方的編號,以便查詢。出庫信息表主要用于記錄有關(guān)出庫的詳細(xì)信息,包括出庫數(shù)量、出庫日期以及圖書、員工的編號。出庫信息表和入庫信息表一樣,其實它們都屬于聯(lián)系類型,系統(tǒng)通過這兩個表可以聯(lián)接上其它的表為用戶提供多種條件的聯(lián)接查詢。值得提出的一點(diǎn)是入庫記錄和出庫記錄的添加不僅僅是單表操作,由于它們都與庫存記錄相聯(lián)系,所以,無論您是添中入庫記錄還是添加出庫記錄,都必須同時修改庫存記錄,以保持?jǐn)?shù)據(jù)的一致性,否則將引發(fā)系統(tǒng)出錯而這些我都讓其在系統(tǒng)中自動完成。無論您是添加入庫記錄,還是添加出庫記錄,系統(tǒng)都將自動修改庫存中圖書的數(shù)量,而且,在您出庫的數(shù)量大于庫存數(shù)量時,系統(tǒng)還會自動提示錯誤,這樣就可以防止一定錯誤的發(fā)生。在入庫信息表和出庫信息表中我還定義了幾個外鍵,它提供了一種表示幾個關(guān)系聯(lián)系的方法。比如,系統(tǒng)中通過在入庫信息表中定義的外鍵 BookID、EmployeeID和ShopkeeperID可以將庫存信息表、員工信息表和供應(yīng)商信息表聯(lián)系在一起,從而方便地實現(xiàn)聯(lián)接查詢,而且,引入外鍵的定義是實體完整性約束的一個主要方面。Key 表(密碼信息表) 字段名稱 數(shù)據(jù)類型 說明K KeyName 文本 用戶姓名 KeyNo 文本 用戶密碼 密碼信息表密碼信息表主要用于記錄所有的用戶名和用戶密碼。它是在用戶登陸時用來確定用戶和密碼的正確性,以防止非法用戶登陸。通過以上設(shè)計已經(jīng)完成了系統(tǒng)的概要設(shè)計,當(dāng)我們有了系統(tǒng)的功能模塊圖和數(shù)據(jù)庫之后,就需要著手去實現(xiàn)每一個模塊,為每一個功能設(shè)計程序流程圖,這也就是系統(tǒng)的詳細(xì)設(shè)計。167。 系統(tǒng)詳細(xì)設(shè)計在前面的概要設(shè)計中,已將系統(tǒng)劃分為多個模塊,并將它們按照一定的原則組裝起來,同時確定了每個功能及模塊之間的外部接口?,F(xiàn)在所要做的就是確定每個模塊具體執(zhí)行過程,也可以說是“過程設(shè)計”。在處理過程設(shè)計時我采用的是結(jié)構(gòu)化程序設(shè)計(簡稱SP)方法。需要指出的是系統(tǒng)的詳細(xì)設(shè)計并不是指具體的編程序,而是將概要設(shè)計階段產(chǎn)生的系統(tǒng)功能模塊圖細(xì)化成很容易產(chǎn)生程序的圖紙。因此詳細(xì)設(shè)計的結(jié)果基本決定了最終程序的質(zhì)量。為軟件的質(zhì)量,延長軟件的生存期,軟件的可測試性、可維護(hù)性提供重要的保障。詳細(xì)設(shè)計的目標(biāo)不僅是邏輯上正確地實現(xiàn)每個模塊的功能,還應(yīng)使設(shè)計出的處理過程清晰易讀。由前一階段產(chǎn)生的系統(tǒng)功能模塊圖,我為系統(tǒng)的主要部分設(shè)計了如下程序流程圖:通過以上步驟,基本上完成了對整個系統(tǒng)的總體設(shè)計,接下來所要做的就是軟件的編碼工作。系統(tǒng)總體設(shè)計的好壞直接影響著下一步工作,只有在這一階段設(shè)計出好的模塊圖和程序流程圖,才能更有利于編碼,產(chǎn)生好的軟件系統(tǒng)。第五章 系統(tǒng)應(yīng)用程序設(shè)計167。 系統(tǒng)窗體模塊組成167。 數(shù)據(jù)模塊窗體的設(shè)置在編寫數(shù)據(jù)庫應(yīng)用程序時,經(jīng)常要遇到這樣的情況,即好多組件、窗體同時訪問相同的數(shù)據(jù)源,如果為每一個組件或者窗體都設(shè)置一個數(shù)據(jù)源將是十分耗時的工件,而且要保證這些數(shù)據(jù)源的確是相同的也需花一番功夫。那么,能不能將這些數(shù)據(jù)源集中管理,最好是做成一個統(tǒng)一的模塊,需要時就將該模塊引入而不必直接操作數(shù)據(jù)源本身呢?數(shù)據(jù)模塊(DataModule)是解決這個問題最好的答案。簡單說來,數(shù)據(jù)模塊是用來集中管理數(shù)據(jù)源的一個窗體,該窗體可被需要的地方隨時引入。(datamoduleform)窗體圖,除報表窗體外所有的數(shù)據(jù)存取組件和數(shù)據(jù)源組件都在此數(shù)據(jù)模塊中進(jìn)行了定義。值得一提的是,設(shè)置了數(shù)據(jù)庫Database組件,該組件引入了系統(tǒng)所需的唯一的數(shù)據(jù)庫tsxs,Database組件的DatabaseName屬性設(shè)置為tsckgl。tsxs數(shù)據(jù)庫已在ODBC配置程序中進(jìn)行了設(shè)置。其他的數(shù)據(jù)存取組件都是基于此數(shù)據(jù)庫組件創(chuàng)建的,這樣做的好處是,當(dāng)數(shù)據(jù)庫的別名或者其他信息改變之后,只需修改Tdatabase組件的AliasName屬性即可。另外,在本系統(tǒng)的數(shù)據(jù)模塊窗體圖中,我大多采用的AODQuery組件而沒有采用BDE組,這主要是基于對ADO組件的了解。在Delphi的學(xué)習(xí)中我對ADO組件了解的更加清楚,使用也較BDE更為熟練,而且,ADO組件的功能也較BDE更為強(qiáng)大,所以在這里大多采用ADO組件來進(jìn)行數(shù)據(jù)庫聯(lián)接。同時我也使用了BDE組件中的Table,因為在某些時候BDE有著其自身特有的優(yōu)越性。 主窗體功能模塊的實現(xiàn) file://主窗體程序代碼public file://在程序的起始部分,定義快捷按鈕點(diǎn)擊事件Procedure Popup1Handler(Sender:Tobject)。Procedure Popup2Handler(Sender:TObject)。**********************************************************************procedure (Sender: TObject)。begin file://快捷按鈕1(點(diǎn)“按出版社分類”按鈕產(chǎn)生)的點(diǎn)擊事件with do begin file://打開數(shù)據(jù)模塊窗體的MainQuery,對BookRecord表進(jìn)行操作close。 file://關(guān)閉MainQuery。 file://清除SQL屬性中的SQL命令語句(‘select * from BookRecord where Publisher=:Pub‘)。 file://添加新的SQL語句(‘Pub‘).Value:=(Sender as TMenuItem).Caption。open。 file://重新打開MainQueryend。end。**********************************************************************procedure (Sender: TObject)。Var s1,s2,s3,s4,s5 :String。 file://設(shè)立5個變量以方便實現(xiàn)模糊查詢begin file://主窗口庫存查詢按鈕事件with dobeginclose。(‘select * from BookRecord‘)。(‘where BookID Like :BookID and BookName Like :Name and Author Like :Author and Publisher Like :pub and BookType Like :BookType‘)。 file://使用Like語句來實現(xiàn)模糊查詢if ‘‘ then s1:=‘%‘++‘%‘ else s1:=‘%‘。(‘BookID‘).Value:=s1。 file://給變量s1賦值if ‘‘ then s2:=‘%‘++‘%‘ else s2:=‘%‘。(‘Name‘).Value:=s2。 file://給變量s2賦值if ‘‘ then s3:=‘%‘++‘%‘ else s3:=‘%‘。(‘Author‘).Value:=s3。 file://給變量s2賦值if ‘‘ then s4:=‘%‘++‘%‘ else s4:=‘%‘。(‘Pub‘).Value:=s4。 file://給變量s2賦值if ‘‘ then s5:=‘%‘++‘%‘ else s5:=‘%‘。(‘BookType‘).Value:=s5。 file://給變量s2賦值open。if FieldValues[‘BookID‘]=NULL file://判斷是否找到記錄then beginMessagedlg(‘沒有找到你所需要的記錄!‘,mtInformation,[mbOK],0)。:=‘‘。:=‘‘。:=‘‘。:=‘‘。:=‘‘。close。(‘select * from BookRecord‘)。 file://這里相當(dāng)于一個刷新功能open。end。end。end。**********************************************************************procedure (Sender: TObject)。begin file://庫存表刷新按鈕事件with dobeginclose。(‘select * from BookRecord‘)。open。end。 end。**********************************************************************procedure (Sender: TObject)。var PopupItem:TMenuItem。begin file://自動生成快捷按鈕1的內(nèi)容with dobegin file://從數(shù)據(jù)庫中選擇出版社類型close。(‘select distinct Publisher from BookReco
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1