第一篇:倉庫管理系統畢業設論文
河南理工大學本科畢業設計(論文)
前言
隨著企業管理信息化的發展,網絡及計算機的引入使管理躍上了一個新的發展平臺。企業的各項管理都將向信息化方向擴展,倉庫的管理對于企業來說尤為重要,也正是基于這個原因我把畢業設計的方向定在了企業的倉庫管理上。
倉庫管理系統是一個企業不可缺少的部分,它的內容對于企業的決策者和管理者來說都至關重要,所以倉庫管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統人工的方式管理產品,這種管理方式存在著許多缺點,如:效率低、保密性差等。另外,由于時間一長,將產生大量的文件和數據,這對于查找、更新和維護產品都帶來了不少的困難。
作為計算機應用的一部分,使用計算機對倉庫信息進行管理,有著手工管理所無法比擬的優點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優點能夠極大地提高倉庫管理的效率。
由于時間緊迫,加之水平有限,設計中的缺點和不足之處在所難免,敬請導師批評指正,不勝感激。
第二篇:畢業實習報告--倉庫管理系統
畢業實習報告
一、實習目的信息與計算科學是一門需要實踐性的課程,平時大多數時間都在講理論,所以實踐的機會是十分重要的并且珍貴的。為了能更好的把理論與實踐相結合,增強對JAVA語言的應用能力,增強知識運用能力,我們專業在學院的安排下于今年暑假進行了畢業實習。
二、實習時間
實習時間為2011-7-4——2011-7-23,主要有學習JAVA相關知識、分小組做項目、答辯幾個階段組成。
三、實習地點
數學實驗室。
四、實驗方式
重慶達內軟件有限公司兼學院老師指導的校內實習。
五、實習主要內容初期知識積累
實習開始于放假后的幾天 在重慶炎熱的夏天 在機房雖然有空調但依然很熱。但是值得慶幸的是我們都學到了一些東西,這就是俗話說的陽光總在風雨后吧。
實習的主要內容是JAVA的運用。JAVA的主要特點是JAVA的安全性高,不能寫病毒,所以適用于金融等對安全性要求較高的行業。但是病毒可以通過JAVA虛擬機寫。JAVA和FLASH一起可以達到很好的頁面效果,單單JAVA是做不到的。
數據庫和JAVA的連接需要在程序中寫好代碼,外部用建好的數據庫,只要設置正確就可以實現數據的調用。若某些操作可能拋出異常,則先將其選中,然后右擊鼠標—包圍方式—try.catch塊,即可自動生成try-catch語句。建立一個類之后,定義相關的屬性,右擊鼠標—源代碼—生成get和set語句,即可快速地生成每個屬性的set與get函數,減少了工作量。這些簡易高效率的操作也更加證明了JAVA作為一門語言的強大。
三層架構在寫代碼時起到了很重要的作用,一切的工作都需要依附于這一結構才能夠真正地去構建要實現的系統。它們是組織整個系統的骨骼,支撐起整個系統的各項功能。action層是返回層,biz層是業務邏輯層,dao層是數據訪問層。
Struts 框架工具是 Apache 基金會 Jakarta 項目中推出的一個子項目。Struts 在英文中是支架、支撐的意思,這也體現出 Struts 在開發 Web 應用程序過程所起到的重要作用,Struts 為 Web 應用提供了通用的框架,讓開發人員可以把主要精力集中在如何解決實際業務問題上,與此同時 Struts 框架也允許開發人員根據實際需要進行擴展和定制,從而可以更好的適應用戶的需求。采用 Struts 可以簡化遵循 MVC 設計模式的 Web 應用的開發工作,很好地實現代碼重用,使開發人員從一些繁瑣的工作中解脫出來,快速開發能夠充分發揮 JSP/Servlet 優點、并具有強可擴展性的 Web 應用。總之,Struts 的出現使得 Web 應用的開發過程大大簡化,從而能夠縮短開發周期、提高開發效率。
Struts 架構一經推出,即受到 Java 開發群體的廣泛重視,從 2004 年開始逐漸升溫,并日漸成為 Java 創建 Web 應用開發的最流行的框架工具,在目前 Java Web 程序員的招聘要求中,幾乎都提出了對 Struts 的要求,精通 Struts 架構已經成為 Java Web 程序員必備的技能。實習中遇到的問題及解決方案
實習前期最重要的是安裝軟件 又由于學校的機房的電腦的配置不是很好故不是每一臺電腦都可以用的,所以好多的同學都得帶自己的電腦來。就在這個安裝的過程中問題又是很多種的路勁的問題最多。最后在老師的幫助下這個問題算是很快的解決了。java對于某些細節的東西要求是很嚴格的 對于代碼是不能出錯的這是絕對的因為如果你出了一點點的小錯誤可能導致你的整個程序都跑步起來,或者是其中某些重要的功能不能實現。再有對于頁面的設置頁面之間的跳轉傳值字體的設置是關鍵雖然這是一個在老師看來是不為問題的問題但還是經常出錯utf-8這個就是頁面上的設置。是一個很小的細節問題。這里也體現了java細節重要性。倉庫管理系統的設計過程
實習的最后要求是做一個項目可供選擇的項目有4個,我們小組做的項目是倉庫管理系統。該系統又又前臺和后臺組成我主要的分工是做前臺頁面的設計,設計用戶的登陸和注冊。在用戶表中插入一條管理員的相關信息的記錄,在登陸界面上用戶可以選擇登錄或者注冊。若選擇登錄,即要輸入用戶名和密碼,系統要判斷輸入的用戶名是否存在,密碼是否一致。若滿足條件,則可以順利登陸,即頁面跳轉至顯示有用戶信息的頁面;若選擇注冊,則跳轉至注冊頁面,用戶需輸入各種信息以完成注冊。如果輸入合法,則注冊成功并能夠跳轉至登錄頁面。這一塊只是外部的一個框架包括顏色的配比什么的。主要的內容還是內部的代碼的運用。
物資入庫,往一個表中插入物品記錄。這個表中的數據記錄在數據庫當中這一功能的實現需要用戶輸入物資名、數量等信息,這樣即可將相應的物資入庫。
物資查詢,就是將數據庫中的數據把要求的在頁面顯示,這一功能比較容易實現。點擊物資查詢的鏈接后就可以跳至查詢界面,并顯示物資的各項信息。
庫存系統的設計中,各種功能較多,實現的頁面跳轉尤其多,所以需要一個主頁面,使得操作簡單明了,不至于混亂。
主頁面要實現把各個部分分塊,即先把頁面的格局分好,再分別在每一個小區塊中寫相應的頁面。有固定的導航塊,所以對各種功能的操作更加容易實現了。
主頁面的外部設計用了學校的主頁頁面圖片看上去比較氣氛。我們又在主頁面的最上部加了滾動條這讓整個頁面顯得更加又生氣。中間部分,左邊顯示用戶信息,右上部分是各種操作功能的鏈接。在鏈接處都放上了按鈕的圖片,使這一部風看起來像是按鈕圖片。(其實是連接)所以有了具有按鈕效果的鏈接,這是一個小技巧,因為直接用按鈕是實現不了相應的跳轉功能的,只有鏈接才可以做到,于是鏈接加上按鈕的圖片就是最好的解決方案了。右下部分跳轉頁面,即點擊鏈接后,右下的頁面跳轉至相應的頁面。總之,主頁面的設計讓一系列復雜繁瑣的操作有了較強的連貫性,使用戶使用該系統的舒適感倍增。
剛開始時,實現的物資出庫功能沒有考慮要出庫的數量是否多于庫存的數量,所以貌似完成的庫存系統是一個可以無限出庫的系統,不能滿足對系統的安全性和穩定性的要求。考慮到上述因素,又對系統有了進一步的完善,即增加了出庫時的數量判斷。編寫一個判斷函數即可滿足要求。輸入了出庫信息后,提交時即判斷庫存量是否滿足需求:若出庫量過大,則顯示物品在倉庫中不存在。通過這一系列的提示即可滿足倉庫系統的實際性要求。
六、實習總結及體會
一個項目是一個團隊的工作一個人不能把一個項目搞定的幾時可以那花的時間也是非常的巨大的還有很多的地方不一定能涉及到。團隊的力量才是最厲害的俗話說人心其泰山移說的就是這個道理。再有一點就是我們要充分相信我們的隊友,我們也要為我們的團隊盡自己的最大努力。我們最終寫了一個庫存系統雖然在老師的眼里不是很好但是這個項目也是我們實習里的最好的一個對于我們來說這個項目是我們以團隊做的第一個項目即時它很爛我們也覺得很好因為我們努力去做了以團隊去做了。
對于這個JAVA項目它對代碼要求很高特別是細節問題。在平時學習的知識太有限了,與實際的應用的技能有較大的差距,我們必須加強相關的訓練以增強編程、網頁設計等方面的技能,只有把理論運用到實踐才是正真的理會。
總的來說,實習雖然是個艱辛的過程但只有經歷風雨我們才能成長經歷磨難錯誤我們才會成功,這是這個項目教會我的。
第三篇:畢業實習報告--倉庫管理系統.
畢業實習報告
一、實習目的
信息與計算科學是一門需要實踐性的課程,平時大多數時間都在講理論, 所 以實踐的機會是十分重要的并且珍貴的。為了能更好的把理論與實踐相結合, 增 強對 JAVA 語言的應用能力,增強知識運用能力,我們專業在學院的安排下于今 年暑假進行了畢業實習。
二、實習時間
實習時間為 2011-7-4—— 2011-7-23, 主要有學習JAVA 相關知識、分小組做項目、答辯幾個階段組成。
三、實習地點 數學實驗室。
四、實驗方式
重慶達內軟件有限公司兼學院老師指導的校內實習。
五、實習主要內容 1 初期知識積累
實習開始于放假后的幾天 在重慶炎熱的夏天 在機房雖然有空調但依然很 熱。但是值得慶幸的是我們都學到了一些東西 ,這就是俗話說的陽光總在風雨 后吧。
實習的主要內容是 JAVA 的運用。JAVA 的主要特點是 JAVA 的安全性高,不 能寫病毒, 所以適用于金融等對安全性要求較高的行業。但是病毒可以通過 JAVA 虛擬機寫。JAVA 和 FLASH 一起可以達到很好的頁面效果, 單單 JAVA 是做不到的。數據庫和 JAVA 的連接需要在程序中寫好代碼, 外部用建好的數據庫, 只要 設置正確就可以實現數據的調用。若某些操作可能拋出異常, 則先將其選中, 然 后右
擊鼠標—包圍方式— try.catch 塊,即可自動生成 try-catch 語句。建立 一個類之后, 定義相關的屬性, 右擊鼠標—源代碼—生成 get 和 set 語句, 即可 快速地生成每個屬性的 set 與 get 函數, 減少了工作量。這些簡易高效率的操作 也更加證明了 JAVA 作為一門語言的強大。
三層架構在寫代碼時起到了很重要的作用,一切的工作都需要依附于這一 結構才能夠真正地去構建要實現的系統。它們是組織整個系統的骨骼, 支撐起整 個系統的各項功能。action 層是返回層, biz 層是業務邏輯層, dao 層是數據訪 問層。
Struts 框架工具是 Apache 基金會 Jakarta 項目中推出的一個子項目。Struts 在英文中是支架、支撐的意思, 這也體現出 Struts 在開發 Web 應用程 序過程所起到的重要作用, Struts 為 Web 應用提供了通用的框架,讓開發人 員可以把主要精力集中在如何解決實際業務問題上, 與此同時 Struts 框架也允 許開發人員根據實際需要進行擴展和定制, 從而可以更好的適應用戶的需求。采 用 Struts 可以簡化遵循 MVC 設計模式的 Web 應用的開發工作, 很好地實現代 碼重用,使開發人員從一些繁瑣的工作中解脫出來,快速開發能夠充分發揮 JSP/Servlet 優點、并具有強可擴展性的 Web 應用。總之, Struts 的出現使 得 Web 應用的開發過程大大簡化,從而能夠縮短開發周期、提高開發效率。Struts 架構一經推出, 即受到 Java 開發群體的廣泛重視, 從 2004 年開 始逐漸升溫,并日漸成為 Java 創建 Web 應用開發的最流行的框架工具,在目 前 Java Web 程序員的招聘要求中,幾乎都提出了對 Struts 的要求,精通 Struts 架構已經成為 Java Web 程序員必備的技能。
2實習中遇到的問題及解決方案
實習前期最重要的是安裝軟件 又由于學校的機房的電腦的配置不是很好故不 是每一臺電腦都可以用的, 所以好多的同學都得帶自己的電腦來。就在這個安裝 的過程中問題又是很多種的路勁的問題最多。最后在老師的幫助下這個問題算是 很快的解決了。java 對于某些細節的東西要求是很嚴格的 對于代碼是不能出錯 的這是絕對的因為如果你出了一點點的小錯誤可能導致你的整個程序都跑步起 來, 或者是其中某些重要的功能不能實現。再有對于頁面的設置頁面之間的跳轉 傳值字體 的設置是關鍵雖然這是一個在老師看來是不為問題的問題但還是經常 出錯 utf-8這個就是頁面上的設置。是一個很小的細節問題。這里也體現了 java 細節重要性。
3倉庫管理系統的設計過程
實習的最后要求是做一個項目可供選擇的項目有 4個,我們小組做的項 目是倉庫管理系統。該系統又又前臺和后臺組成我主要的分工是做前臺頁面的設 計, 設計用戶的登陸和注冊。在用戶表中插入一條管理員的相關信息的記錄, 在 登陸界面上用戶可以選擇登錄或者注冊。若選擇登錄,即要輸入用戶名和密碼, 系統要判斷輸入的用戶名是否存在, 密碼是否一致。若滿足條件, 則可以順利登 陸,即頁面跳轉至顯示有用戶信息的頁面;若選擇注冊,則跳轉至注冊頁面,用 戶需輸入各種信息以完成注冊。如果輸入合法, 則注冊成功并能夠跳轉至登錄頁 面。這一塊只是外部的一個框架包括顏色的配比什么的。主要的內容還是內部的 代碼的運用。
物資入庫,往一個表中插入物品記錄。這個表中的數據記錄在數據庫當中 這一功能的實現需要用戶輸入物資名、數量等信息, 這樣即可將相應的物資入庫。物資查詢,就是將數據庫中的數據把要求的在頁面顯示,這一功能比較容 易實現。點擊物資查詢的鏈接后就可以跳至查詢界面,并顯示物資的各項信息。庫存系統的設計中,各種功能較多,實現的頁面跳轉尤其多,所以需要一 個主頁面,使得操作簡單明了,不至于混亂。
主頁面要實現把各個部分分塊,即先把頁面的格局分好,再分別在每一個 小區塊中寫相應的頁面。有固定的導航塊, 所以對各種功能的操作更加容易實現 了。
主頁面的外部設計用了學校的主頁頁面圖片看上去比較氣氛。我們又在主 頁面的最上部加了滾動條這讓整個頁面顯得更加又生氣。中間部分, 左邊顯示用 戶信息, 右上部分是各種操作功能的鏈接。在鏈接處都放上了按鈕的圖片, 使這 一部風看起來像是按鈕圖片。(其實是連接所以有了具有按鈕效果的鏈接,這 是一個小技巧, 因為直接用按鈕是實現不了相應的跳轉功能的, 只有鏈接才可以 做到, 于是鏈接加上按鈕的圖片就是最好的解決方案了。右下部分跳轉頁面, 即 點擊鏈接后, 右下 的頁面跳轉至相應的頁面。總之, 主頁面的設計讓一系列復雜 繁瑣的操作有了較強的連貫性,使用戶使用該系統的舒適感倍增。
剛開始時,實現的物資出庫功能沒有考慮要出庫的數量是否多于庫存的數 量, 所以貌似完成的庫存系統是一個可以無限出庫的系統, 不能滿足對系統的安 全性和穩定性的要求。考慮到上述因素, 又對系統有了進一步的完善, 即增加了 出庫時的數量判斷。編寫一個判斷函數即可滿足要求。輸入了出庫信息后, 提交 時即判斷庫存量是否滿足需求:若出庫量過大, 則顯示物品在倉庫中不存在。通 過這一系列的提示即可滿足倉庫系統的實際性要求。
六、實習總結及體會
一個項目是一個團隊的工作一個人不能把一個項目搞定的幾時可以那花的 時間也是非常的巨大的還有很多的地方不一定能涉及到。團隊的力量才是最厲害 的俗話說人心其泰山移說的就是這個道理。再有一點就是我們要充分相信我們的 隊友, 我們也要為我們的團隊盡自己的最大努力。我們最終寫了一個庫存系統雖 然在老師的眼里不是很好但是這個項目也是我們實習里的最好的一個對于我們 來說這個項目是我們以團隊做的第一個項目即時它很爛我們也覺得很好因為我 們努力去做了以團隊去做了。
對于這個 JAVA 項目它對代碼要求很高特別是細節問題。在平時學習的知識 太有限了, 與實際的應用的技能有較大的差距, 我們必須加強相關的訓練以增強 編程、網頁設計等方面的技能,只有把理論運用到實踐才是正真的理會。總的來說, 實習雖然是個艱辛的過程但只有經歷風雨我們才能成長經歷磨難 錯誤我們才會成功,這是這個項目教會我的。
第四篇:Delphi圖書倉庫管理系統論文
Delphi圖書倉庫管理系統論文Delphi圖書倉庫管理系統論文
前 言
隨著社會經濟的迅速發展和科學技術的全面進步,計算機事業的飛速發展,以計算機與通信技術為基礎的信息系統正處于蓬勃發展的時期.隨著經濟文化水平的顯著提高,人們對生活質量及工作環境的要求也越來越高.書籍做為人類的精神食糧,在現代社會中越來越受到重視,大量的書籍出現在市場上,人們有了各種各樣不同的選擇.與此同時,為了管理大量的圖書,圖書倉庫也大量的出現,倉庫的管理問題也就提上了日程.隨著圖書的大量增加,其管理難度也越來越大,如何優化倉庫的日常管理也就成為了一個大眾化的課題.在計算機飛速發展的今天,將計算機這一信息處理利器應用于倉庫的日常管理已是勢必所然,而且這也將為倉庫管理帶來前所未有的改變,它可以帶來意想不到的效益,同時也會為企業的飛速發展提供無限潛力.采用計算機管理信息系統已成為倉庫管理科學化和現代化的重要標志,它給企業管理來了明顯的經濟效益和社會效益.主要體現在:
極大提高了倉庫工作人員的工作效率,大大減少了以往入出存流程繁瑣,雜亂,周期長的弊端.基于倉庫管理的全面自動化,可以減少入庫管理,出庫管理及庫存管理中的漏洞,可以節約不少管理開支,增加企業收入.倉庫的管理的操作自動化和信息的電子化,全面提高了倉庫的管理水平.隨著我國改革開放的不斷深入,經濟飛速的發展,企業要想生存,發展,要想在激烈的市場競爭中立于不敗之地,沒有現代化的管理是萬萬不行的,倉庫管理的全面自動化,信息化則是其中極其重要的部分.為了加快倉庫管理自動化的步伐,提高倉庫的管理業務處理效率,建立倉庫管理系統已變得十分心要.入庫,庫存,出庫還是現在企業圖書倉庫管理的常規基本模式,雖然,最近又出現了很多新的管理模式,如:基于零庫存思想的沃爾瑪特管理方式,但這些新的思想在中國大部分企業的管理中還是難以實現的.所以如何設計好倉庫管理系統,盡可能地減少倉庫管理的重復性和低效性就成為當前最為重要的問題.圖書倉庫管理的核心是入庫,庫存和出庫之間的聯系,如何處理好三者之間的關系是系統最為關鍵的部分.另外,員工信息和供應商信息管理也是倉庫管理中一個必不可少的部分,它提供著與入庫和出庫相關的一些信息,使得整個系統更加完整,更加實用.通過對倉庫管理日常工作的詳細調查,搜集了大量的資料,從系統結構的組織,功能的實現,技術的要求以及可行性等多方面進行考慮,認為本課題是一個適應現今圖書倉庫管理需求的計算機信息管理系統,具有一定的實際開發價值和使用價值.內 容 簡 介
本系統主要完成對圖書倉庫的庫存管理,包括圖書入庫,出庫,庫存,員工信息,供應商信息以及密碼管理等六個方面.系統可以完成對各類信息的瀏覽,查詢,添加,刪除,修改,報表等功能.系統的核心是入庫,庫存和出庫三者之間的聯系,每一個表的修改都將聯動的影響其它的表,當完成入庫或出庫操作時系統會自動地完成庫存的修改.查詢功能也是系統的核心之一,在系統中即有單條件查詢和多條件查詢,也有精確查詢和模糊查詢,系統不僅有靜態的條件查詢,也有動態生成的條件查詢,其目的都是為了方便用戶使用.系統有完整的用戶添加,刪除和密碼修改功能,并具備報表打印功能.系統采用MICROSOFT OFFICE中的ACCESS 2000來設計數據庫,并使用當前優秀的開發工具—DELPHI 6.0 ,它有著最為靈活的數據庫結構,對數據庫應用有著良好的支持.論文主要介紹了本課題的開發背景,所要完成的功能和開發的過程.重點的說明了系統設計的重點,設計思想,難點技術和解決方案.具體安排如下:
第一章進行系統的需求分析.第二章介紹系統的概要設計.第三章介紹了系統詳細設計.第四章介紹了程序設計環境及選用的語言工具.第五章根據前四章的設計結果利用ACCESS 2000和DELPHI 6.0進行了具體的窗體和應用程序設計.總結部分介紹了設計體會和編程體會,并指出了系統設計中的不足和改進的方向.關鍵字:圖書倉庫管理,數據庫,DELPHI,SQL,ACCESS.
第五篇:倉庫管理系統
·
用Visual C++設計的倉庫管理系統
摘要 本文主要介紹了采用Visual Studio 2005的一個倉庫管理系統。該系統基于MFC集成開發環境,利用ADO控件實現基本信息管理、商品信息管理、庫存操作管理、庫存警示管理的功能。詳細介紹了開發本系統的步驟:系統分析、系統設計、系統實現。在系統分析中采用系統的功能結構圖分析了系統所需的各種數據。在系統的設計中,詳細的展現了系統的各個功能模塊、所需的數據庫表、菜單的設計等。在系統的實現中,給出了相應模塊功能控件的事件及代碼。
關鍵字:倉庫管理 管理系統
ADO控件 面向對象
第一章
緒論
1.1系統的開發背景……………….…………………………………4 1.2當前倉庫管理現狀分析及設計倉庫管理系統的意義………….4 1.2系統開發工具選擇及介紹………………………….……………5 1.3 ADO數據訪問技術………………………………………………7 第二章 系統設計
2.1系統需求分析?????????????????????9 2.2系統開發目標……………………………………………… ………10 2.3系統功能分析
2.31系統功能描述…………………………………………………..10 2.32 系統功能模塊的劃分………………………………………… 11 2.33系統流程分析…………………………………………………..11 第三章 數據庫設計
3.1數據庫需求分析 ……………………………………………….12 3.2 數據庫概念結構設計 ………………………………………….13 3.3 數據庫邏輯結構設計及實現 ………………………………….15 第四章 系統各主要功能模塊的實現
4.1主界面的設置…………………………………………………..18 4.2主要各功能模塊所涉及的類的添加……………………… ……19 4.3登陸模塊設計 …………………………………………………..19 4.4客戶管理模塊設計 4.41 設計客戶信息管理對話框 ………………………………..21 4.42 設計客戶信息編輯對話框 ……………………………..24 4.5倉庫管理模塊設計
4.51設計倉庫信息管理對話框 …………………………………25 4.6用戶管理模塊設計
4.61設計用戶信息管理對話框…………………………………...27 4.62 設計用戶信息編輯對話框…………………………………..28 4.63設計修改用戶密碼的對話框…………………………………29 4.7商品管理模塊設計
4.71設計商品類別管理對話框……………………………………30 4.72 設計商品類別編輯對話框…………………………………...31 4.73 設計商品信息管理對話框…………………………………...32 4.8 庫存操作管理模塊設計
4.81 設計入庫操作管理對話框…………………………………34 4.82 設計入庫單編輯對話框……………………………………..35 4.83 設計出庫操作管理對話框…………………………………..37 4.84 設計出庫操作編輯對話框 ………………………………..37 4.85 設計庫存盤點管理對話框…………………………………39 4.86 設計庫存盤點編輯對話框 …………………………………40 4.9 庫存警示管理模塊設計
4.91 設計商品數量報警管理模塊………………………………...41 4.92 設計商品失效報警管理模塊 ……………………………….42 第五章 結束語
5.1開發中的問題和解決辦法………………………………………….44 5.2系統不足之處………………………………………………………44 第六章 致謝 …………………………………………………………..45 第七章 參考文獻 ……………………………………………………..45
1.1系統開發的背景
20世紀,隨著全球經濟的蓬勃發展,眾多經濟學家紛紛提出了新的管理理論。20世紀50年代,西蒙提出管理依賴于信息和決策的思想。同時期的維納發表了控制論,他認為管理是一個控制過程。1958年,蓋爾寫到:“管理將以較低的成本得到及時準確的信息,做到較好的控制。”這個時期,計算機開始用于會計工作,出現數據處理一詞。
1970年,Walter T.Kennevan給剛剛出現的管理信息系統一詞下了一個定義:“以口頭或書面的形式,在合適的時間向經理、職員以及外界人員提供過去的、現在的、預測未來的有關企業內部及其環境的信息,以幫助他們進行決策。”在這個定義里強調了用信息支持決策,但并沒有強調應用模型,沒有提到計算機的應用。
1985年,管理信息系統的創始人,明尼蘇達大學的管理學教授Gordon B.Davis給了管理信息系統一個較完整的定義,即“管理信息系統是一個利用計算機軟硬件資源,手工作業,分析、計劃、控制和決策模型以及數據庫的人-機系統。它能提供信息支持企業或組織的運行、管理和決策功能。”這個定義全面地說明了管理信息系統的目標、功能和組成,而且反映了管理信息系統在當時達到的水平。1.2當前倉庫管理現狀分析及設計倉庫管理系統的意義
一直以來人們使用傳統的人工方式管理庫存。這種管理方式存在著許多缺點,諸如效率低,保密性差等,而且時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少的困難。對于企業來說為了管理好倉庫,將付出大量的人力和物力。因此設計一款倉庫管理系統是非常重要的。它帶來的優點是:它可以全面的管理倉庫中儲存的商品和貨物,縮短了庫存信息流轉時間,使企業的物料管理層次分明、井然有序,為采購、營銷和生產提供了依據,從而提高企業的經營效率。因此,庫存管理系統能夠為用戶提供充足的信息和快捷的查詢手段。
隨著科學技術的不斷提高,計算機科學不斷發展,其強大的功能已經被人們深刻認識,它已經進入了人類社會的各個領域并發揮著越來越重要的作用.1.3系統開發工具的選擇及介紹 ? 系統開發環境
操作系統:Windows XP Professional 簡體中文版 開發平臺: Visual Studio 2005簡體中文版 ? 系統開發工具的選擇
實現該系統的方法有很多,之所以選擇Visual C++作為開發工具,不僅僅因為曾經有過使用它的經驗,看中的更是它的功能強大和使用方便。它本身不僅具有極其強大的編程能力,它允許選擇和管理外接程序,并內含多種實用控件,這些對Visual C++的擴充又進一步增強了它的開發環境的能力。? 開發平臺介紹 Visual Studio 可以用來創建 Windows平臺下的 Windows 應用程序和網絡應用程序,也可以用來創建網絡服務、智能設備應用程序和 Office 插件。
1998 年,微軟公司發布了 Visual Studio 6.0。所有開發語言的開發環境版本均升至 6.0。這也是 Visual Basic 最后一次發布,從下一個版本(7.0)開始,Microsoft Basic 進化成了一種新的面向對象的語言:Microsoft Basic.NET。由于微軟公司對于 Sun 公司 Java 語言擴充導致與 Java 虛擬機不兼容而 Sun 被告上法庭,微軟在后續的 Visual Studio 中不再包括面向 Java 虛擬機的開發環境。
2002 年,隨著.NET 口號的提出與 Windows XP / Office XP 的發布,微軟發布了 Visual Studio.NET(內部版本號為 7.0)。在這個版本的 Visual Studio 中,微軟剝離了 Visual FoxPro 作為一個單獨的開發環境以 Visual FoxPro 7.0 單獨銷售,同時取消了 Visual InterDev。.NET 的通用語言框架機制(Common Language Runtime, CLR),其目的是在同一個項目中支持不同的語言所開發的組件。所有 CLR 支持的代碼都會被解釋成為 CLR 可執行的機器代碼然后運行。
Visual Basic、Visual C++ 都被擴展為支持托管代碼機制的開發環境,且 Visual Basic.NET更是從 Visual Basic 脫胎換骨,徹底支持面向對象的編程機制。而 Visual J++ 也變為 Visual J#。后者僅語法同 Java 相同,但是面向的不是 Java 虛擬機,而是.NET Framework。
2003 年,微軟對 Visual Studio 2002 進行了部分修訂,以 Visual Studio 2003 的名義發布(內部版本號為 7.1)。Visio 作為使用統一建模語言(UML)架構應用程序框架的程序被引入,同時被引入的還包括移動設備支持和企業模版。.NET 框架也升級到了 1.1。
2005 年,微軟發布了 Visual Studio 2005。.NET 字眼從各種語言的名字中被抹去,但是這個版本的 Visual Studio 仍然還是面向.NET 框架的(版本2.0)。它同時也能開發跨平臺的應用程序,如開發使用微軟操作系統的手機的程序等。總體來說是一個非常龐大的軟件,甚至包含代碼測試功能。
這個版本的 Visual Studio 包含有眾多版本,分別面向不同的開發角色。
Microsoft為單獨工作或在小型團隊中的專業開發人員提供了兩種選擇,Visual Studio 2005 Professional Edition和用于Microsoft Office系統的Visual Studio 2005工具。每種版本都在標準版的特性上進行了擴展,包括用于遠程服務程序開發和調試、SQL Server2005開發的工具,以及完整的、沒有限制的開發環境。
1.4 ADO數據訪問技術
ADO(ActiveX Data Objects,ActiveX數據對象)是Microsoft提出的應用程序接口(API)用以實現訪問關系或非關系數據庫中的數據。象Microsoft的其它系統接口一樣,ADO是面向對象的。它是Microsoft全局數據訪問(UDA)的一部分,Microsoft認為與其自己創建一個數據,不如利用UDA訪問已有的數據庫。為達到這一目的,Microsoft和其它數據庫公司在它們的數據庫和Microsoft的OLE數據庫之間提供了一個“橋”程序,OLE數據庫已經在使用ADO技術。ADO的一個特征(稱為遠程數據服務)支持網頁中的數據相關的ActiveX控件和有效的客戶端緩沖。作為ActiveX的一部分,ADO也是Microsoft的組件對象模式(COM)的一部分,它的面向組件的框架用以將程序組裝在一起。ADO從原來的Microsoft數據接口遠程數據對象(RDO)而來。RDO與ODBC一起工作訪問關系數據庫,但不能訪問如ISAM和VSAM的非關系數據庫。
ADO 是對當前微軟所支持的數據庫進行操作的最有效和最簡單直接的方法,它是一種功能強大的數據訪問編程模式,從而使得大部分數據源可編程的屬性得以直接擴展到你的Active Server 頁面上。可以使用ADO 去編寫緊湊簡明的腳本以便連接到 Open Database Connectivity(ODBC)兼容的數據庫和 OLE DB 兼容的數據源,這樣 ASP 程序員就可以訪問任何與 ODBC 兼容的數據庫,包括 MS SQL SERVER、Access、Oracle 等等。
ADO是一種面向對象的編程接口,微軟介紹說,與其同IBM和Oracle提倡的那樣,創建一個統一數據庫,不如提供一個能夠訪問不同數據庫的統一接口,這樣會更加實用一些。為實現這一目標,微軟在數據庫和微軟的OLE DB中提供了一種“橋”程序,這種程序能夠提供對數據庫的連接。
開發人員在使用ADO時,其實就是在使用OLE DB,不過OLE DB更加接近底層。ADO的一項屬性??遠程數據服務,支持“數據倉庫”ActiveX 組件以及高效的客戶端緩存。作為ActiveX的一部分,ADO也是COM組件的一部分。ADO是由早期的微軟數據接口?遠程數據對象RDO演化而來的。RDO同微軟的ODBC一同連接關系數據庫,不過不能連接非關系數據庫。
ADO向我們提供了一個熟悉的,高層的對OLE DB的Automation封裝接口。對那些熟悉RDO的程序員來說,你可以把OLE DB比作是ODBC驅動程序。如同RDO對象是ODBC驅動程序接口一樣,ADO對象是OLE DB的接口;如同不同的數據庫系統需要它們自己的ODBC驅動程序一樣,不同的數據源要求它們自己的OLE DB提供者(OLE DB provider)。目前,雖然OLE DB提供者比較少,但微軟正積極推廣該技術,并打算用OLE DB取代ODBC。
ADO向程序員提供了很多好處。包括易于使用,熟悉的界面,高速度以及較低的內存占用(已實現ADO2.0的Msado15.dll需要占用342K內存,比RDO的Msrdo20.dll的368K略小,大約是DAO3.5 的Dao350.dll所占內存的60%)。同傳統的數據對象層次(DAO和RDO)不同,ADO可以獨立創建。因此你可以只創建一個 “Connection”對象,但是可以有多個,獨立的“Recordset”對象來使用它。ADO針對客戶/服務器以及WEB應用程序作了優化。第二章 系統設計
2.1系統需求分析
隨著科學技術的發展,越來越多的企業開始用計算機管理倉庫。而現在的倉庫管理系統多種多樣,而倉庫管理的特點是信息處理量比較大。所以管理的物資設備種類繁多,而且由于入庫單,出庫單,需求單等單據發生量特別大,關聯信息多,查詢和統計的方式各不相同。因此在管理上實現起來有一定的困難。在管理的過程中經常會出現信息的重復傳遞,單據,報表種類繁多,各個部門管理規格不統一等問題。
在本系統的設計過程中,為了克服以上困難,滿足計算機管理的需要,我們采取了下面的一些原則。
●統一各種原始的單據的格式,統一帳目和報表的格式。●刪除不必要的管理冗余,實現管理規范化、科學化。
●程序代碼標準化,軟件統一化,確認軟件的可維護行和實用性。●界面盡量簡單化,做到實用、方便,盡量滿足企業中不同層次員工的需要。2.2系統開發目標
系統開發的總體任務是實現企業物資設備管理的系統化,規范化和自動化,從而達到提高企業物資管理的效率的目的。2.3系統功能分析 2.31系統功能描述(1)基本信息管理 基本信息管理包括對客戶信息、倉庫信息和用戶信息信息的管理。(2)商品信息管理
對于商品各種信息的管理。(3)庫存操作管理
庫存操作管理可以實現入庫管理、出庫管理和庫存盤點等功能。(4)庫存警示管理
庫存警示是指對庫存中接近或超過臨界值的商品進行報警。在商品信息中,包含商品的合理數量范圍和有效期限。商品數量小于合理數量下限稱為短線;商品數量大于合理數量的上限成為超儲。商品出現短線、超儲、接近或超過有效期限時都需要報警。(5)統計查詢管理功能
統計查詢管理可以對庫存商品進行各種類型的統計和查詢。從而使用戶能夠全面的了解庫存狀況。2.32 系統功能模塊的劃分
基于對系統的分析,可以得到如圖所示的系統功能模塊圖:
本系統將用戶劃分為兩種類型,即系統管理員用戶和普通用戶。系統管理員用戶可以管理其他用戶信息,而在其他方面與所有用戶的權限相同。
2.33系統流程分析
所謂系統流程就是用戶在使用系統時的工作過程。對于多類型用戶的管理系統來說,每一類用戶的工作流程都是不相同的。多用戶系統的工作流程都是從用戶登陸模塊開始,對用戶的身份進行認證。身份認證可以分為以下兩個過程:
(1)確認用戶是否是有效的系統用戶。(2)確定用戶的類型。
第一個過程決定用戶能否進入系統。第二個過程根據用戶的類型決定用戶的操作權限,從而決定用戶的工作界面。因此得到它的系統流程分析圖如下:
第三章 數據庫設計 3.1數據庫需求分析
在本設計中,通過對企業倉庫管理的內容和系統流程分析,設計的數據項和數據結構如下:
(1)客戶信息。包括的數據項有客戶編號、名稱、類型等。(2)倉庫信息。包括倉庫編號、名稱和說明等。(3)用戶信息。包括用戶名、密碼、員工姓名等信息。(4)商品管理信息。包括商品類別,商品編號等信息。
(5)庫存操作管理信息。包括入庫和出庫操作需要記錄的商品信息、倉庫信息、經辦人、涉及金額和入庫時間等信息。有了上面的數據結構、數據項,就能進行下面的數據庫設計。3.2 數據庫概念結構設計
這一設計階段是在需求分析的基礎上,設計出能夠滿足用戶需求的各種實體,以及它們之間的關系,為后面的邏輯結構設計打下基礎。本設計根據上面的設計規劃出的實體有客戶實體、倉庫實體、用戶實體、商品類別實體、商品實體、入庫實體、出庫實體、庫存實體。各個實體的E-R圖描述如下:
客戶實體的E-R圖
倉庫實體E-R圖
用戶實體E-R圖
商品類別E-R圖
商品類別E-R圖
入庫實體E-R圖
出庫實體E-R圖
庫存實體 E-R圖
3.3 數據庫邏輯結構設計及實現
倉庫管理系統數據庫中的各個表格的設計結果如下面的幾個表格所示。每個表格表示在數據庫中的一個表。數據庫的實現采用SQL Sever 2005。
(1)客戶信息表(Client)
說明:Cid為客戶編號、Cname為客戶名稱、Ctype為客戶類型其中包括(1、供應商
2、供貨商)、Ctype為聯系人、Address為通信地址、Postcode為郵政編碼、Phone為聯系電話、Fax為傳真電話、Memo為備注信息。
(2)倉庫信息表(Storehouse)
說明:Sid為倉庫編號、Sname為倉庫名稱、Memo為倉庫說明。(3)用戶信息表(Users)
說明:UserName為用戶名、Pwd為密碼、User_type為用戶類型(1、系統管理員用戶,2、普通用戶)(4)商品類別表(ProType)
說明:TypeId為商品類別編號、TypeName為商品類別名稱、UpperId為上級商品類別
(5)商品信息表(Product)
說明:Pid為商品編號、Pname 為商品名稱、TypeId為商品類型編號、Pstyle商品規格、Punit為計量單位、Pprice為參考價格、Plow為商品數量下限、Phigh為商品數量上限、Valid為有效期、AlarmDay為在到達有效期前幾天發出警告。(6)入庫操作信息表(Storeln)
說明:SiType為入庫操作類型,包括銷售出庫、退貨出庫、用料出庫等。Pid為入庫商品編號、MakeDate為生產日期、Pprice為入庫商品單價、Pnum為入庫商品數量、Cid為客戶編號、Sid為倉庫編號、EmpName為經辦人、OptDate為入庫日期(7)出庫操作信息表(TakeOut)
說明:Ttype為入庫操作類型,包括銷售出庫、退貨出庫、用料出庫等。Pid為入庫商品編號、MakeDate為生產日期、Pprice為入庫商品單價、Pnum為入庫商品數量、Cid為客戶編號、Sid為倉庫編號、EmpName為經辦人、OptDate為入庫日期(8)庫存商品信息表(ProlnStore)
說明: SpId為商品存儲編號、Pid為商品編號、Pprice為商品入庫單價、Pnum為商品數量、MakeDate為生產日期、Sid為倉庫編號 第四章 系統各主要功能模塊的實現
4.1主界面的設置
根據對系統功能分析,主界面的菜單項包括基本信息管理、商品信息管理、庫操作管理和庫存警示管理。如圖所示:
當用戶單擊基本信息管理時,顯示客戶信息管理、倉庫信息管理、用戶信息管理、修改用戶密碼、退出系統菜單項。添加這些菜單項如圖所示:
當用戶單擊商品信息管理時,顯示商品類別管理、商品信息管理。添加這些菜單項如圖所示:
當用戶單擊庫存操作管理時,顯示入庫操作、出庫操作、庫存盤點。添加這些菜單項如圖所示:
當用戶單擊庫存警示管理時,顯示數量報警和實效報警。添加這些菜單項如圖所示:
4.2主要各功能模塊所涉及的類的添加
根據數據庫邏輯設計,我們可以為這些表添加相應的類。
1、CClient類用來管理客戶表的數據庫操作。
2、CStorehouse類用來管理表Storehouse的數據庫操作。
3、CUsers類用來管理表Users的數據庫操作。
4、CProType類用來管理表ProType的數據庫的操作。
5、CProductl類用來管理表Product的數據庫操作。
6、CStoreln類用來管理表Storeln的數據庫操作。
7、CTakeOut類用來管理表TakeOut的數據庫操作。
8、CProInStore類用來管理表ProInStore的數據庫操作。4.3登陸模塊設計 登陸對話框布局如圖:
其ID值設為IDD_USERNAME_DIALOG。
用戶要使用系統,首先必須通過系統的身份認證,這個過程叫做登陸。此模塊的功能就是要進行身份認證。
在登陸對話框用戶首先輸入用戶名,然后輸入密碼。輸入完畢時,點擊確定將發送BN_CLICKED消息。在確認按鈕處添加此消息響應函數CLoginDlg :OnOK()。此函數的主要功能是檢查用戶輸入數據的有效性,如果輸入的信息不符合要求會自動退出程序。主要代碼如下: CLoginDlg::OnOK(){ ……
//檢查數據有效性
if(m_UserName == “"){MessageBox(”請輸入用戶名“);
return;} if(m_Pwd == ”“){ MessageBox(”請輸入密碼“);
return;}
CUsers user;//定義CUsers對象
user.GetData(m_UserName);//用于從表Users中讀取數據
//如果讀取的數據與用戶輸入數據不同,則返回
if(user.GetPwd()!= m_Pwd){ MessageBox(”用戶信息不正確,無法登錄!“);
return;} }
當用戶單擊取消時,添加CLoginDlg::OnBnClickedCancel()函數來響應此消息。此函數的功能是退出程序。主要代碼如下: void CLoginDlg::OnBnClickedCancel(){ OnCancel();} 4.4客戶管理模塊設計
客戶管理模塊可以實現以下功能:
1、添加客戶。
2、修改客戶信息。
3、刪除客戶。
4、查看客戶信息。4.41 設計客戶信息管理對話框 對話框布局如圖:
其ID值設為IDD_CLENTMAN_DIALOG。對話框對應的類為CClientManDlg。它繼承CDialog類。添加控件包括四個按鈕控件,一個組合框、ADO Data和DataGrid控件。
該對話框的主要函數為Refresh_Data()、OnAddButtom()、OnModiButton()、OnDelButton()。1.Refresh_Data()函數
它的功能是為ADO Data控件設置數據源,從而決定在DataGrid控件中顯示的數據內容。主要代碼如下: Refresh_Data(){ CString cSource;
//設置SELECT語句,按客戶單位排序 ……
m_adodc.SetRecordSource(cSource);m_adodc.Refresh();//設置表格列寬度
} 2.OnAddButtom()函數
當用戶單擊“添加”按鈕時,執行此函數。其功能是打開編輯對話框。主要代碼如下: OnAddButton(){ ……
//打開編輯對話框
CClientEditDlg dlg;……
if(dlg.DoModal()== IDOK)…… } 3.OnModiButton()函數
當用戶單擊“修改”按鈕時,執行此函數。其功能是彈出編輯對話框進行修改記錄操作。主要代碼如下: OnModiButton(){ ……
CClientEditDlg dlg;dlg.cCid = m_datagrid.GetItem(0);//記錄編號
……
if(dlg.DoModal()== IDOK)
Refresh_Data();} 4.OnDelButton()函數
當用戶單擊“刪除”按鈕時,執行此函數,其功能是刪除所選擇的記錄。主要代碼如下: OnDelButton(){ ……
CClient clt;
clt.sql_delete(m_datagrid.GetItem(0));刪除記錄
Refresh_Data();
} 4.42 設計客戶信息編輯對話框
編輯客戶信息的對話框可以用來添加和修改客戶信息,對話框名稱為IDD_CLIENTEDIT_DIALOG。對話框的布局如圖:
為對話框創建CClientEditDlg類并繼承與CDialog類。
當用戶單擊“確定”按鈕,添加OnOK()函數,其功能是將輸入的信息保存到數據庫中。主要代碼如下: OnOK(){ …..CClient clt;clt.SetCname(m_Cname);//客戶單位
……
clt.sql_insert();插入進數據庫
……
clt.sql_update(cCid);} 4.5 倉庫管理模塊設計
倉庫管理模塊可以實現以下功能:
1、添加倉庫信息
2、修改倉庫信息
3、刪除倉庫信息
4、查看倉庫信息
4.51 設計倉庫信息管理對話框
對話框布局如圖:
對話框ID為IDD_STOREHOUSEMAN_DIALOG.對話框對應的類為CStoreHouseManDlg。該對話框的主要函數為Refresh_Data()、OnAddButtom()、OnModiButton()、OnDelButton()。其功能與客戶信息管理對話框函數的功能一樣。函數實現過程也非常類似。在此不再詳細說明。
4.52 設計倉庫信息編輯對話框
編輯倉庫信息的對話框可以用來添加和修改倉庫信息,其ID為IDD_STOREHOUSEEDIT_DIALOG。對話框的布局如圖:
對話框對應的類為CStoreHouseEditDlg。當用戶單擊“確定”時,執行OnOK()函數用來把在對話框輸入的信息添加或修改到數據庫中。主要代碼如下:
CStoreHouseEditDlg::OnOK(){ ……
CStorehouse sh;sh.SetSname(m_Sname);//倉庫名稱
sh.SetMemo(m_Memo);//倉庫說明
…… //表示插入新記錄
sh.sql_insert();
……
} 4.6用戶管理模塊設計
根據用戶類型的不同,用戶管理模塊的功能也不相同。可以包含以下情形:
1、Admin用戶可以創建系統管理員或普通用戶、復位用戶密碼、刪除系統管理員或普通用戶,也可以修改自身的密碼。
2、系統管理員用戶可以創建普通用戶、對普通用戶的密碼進行復位、刪除普通用戶,也可以修改自身密碼。
3、普通用戶只能修改自身密碼。4.61設計用戶信息管理對話框 用戶信息管理對話框ID為IDD_USERMAN_DIALOG,對話框的布局如圖:
對話框對應的類為CUserManDlg。對話框中使用DataList控件顯示用戶列表,使用ADO Data控件為其提供數據源。當用戶單擊“添加”按鈕時,執行OnAddButtom()函數,其功能是顯示用戶信息編輯對話框。主要代碼為: OnAddButton(){ CUserEditDlg dlg;dlg.iUserType = 2;if(dlg.DoModal()== IDOK)
m_adodc.Refresh();} 當用戶單擊“密碼復位”按鈕時,執行OnModiButton()函數,功能是對用戶密碼進行復位,復位密碼默認值為888888。主要代碼如下:OnModiButton(){ ……
CUsers usr;
usr.SetPwd(”888888“);//設置默認密碼
usr.sql_updatePwd(m_datalist.GetText());
MessageBox(”密碼已經復位“);} 當用戶單擊“刪除”時,執行OnDelButton()函數,其功能刪除用戶。主要代碼如下: OnDelButton(){ ……
CUsers usr;
usr.sql_delete(m_datalist.GetText());
m_adodc.Refresh();} 4.62 設計用戶信息編輯對話框
用戶信息編輯對話框的ID為IDD_USEREDIT_DIALOG,對話框布局如圖:
對話框對應的類為CUserEditDlg。當用戶單擊“確定”按鈕時,執行OnOK()函數,其功能是創建一個新用戶,并將其加入到數據庫中。主要代碼如下: OnOK(){CUsers usr;……
//插入用戶記錄
usr.sql_insert();} 4.63設計修改用戶密碼的對話框 修改用戶密碼對話框的ID為IDD_CHANGEPWD_DIALOG,對話框的布局如圖:
對話框對應的類為CChangePwdDlg。當用戶單擊“確定”按鈕時,執行OnOK()函數,其功能是對用戶密碼進行修改。主要代碼如下: CChangePwdDlg::OnOK(){ ……
user.SetPwd(m_NewPwd1);user.sql_updatePwd(m_UserName);//更新當前用戶密碼
…… } 4.7商品管理模塊設計
商品管理模塊可以實現以下功能:
1、商品類別的添加、修改、刪除。
2、商品信息的添加、修改、刪除。4.71設計商品類別管理對話框
商品類別管理對話框的ID為IDD_PROTYPEMAN_DIALOG,對話框布局入圖:
對話框對應的類為CProtypeManDlg。當用戶單擊一級商品類別列表框時,執行OnClickDatalist()函數,其功能是選擇一級商品列表的內容時,決定二級商品類別列表框顯示的內容。主要代碼如下:CProTypeManDlg::OnClickDatalist1(){ CString cUpper;cUpper = m_datalist1.GetBoundText();//讀取選擇類別的編號
//設置二級類別的記錄源
m_adodc2.SetRecordSource(”SELECT * FROM ProType WHERE UpperId=“ + cUpper);m_adodc2.Refresh();} 當用戶單擊左側的“添加”按鈕時,執行OnAdd1Buttom()函數,其功能是顯示商品類別編輯對話框。主要代碼如下:CProTypeManDlg::OnAdd1Button(){ CProTypeEditDlg dlg;dlg.cTypeId = ”“;//表示添加記錄
dlg.cTypeName = ”“;dlg.iUpperId = 0;//表示一級類別 //打開編輯對話框
if(dlg.DoModal()== IDOK)
m_adodc1.Refresh();} 當用戶單擊左側“修改”按鈕時,執行OnModilButton()函數,其功能與“添加”按鈕功能類似。
當用戶單擊左側的“刪除”按鈕時,執行OnDel1Button()函數,其功能刪除商品類別。主要代碼如下: CProTypeManDlg::OnDel1Button(){ pt.sql_delete(Tid);//刪除
m_adodc1.Refresh();//刷新 } 剩下右側的按鈕與左側的按鈕功能類似,只不過刪除的商品類別不一樣。參照左側功能函數即可。4.72 設計商品類別編輯對話框
編輯商品類別信息的對話框可以用來添加和修改商品類別信息。對話框ID為IDD_PROTYPEEDIT_DIALOG。其布局如圖:
對話框對應的類為CProTypeEditDlg。當用戶單擊“確定”按鈕時,執行OnOK()函數,其功能是添加商品類別到數據庫中。主要代碼如下: CProTypeEditDlg::OnOK(){ ……
CProType pt;pt.SetTypeName(m_TypeName);//類別名稱
……
if(cTypeId == ”“)//表示插入數據
pt.sql_insert();
……
else
pt.sql_update(cTypeId);
……
} 4.73 設計商品信息管理對話框
商品信息管理對話框可以按照商品類別查詢商品信息,也可以對商品信息進行添加,修改和刪除等操作。對話框ID為IDD_PROMAN_DIALOG。對話框的布局如圖:
為對話框添加CProManDlg類。在對話框中有3個ADO Data控件,它們分別為一級商品類別、二級商品類別和商品表格提供數據源。添加、修改、刪除操作函數的功能與其他對話框功能類似在此不再詳述。此對話框用的主要函數是當用戶單擊一級商品類別時,執行OnClickDatacombol()函數,其功能是根據用戶選擇的一級類別來設置要顯示的二級商品類別。主要代碼如下: CProManDlg::OnClickDatacombo1(short Area){ ……
cUpper = m_datacombo1.GetBoundText();//讀取選擇類別的編號
//設置二級類別的記錄源
m_adodc2.SetRecordSource(”SELECT * FROM ProType WHERE UpperId=“ + cUpper);m_adodc2.Refresh();} 4.74 設計商品信息編輯對話框 編輯商品信息的對話框
當用戶單擊“確定”按鈕時,執行OnOK()函數,功能將輸入的數據保存到數據庫中。其代碼如下: CProEditDlg::OnOK(){ CProduct pr;……
pr.sql_insert();//插入數據庫
pr.sql_update(cPid);CDialog::OnOK();} 4.8 庫存操作管理模塊設計
庫存操作管理模塊可以實現以下功能:
1、入庫操作的添加、修改、刪除、2、出庫操作的添加、修改和刪除。
3、庫存盤點的添加、修改、刪除。4.81 設計入庫操作管理對話框
入庫單管理對話框的ID為IDD_STOREINMAN_DIALOG。對話框的布局如圖:對話框所對應的類為CStoreInManDlg。調用的主要函數是
Refresh_Data()、OnAddButton()函數。Refresh_Data()的功能是設置ADO Data控件的記錄源與其他對話框的ADO控件的功能類似,OnAddButton()函數與其他對話框的添加函數類似。代碼不再詳細描述。
4.82 設計入庫單編輯對話框
入庫單編輯對話框的ID為IDD_STOREINDIT_DIALOG。對話框的布局如圖:
對話框對應的類為CStoreInEditDlg。在此對話框中使用了5個ADO Data控件,功能與其他對話框的ADO Data控件相同。此對話框主要函數是OnSelchangeClttypeCombo()和OnChangePpriceEdit()函數。
1、OnSelchangeClttypeCombo()函數功能是當用戶在客戶類別組合框中選擇不同類別時,根據用戶所選擇的客戶類別設置查詢條件。主要代碼如下: OnSelchangeClttypeCombo(){ //設置查詢客戶的SELECT語句
CString cSource;cSource = ”SELECT * FROM Client“;//根據客戶類別設置查詢條件
if(m_CltType.GetCurSel()== 0)
cSource += ” WHERE Ctype = 1“;else
cSource += ” WHERE Ctype = 2“;m_Client.SetText(”“);//清除客戶組合框的顯示內容
m_adodc1.SetRecordSource(cSource);//設置數據源,重新客戶列表
m_adodc1.Refresh();}
2、OnChangePpriceEdit()函數功能是當用戶改變商品單價數據時,總價格也隨著變化而變化。主要代碼如下: CStoreInEditDlg::OnChangePpriceEdit(){ UpdateData(TRUE);//讀取輸入數據到成員變量 m_Price.Format(”%.2f“, m_Pprice * m_Pnum);//計算總價格
UpdateData(FALSE);
//顯示成員變量值 } 當用戶單擊“確定“按鈕時執行OnOK()函數,將輸入的信息插入到數據庫中。
4.83 設計出庫操作管理對話框
出庫操作管理對話框的ID為IDD_TAKEOUTMAN_DIALOG.對話框布局如圖:
對話框所對應的類為CTakeOutManDlg。主要函數Refresh_Data()、OnAddButton()。功能與入庫管理對話框相似。不再詳述。4.84 設計出庫操作編輯對話框
出庫操作編輯對話框的ID為IDD_TAKEOUTEDIT_DIALOG。對應的類為CTakeOutEditDlg。布局如圖:
對話框中的DataGrid控件用于根據用戶選擇的商品和倉庫信息顯示相關的庫存商品,用戶可以從其中選擇需要出庫的商品,然后輸入出庫數量。在顯示庫存商品時,需要查詢默認商品的價格數量,并顯示在表格下方。因此,需要調用OnClickDatagrid2()函數。程序將從DataGrid控件中讀取商品價格和庫存數量等信息,并顯示在對話框的相關位置。主要代碼如下:OnClickDatagrid2(){ ……
m_Pprice = m_datagrid.GetItem(1);//從表格中讀取產品價格
m_Pnum1 = m_datagrid.GetItem(2);//從表格中讀取產品庫存數量
UpdateData(FALSE);……
} 當用戶點擊“確定“按鈕時,執行OnOK()函數,將編輯的倉庫出庫單保存到數據庫中。主要代碼如下: { ……
CProInStore pi;CTakeOut to;CString cType;//插入出庫數量
to.sql_insert();//@@@@@ 保存庫存產品信息 @@@@@ ……
pi.sql_insert();} 4.85 設計庫存盤點管理對話框
庫存盤點管理對話框的ID為IDD_CHECKMAN_DIALOG。對話框的布局如圖:對話框對應的類為CCheckManDlg。對話框主要函數是
Refresh_Data()。功能是設置數據源,查詢相關庫存盤點信息。主要代碼如下:Refresh_Data(){CString cPid;//保存當前選擇的產品編號 ……
CString cSid;//保存當前選擇的倉庫編號
…..//設置SELECT語句
CString cSource;cSource = ”SELECT SpId, Pprice As 產品入庫單價, Pnum As 庫存數量, MakeDate As 生產日期“;cSource += ” FROM ProInStore WHERE Pid=“ + cPid + ” AND Sid=" + cSid;//設置記錄源
m_adodc6.SetRecordSource(cSource);m_adodc6.Refresh();……} 4.86 設計庫存盤點編輯對話框
庫存盤點編輯對話框用于編輯指定商品的庫存數量,從而糾正庫存數量可能存在的錯誤。對話框的ID為IDD_CHECKEDIT_DIALOG。對話框的布局如圖: 對話框類為CCheckEditDlg。當用戶單擊“確定”按鈕時,執行OnOK()函數。其功能是更新庫存數量。代碼如下: OnOK(){ UpdateData(TRUE);//將用戶輸入數據讀取到成員變量中
//更新庫存數量
CProInStore obj;obj.SetPnum(m_NewNum);obj.sql_updatePnum(cSpId);} 4.9 庫存警示管理模塊設計
庫存警示管理模塊可以實現以下功能:
1、實現數量報警管理。即當庫存商品的數量低于下線或超過上線時報警。
2、實現失效報警管理,即當庫存商品即將達到有效期時報警。4.91 設計商品數量報警管理模塊
商品數量報警信息管理對話框用來顯示所有需要進行數量報警的商品信息。為了更方便的統計商品數量報警信息,需要創建一個視圖Total_Num,它的作用是統計每種庫存商品數量。主要代碼如下: USE [Stock] GO ALTER VIEW [dbo].[Total_Num] AS SELECT dbo.ProInStore.Pid, SUM(dbo.ProInStore.Pnum)AS Total FROM dbo.ProInStore INNER JOIN dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid GROUP BY dbo.ProInStore.Pid GO 商品數量報警信息管理對話框的ID為IDD_NUMALARM_DIALOG。對話框布局如圖:對話框對應的類為CNumAlarmDlg。主要函數是Refresh_Data()。功能與其他對話框的Refresh_Data()類似。在此不再詳述。
警告類型分為短線和超儲兩種情況,程序將根據用戶選擇的類型進行統計。
4.92 設計商品失效報警管理模塊
商品失效報警信息管理對話框用來顯示所有需要進行失效報警的商品信息。為了更好方便的統計商品失效報警信息,需要創建一個視圖Vaild,它的功能是統計庫存商品價格、數量、生產日期、倉庫名稱和距離失效期的天數等信息。主要代碼如下: USE [Stock] GO ALTER VIEW [dbo].[Valid] AS SELECT dbo.ProInStore.SpId AS 庫存記錄編號, dbo.Product.Pname AS 商品名稱,dbo.ProInStore.Pprice AS 商品價格, dbo.ProInStore.Pnum AS 商品數量,dbo.ProInStore.MakeDate AS 生產日期, dbo.Storehouse.Sname AS 倉庫名稱,ROUND(DATEDIFF(day, DATEADD(day,dbo.Product.Valid, dbo.ProInStore.MakeDate),GETDATE()), 0)AS 距離失效期的天數 FROM dbo.ProInStore INNER JOIN dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid AND DATEDIFF(day,GETDATE(), dbo.ProInStore.MakeDate)
>= dbo.Product.Valid-dbo.Product.AlarmDays INNER JOIN dbo.Storehouse ON dbo.ProInStore.Sid = dbo.Storehouse.Sid GO 在SELECT語句中,使用了如下的SQL Server函數:
1、DATEADD 在向指定日期加上一段時間的基礎上,返回新的datatime值。
2、DATEDIFF 返回兩個指定日期的時間差。
3、ROUND 根據指定的長度和精度對數字表達式進行四舍五入。
4、GETDATE 按datetime值的SQL Server標準內部格式返回當前系統日期和時間。
商品失效報警信息管理對話框ID為IDD_VALID_DIALOG。對應的類為CValidDlg。對話框的布局與商品數量報警信息管理對話框類似。因為功能已經在視圖里實現了所以此對話框不用添加額外的函數。第五章 結束語
5.0 開發中的問題和解決辦法
如何高效的在VC++中添加類與對話框及消息響應函數。為了解決這些問題,本設計中的所設計的類與對話框采用利用VC++向導生成,然后在自動生成的基礎上修改,節省了相當一部分繁瑣的時間加快了程序開發的速度,節省了開發的時間。
在設計中使用了大量的數據,設計了大量的表格。為了便于實現數據與表的連接、表與類的連接,采用了數據庫軟件。這樣只要調用數據庫本身的查詢、插入、修改等語句就以輕松的操作這些數據。使理論上的知識很好的與實際問題相結合。5.1 系統不足之處
在本設計中,還有很多不足之處:界面的美觀還可以進行更進一步的改善,還可以再增加一些功能,比如在狀態欄增加時間顯示,可以讓使用人員很方便的看到當前時間。也可以增加實時的通訊功能,可以讓管理員與普通用戶之間進行實時通訊。本系統在處理大量的數據時能力還很欠缺,應該再設計時采用一些適當的算法對本系統進行優化。第六章 致謝
在論文完成之際,我要特別感謝我的指導老師呂知辛老師的熱情關懷和悉心指導。在我撰寫論文的過程中,呂知辛老師傾注了大量的心血和汗水,無論是在論文的選題、構思和資料的收集方面,還是在論文的研究方法以及成文定稿方面,我都得到了呂知辛老師悉心細致的教誨和無私的幫助,特別是他廣博的學識、深厚的學術素養、嚴謹的治學精神和一絲不茍的工作作風使我終生受益,在此表示真誠地感謝和深深的謝意。
在論文的寫作過程中,也得到了許多同學的寶貴建議,在此一并致以誠摯的謝意。感謝所有關心、支持、幫助過我的良師益友。
參考文獻
【1】孫鑫.VC++深入詳解.北京:電子工業出版社.2006
【2】屈磊 李媛媛.VisualC++開發入門與編程實踐.北京:電子工業出版社2007
【3】(美)Sartaj Sahni.數據結構、算法與應用——C++語言描述.北京:機械工業出版社.2001 【4】王立副 麻志毅 張世琨.軟件工程.北京:北京大學出版社.1999.【5】苗雪蘭 劉瑞新 宋會群.數據庫技術及應用.北京:機械工業出版社.2005 【6】李濤 劉凱奎 王永晈.數據庫開發與實例.北京:清華大學出版社.2006 【7】啟明工作室.SQL Server 2005 數據庫應用系統開發.北京:人民郵電出版社.2007 【8】(美)Timothy A.Budd.面向對象編程導論.北京:機械工業出版社.2003 【9】鄭阿奇.Visual C++教程[M].北京:機械工業出版社,2004 【10】東方人華等.Visual C++ 6.0范例入門與提高[M].北京:清華大學出版社.2003
【11】:劉誠方,曾昭榮.BorlandC++Windows初級程序設計.天津:天津科學技術出版社.1997.1
【12】陳慧南.數據結構:使用C++描述.南京:東南大學出版社.2001