版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 編號:__________________</p><p><b> 畢業(yè)論文</b></p><p> 題目:庫存管理系統(tǒng)設計與實現(xiàn)</p><p> 畢業(yè)設計(論文)任務書</p><p> 系 別:______________ 班 級:______________<
2、;/p><p> 姓 名:______________ 指導教師:______________</p><p><b> 題目:</b></p><p> 設計(論文)要求(包括主要指標):</p><p><b> 參考文獻: </b></p><p> 設
3、計報告(論文)提綱、目錄:</p><p><b> 指導教師簽字:</b></p><p><b> 年 月 日</b></p><p> 中國管理軟件學院教務處</p><p><b> 本 人 聲 明</b></p><p> 本
4、人聲明所呈交的論文是我個人在導師指導下進行的研究工作及取得的研究成果。盡我所知,除了文中特別加以標注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得中國管理軟件學院或其它教育機構的學位或證書而使用過的材料。與我一同工作的同志對本工作組做的任何貢獻均已在論文中作了明確的說明并表示了謝意。</p><p> 作者簽名: </p><p&
5、gt;<b> 年 月 日</b></p><p><b> 摘 要</b></p><p> 隨著計算機技術的迅速發(fā)展,在“信息時代”的21世紀,計算機在生產(chǎn)、經(jīng)營、管理等領域中的應用越來越廣泛。</p><p> 本系統(tǒng)是圍繞KONCOR市場營銷有限責任公司的CANON市場部的業(yè)務進行調(diào)研,針對企業(yè)的
6、業(yè)務現(xiàn)狀采用結構化的開發(fā)方法進行系統(tǒng)分析、系統(tǒng)設計和系統(tǒng)實施。結構化系統(tǒng)開發(fā)方法用系統(tǒng)工程的思想和工程化的方法,按用戶至上的原則、結構化、模塊化、自頂向下地對系統(tǒng)進行開發(fā)。</p><p> 系統(tǒng)編寫采用Visual C+++6.0為前臺開發(fā)工具,SQL Server 2000為后臺數(shù)據(jù)庫開發(fā)工具。系統(tǒng)包括物資采購管理、庫存管理和供應商管理等模塊,系統(tǒng)主要實現(xiàn)的功能有信息錄入,信息查詢,信息修改,以及統(tǒng)計等。系
7、統(tǒng)的運用,能提高工作效率,對物資供應管理提供了有效的工具。</p><p> 關鍵詞:管理信息系統(tǒng);結構化分析方法;庫存管理系統(tǒng);VC++;SQL Server 2000</p><p><b> Abstract</b></p><p> With the rapid development of the technology of t
8、he computer, the 21st century in " information age ", computer's application in the fields , such as producing , managing , management ,etc. is more and more extensive. This system is investigated around th
9、e business of KONCOR Co., Ltd.adopt the structurization development approach to carry on network analysis , design systematically and implement systematically to the business current situation of enterprises. The systema
10、tic development approach </p><p> Key words:Design; Management Information System; Strutured System Development Methodologies; Inventory ManagementSystem; VC++ 6.0;SQL Server 2000</p><p><b&
11、gt; .</b></p><p><b> 目 錄</b></p><p> AbstractIII</p><p><b> 1 緒論1</b></p><p> 1.1 倉庫管理系統(tǒng)開發(fā)環(huán)境簡介1</p><p> 1.2 中文Vis
12、ual C++ 6.0簡介2</p><p> 1.3 SQL SERVER 2000簡介2</p><p> 2 系統(tǒng)可行性分析4</p><p> 3 系統(tǒng)總體設計5</p><p> 3.1 系統(tǒng)目標設計5</p><p> 3.3 系統(tǒng)功能需求分析6</p><
13、;p> 3.4系統(tǒng)功能模塊設計6</p><p> 4 數(shù)據(jù)庫設計7</p><p> 4.1 數(shù)據(jù)庫需求分析7</p><p> 4.2數(shù)據(jù)庫邏輯結構設計7</p><p> 4.2.1管理員基本信息表8</p><p> 4.2.2機型信息表8</p><p&g
14、t; 4.2.3查詢賬戶信息表9</p><p> 4.2.4外借信息表9</p><p> 4.2.5罰單信息表10</p><p> 4.3 創(chuàng)建表的腳本文件10</p><p> 5 系統(tǒng)主窗體設計13</p><p> 5.1 創(chuàng)建工程項目—倉庫管理系統(tǒng)13</p>&l
15、t;p> 5.2 創(chuàng)建系統(tǒng)主窗體13</p><p> 5.2.1倉庫管理14</p><p> 5.2.2查詢賬戶管理14</p><p> 5.2.3系統(tǒng)管理15</p><p> 5.3 連接數(shù)據(jù)庫15</p><p> 5.4 工程模塊設計17</p><p&g
16、t; 5.4.1登錄模塊設計17</p><p> 5.4.2倉庫管理模塊設計18</p><p><b> 致 謝51</b></p><p><b> 參考文獻52</b></p><p><b> 1 緒論</b></p><p&
17、gt; 隨著經(jīng)濟的快速發(fā)展,大眾消費水平以及生活水平的提高,使得數(shù)碼產(chǎn)品蓬勃發(fā)展,這給許多數(shù)碼廠商帶來了新的生機。同時技術的革新和國外企業(yè)進入市場,數(shù)碼生產(chǎn)企業(yè)面臨著越來越激烈的競爭,為了獲得更多的利潤,降低生產(chǎn)成本,要求數(shù)碼生產(chǎn)企業(yè)不斷改善企業(yè)供應管理的各個環(huán)節(jié),迅速適應市場的變化。 長期以來,KONCOR有限公司在供應管理工作中的信息管理是大量采用人工的方式,要付出大量人力,填寫各種表格、憑證、賬冊、卡片和文件。這種
18、手工操作的管理方式,不僅浪費人力,而且存在許多缺點:(1)處理速度慢,影響信息及時性。(2)易出現(xiàn)錯誤,影響信息精確性。(3)不便于查詢。(4)缺乏綜合性,不能起控制作用。由于這些缺點,大大降低了信息的利用價值,顯然越來越不適應現(xiàn)代物資管理工作的需要。因此,發(fā)展以計算機為基礎的供應管理信息系統(tǒng)已是十分迫切和必要的了。 我在對KONCOR有限公司供應部進行實習調(diào)研之后,結合自己的計算機知識和企業(yè)的工作實際,本著“以人為本”的
19、設計理念,分析設計了本系統(tǒng)。本系統(tǒng)針對供應部的采購管理、庫存管理以及供應商管理等進行了模塊的劃分,采取了結構化的分析方法進行分析和設計,運用先進的開發(fā)</p><p> 1.1 倉庫管理系統(tǒng)開發(fā)環(huán)境簡介</p><p> 本倉庫管理系統(tǒng)是在以Visual C++ 6.0為編程語言,以SQL server 2000作為后臺數(shù)據(jù)庫而開發(fā)的一個數(shù)據(jù)庫管理系統(tǒng)。下面簡要介紹一下中文Visual
20、 C++ 6.0和SQL server 2000。</p><p> 1.2 中文Visual C++ 6.0簡介</p><p> Visual C++ 6.0,簡稱VC或者VC6.0,是微軟推出的一款C++編譯器,將“高級語言”翻譯為“機器語言(低級語言)”的程序。Visual C++是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1
21、.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進行軟件開發(fā)的首選工具。雖然微軟公司推出了 Visual C++.NET(Visual C++7.0),但它的應用的很大的局限性,只適用于Windows 2000、Windows XP和Windows NT4.0。所以實際中,更多的是以Visual C++6.0為平臺。Visual C++6.0不僅是一個C++ 編譯器,而且是一個基于Windows操作系統(tǒng)的可
22、視化集成開發(fā)環(huán)境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。</p><p> 1.3 SQL SERVER 2000簡介</p><p&
23、gt; SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng)的一個版本。該版本繼承了SQL Server 7.0 版本的優(yōu)點同時又比它增加了許多更先進的功能,具有使用方便,可伸縮性好與相關軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的服務器等多種平臺使用。</p>
24、<p> SQL Server 2000 的特性Microsoft SQL Server 2000 的特性包括:</p><p> 1.Internet 集成。SQL Server 2000 數(shù)據(jù)庫引擎提供完整的XML 支持。它還具有構成最大的Web 站點的數(shù)據(jù)存儲組件所需的可伸縮性、可用性和安全功能。SQL Server 2000 程序設計模型與 Windows DNA 構架集成,用以開發(fā) Web
25、 應用程序,并且SQL Server 2000 支持 English Query 和 Microsoft 搜索服務等功能,在Web 應用程序中包含了用戶友好的查詢和強大的搜索功能。</p><p> 2.可伸縮性和可用性。同一個數(shù)據(jù)庫引擎可以在不同的平臺上使用,從運行 Microsoft Windows 98 的便攜式電腦,到運行 Microsoft Windows 2000 數(shù)據(jù)中心版的大型多處理器服務器。
26、SQL Server 2000 企業(yè)版支持聯(lián)合服務器、索引視圖和大型內(nèi)存支持等功能,使其得以升級到最大 Web 站點所需的性能級別。</p><p> 3.企業(yè)級數(shù)據(jù)庫功能。SQL Server 2000 關系數(shù)據(jù)庫引擎支持當今苛刻的數(shù)據(jù)處理環(huán)境所需的功能。數(shù)據(jù)庫引擎充分保護數(shù)據(jù)完整性,同時將管理上千個并發(fā)修改數(shù)據(jù)庫的用戶的開銷減到最小。SQL Server 2000 分布式查詢使您得以引用來自不同數(shù)據(jù)源的數(shù)據(jù)
27、,就好象這些數(shù)據(jù)是 SQL Server 2000 數(shù)據(jù)庫的一部分,同時分布式事務支持充分保護任何分布式數(shù)據(jù)更新的完整性。復制同樣使您得以維護多個數(shù)據(jù)復本,同時確保單獨的數(shù)據(jù)復本保持同步。可將一組數(shù)據(jù)復制到多個移動的脫接用戶,使這些用戶自主地工作,然后將他們所做的修改合并回發(fā)布服務器。</p><p> 4.易于安裝、部署和使用。 SQL Server 2000 中包括一系列管理和開發(fā)工具,這些工具可改進在多個
28、站點上安裝、部署、管理和使用 SQL Server 的過程。SQL Server 2000 還支持基于標準的、與 Windows DNA 集成的程序設計模型,使 SQL Server 數(shù)據(jù)庫和數(shù)據(jù)倉庫的使用成為生成強大的可伸縮系統(tǒng)的無縫部分。這些功能使您得以快速交付 SQL Server 應用程序,使客戶只需最少的安裝和管理開銷即可實現(xiàn)這些應用程序。</p><p> 數(shù)據(jù)倉庫。 SQL Server 2000
29、 中包括析取和分析匯總數(shù)據(jù)以進行聯(lián)機分析處理 (OLAP) 的工具。</p><p> SQL Server 2000 其主要特點如下:</p><p> (1)高性能設計,可充分利用WindowsNT的優(yōu)勢。</p><p> (2)系統(tǒng)管理先進,支持Windows圖形化管理工具,支持本地和遠程的系統(tǒng)管理和配置。</p><p>
30、(3)強壯的事務處理功能,采用各種方法保證數(shù)據(jù)的完整性。</p><p> (4)支持對稱多處理器結構、存儲過程、ODBC,并具有自主的SQL語言。 SQLServer以其內(nèi)置的數(shù)據(jù)復制功能、強大的管理工具、與Internet的緊密集成和開放的系統(tǒng)結構為廣大的用戶、開發(fā)人員和系統(tǒng)集成商提供了一個出眾的數(shù)據(jù)庫平臺。ver 中還包括一些工具,可用來直觀地設計數(shù)據(jù)庫并通過 English Query 來分析數(shù)據(jù)。&l
31、t;/p><p> 本系統(tǒng)就是在以SQL2000作為后臺數(shù)據(jù)庫,以VC++為編程語言為中小型企業(yè)管理倉庫而開發(fā)的一個數(shù)據(jù)庫管理系統(tǒng)</p><p> 2 系統(tǒng)可行性分析</p><p> 可行性分析的任務,并不是所有問題都有簡單明顯的解決辦法,事實上,許多問題不可能在預定的系統(tǒng)規(guī)模之內(nèi)解決。如果問題沒有可行的解,那么花費這項開發(fā)工程上的任何時間、資源、人力和經(jīng)費
32、都是無謂的浪費。</p><p> 可行性研究的目的就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。必須記住,可行性研究的目的不是解決問題,而是確定問題是否值得去解。怎樣達到這個目的呢?當然不能靠主觀猜想,而只能靠客觀分析。必須分析幾種主要的可能解法的利弊,從而判斷原定的系統(tǒng)目標和規(guī)模是否現(xiàn)實,系統(tǒng)完成后所能帶來的效益是否大到值得投資開發(fā)這個系統(tǒng)的程度。</p><p> 因此
33、,可行性研究實質(zhì)上是要進行一次大大壓縮簡化了的系統(tǒng)分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統(tǒng)分析和設計的過程。所以從以上的分析原則來看,我所設計的倉庫信息管理系統(tǒng)是一個規(guī)模不太大的系統(tǒng),但是目標明確,清晰的描述了對目標系統(tǒng)的一切限制和約束。本系統(tǒng)幾乎在所有的企業(yè)、公司使用,當然它需要進一步的完善和更新。在使用過程中,要看它能不能帶來效益,畢竟在現(xiàn)今社會效率是第一位的。從現(xiàn)實看,這還是有一定的實用價值的,從另一個角度看,
34、現(xiàn)實社會發(fā)展飛速,尊重科技勢在必行,因此這也是開發(fā)本系統(tǒng)的一個非常重要的原因。21世紀是計算機的時代,它必然取代一部分人的工作,高科技的監(jiān)控系統(tǒng)進入社會生活的方方面面是發(fā)展的趨勢。</p><p> 本設計從一下三個方面進行可行性研究:</p><p> 1. 技術可行性。本設計“倉庫管理系統(tǒng)”是為企業(yè)倉庫管理人員開發(fā)的。鑒于本人在上學期數(shù)據(jù)庫課程設計中已用Visual C++6.0+
35、SQL 2000開發(fā)過圖書管管理信息系統(tǒng),而且通過三個月畢業(yè)實習中的學習和實踐,對開發(fā)管理信息系統(tǒng)又有了新的認識和提高,使自己在開發(fā)管理信息系統(tǒng)方面的技術更加成熟。由于本設計最重要體現(xiàn)的是實用性,所以,通過大量的社會調(diào)查和分析,結合自己現(xiàn)有的技術水平加上導師的指導,還是能按期完成本畢業(yè)設計。</p><p> 2. 經(jīng)濟可行性。成本方面:由于本畢業(yè)設計屬于計算機科學(本科)教學的最后一個環(huán)節(jié),所以人力消耗免費,
36、資源學校提供,指導老師義務指導。所以成本計算只需計算開發(fā)期間開發(fā)者的生活消費,學校資源的消耗,所以開發(fā)本軟件的成本是非常低的。效益方面:為企業(yè)開發(fā)一個完整、合理的倉庫管理系統(tǒng),可大大節(jié)余人力,以前需要多人干的工作,使用本系統(tǒng)只需一個人或幾個人就能完成,且工作量和勞動強度大大降低。所以開發(fā)本軟件可以為社會帶來很好的經(jīng)濟效益。</p><p> 從以上分析看開發(fā)本軟件在經(jīng)濟上是可行的。</p><
37、;p> 3. 操作可行性。本軟件是為企業(yè)倉庫的管理者開發(fā)的,所有本軟件的用戶對象是企業(yè)倉庫的工作人員,由于本軟件要設計成友好的界面,寫出詳細的使用說明,用戶只需懂得簡單的計算機操作知識,就能自由應用本軟件。</p><p> 所以從以上幾個方面的分析來看,開發(fā)本軟件是完全可行的。</p><p><b> 3 系統(tǒng)總體設計</b></p>
38、<p> 3.1 系統(tǒng)目標設計</p><p> 系統(tǒng)開發(fā)的總體任務是實現(xiàn)企業(yè)產(chǎn)品管理的系統(tǒng)化、規(guī)范化和自動化,從而達到提高企業(yè)管理效率的目的。</p><p> 3.2 開發(fā)設計思想</p><p> 倉庫管理主要是企業(yè)各種商品的管理。企業(yè)各個部門根據(jù)需要提出產(chǎn)品請求,計劃員根據(jù)整個企業(yè)的需求開出產(chǎn)品出庫單,倉庫管理人員根據(jù)出庫單核對發(fā)放產(chǎn)品
39、。根據(jù)需要按照月進行統(tǒng)計分析,產(chǎn)生相應報表。</p><p> 倉庫管理的特點是信息處理量比較大,所管理的產(chǎn)品種類繁多,而且由于入庫單、出庫單、盤點單等單據(jù)發(fā)生量特別大,關聯(lián)信息多,查詢和統(tǒng)計的方式各不相同。因此在管理上實現(xiàn)起來有一定的困難。在管理的過程中經(jīng)常會出現(xiàn)信息的重復傳遞;單據(jù)、報表種類繁多,各個部門管理規(guī)格不統(tǒng)一等問題。</p><p> 在本系統(tǒng)的設計過程中,為了克服這些困
40、難,滿足計算機管理工作的需要,我們采取了下面的一些原則。</p><p> ●刪除不必要的管理冗余,實現(xiàn)管理規(guī)范化、科學化。</p><p> ●程序代碼標準化,軟件統(tǒng)一化,確保軟件的可維護性和實用性。</p><p> ●界面盡量簡單化,做到實用、方便,盡量滿足企業(yè)中不同層次員工的需要。</p><p> 3.3 系統(tǒng)功能需求分析
41、</p><p> 系統(tǒng)開發(fā)的總體任務是實現(xiàn)各種信息的系統(tǒng)化、規(guī)范化和自動化。系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務的基礎上完成。本倉庫管理系統(tǒng)需要完成功能主要有:</p><p> ●身份驗證:提供系統(tǒng)的訪問控制功能。</p><p> ●倉庫管理:包括樣機登記、外借、歸還、樣機掛失、樣機信息查詢、等功能。</p><p> ●查詢賬戶
42、管理:提供辦理查詢賬戶、查詢賬戶信息查詢、查詢賬戶掛失。</p><p> ●系統(tǒng)管理:包括添加帳號、修改密碼和退出系統(tǒng)能功能</p><p> 3.4系統(tǒng)功能模塊設計</p><p> 通過對倉庫管理系統(tǒng)的功能分析,可以定義出系統(tǒng)的功能模塊圖,如圖3-1所示。 </p><p> 圖3-1 系統(tǒng)功能模塊圖。</p>&
43、lt;p><b> 4 數(shù)據(jù)庫設計</b></p><p> 4.1 數(shù)據(jù)庫需求分析</p><p> 系統(tǒng)的需求具體體現(xiàn)在對各種信息的保存、修改和查詢等方面。因此,一個滿足系統(tǒng)要求</p><p> 的數(shù)據(jù)庫必須充分照顧到對各種信息的輸入輸出,以免遺漏導致開發(fā)時返工。</p><p> 通過對系統(tǒng)功
44、能的分析,圖書館管理系統(tǒng)需要包含以下數(shù)據(jù)庫信息。</p><p> ?。芾韱T基本信息:包括成員ID、密碼等。</p><p> .機型信息:包括機型ID、機型名稱、產(chǎn)地、進口商、單價、入庫時間、總量、現(xiàn)</p><p><b> 存總量。</b></p><p> ?。饨铏C器信息:包括外借機器ID、查詢賬戶信息、
45、查詢賬戶所有人、外借日期。</p><p> ?。樵冑~戶信息:包括查詢賬戶賬號、姓名、性別、出生日期、家庭住址、身份證號碼、</p><p> 電話號碼、現(xiàn)借機總數(shù)。</p><p> ?。P金信息:包括罰金號、查詢賬戶賬號、機器ID、外借時間、返還時間、罰金。</p><p> 圖4-1 倉庫管理系統(tǒng)數(shù)據(jù)流程圖</p>
46、<p> 4.2數(shù)據(jù)庫邏輯結構設計</p><p> 數(shù)據(jù)庫邏輯結構的設計有兩個目標,一是對需求分析中的實體建立對應的表:一是將實體之間的聯(lián)系映射到表之間的關系上,具體來說就是設置表的主鍵和外鍵。在這個過程中通常采用E-R圖進行分析,如圖4-2所示,首先對局部視圖進行分析設計,然后再實現(xiàn)視圖生成,注意要盡量消除沖突和冗余。在這里直接給出E-R圖。</p><p> 4.2.
47、1管理員基本信息表</p><p> 管理員基本信息表(Admin_Info)含了倉庫管理員的基本信息,其結構如表4-1所示。</p><p> 4.2.2機型信息表</p><p> 機型信息表(Book_Info)中含了倉庫里所有機型的基本信息,用來方便職員查詢和借調(diào),其結構如表4-2所示。</p><p> 圖4-2 倉庫管理系
48、統(tǒng)的數(shù)據(jù)庫模型</p><p> 表4-1管理員基本信息表</p><p><b> 表4-2機型信息表</b></p><p> 4.2.3查詢賬戶信息表</p><p> 查詢賬戶信息表(Proof_info)包含了所有職員的查詢賬戶信息,用來方便職員外借和管理員管</p><p>
49、 理,其結構如表4-3所示。</p><p> 表4-3查詢賬戶信息表</p><p> 4.2.4外借信息表</p><p> 外借信息表(Borrow_info)包含了所有樣機外借的信息,用來方便管理員管理倉庫的樣機出借情況,其結構如表所示。</p><p><b> 表4-4外借信息表</b></p
50、><p> 4.2.5罰單信息表</p><p> 罰單信息表(Punish_info)包含了所有員工的罰金信息,用來方便管理員管理樣機外借超時情況,其結構如表4-5所示。</p><p><b> 表4-5罰單信息表</b></p><p> 4.3 創(chuàng)建表的腳本文件</p><p> 數(shù)
51、據(jù)庫部分可以通過SQL Server企業(yè)管理器來創(chuàng)建,也可以通過Transact-SQL 語句來創(chuàng)建,對應的SQL語句如下。</p><p> 初始化設置完畢后,通過該用戶可以登錄系統(tǒng)。本實例中使用的用戶名和密碼均為lib</p><p> 另外,在查詢分析器中執(zhí)行這些SQL語句時,首先應將當前操作數(shù)據(jù)庫設置為Library。否則,所有表都將創(chuàng)建到Master數(shù)據(jù)庫中。操作的最終結果如
52、圖4-3。</p><p> 圖4-3Library數(shù)據(jù)庫在SQL Server 企業(yè)管理器視圖中</p><p> 5 系統(tǒng)主窗體設計</p><p> 5.1 創(chuàng)建工程項目—倉庫管理系統(tǒng)</p><p> 打開Visual C++ 后,單擊文件 -> 新建 菜單,在工程模板中選擇MFCAppWizard(exe)將出現(xiàn)一個
53、應用程序向?qū)?,選擇基本對話框,不使用MFC動態(tài)庫,其它屬性都是缺省設置,將這個工程項目命名為倉庫管理系統(tǒng),如圖5-1。</p><p> 圖5-1創(chuàng)建項目頁面</p><p> 5.2 創(chuàng)建系統(tǒng)主窗體</p><p> 在資源編輯器中設計主對話框界面,布局如圖5-1所示。其中包括了倉庫管理、查詢賬戶管理和系統(tǒng)管理3個部分。</p><p&g
54、t; 主窗體界面設計如圖5-2所示。</p><p><b> 圖5-2系統(tǒng)主頁面</b></p><p><b> 5.2.1倉庫管理</b></p><p> 倉庫管理的控件類型、ID及說明如表5-1所示。</p><p> 表5-1 倉庫管理控件列表</p><p
55、> 5.2.2查詢賬戶管理</p><p> 查詢賬戶管理的控件類型、ID及說明如表5-2所示。</p><p> 表5-2查詢賬戶管理控件列表</p><p><b> 5.2.3系統(tǒng)管理</b></p><p> 系統(tǒng)管理的控件類型、ID及說明如表5-3所示。</p><p>
56、 表5-3系統(tǒng)管理控件表</p><p> 主對話框類名稱為CLibDBSDlg,資源ID為IDD_LIBDBS,對話框名稱為“倉庫管理系統(tǒng)”。主界面由3個下拉列表框控件組成,分為3個主要的功能區(qū):倉庫管理、查詢賬戶管理和系統(tǒng)管理。下一節(jié)分別講述這三部分的功能以及實現(xiàn)過程。</p><p><b> 5.3 連接數(shù)據(jù)庫</b></p><p&
57、gt; 當系統(tǒng)啟動之后,就要連接數(shù)據(jù)庫了,需要3個參數(shù):ODBC數(shù)據(jù)源名稱、數(shù)據(jù)庫用戶名稱、數(shù)據(jù)庫用戶密碼。</p><p> 登錄到主界面之前,首先調(diào)用管理員登錄模塊。從數(shù)據(jù)庫中讀入Admin_Info表的內(nèi)客,判斷用戶輸入的用戶名和密碼是否正確。主要代碼如下:</p><p> 用戶名和密碼都正確,才能進入系統(tǒng)。</p><p> 5.4 工程模塊設計&
58、lt;/p><p> 工程的框架設計完成之后,就可以根據(jù)需求實現(xiàn)各個模塊。在本系統(tǒng)中需要編碼實現(xiàn)的主要有登錄、樣機管理、查詢賬戶管理、系統(tǒng)與其他模塊管理4個模塊。</p><p> 5.4.1登錄模塊設計</p><p> 在進入主對話框之前,首先調(diào)用登錄對話框,可以創(chuàng)建一個對話框,對話框包含了數(shù)據(jù)源的名稱、用戶名和密碼 3個部分,界面如圖 所示。添加的對話框類名
59、稱為 CLibraryDlg,資源ID為IDD_LIBRARY_DIALOG,對話框名稱為“倉庫管理系統(tǒng)”。</p><p> “倉庫管理系統(tǒng)”對話框中的控件類型、ID及說明如表5-3所示。</p><p><b> 圖5-3登錄界面</b></p><p> 表5-4登陸界面控件表</p><p> 5.4.2
60、倉庫管理模塊設計</p><p> 倉庫管理包括新機入庫、外借/歸還、樣機掛失、樣機信息查詢和外借信息查詢5個部分,下面分別介紹這5部分的功能以及實現(xiàn)過程。</p><p><b> 1新機登記</b></p><p> 新機登記管理包括了新機入庫、查詢機型和顯示所有機型的功能。為了方便添加新機和查詢所有機型的基本信息,可以創(chuàng)建一個對話框
61、,界面如圖5-4所示。添加的對話框類名稱為CNewBooksDlg,資源 ID為 IDD_DALOG_NEW_BOOKS,對話框名稱為“新機登記入庫”。</p><p> 圖5-4新機登記入庫界面</p><p> “新機登記入庫”對話框中的控件類型、ID及說明如表5-5所示。</p><p> 表5-5新機登記控件列表</p><p>
62、;<b> ?。霂?lt;/b></p><p> 入庫是倉庫管理系統(tǒng)中最重要的功能之一,是倉庫管理系統(tǒng)不可缺少的。入庫的實現(xiàn)過程是首先要輸入機器的各種信息,包括機器的串號、機器名稱、產(chǎn)地、進口商、單價、總量、現(xiàn)存量等,這里機器的數(shù)量由兩個變量來記錄,總量代表倉庫中這種書的總量,現(xiàn)存量是目前正在倉庫中的量,兩者之差就是被職員借出去的數(shù)量。其中每個信息不能有遺漏或者格式不正確,因為這是每一臺機器
63、的基本信息,在函數(shù)的實現(xiàn)過程中有檢驗的功能。然后判斷倉庫中是否存在這種圖書,如果存在,那么只是簡單地把庫存的數(shù)量加上新加入的數(shù)量,如果不存在,那么就要新建記錄。函數(shù)為CNewBooksDlg::OnButtonIn(),代碼如下。</p><p> void CNewBooksDlg::OnButtonIn() </p><p><b> {</b></p&
64、gt;<p> // TODO: Add your control notification handler code here</p><p> UpdateData();</p><p> if(m_strBookID.Compare("")==0)</p><p><b> {</b></p
65、><p> MessageBox("請正確填寫要求的數(shù)據(jù)","新機入庫登記");</p><p><b> return;</b></p><p><b> }</b></p><p> if(!m_database.IsOpen())</p>
66、<p><b> {</b></p><p> if(!m_database.Open(_T("Library")))</p><p><b> {</b></p><p> MessageBox("Cannot access database!","
67、新機登記");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> CBookSet *m_pset=new CBookSet(&m_database);<
68、;/p><p> //判斷倉庫中是否有該機器,進行相應操作</p><p> //有,把數(shù)量加到庫中</p><p> CString strSQL;</p><p> strSQL.Format("select * from Book_Info where Book_ID='%s'",m_strBoo
69、kID);</p><p> m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);</p><p> if(m_pset->GetRecordCount()!=0)</p><p><b> {</b></p><p> m_pset->Edit();<
70、;/p><p> m_pset->m_Total_Amount=m_pset->m_Total_Amount+m_lTotal;</p><p> m_pset->m_Now_Amount=m_pset->m_Now_Amount+m_lNow;</p><p> m_pset->Update();</p><p&
71、gt; m_pset->Requery();</p><p> m_pset->Close();</p><p> m_database.Close();</p><p> MessageBox("Adding new books successfully!","新機入庫登記");</p>&
72、lt;p> OnButtonCheckBooks();</p><p><b> return;</b></p><p><b> }</b></p><p> m_pset->Close();</p><p> if(m_strBookID==""||m_
73、strBookName==""||m_strWriter==""</p><p> ||m_strPress==""||m_dPrice==0||m_lTotal==0</p><p> ||m_lNow==0)</p><p><b> {</b></p><
74、;p> MessageBox("請正確填寫要求的數(shù)據(jù)!","新機登記入庫");</p><p> m_database.Close();</p><p><b> return;</b></p><p><b> }</b></p><p>
75、strSQL.Format("select * from Book_Info");</p><p> m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);</p><p> //if(m_pset->GetRecordCount()==0)</p><p><b> //{<
76、/b></p><p> //MessageBox("There are not any book information!","新機登記");</p><p><b> //}</b></p><p> m_pset->AddNew();</p><p> m
77、_pset->SetFieldNull(&(m_pset->m_Book_ID),FALSE);</p><p> m_pset->m_Book_ID=m_strBookID;</p><p> m_pset->SetFieldNull(&(m_pset->m_Book_Name),FALSE);</p><p>
78、 m_pset->m_Book_Name=m_strBookName;</p><p> m_pset->SetFieldNull(&(m_pset->m_Writer),FALSE);</p><p> m_pset->m_Writer=m_strWriter;</p><p> m_pset->SetFieldNull
79、(&(m_pset->m_Press),FALSE);</p><p> m_pset->m_Press=m_strPress;</p><p> m_pset->SetFieldNull(&(m_pset->m_Price),FALSE);</p><p> m_pset->m_Price=m_dPrice;&l
80、t;/p><p> m_pset->SetFieldNull(&(m_pset->m_Total_Amount),FALSE);</p><p> m_pset->m_Total_Amount=m_lTotal;</p><p> m_pset->SetFieldNull(&(m_pset->m_Now_Amount)
81、,FALSE);</p><p> m_pset->m_Now_Amount=m_lNow;</p><p> CTime curTime=CTime::GetCurrentTime();</p><p> m_pset->SetFieldNull(&(m_pset->m_InLibrary_Date),FALSE);</p&g
82、t;<p> m_pset->m_InLibrary_Date=curTime;</p><p> m_pset->Update();</p><p> m_pset->Requery();</p><p> m_pset->Close();</p><p> m_database.Close(
83、);</p><p> MessageBox("添加成功!","新機入庫登記");</p><p> OnButtonCheckBooks();</p><p> m_strBookID.Empty();</p><p> m_strBookName.Empty();</p>&l
84、t;p> m_strPress.Empty();</p><p> m_strWriter.Empty();</p><p><b> m_lNow=0;</b></p><p> m_lTotal=0;</p><p> m_dPrice=0.0;</p><p> Updat
85、eData(FALSE);</p><p><b> return;</b></p><p><b> }</b></p><p> void CNewBooksDlg::OnButtonCheckBooks() </p><p><b> {</b></p>
86、;<p> // TODO: Add your control notification handler code here</p><p> UpdateData();</p><p> if(m_strBookID=="")</p><p><b> {</b></p><p&g
87、t; MessageBox("請正確填寫信息,(串號?)","新機登記");</p><p><b> return;</b></p><p><b> }</b></p><p> if(!m_database.IsOpen())</p><p>&
88、lt;b> {</b></p><p> if(!m_database.Open(_T("Library")))</p><p><b> {</b></p><p> MessageBox("不能添加這個機型!","新機登記");</p>&l
89、t;p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> CBookSet *m_pset=new CBookSet(&m_database);</p><p> CStrin
90、g strSQL;</p><p> strSQL.Format("select * from Book_Info where Book_ID='%s'",m_strBookID);</p><p> m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);</p><p> if(m
91、_pset->GetRecordCount()==0)</p><p><b> {</b></p><p> MessageBox("沒有這個機型!","新機登記");</p><p> m_database.Close();</p><p><b> r
92、eturn;</b></p><p><b> }</b></p><p><b> //處理表格</b></p><p> m_ctrList.DeleteAllItems();</p><p> m_pset->MoveFirst();</p><p
93、> char buf[50];</p><p> CDBVariant varValue;</p><p><b> int i=0;</b></p><p> CString strBookName;</p><p> while(!m_pset->IsEOF())</p><
94、p><b> {</b></p><p> m_ctrList.InsertItem(i,buf);</p><p> m_ctrList.SetItemText(i,0,m_strBookID);</p><p> m_pset->GetFieldValue(1,strBookName);</p><p
95、> m_ctrList.SetItemText(i,1,strBookName);</p><p> m_pset->GetFieldValue(2,strBookName);</p><p> m_ctrList.SetItemText(i,2,strBookName);</p><p> m_pset->GetFieldValue(3,
96、strBookName);</p><p> m_ctrList.SetItemText(i,3,strBookName);</p><p> m_pset->GetFieldValue(4,varValue);</p><p> sprintf(buf,"%.2f",varValue.m_dblVal);</p>&l
97、t;p> m_ctrList.SetItemText(i,4,buf);</p><p> m_pset->GetFieldValue(5,varValue);</p><p> sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month,</p>
98、<p> varValue.m_pdate->day);</p><p> m_ctrList.SetItemText(i,5,buf);</p><p> m_pset->GetFieldValue(6,varValue);</p><p> sprintf(buf,"%d",varValue.m_lVal);&
99、lt;/p><p> m_ctrList.SetItemText(i,6,buf);</p><p> m_pset->GetFieldValue(7,varValue);</p><p> sprintf(buf,"%d",varValue.m_lVal);</p><p> m_ctrList.SetItem
100、Text(i,7,buf);</p><p><b> i++;</b></p><p> m_pset->MoveNext();</p><p> UpdateData(FALSE);</p><p><b> }</b></p><p> 這里需要用到 C
101、BookSet類,所以要在 NewBooksDlg.cpp文件的開始處引入 BookSet.h文件,方法如下。</p><p> #inclue”BookSet.h”</p><p> OnButtonlh函數(shù)首先調(diào)用 UPdateData(),完成從控件到對話框成員變量的數(shù)據(jù)交換,然后判斷是否輸入了機器ID,如果輸入為空,將不能正確地將新機入庫,函數(shù)返回錯誤。判斷數(shù)據(jù)庫是否打開,如果
102、役有打開,那么重新打開數(shù)據(jù)庫。生成新的CBookSet實例,與數(shù)據(jù)庫綁定,輸入SQL語句,查找數(shù)據(jù)庫倉庫中是否有該機型,進行相應操作,如果有,把數(shù)量加到庫中;如果役有,那么要在數(shù)據(jù)庫中建立新的機型記錄。</p><p><b> ?。樵?lt;/b></p><p> 查詢也是很重要的一個功能,在很多地方會被用到,也是顯示數(shù)據(jù)的一個功能函數(shù)。實現(xiàn)的過程,也是首先檢查數(shù)據(jù)
103、庫是否打開,以及要查詢的機型ID是否為空。函數(shù)為CNewBooksDlg::OnButtouln(),代碼如下。</p><p> void CNewBooksDlg::OnButtonCheckBooks() </p><p><b> {</b></p><p> // TODO: Add your control notificat
104、ion handler code here</p><p> UpdateData();</p><p> if(m_strBookID=="")</p><p><b> {</b></p><p> MessageBox("請正確填寫信息,(串號?)","新機
105、登記");</p><p><b> return;</b></p><p><b> }</b></p><p> if(!m_database.IsOpen())</p><p><b> {</b></p><p> if(!m
106、_database.Open(_T("Library")))</p><p><b> {</b></p><p> MessageBox("不能添加這個機型!","新機登記");</p><p><b> return;</b></p>&l
107、t;p><b> }</b></p><p><b> }</b></p><p> CBookSet *m_pset=new CBookSet(&m_database);</p><p> CString strSQL;</p><p> strSQL.Format(&qu
108、ot;select * from Book_Info where Book_ID='%s'",m_strBookID);</p><p> m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);</p><p> if(m_pset->GetRecordCount()==0)</p><p&g
109、t;<b> {</b></p><p> MessageBox("沒有這個機型!","新機登記");</p><p> m_database.Close();</p><p><b> return;</b></p><p><b> }
110、</b></p><p><b> //處理表格</b></p><p> m_ctrList.DeleteAllItems();</p><p> m_pset->MoveFirst();</p><p> char buf[50];</p><p> CDBVari
111、ant varValue;</p><p><b> int i=0;</b></p><p> CString strBookName;</p><p> while(!m_pset->IsEOF())</p><p><b> {</b></p><p>
112、 m_ctrList.InsertItem(i,buf);</p><p> m_ctrList.SetItemText(i,0,m_strBookID);</p><p> m_pset->GetFieldValue(1,strBookName);</p><p> m_ctrList.SetItemText(i,1,strBookName);<
113、/p><p> m_pset->GetFieldValue(2,strBookName);</p><p> m_ctrList.SetItemText(i,2,strBookName);</p><p> m_pset->GetFieldValue(3,strBookName);</p><p> m_ctrList.Set
114、ItemText(i,3,strBookName);</p><p> m_pset->GetFieldValue(4,varValue);</p><p> sprintf(buf,"%.2f",varValue.m_dblVal);</p><p> m_ctrList.SetItemText(i,4,buf);</p>
115、;<p> m_pset->GetFieldValue(5,varValue);</p><p> sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month,</p><p> varValue.m_pdate->day);</p>
116、<p> m_ctrList.SetItemText(i,5,buf);</p><p> m_pset->GetFieldValue(6,varValue);</p><p> sprintf(buf,"%d",varValue.m_lVal);</p><p> m_ctrList.SetItemText(i,6,b
117、uf);</p><p> m_pset->GetFieldValue(7,varValue);</p><p> sprintf(buf,"%d",varValue.m_lVal);</p><p> m_ctrList.SetItemText(i,7,buf);</p><p><b> i++
118、;</b></p><p> m_pset->MoveNext();</p><p> UpdateData(FALSE);</p><p><b> }</b></p><p> m_pset->Close();</p><p> m_database.Clos
119、e();</p><p><b> }</b></p><p> OnButtonCheckBooks函數(shù)開始部分與新機入庫函數(shù)類似,都是首先進行數(shù)據(jù)交換,然后判斷輸入機型ID是否為空,判斷數(shù)據(jù)庫是否正常打開,生成新的BookSet實例。以上函數(shù)處理時,注意在數(shù)據(jù)庫的數(shù)據(jù)取出來之后,CBookSet類的實例m_pset通過GetFieldValue函數(shù)來取得每個字
120、段的值。在這里需要的值都是CString類型,故而直接使用GetFieldValue就可以了。如果有別的類型,比如整型,實型等,就需要將得到的結果進行類型轉換。</p><p><b> ?。@示全部機型</b></p><p> 顯示全部機型部分的處理函數(shù)跟查詢的基本類似,相應的 SQL語句為“select*form BOOk_Info”,然后依次插入列表控件中,
121、這部分代碼省略。</p><p><b> 2外借/歸還</b></p><p> 外借/歸還管理是庫存管理系統(tǒng)中最重要的模塊,包括了查詢機型、查詢外借人信息和外借、歸還等功能。為了方便管理,可以創(chuàng)建一個對話框。添加的對話框類名稱為 CBorrowDlg,</p><p> 資源ID為IDD_DIALOG BORROW,對話框名稱為“外借
122、/歸還管理”,界面如圖5-6所示。</p><p> 圖5-6樣機管理界面</p><p> “外借/歸還管理”對話框中的控件類型、ID及說明如表5-6所示。</p><p> 表5-6樣機管理控件表</p><p><b> .查詢機型</b></p><p> 查詢機型的處理函數(shù)為
123、CBorrowDlg::OnButtonCheckBooks()代碼如下。</p><p> void CBorrowDlg::OnButtonCheckBooks() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here
124、</p><p> CCheckBooksDlg m_dlg;</p><p> m_dlg.DoModal();</p><p><b> }</b></p><p> 為了方便處理,新建一個對話框,添加的對話框類名稱為 CCheckBooksDlg,資源 ID為</p><p> I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——庫存管理系統(tǒng)的設計與實現(xiàn)
- 畢業(yè)論文——庫存管理系統(tǒng)的設計與實現(xiàn)
- 畢業(yè)論文——庫存管理系統(tǒng)的設計與實現(xiàn)
- 庫存管理系統(tǒng)的設計與實現(xiàn)【畢業(yè)論文】
- 畢業(yè)論文(設計)庫存管理系統(tǒng)-uml設計與實現(xiàn)
- 畢業(yè)論文--商場庫存管理系統(tǒng)的設計與實現(xiàn)
- 庫存管理系統(tǒng)前臺模塊的設計與實現(xiàn)---畢業(yè)論文
- 軟件工程畢業(yè)論文-庫存管理系統(tǒng)的設計與實現(xiàn)
- 畢業(yè)論文---庫存管理系統(tǒng)的設計與開發(fā)
- 畢業(yè)論文---庫存管理系統(tǒng)
- 庫存管理系統(tǒng)畢業(yè)論文
- 軟件工程畢業(yè)論文-庫存管理系統(tǒng)(mis)的設計與實現(xiàn)
- 畢業(yè)論文——基于網(wǎng)絡環(huán)境的庫存管理系統(tǒng)的設計與實現(xiàn)
- 商品物流管理系統(tǒng)的設計與實現(xiàn)──車輛管理、庫存管理模塊【畢業(yè)論文】
- 畢業(yè)論文--庫存管理系統(tǒng)(mis)
- 信息管理與信息系統(tǒng)畢業(yè)論文庫存管理系統(tǒng)的設計與實現(xiàn)
- 庫存分銷管理系統(tǒng)的設計與實現(xiàn)─數(shù)據(jù)庫設計、測試【畢業(yè)論文設計】
- 軟件工程畢業(yè)論文-汽車銷售系統(tǒng)的設計與實現(xiàn)-庫存管理模塊
- 畢業(yè)論文合同管理系統(tǒng)設計與實現(xiàn)
- 畢業(yè)論文管理系統(tǒng)的設計與實現(xiàn)論文
評論
0/150
提交評論