2023年倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)論文(三篇)

字號(hào):

    在日常的學(xué)習(xí)、工作、生活中,肯定對(duì)各類(lèi)范文都很熟悉吧。寫(xiě)范文的時(shí)候需要注意什么呢?有哪些格式需要注意呢?這里我整理了一些優(yōu)秀的范文,希望對(duì)大家有所幫助,下面我們就來(lái)了解一下吧。
    倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)論文篇一
    用visual c++設(shè)計(jì)的倉(cāng)庫(kù)管理系統(tǒng)
    摘要 本文主要介紹了采用visual studio 2005的一個(gè)倉(cāng)庫(kù)管理系統(tǒng)。該系統(tǒng)基于mfc集成開(kāi)發(fā)環(huán)境,利用ado控件實(shí)現(xiàn)基本信息管理、商品信息管理、庫(kù)存操作管理、庫(kù)存警示管理的功能。詳細(xì)介紹了開(kāi)發(fā)本系統(tǒng)的步驟:系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)。在系統(tǒng)分析中采用系統(tǒng)的功能結(jié)構(gòu)圖分析了系統(tǒng)所需的各種數(shù)據(jù)。在系統(tǒng)的設(shè)計(jì)中,詳細(xì)的展現(xiàn)了系統(tǒng)的各個(gè)功能模塊、所需的數(shù)據(jù)庫(kù)表、菜單的設(shè)計(jì)等。在系統(tǒng)的實(shí)現(xiàn)中,給出了相應(yīng)模塊功能控件的事件及代碼。
    關(guān)鍵字:倉(cāng)庫(kù)管理 管理系統(tǒng)
    ado控件 面向?qū)ο?BR>    第一章
    緒論
    1.1系統(tǒng)的開(kāi)發(fā)背景……………….…………………………………4 1.2當(dāng)前倉(cāng)庫(kù)管理現(xiàn)狀分析及設(shè)計(jì)倉(cāng)庫(kù)管理系統(tǒng)的意義………….4 1.2系統(tǒng)開(kāi)發(fā)工具選擇及介紹………………………….……………5 1.3 ado數(shù)據(jù)訪問(wèn)技術(shù)………………………………………………7 第二章 系統(tǒng)設(shè)計(jì)
    2.1系統(tǒng)需求分析?????????????????????9 2.2系統(tǒng)開(kāi)發(fā)目標(biāo)……………………………………………… ………10 2.3系統(tǒng)功能分析
    2.31系統(tǒng)功能描述…………………………………………………..10 2.32 系統(tǒng)功能模塊的劃分………………………………………… 11 2.33系統(tǒng)流程分析…………………………………………………..11 第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)
    3.1數(shù)據(jù)庫(kù)需求分析 ……………………………………………….12 3.2 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) ………………………………………….13 3.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)及實(shí)現(xiàn) ………………………………….15 第四章 系統(tǒng)各主要功能模塊的實(shí)現(xiàn)
    4.1主界面的設(shè)置…………………………………………………..18 4.2主要各功能模塊所涉及的類(lèi)的添加……………………… ……19 4.3登陸模塊設(shè)計(jì) …………………………………………………..19 4.4客戶(hù)管理模塊設(shè)計(jì) 4.41 設(shè)計(jì)客戶(hù)信息管理對(duì)話框 ………………………………..21 4.42 設(shè)計(jì)客戶(hù)信息編輯對(duì)話框 ……………………………..24 4.5倉(cāng)庫(kù)管理模塊設(shè)計(jì)
    4.51設(shè)計(jì)倉(cāng)庫(kù)信息管理對(duì)話框 …………………………………25 4.6用戶(hù)管理模塊設(shè)計(jì)
    4.61設(shè)計(jì)用戶(hù)信息管理對(duì)話框…………………………………...27 4.62 設(shè)計(jì)用戶(hù)信息編輯對(duì)話框…………………………………..28 4.63設(shè)計(jì)修改用戶(hù)密碼的對(duì)話框…………………………………29 4.7商品管理模塊設(shè)計(jì)
    4.71設(shè)計(jì)商品類(lèi)別管理對(duì)話框……………………………………30 4.72 設(shè)計(jì)商品類(lèi)別編輯對(duì)話框…………………………………...31 4.73 設(shè)計(jì)商品信息管理對(duì)話框…………………………………...32 4.8 庫(kù)存操作管理模塊設(shè)計(jì)
    4.81 設(shè)計(jì)入庫(kù)操作管理對(duì)話框…………………………………34 4.82 設(shè)計(jì)入庫(kù)單編輯對(duì)話框……………………………………..35 4.83 設(shè)計(jì)出庫(kù)操作管理對(duì)話框…………………………………..37 4.84 設(shè)計(jì)出庫(kù)操作編輯對(duì)話框 ………………………………..37 4.85 設(shè)計(jì)庫(kù)存盤(pán)點(diǎn)管理對(duì)話框…………………………………39 4.86 設(shè)計(jì)庫(kù)存盤(pán)點(diǎn)編輯對(duì)話框 …………………………………40 4.9 庫(kù)存警示管理模塊設(shè)計(jì)
    4.91 設(shè)計(jì)商品數(shù)量報(bào)警管理模塊………………………………...41 4.92 設(shè)計(jì)商品失效報(bào)警管理模塊 ……………………………….42 第五章 結(jié)束語(yǔ)
    5.1開(kāi)發(fā)中的問(wèn)題和解決辦法………………………………………….44 5.2系統(tǒng)不足之處………………………………………………………44 第六章 致謝 …………………………………………………………..45 第七章 參考文獻(xiàn) ……………………………………………………..45
    1.1系統(tǒng)開(kāi)發(fā)的背景
    20世紀(jì),隨著全球經(jīng)濟(jì)的蓬勃發(fā)展,眾多經(jīng)濟(jì)學(xué)家紛紛提出了新的管理理論。20世紀(jì)50年代,西蒙提出管理依賴(lài)于信息和決策的思想。同時(shí)期的維納發(fā)表了控制論,他認(rèn)為管理是一個(gè)控制過(guò)程。1958年,蓋爾寫(xiě)到:“管理將以較低的成本得到及時(shí)準(zhǔn)確的信息,做到較好的控制。”這個(gè)時(shí)期,計(jì)算機(jī)開(kāi)始用于會(huì)計(jì)工作,出現(xiàn)數(shù)據(jù)處理一詞。
    1970年,walter an給剛剛出現(xiàn)的管理信息系統(tǒng)一詞下了一個(gè)定義:“以口頭或書(shū)面的形式,在合適的時(shí)間向經(jīng)理、職員以及外界人員提供過(guò)去的、現(xiàn)在的、預(yù)測(cè)未來(lái)的有關(guān)企業(yè)內(nèi)部及其環(huán)境的信息,以幫助他們進(jìn)行決策?!痹谶@個(gè)定義里強(qiáng)調(diào)了用信息支持決策,但并沒(méi)有強(qiáng)調(diào)應(yīng)用模型,沒(méi)有提到計(jì)算機(jī)的應(yīng)用。
    1985年,管理信息系統(tǒng)的創(chuàng)始人,明尼蘇達(dá)大學(xué)的管理學(xué)教授gordon 給了管理信息系統(tǒng)一個(gè)較完整的定義,即“管理信息系統(tǒng)是一個(gè)利用計(jì)算機(jī)軟硬件資源,手工作業(yè),分析、計(jì)劃、控制和決策模型以及數(shù)據(jù)庫(kù)的人-機(jī)系統(tǒng)。它能提供信息支持企業(yè)或組織的運(yùn)行、管理和決策功能。”這個(gè)定義全面地說(shuō)明了管理信息系統(tǒng)的目標(biāo)、功能和組成,而且反映了管理信息系統(tǒng)在當(dāng)時(shí)達(dá)到的水平。1.2當(dāng)前倉(cāng)庫(kù)管理現(xiàn)狀分析及設(shè)計(jì)倉(cāng)庫(kù)管理系統(tǒng)的意義
    一直以來(lái)人們使用傳統(tǒng)的人工方式管理庫(kù)存。這種管理方式存在著許多缺點(diǎn),諸如效率低,保密性差等,而且時(shí)間一長(zhǎng),將產(chǎn)生大量的文件和數(shù)據(jù),這對(duì)于查找、更新和維護(hù)都帶來(lái)了不少的困難。對(duì)于企業(yè)來(lái)說(shuō)為了管理好倉(cāng)庫(kù),將付出大量的人力和物力。因此設(shè)計(jì)一款倉(cāng)庫(kù)管理系統(tǒng)是非常重要的。它帶來(lái)的優(yōu)點(diǎn)是:它可以全面的管理倉(cāng)庫(kù)中儲(chǔ)存的商品和貨物,縮短了庫(kù)存信息流轉(zhuǎn)時(shí)間,使企業(yè)的物料管理層次分明、井然有序,為采購(gòu)、營(yíng)銷(xiāo)和生產(chǎn)提供了依據(jù),從而提高企業(yè)的經(jīng)營(yíng)效率。因此,庫(kù)存管理系統(tǒng)能夠?yàn)橛脩?hù)提供充足的信息和快捷的查詢(xún)手段。
    隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)不斷發(fā)展,其強(qiáng)大的功能已經(jīng)被人們深刻認(rèn)識(shí),它已經(jīng)進(jìn)入了人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用.1.3系統(tǒng)開(kāi)發(fā)工具的選擇及介紹 ? 系統(tǒng)開(kāi)發(fā)環(huán)境
    操作系統(tǒng):windows xp professional 簡(jiǎn)體中文版 開(kāi)發(fā)平臺(tái): visual studio 2005簡(jiǎn)體中文版 ? 系統(tǒng)開(kāi)發(fā)工具的選擇
    實(shí)現(xiàn)該系統(tǒng)的方法有很多,之所以選擇visual c++作為開(kāi)發(fā)工具,不僅僅因?yàn)樵?jīng)有過(guò)使用它的經(jīng)驗(yàn),看中的更是它的功能強(qiáng)大和使用方便。它本身不僅具有極其強(qiáng)大的編程能力,它允許選擇和管理外接程序,并內(nèi)含多種實(shí)用控件,這些對(duì)visual c++的擴(kuò)充又進(jìn)一步增強(qiáng)了它的開(kāi)發(fā)環(huán)境的能力。? 開(kāi)發(fā)平臺(tái)介紹 visual studio 可以用來(lái)創(chuàng)建 windows平臺(tái)下的 windows 應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用來(lái)創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和 office 插件。
    1998 年,微軟公司發(fā)布了 visual studio 6.0。所有開(kāi)發(fā)語(yǔ)言的開(kāi)發(fā)環(huán)境版本均升至 6.0。這也是 visual basic 最后一次發(fā)布,從下一個(gè)版本(7.0)開(kāi)始,microsoft basic 進(jìn)化成了一種新的面向?qū)ο蟮恼Z(yǔ)言:microsoft 。由于微軟公司對(duì)于 sun 公司 java 語(yǔ)言擴(kuò)充導(dǎo)致與 java 虛擬機(jī)不兼容而 sun 被告上法庭,微軟在后續(xù)的 visual studio 中不再包括面向 java 虛擬機(jī)的開(kāi)發(fā)環(huán)境。
    2002 年, 口號(hào)的提出與 windows xp / office xp 的發(fā)布,微軟發(fā)布了 visual (內(nèi)部版本號(hào)為 7.0)。在這個(gè)版本的 visual studio 中,微軟剝離了 visual foxpro 作為一個(gè)單獨(dú)的開(kāi)發(fā)環(huán)境以 visual foxpro 7.0 單獨(dú)銷(xiāo)售,同時(shí)取消了 visual interdev。.net 的通用語(yǔ)言框架機(jī)制(common language runtime, clr),其目的是在同一個(gè)項(xiàng)目中支持不同的語(yǔ)言所開(kāi)發(fā)的組件。所有 clr 支持的代碼都會(huì)被解釋成為 clr 可執(zhí)行的機(jī)器代碼然后運(yùn)行。
    visual basic、visual c++ 都被擴(kuò)展為支持托管代碼機(jī)制的開(kāi)發(fā)環(huán)境,且 visual 更是從 visual basic 脫胎換骨,徹底支持面向?qū)ο蟮木幊虣C(jī)制。而 visual j++ 也變?yōu)?visual j#。后者僅語(yǔ)法同 java 相同,但是面向的不是 java 虛擬機(jī), framework。
    2003 年,微軟對(duì) visual studio 2002 進(jìn)行了部分修訂,以 visual studio 2003 的名義發(fā)布(內(nèi)部版本號(hào)為 7.1)。visio 作為使用統(tǒng)一建模語(yǔ)言(uml)架構(gòu)應(yīng)用程序框架的程序被引入,同時(shí)被引入的還包括移動(dòng)設(shè)備支持和企業(yè)模版。.net 框架也升級(jí)到了 1.1。
    2005 年,微軟發(fā)布了 visual studio 2005。.net 字眼從各種語(yǔ)言的名字中被抹去,但是這個(gè)版本的 visual studio 框架的(版本2.0)。它同時(shí)也能開(kāi)發(fā)跨平臺(tái)的應(yīng)用程序,如開(kāi)發(fā)使用微軟操作系統(tǒng)的手機(jī)的程序等。總體來(lái)說(shuō)是一個(gè)非常龐大的軟件,甚至包含代碼測(cè)試功能。
    這個(gè)版本的 visual studio 包含有眾多版本,分別面向不同的開(kāi)發(fā)角色。
    microsoft為單獨(dú)工作或在小型團(tuán)隊(duì)中的專(zhuān)業(yè)開(kāi)發(fā)人員提供了兩種選擇,visual studio 2005 professional edition和用于microsoft office系統(tǒng)的visual studio 2005工具。每種版本都在標(biāo)準(zhǔn)版的特性上進(jìn)行了擴(kuò)展,包括用于遠(yuǎn)程服務(wù)程序開(kāi)發(fā)和調(diào)試、sql server2005開(kāi)發(fā)的工具,以及完整的、沒(méi)有限制的開(kāi)發(fā)環(huán)境。
    1.4 ado數(shù)據(jù)訪問(wèn)技術(shù)
    ado(activex data objects,activex數(shù)據(jù)對(duì)象)是microsoft提出的應(yīng)用程序接口(api)用以實(shí)現(xiàn)訪問(wèn)關(guān)系或非關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)。象microsoft的其它系統(tǒng)接口一樣,ado是面向?qū)ο蟮摹K莔icrosoft全局?jǐn)?shù)據(jù)訪問(wèn)(uda)的一部分,microsoft認(rèn)為與其自己創(chuàng)建一個(gè)數(shù)據(jù),不如利用uda訪問(wèn)已有的數(shù)據(jù)庫(kù)。為達(dá)到這一目的,microsoft和其它數(shù)據(jù)庫(kù)公司在它們的數(shù)據(jù)庫(kù)和microsoft的ole數(shù)據(jù)庫(kù)之間提供了一個(gè)“橋”程序,ole數(shù)據(jù)庫(kù)已經(jīng)在使用ado技術(shù)。ado的一個(gè)特征(稱(chēng)為遠(yuǎn)程數(shù)據(jù)服務(wù))支持網(wǎng)頁(yè)中的數(shù)據(jù)相關(guān)的activex控件和有效的客戶(hù)端緩沖。作為activex的一部分,ado也是microsoft的組件對(duì)象模式(com)的一部分,它的面向組件的框架用以將程序組裝在一起。ado從原來(lái)的microsoft數(shù)據(jù)接口遠(yuǎn)程數(shù)據(jù)對(duì)象(rdo)而來(lái)。rdo與odbc一起工作訪問(wèn)關(guān)系數(shù)據(jù)庫(kù),但不能訪問(wèn)如isam和vsam的非關(guān)系數(shù)據(jù)庫(kù)。
    ado 是對(duì)當(dāng)前微軟所支持的數(shù)據(jù)庫(kù)進(jìn)行操作的最有效和最簡(jiǎn)單直接的方法,它是一種功能強(qiáng)大的數(shù)據(jù)訪問(wèn)編程模式,從而使得大部分?jǐn)?shù)據(jù)源可編程的屬性得以直接擴(kuò)展到你的active server 頁(yè)面上。可以使用ado 去編寫(xiě)緊湊簡(jiǎn)明的腳本以便連接到 open database connectivity(odbc)兼容的數(shù)據(jù)庫(kù)和 ole db 兼容的數(shù)據(jù)源,這樣 asp 程序員就可以訪問(wèn)任何與 odbc 兼容的數(shù)據(jù)庫(kù),包括 ms sql server、access、oracle 等等。
    ado是一種面向?qū)ο蟮木幊探涌冢④浗榻B說(shuō),與其同ibm和oracle提倡的那樣,創(chuàng)建一個(gè)統(tǒng)一數(shù)據(jù)庫(kù),不如提供一個(gè)能夠訪問(wèn)不同數(shù)據(jù)庫(kù)的統(tǒng)一接口,這樣會(huì)更加實(shí)用一些。為實(shí)現(xiàn)這一目標(biāo),微軟在數(shù)據(jù)庫(kù)和微軟的ole db中提供了一種“橋”程序,這種程序能夠提供對(duì)數(shù)據(jù)庫(kù)的連接。
    開(kāi)發(fā)人員在使用ado時(shí),其實(shí)就是在使用ole db,不過(guò)ole db更加接近底層。ado的一項(xiàng)屬性??遠(yuǎn)程數(shù)據(jù)服務(wù),支持“數(shù)據(jù)倉(cāng)庫(kù)”activex 組件以及高效的客戶(hù)端緩存。作為activex的一部分,ado也是com組件的一部分。ado是由早期的微軟數(shù)據(jù)接口?遠(yuǎn)程數(shù)據(jù)對(duì)象rdo演化而來(lái)的。rdo同微軟的odbc一同連接關(guān)系數(shù)據(jù)庫(kù),不過(guò)不能連接非關(guān)系數(shù)據(jù)庫(kù)。
    ado向我們提供了一個(gè)熟悉的,高層的對(duì)ole db的automation封裝接口。對(duì)那些熟悉rdo的程序員來(lái)說(shuō),你可以把ole db比作是odbc驅(qū)動(dòng)程序。如同rdo對(duì)象是odbc驅(qū)動(dòng)程序接口一樣,ado對(duì)象是ole db的接口;如同不同的數(shù)據(jù)庫(kù)系統(tǒng)需要它們自己的odbc驅(qū)動(dòng)程序一樣,不同的數(shù)據(jù)源要求它們自己的ole db提供者(ole db provider)。目前,雖然ole db提供者比較少,但微軟正積極推廣該技術(shù),并打算用ole db取代odbc。
    ado向程序員提供了很多好處。包括易于使用,熟悉的界面,高速度以及較低的內(nèi)存占用(需要占用342k內(nèi)存,的368k略小,大約是dao3.5 所占內(nèi)存的60%)。同傳統(tǒng)的數(shù)據(jù)對(duì)象層次(dao和rdo)不同,ado可以獨(dú)立創(chuàng)建。因此你可以只創(chuàng)建一個(gè) “connection”對(duì)象,但是可以有多個(gè),獨(dú)立的“recordset”對(duì)象來(lái)使用它。ado針對(duì)客戶(hù)/服務(wù)器以及web應(yīng)用程序作了優(yōu)化。第二章 系統(tǒng)設(shè)計(jì)
    2.1系統(tǒng)需求分析
    隨著科學(xué)技術(shù)的發(fā)展,越來(lái)越多的企業(yè)開(kāi)始用計(jì)算機(jī)管理倉(cāng)庫(kù)。而現(xiàn)在的倉(cāng)庫(kù)管理系統(tǒng)多種多樣,而倉(cāng)庫(kù)管理的特點(diǎn)是信息處理量比較大。所以管理的物資設(shè)備種類(lèi)繁多,而且由于入庫(kù)單,出庫(kù)單,需求單等單據(jù)發(fā)生量特別大,關(guān)聯(lián)信息多,查詢(xún)和統(tǒng)計(jì)的方式各不相同。因此在管理上實(shí)現(xiàn)起來(lái)有一定的困難。在管理的過(guò)程中經(jīng)常會(huì)出現(xiàn)信息的重復(fù)傳遞,單據(jù),報(bào)表種類(lèi)繁多,各個(gè)部門(mén)管理規(guī)格不統(tǒng)一等問(wèn)題。
    在本系統(tǒng)的設(shè)計(jì)過(guò)程中,為了克服以上困難,滿足計(jì)算機(jī)管理的需要,我們采取了下面的一些原則。
    ●統(tǒng)一各種原始的單據(jù)的格式,統(tǒng)一帳目和報(bào)表的格式?!駝h除不必要的管理冗余,實(shí)現(xiàn)管理規(guī)范化、科學(xué)化。
    ●程序代碼標(biāo)準(zhǔn)化,軟件統(tǒng)一化,確認(rèn)軟件的可維護(hù)行和實(shí)用性?!窠缑姹M量簡(jiǎn)單化,做到實(shí)用、方便,盡量滿足企業(yè)中不同層次員工的需要。2.2系統(tǒng)開(kāi)發(fā)目標(biāo)
    系統(tǒng)開(kāi)發(fā)的總體任務(wù)是實(shí)現(xiàn)企業(yè)物資設(shè)備管理的系統(tǒng)化,規(guī)范化和自動(dòng)化,從而達(dá)到提高企業(yè)物資管理的效率的目的。2.3系統(tǒng)功能分析 2.31系統(tǒng)功能描述(1)基本信息管理 基本信息管理包括對(duì)客戶(hù)信息、倉(cāng)庫(kù)信息和用戶(hù)信息信息的管理。(2)商品信息管理
    對(duì)于商品各種信息的管理。(3)庫(kù)存操作管理
    庫(kù)存操作管理可以實(shí)現(xiàn)入庫(kù)管理、出庫(kù)管理和庫(kù)存盤(pán)點(diǎn)等功能。(4)庫(kù)存警示管理
    庫(kù)存警示是指對(duì)庫(kù)存中接近或超過(guò)臨界值的商品進(jìn)行報(bào)警。在商品信息中,包含商品的合理數(shù)量范圍和有效期限。商品數(shù)量小于合理數(shù)量下限稱(chēng)為短線;商品數(shù)量大于合理數(shù)量的上限成為超儲(chǔ)。商品出現(xiàn)短線、超儲(chǔ)、接近或超過(guò)有效期限時(shí)都需要報(bào)警。(5)統(tǒng)計(jì)查詢(xún)管理功能
    統(tǒng)計(jì)查詢(xún)管理可以對(duì)庫(kù)存商品進(jìn)行各種類(lèi)型的統(tǒng)計(jì)和查詢(xún)。從而使用戶(hù)能夠全面的了解庫(kù)存狀況。2.32 系統(tǒng)功能模塊的劃分
    基于對(duì)系統(tǒng)的分析,可以得到如圖所示的系統(tǒng)功能模塊圖:
    本系統(tǒng)將用戶(hù)劃分為兩種類(lèi)型,即系統(tǒng)管理員用戶(hù)和普通用戶(hù)。系統(tǒng)管理員用戶(hù)可以管理其他用戶(hù)信息,而在其他方面與所有用戶(hù)的權(quán)限相同。
    2.33系統(tǒng)流程分析
    所謂系統(tǒng)流程就是用戶(hù)在使用系統(tǒng)時(shí)的工作過(guò)程。對(duì)于多類(lèi)型用戶(hù)的管理系統(tǒng)來(lái)說(shuō),每一類(lèi)用戶(hù)的工作流程都是不相同的。多用戶(hù)系統(tǒng)的工作流程都是從用戶(hù)登陸模塊開(kāi)始,對(duì)用戶(hù)的身份進(jìn)行認(rèn)證。身份認(rèn)證可以分為以下兩個(gè)過(guò)程:
    (1)確認(rèn)用戶(hù)是否是有效的系統(tǒng)用戶(hù)。(2)確定用戶(hù)的類(lèi)型。
    第一個(gè)過(guò)程決定用戶(hù)能否進(jìn)入系統(tǒng)。第二個(gè)過(guò)程根據(jù)用戶(hù)的類(lèi)型決定用戶(hù)的操作權(quán)限,從而決定用戶(hù)的工作界面。因此得到它的系統(tǒng)流程分析圖如下:
    第三章 數(shù)據(jù)庫(kù)設(shè)計(jì) 3.1數(shù)據(jù)庫(kù)需求分析
    在本設(shè)計(jì)中,通過(guò)對(duì)企業(yè)倉(cāng)庫(kù)管理的內(nèi)容和系統(tǒng)流程分析,設(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:
    (1)客戶(hù)信息。包括的數(shù)據(jù)項(xiàng)有客戶(hù)編號(hào)、名稱(chēng)、類(lèi)型等。(2)倉(cāng)庫(kù)信息。包括倉(cāng)庫(kù)編號(hào)、名稱(chēng)和說(shuō)明等。(3)用戶(hù)信息。包括用戶(hù)名、密碼、員工姓名等信息。(4)商品管理信息。包括商品類(lèi)別,商品編號(hào)等信息。
    (5)庫(kù)存操作管理信息。包括入庫(kù)和出庫(kù)操作需要記錄的商品信息、倉(cāng)庫(kù)信息、經(jīng)辦人、涉及金額和入庫(kù)時(shí)間等信息。有了上面的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)項(xiàng),就能進(jìn)行下面的數(shù)據(jù)庫(kù)設(shè)計(jì)。3.2 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)
    這一設(shè)計(jì)階段是在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶(hù)需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。本設(shè)計(jì)根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有客戶(hù)實(shí)體、倉(cāng)庫(kù)實(shí)體、用戶(hù)實(shí)體、商品類(lèi)別實(shí)體、商品實(shí)體、入庫(kù)實(shí)體、出庫(kù)實(shí)體、庫(kù)存實(shí)體。各個(gè)實(shí)體的e-r圖描述如下:
    客戶(hù)實(shí)體的e-r圖
    倉(cāng)庫(kù)實(shí)體e-r圖
    用戶(hù)實(shí)體e-r圖
    商品類(lèi)別e-r圖
    商品類(lèi)別e-r圖
    入庫(kù)實(shí)體e-r圖
    出庫(kù)實(shí)體e-r圖
    庫(kù)存實(shí)體 e-r圖
    3.3 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)及實(shí)現(xiàn)
    倉(cāng)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)中的各個(gè)表格的設(shè)計(jì)結(jié)果如下面的幾個(gè)表格所示。每個(gè)表格表示在數(shù)據(jù)庫(kù)中的一個(gè)表。數(shù)據(jù)庫(kù)的實(shí)現(xiàn)采用sql sever 2005。
    (1)客戶(hù)信息表(client)
    說(shuō)明:cid為客戶(hù)編號(hào)、cname為客戶(hù)名稱(chēng)、ctype為客戶(hù)類(lèi)型其中包括(1、供應(yīng)商
    2、供貨商)、ctype為聯(lián)系人、address為通信地址、postcode為郵政編碼、phone為聯(lián)系電話、fax為傳真電話、memo為備注信息。
    (2)倉(cāng)庫(kù)信息表(storehouse)
    說(shuō)明:sid為倉(cāng)庫(kù)編號(hào)、sname為倉(cāng)庫(kù)名稱(chēng)、memo為倉(cāng)庫(kù)說(shuō)明。(3)用戶(hù)信息表(users)
    說(shuō)明:username為用戶(hù)名、pwd為密碼、user_type為用戶(hù)類(lèi)型(1、系統(tǒng)管理員用戶(hù),2、普通用戶(hù))(4)商品類(lèi)別表(protype)
    說(shuō)明:typeid為商品類(lèi)別編號(hào)、typename為商品類(lèi)別名稱(chēng)、upperid為上級(jí)商品類(lèi)別
    (5)商品信息表(product)
    說(shuō)明:pid為商品編號(hào)、pname 為商品名稱(chēng)、typeid為商品類(lèi)型編號(hào)、pstyle商品規(guī)格、punit為計(jì)量單位、pprice為參考價(jià)格、plow為商品數(shù)量下限、phigh為商品數(shù)量上限、valid為有效期、alarmday為在到達(dá)有效期前幾天發(fā)出警告。(6)入庫(kù)操作信息表(storeln)
    說(shuō)明:sitype為入庫(kù)操作類(lèi)型,包括銷(xiāo)售出庫(kù)、退貨出庫(kù)、用料出庫(kù)等。pid為入庫(kù)商品編號(hào)、makedate為生產(chǎn)日期、pprice為入庫(kù)商品單價(jià)、pnum為入庫(kù)商品數(shù)量、cid為客戶(hù)編號(hào)、sid為倉(cāng)庫(kù)編號(hào)、empname為經(jīng)辦人、optdate為入庫(kù)日期(7)出庫(kù)操作信息表(takeout)
    說(shuō)明:ttype為入庫(kù)操作類(lèi)型,包括銷(xiāo)售出庫(kù)、退貨出庫(kù)、用料出庫(kù)等。pid為入庫(kù)商品編號(hào)、makedate為生產(chǎn)日期、pprice為入庫(kù)商品單價(jià)、pnum為入庫(kù)商品數(shù)量、cid為客戶(hù)編號(hào)、sid為倉(cāng)庫(kù)編號(hào)、empname為經(jīng)辦人、optdate為入庫(kù)日期(8)庫(kù)存商品信息表(prolnstore)
    說(shuō)明: spid為商品存儲(chǔ)編號(hào)、pid為商品編號(hào)、pprice為商品入庫(kù)單價(jià)、pnum為商品數(shù)量、makedate為生產(chǎn)日期、sid為倉(cāng)庫(kù)編號(hào) 第四章 系統(tǒng)各主要功能模塊的實(shí)現(xiàn)
    4.1主界面的設(shè)置
    根據(jù)對(duì)系統(tǒng)功能分析,主界面的菜單項(xiàng)包括基本信息管理、商品信息管理、庫(kù)操作管理和庫(kù)存警示管理。如圖所示:
    當(dāng)用戶(hù)單擊基本信息管理時(shí),顯示客戶(hù)信息管理、倉(cāng)庫(kù)信息管理、用戶(hù)信息管理、修改用戶(hù)密碼、退出系統(tǒng)菜單項(xiàng)。添加這些菜單項(xiàng)如圖所示:
    當(dāng)用戶(hù)單擊商品信息管理時(shí),顯示商品類(lèi)別管理、商品信息管理。添加這些菜單項(xiàng)如圖所示:
    當(dāng)用戶(hù)單擊庫(kù)存操作管理時(shí),顯示入庫(kù)操作、出庫(kù)操作、庫(kù)存盤(pán)點(diǎn)。添加這些菜單項(xiàng)如圖所示:
    當(dāng)用戶(hù)單擊庫(kù)存警示管理時(shí),顯示數(shù)量報(bào)警和實(shí)效報(bào)警。添加這些菜單項(xiàng)如圖所示:
    4.2主要各功能模塊所涉及的類(lèi)的添加
    根據(jù)數(shù)據(jù)庫(kù)邏輯設(shè)計(jì),我們可以為這些表添加相應(yīng)的類(lèi)。
    1、cclient類(lèi)用來(lái)管理客戶(hù)表的數(shù)據(jù)庫(kù)操作。
    2、cstorehouse類(lèi)用來(lái)管理表storehouse的數(shù)據(jù)庫(kù)操作。
    3、cusers類(lèi)用來(lái)管理表users的數(shù)據(jù)庫(kù)操作。
    4、cprotype類(lèi)用來(lái)管理表protype的數(shù)據(jù)庫(kù)的操作。
    5、cproductl類(lèi)用來(lái)管理表product的數(shù)據(jù)庫(kù)操作。
    6、cstoreln類(lèi)用來(lái)管理表storeln的數(shù)據(jù)庫(kù)操作。
    7、ctakeout類(lèi)用來(lái)管理表takeout的數(shù)據(jù)庫(kù)操作。
    8、cproinstore類(lèi)用來(lái)管理表proinstore的數(shù)據(jù)庫(kù)操作。4.3登陸模塊設(shè)計(jì) 登陸對(duì)話框布局如圖:
    其id值設(shè)為idd_username_dialog。
    用戶(hù)要使用系統(tǒng),首先必須通過(guò)系統(tǒng)的身份認(rèn)證,這個(gè)過(guò)程叫做登陸。此模塊的功能就是要進(jìn)行身份認(rèn)證。
    在登陸對(duì)話框用戶(hù)首先輸入用戶(hù)名,然后輸入密碼。輸入完畢時(shí),點(diǎn)擊確定將發(fā)送bn_clicked消息。在確認(rèn)按鈕處添加此消息響應(yīng)函數(shù)clogindlg :onok()。此函數(shù)的主要功能是檢查用戶(hù)輸入數(shù)據(jù)的有效性,如果輸入的信息不符合要求會(huì)自動(dòng)退出程序。主要代碼如下: clogindlg::onok(){ ……
    //檢查數(shù)據(jù)有效性
    if(m_username == “"){messagebox(”請(qǐng)輸入用戶(hù)名“);
    return;} if(m_pwd == ”“){ messagebox(”請(qǐng)輸入密碼“);
    return;}
    cusers user;//定義cusers對(duì)象
    a(m_username);//用于從表users中讀取數(shù)據(jù)
    //如果讀取的數(shù)據(jù)與用戶(hù)輸入數(shù)據(jù)不同,則返回
    if(()!= m_pwd){ messagebox(”用戶(hù)信息不正確,無(wú)法登錄!“);
    return;} }
    當(dāng)用戶(hù)單擊取消時(shí),添加clogindlg::onbnclickedcancel()函數(shù)來(lái)響應(yīng)此消息。此函數(shù)的功能是退出程序。主要代碼如下: void clogindlg::onbnclickedcancel(){ oncancel();} 4.4客戶(hù)管理模塊設(shè)計(jì)
    客戶(hù)管理模塊可以實(shí)現(xiàn)以下功能:
    1、添加客戶(hù)。
    2、修改客戶(hù)信息。
    3、刪除客戶(hù)。
    4、查看客戶(hù)信息。4.41 設(shè)計(jì)客戶(hù)信息管理對(duì)話框 對(duì)話框布局如圖:
    其id值設(shè)為idd_clentman_dialog。對(duì)話框?qū)?yīng)的類(lèi)為cclientmandlg。它繼承cdialog類(lèi)。添加控件包括四個(gè)按鈕控件,一個(gè)組合框、ado data和datagrid控件。
    該對(duì)話框的主要函數(shù)為refresh_data()、onaddbuttom()、onmodibutton()、ondelbutton()。h_data()函數(shù)
    它的功能是為ado data控件設(shè)置數(shù)據(jù)源,從而決定在datagrid控件中顯示的數(shù)據(jù)內(nèi)容。主要代碼如下: refresh_data(){ cstring csource;
    //設(shè)置select語(yǔ)句,按客戶(hù)單位排序 ……
    ordsource(csource);h();//設(shè)置表格列寬度
    } uttom()函數(shù)
    當(dāng)用戶(hù)單擊“添加”按鈕時(shí),執(zhí)行此函數(shù)。其功能是打開(kāi)編輯對(duì)話框。主要代碼如下: onaddbutton(){ ……
    //打開(kāi)編輯對(duì)話框
    cclienteditdlg dlg;……
    if(l()== idok)…… } button()函數(shù)
    當(dāng)用戶(hù)單擊“修改”按鈕時(shí),執(zhí)行此函數(shù)。其功能是彈出編輯對(duì)話框進(jìn)行修改記錄操作。主要代碼如下: onmodibutton(){ ……
    cclienteditdlg dlg; = m(0);//記錄編號(hào)
    ……
    if(l()== idok)
    refresh_data();} utton()函數(shù)
    當(dāng)用戶(hù)單擊“刪除”按鈕時(shí),執(zhí)行此函數(shù),其功能是刪除所選擇的記錄。主要代碼如下: ondelbutton(){ ……
    cclient clt;
    _delete(m(0));刪除記錄
    refresh_data();
    } 4.42 設(shè)計(jì)客戶(hù)信息編輯對(duì)話框
    編輯客戶(hù)信息的對(duì)話框可以用來(lái)添加和修改客戶(hù)信息,對(duì)話框名稱(chēng)為idd_clientedit_dialog。對(duì)話框的布局如圖:
    為對(duì)話框創(chuàng)建cclienteditdlg類(lèi)并繼承與cdialog類(lèi)。
    當(dāng)用戶(hù)單擊“確定”按鈕,添加onok()函數(shù),其功能是將輸入的信息保存到數(shù)據(jù)庫(kù)中。主要代碼如下: onok(){ …..cclient clt;me(m_cname);//客戶(hù)單位
    ……
    _insert();插入進(jìn)數(shù)據(jù)庫(kù)
    ……
    _update(ccid);} 4.5 倉(cāng)庫(kù)管理模塊設(shè)計(jì)
    倉(cāng)庫(kù)管理模塊可以實(shí)現(xiàn)以下功能:
    1、添加倉(cāng)庫(kù)信息
    2、修改倉(cāng)庫(kù)信息
    3、刪除倉(cāng)庫(kù)信息
    4、查看倉(cāng)庫(kù)信息
    4.51 設(shè)計(jì)倉(cāng)庫(kù)信息管理對(duì)話框
    對(duì)話框布局如圖:
    對(duì)話框id為idd_storehouseman_dialog.對(duì)話框?qū)?yīng)的類(lèi)為cstorehousemandlg。該對(duì)話框的主要函數(shù)為refresh_data()、onaddbuttom()、onmodibutton()、ondelbutton()。其功能與客戶(hù)信息管理對(duì)話框函數(shù)的功能一樣。函數(shù)實(shí)現(xiàn)過(guò)程也非常類(lèi)似。在此不再詳細(xì)說(shuō)明。
    4.52 設(shè)計(jì)倉(cāng)庫(kù)信息編輯對(duì)話框
    編輯倉(cāng)庫(kù)信息的對(duì)話框可以用來(lái)添加和修改倉(cāng)庫(kù)信息,其id為idd_storehouseedit_dialog。對(duì)話框的布局如圖:
    對(duì)話框?qū)?yīng)的類(lèi)為cstorehouseeditdlg。當(dāng)用戶(hù)單擊“確定”時(shí),執(zhí)行onok()函數(shù)用來(lái)把在對(duì)話框輸入的信息添加或修改到數(shù)據(jù)庫(kù)中。主要代碼如下:
    cstorehouseeditdlg::onok(){ ……
    cstorehouse sh;me(m_sname);//倉(cāng)庫(kù)名稱(chēng)
    o(m_memo);//倉(cāng)庫(kù)說(shuō)明
    …… //表示插入新記錄
    _insert();
    ……
    } 4.6用戶(hù)管理模塊設(shè)計(jì)
    根據(jù)用戶(hù)類(lèi)型的不同,用戶(hù)管理模塊的功能也不相同??梢园韵虑樾危?BR>    1、admin用戶(hù)可以創(chuàng)建系統(tǒng)管理員或普通用戶(hù)、復(fù)位用戶(hù)密碼、刪除系統(tǒng)管理員或普通用戶(hù),也可以修改自身的密碼。
    2、系統(tǒng)管理員用戶(hù)可以創(chuàng)建普通用戶(hù)、對(duì)普通用戶(hù)的密碼進(jìn)行復(fù)位、刪除普通用戶(hù),也可以修改自身密碼。
    3、普通用戶(hù)只能修改自身密碼。4.61設(shè)計(jì)用戶(hù)信息管理對(duì)話框 用戶(hù)信息管理對(duì)話框id為idd_userman_dialog,對(duì)話框的布局如圖:
    對(duì)話框?qū)?yīng)的類(lèi)為cusermandlg。對(duì)話框中使用datalist控件顯示用戶(hù)列表,使用ado data控件為其提供數(shù)據(jù)源。當(dāng)用戶(hù)單擊“添加”按鈕時(shí),執(zhí)行onaddbuttom()函數(shù),其功能是顯示用戶(hù)信息編輯對(duì)話框。主要代碼為: onaddbutton(){ cusereditdlg dlg;ype = 2;if(l()== idok)
    h();} 當(dāng)用戶(hù)單擊“密碼復(fù)位”按鈕時(shí),執(zhí)行onmodibutton()函數(shù),功能是對(duì)用戶(hù)密碼進(jìn)行復(fù)位,復(fù)位密碼默認(rèn)值為888888。主要代碼如下:onmodibutton(){ ……
    cusers usr;
    (”888888“);//設(shè)置默認(rèn)密碼
    _updatepwd(t());
    messagebox(”密碼已經(jīng)復(fù)位“);} 當(dāng)用戶(hù)單擊“刪除”時(shí),執(zhí)行ondelbutton()函數(shù),其功能刪除用戶(hù)。主要代碼如下: ondelbutton(){ ……
    cusers usr;
    _delete(t());
    h();} 4.62 設(shè)計(jì)用戶(hù)信息編輯對(duì)話框
    用戶(hù)信息編輯對(duì)話框的id為idd_useredit_dialog,對(duì)話框布局如圖:
    對(duì)話框?qū)?yīng)的類(lèi)為cusereditdlg。當(dāng)用戶(hù)單擊“確定”按鈕時(shí),執(zhí)行onok()函數(shù),其功能是創(chuàng)建一個(gè)新用戶(hù),并將其加入到數(shù)據(jù)庫(kù)中。主要代碼如下: onok(){cusers usr;……
    //插入用戶(hù)記錄
    _insert();} 4.63設(shè)計(jì)修改用戶(hù)密碼的對(duì)話框 修改用戶(hù)密碼對(duì)話框的id為idd_changepwd_dialog,對(duì)話框的布局如圖:
    對(duì)話框?qū)?yīng)的類(lèi)為cchangepwddlg。當(dāng)用戶(hù)單擊“確定”按鈕時(shí),執(zhí)行onok()函數(shù),其功能是對(duì)用戶(hù)密碼進(jìn)行修改。主要代碼如下: cchangepwddlg::onok(){ ……
    (m_newpwd1);_updatepwd(m_username);//更新當(dāng)前用戶(hù)密碼
    …… } 4.7商品管理模塊設(shè)計(jì)
    商品管理模塊可以實(shí)現(xiàn)以下功能:
    1、商品類(lèi)別的添加、修改、刪除。
    2、商品信息的添加、修改、刪除。4.71設(shè)計(jì)商品類(lèi)別管理對(duì)話框
    商品類(lèi)別管理對(duì)話框的id為idd_protypeman_dialog,對(duì)話框布局入圖:
    對(duì)話框?qū)?yīng)的類(lèi)為cprotypemandlg。當(dāng)用戶(hù)單擊一級(jí)商品類(lèi)別列表框時(shí),執(zhí)行onclickdatalist()函數(shù),其功能是選擇一級(jí)商品列表的內(nèi)容時(shí),決定二級(jí)商品類(lèi)別列表框顯示的內(nèi)容。主要代碼如下:cprotypemandlg::onclickdatalist1(){ cstring cupper;cupper = ndtext();//讀取選擇類(lèi)別的編號(hào)
    //設(shè)置二級(jí)類(lèi)別的記錄源
    ordsource(”select * from protype where upperid=“ + cupper);h();} 當(dāng)用戶(hù)單擊左側(cè)的“添加”按鈕時(shí),執(zhí)行onadd1buttom()函數(shù),其功能是顯示商品類(lèi)別編輯對(duì)話框。主要代碼如下:cprotypemandlg::onadd1button(){ cprotypeeditdlg dlg;d = ”“;//表示添加記錄
    ame = ”“;id = 0;//表示一級(jí)類(lèi)別 //打開(kāi)編輯對(duì)話框
    if(l()== idok)
    h();} 當(dāng)用戶(hù)單擊左側(cè)“修改”按鈕時(shí),執(zhí)行onmodilbutton()函數(shù),其功能與“添加”按鈕功能類(lèi)似。
    當(dāng)用戶(hù)單擊左側(cè)的“刪除”按鈕時(shí),執(zhí)行ondel1button()函數(shù),其功能刪除商品類(lèi)別。主要代碼如下: cprotypemandlg::ondel1button(){ _delete(tid);//刪除
    h();//刷新 } 剩下右側(cè)的按鈕與左側(cè)的按鈕功能類(lèi)似,只不過(guò)刪除的商品類(lèi)別不一樣。參照左側(cè)功能函數(shù)即可。4.72 設(shè)計(jì)商品類(lèi)別編輯對(duì)話框
    編輯商品類(lèi)別信息的對(duì)話框可以用來(lái)添加和修改商品類(lèi)別信息。對(duì)話框id為idd_protypeedit_dialog。其布局如圖:
    對(duì)話框?qū)?yīng)的類(lèi)為cprotypeeditdlg。當(dāng)用戶(hù)單擊“確定”按鈕時(shí),執(zhí)行onok()函數(shù),其功能是添加商品類(lèi)別到數(shù)據(jù)庫(kù)中。主要代碼如下: cprotypeeditdlg::onok(){ ……
    cprotype pt;ename(m_typename);//類(lèi)別名稱(chēng)
    ……
    if(ctypeid == ”“)//表示插入數(shù)據(jù)
    _insert();
    ……
    else
    _update(ctypeid);
    ……
    } 4.73 設(shè)計(jì)商品信息管理對(duì)話框
    商品信息管理對(duì)話框可以按照商品類(lèi)別查詢(xún)商品信息,也可以對(duì)商品信息進(jìn)行添加,修改和刪除等操作。對(duì)話框id為idd_proman_dialog。對(duì)話框的布局如圖:
    為對(duì)話框添加cpromandlg類(lèi)。在對(duì)話框中有3個(gè)ado data控件,它們分別為一級(jí)商品類(lèi)別、二級(jí)商品類(lèi)別和商品表格提供數(shù)據(jù)源。添加、修改、刪除操作函數(shù)的功能與其他對(duì)話框功能類(lèi)似在此不再詳述。此對(duì)話框用的主要函數(shù)是當(dāng)用戶(hù)單擊一級(jí)商品類(lèi)別時(shí),執(zhí)行onclickdatacombol()函數(shù),其功能是根據(jù)用戶(hù)選擇的一級(jí)類(lèi)別來(lái)設(shè)置要顯示的二級(jí)商品類(lèi)別。主要代碼如下: cpromandlg::onclickdatacombo1(short area){ ……
    cupper = ndtext();//讀取選擇類(lèi)別的編號(hào)
    //設(shè)置二級(jí)類(lèi)別的記錄源
    ordsource(”select * from protype where upperid=“ + cupper);h();} 4.74 設(shè)計(jì)商品信息編輯對(duì)話框 編輯商品信息的對(duì)話框
    當(dāng)用戶(hù)單擊“確定”按鈕時(shí),執(zhí)行onok()函數(shù),功能將輸入的數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中。其代碼如下: cproeditdlg::onok(){ cproduct pr;……
    _insert();//插入數(shù)據(jù)庫(kù)
    _update(cpid);cdialog::onok();} 4.8 庫(kù)存操作管理模塊設(shè)計(jì)
    庫(kù)存操作管理模塊可以實(shí)現(xiàn)以下功能:
    1、入庫(kù)操作的添加、修改、刪除、2、出庫(kù)操作的添加、修改和刪除。
    3、庫(kù)存盤(pán)點(diǎn)的添加、修改、刪除。4.81 設(shè)計(jì)入庫(kù)操作管理對(duì)話框
    入庫(kù)單管理對(duì)話框的id為idd_storeinman_dialog。對(duì)話框的布局如圖:對(duì)話框所對(duì)應(yīng)的類(lèi)為cstoreinmandlg。調(diào)用的主要函數(shù)是
    refresh_data()、onaddbutton()函數(shù)。refresh_data()的功能是設(shè)置ado data控件的記錄源與其他對(duì)話框的ado控件的功能類(lèi)似,onaddbutton()函數(shù)與其他對(duì)話框的添加函數(shù)類(lèi)似。代碼不再詳細(xì)描述。
    4.82 設(shè)計(jì)入庫(kù)單編輯對(duì)話框
    入庫(kù)單編輯對(duì)話框的id為idd_storeindit_dialog。對(duì)話框的布局如圖:
    對(duì)話框?qū)?yīng)的類(lèi)為cstoreineditdlg。在此對(duì)話框中使用了5個(gè)ado data控件,功能與其他對(duì)話框的ado data控件相同。此對(duì)話框主要函數(shù)是onselchangeclttypecombo()和onchangeppriceedit()函數(shù)。
    1、onselchangeclttypecombo()函數(shù)功能是當(dāng)用戶(hù)在客戶(hù)類(lèi)別組合框中選擇不同類(lèi)別時(shí),根據(jù)用戶(hù)所選擇的客戶(hù)類(lèi)別設(shè)置查詢(xún)條件。主要代碼如下: onselchangeclttypecombo(){ //設(shè)置查詢(xún)客戶(hù)的select語(yǔ)句
    cstring csource;csource = ”select * from client“;//根據(jù)客戶(hù)類(lèi)別設(shè)置查詢(xún)條件
    if(sel()== 0)
    csource += ” where ctype = 1“;else
    csource += ” where ctype = 2“;t(”“);//清除客戶(hù)組合框的顯示內(nèi)容
    ordsource(csource);//設(shè)置數(shù)據(jù)源,重新客戶(hù)列表
    h();}
    2、onchangeppriceedit()函數(shù)功能是當(dāng)用戶(hù)改變商品單價(jià)數(shù)據(jù)時(shí),總價(jià)格也隨著變化而變化。主要代碼如下: cstoreineditdlg::onchangeppriceedit(){ updatedata(true);//讀取輸入數(shù)據(jù)到成員變量 (”%.2f“, m_pprice * m_pnum);//計(jì)算總價(jià)格
    updatedata(false);
    //顯示成員變量值 } 當(dāng)用戶(hù)單擊“確定“按鈕時(shí)執(zhí)行onok()函數(shù),將輸入的信息插入到數(shù)據(jù)庫(kù)中。
    4.83 設(shè)計(jì)出庫(kù)操作管理對(duì)話框
    出庫(kù)操作管理對(duì)話框的id為idd_takeoutman_dialog.對(duì)話框布局如圖:
    對(duì)話框所對(duì)應(yīng)的類(lèi)為ctakeoutmandlg。主要函數(shù)refresh_data()、onaddbutton()。功能與入庫(kù)管理對(duì)話框相似。不再詳述。4.84 設(shè)計(jì)出庫(kù)操作編輯對(duì)話框
    出庫(kù)操作編輯對(duì)話框的id為idd_takeoutedit_dialog。對(duì)應(yīng)的類(lèi)為ctakeouteditdlg。布局如圖:
    對(duì)話框中的datagrid控件用于根據(jù)用戶(hù)選擇的商品和倉(cāng)庫(kù)信息顯示相關(guān)的庫(kù)存商品,用戶(hù)可以從其中選擇需要出庫(kù)的商品,然后輸入出庫(kù)數(shù)量。在顯示庫(kù)存商品時(shí),需要查詢(xún)默認(rèn)商品的價(jià)格數(shù)量,并顯示在表格下方。因此,需要調(diào)用onclickdatagrid2()函數(shù)。程序?qū)膁atagrid控件中讀取商品價(jià)格和庫(kù)存數(shù)量等信息,并顯示在對(duì)話框的相關(guān)位置。主要代碼如下:onclickdatagrid2(){ ……
    m_pprice = m(1);//從表格中讀取產(chǎn)品價(jià)格
    m_pnum1 = m(2);//從表格中讀取產(chǎn)品庫(kù)存數(shù)量
    updatedata(false);……
    } 當(dāng)用戶(hù)點(diǎn)擊“確定“按鈕時(shí),執(zhí)行onok()函數(shù),將編輯的倉(cāng)庫(kù)出庫(kù)單保存到數(shù)據(jù)庫(kù)中。主要代碼如下: { ……
    cproinstore pi;ctakeout to;cstring ctype;//插入出庫(kù)數(shù)量
    _insert();//@@@@@ 保存庫(kù)存產(chǎn)品信息 @@@@@ ……
    _insert();} 4.85 設(shè)計(jì)庫(kù)存盤(pán)點(diǎn)管理對(duì)話框
    庫(kù)存盤(pán)點(diǎn)管理對(duì)話框的id為idd_checkman_dialog。對(duì)話框的布局如圖:對(duì)話框?qū)?yīng)的類(lèi)為ccheckmandlg。對(duì)話框主要函數(shù)是
    refresh_data()。功能是設(shè)置數(shù)據(jù)源,查詢(xún)相關(guān)庫(kù)存盤(pán)點(diǎn)信息。主要代碼如下:refresh_data(){cstring cpid;//保存當(dāng)前選擇的產(chǎn)品編號(hào) ……
    cstring csid;//保存當(dāng)前選擇的倉(cāng)庫(kù)編號(hào)
    …..//設(shè)置select語(yǔ)句
    cstring csource;csource = ”select spid, pprice as 產(chǎn)品入庫(kù)單價(jià), pnum as 庫(kù)存數(shù)量, makedate as 生產(chǎn)日期“;csource += ” from proinstore where pid=“ + cpid + ” and sid=" + csid;//設(shè)置記錄源
    ordsource(csource);h();……} 4.86 設(shè)計(jì)庫(kù)存盤(pán)點(diǎn)編輯對(duì)話框
    庫(kù)存盤(pán)點(diǎn)編輯對(duì)話框用于編輯指定商品的庫(kù)存數(shù)量,從而糾正庫(kù)存數(shù)量可能存在的錯(cuò)誤。對(duì)話框的id為idd_checkedit_dialog。對(duì)話框的布局如圖: 對(duì)話框類(lèi)為ccheckeditdlg。當(dāng)用戶(hù)單擊“確定”按鈕時(shí),執(zhí)行onok()函數(shù)。其功能是更新庫(kù)存數(shù)量。代碼如下: onok(){ updatedata(true);//將用戶(hù)輸入數(shù)據(jù)讀取到成員變量中
    //更新庫(kù)存數(shù)量
    cproinstore obj;m(m_newnum);_updatepnum(cspid);} 4.9 庫(kù)存警示管理模塊設(shè)計(jì)
    庫(kù)存警示管理模塊可以實(shí)現(xiàn)以下功能:
    1、實(shí)現(xiàn)數(shù)量報(bào)警管理。即當(dāng)庫(kù)存商品的數(shù)量低于下線或超過(guò)上線時(shí)報(bào)警。
    2、實(shí)現(xiàn)失效報(bào)警管理,即當(dāng)庫(kù)存商品即將達(dá)到有效期時(shí)報(bào)警。4.91 設(shè)計(jì)商品數(shù)量報(bào)警管理模塊
    商品數(shù)量報(bào)警信息管理對(duì)話框用來(lái)顯示所有需要進(jìn)行數(shù)量報(bào)警的商品信息。為了更方便的統(tǒng)計(jì)商品數(shù)量報(bào)警信息,需要?jiǎng)?chuàng)建一個(gè)視圖total_num,它的作用是統(tǒng)計(jì)每種庫(kù)存商品數(shù)量。主要代碼如下: use [stock] go alter view [dbo].[total_num] as select tore.pid, sum(tore.pnum)as total from tore inner join t on tore.pid = group by tore.pid go 商品數(shù)量報(bào)警信息管理對(duì)話框的id為idd_numalarm_dialog。對(duì)話框布局如圖:對(duì)話框?qū)?yīng)的類(lèi)為cnumalarmdlg。主要函數(shù)是refresh_data()。功能與其他對(duì)話框的refresh_data()類(lèi)似。在此不再詳述。
    警告類(lèi)型分為短線和超儲(chǔ)兩種情況,程序?qū)⒏鶕?jù)用戶(hù)選擇的類(lèi)型進(jìn)行統(tǒng)計(jì)。
    4.92 設(shè)計(jì)商品失效報(bào)警管理模塊
    商品失效報(bào)警信息管理對(duì)話框用來(lái)顯示所有需要進(jìn)行失效報(bào)警的商品信息。為了更好方便的統(tǒng)計(jì)商品失效報(bào)警信息,需要?jiǎng)?chuàng)建一個(gè)視圖vaild,它的功能是統(tǒng)計(jì)庫(kù)存商品價(jià)格、數(shù)量、生產(chǎn)日期、倉(cāng)庫(kù)名稱(chēng)和距離失效期的天數(shù)等信息。主要代碼如下: use [stock] go alter view [dbo].[valid] as select as 庫(kù)存記錄編號(hào), as 商品名稱(chēng), as 商品價(jià)格, tore.pnum as 商品數(shù)量,tore.makedate as 生產(chǎn)日期, ouse.sname as 倉(cāng)庫(kù)名稱(chēng),round(datediff(day, dateadd(day,, tore.makedate),getdate()), 0)as 距離失效期的天數(shù) from tore inner join t on tore.pid = and datediff(day,getdate(), tore.makedate)
    >= ays inner join ouse on tore.sid = ouse.sid go 在select語(yǔ)句中,使用了如下的sql server函數(shù):
    1、dateadd 在向指定日期加上一段時(shí)間的基礎(chǔ)上,返回新的datatime值。
    2、datediff 返回兩個(gè)指定日期的時(shí)間差。
    3、round 根據(jù)指定的長(zhǎng)度和精度對(duì)數(shù)字表達(dá)式進(jìn)行四舍五入。
    4、getdate 按datetime值的sql server標(biāo)準(zhǔn)內(nèi)部格式返回當(dāng)前系統(tǒng)日期和時(shí)間。
    商品失效報(bào)警信息管理對(duì)話框id為idd_valid_dialog。對(duì)應(yīng)的類(lèi)為cvaliddlg。對(duì)話框的布局與商品數(shù)量報(bào)警信息管理對(duì)話框類(lèi)似。因?yàn)楣δ芤呀?jīng)在視圖里實(shí)現(xiàn)了所以此對(duì)話框不用添加額外的函數(shù)。第五章 結(jié)束語(yǔ)
    5.0 開(kāi)發(fā)中的問(wèn)題和解決辦法
    如何高效的在vc++中添加類(lèi)與對(duì)話框及消息響應(yīng)函數(shù)。為了解決這些問(wèn)題,本設(shè)計(jì)中的所設(shè)計(jì)的類(lèi)與對(duì)話框采用利用vc++向?qū)桑缓笤谧詣?dòng)生成的基礎(chǔ)上修改,節(jié)省了相當(dāng)一部分繁瑣的時(shí)間加快了程序開(kāi)發(fā)的速度,節(jié)省了開(kāi)發(fā)的時(shí)間。
    在設(shè)計(jì)中使用了大量的數(shù)據(jù),設(shè)計(jì)了大量的表格。為了便于實(shí)現(xiàn)數(shù)據(jù)與表的連接、表與類(lèi)的連接,采用了數(shù)據(jù)庫(kù)軟件。這樣只要調(diào)用數(shù)據(jù)庫(kù)本身的查詢(xún)、插入、修改等語(yǔ)句就以輕松的操作這些數(shù)據(jù)。使理論上的知識(shí)很好的與實(shí)際問(wèn)題相結(jié)合。5.1 系統(tǒng)不足之處
    在本設(shè)計(jì)中,還有很多不足之處:界面的美觀還可以進(jìn)行更進(jìn)一步的改善,還可以再增加一些功能,比如在狀態(tài)欄增加時(shí)間顯示,可以讓使用人員很方便的看到當(dāng)前時(shí)間。也可以增加實(shí)時(shí)的通訊功能,可以讓管理員與普通用戶(hù)之間進(jìn)行實(shí)時(shí)通訊。本系統(tǒng)在處理大量的數(shù)據(jù)時(shí)能力還很欠缺,應(yīng)該再設(shè)計(jì)時(shí)采用一些適當(dāng)?shù)乃惴▽?duì)本系統(tǒng)進(jìn)行優(yōu)化。第六章 致謝
    在論文完成之際,我要特別感謝我的指導(dǎo)老師呂知辛老師的熱情關(guān)懷和悉心指導(dǎo)。在我撰寫(xiě)論文的過(guò)程中,呂知辛老師傾注了大量的心血和汗水,無(wú)論是在論文的選題、構(gòu)思和資料的收集方面,還是在論文的研究方法以及成文定稿方面,我都得到了呂知辛老師悉心細(xì)致的教誨和無(wú)私的幫助,特別是他廣博的學(xué)識(shí)、深厚的學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我終生受益,在此表示真誠(chéng)地感謝和深深的謝意。
    在論文的寫(xiě)作過(guò)程中,也得到了許多同學(xué)的寶貴建議,在此一并致以誠(chéng)摯的謝意。感謝所有關(guān)心、支持、幫助過(guò)我的良師益友。
    參考文獻(xiàn)
    【1】++深入詳解.北京:電子工業(yè)出版社.2006
    【2】屈磊 c++開(kāi)發(fā)入門(mén)與編程實(shí)踐.北京:電子工業(yè)出版社2007
    【3】(美)sartaj sahni.數(shù)據(jù)結(jié)構(gòu)、算法與應(yīng)用——c++語(yǔ)言描述.北京:機(jī)械工業(yè)出版社.2001 【4】王立副 麻志毅 張世琨.軟件工程.北京:北京大學(xué)出版社.1999.【5】苗雪蘭 劉瑞新 宋會(huì)群.數(shù)據(jù)庫(kù)技術(shù)及應(yīng)用.北京:機(jī)械工業(yè)出版社.2005 【6】李濤 劉凱奎 王永晈.數(shù)據(jù)庫(kù)開(kāi)發(fā)與實(shí)例.北京:清華大學(xué)出版社.2006 【7】 server 2005 數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā).北京:人民郵電出版社.2007 【8】(美)timothy .面向?qū)ο缶幊虒?dǎo)論.北京:機(jī)械工業(yè)出版社.2003 【9】 c++教程[m].北京:機(jī)械工業(yè)出版社,2004 【10】 c++ 6.0范例入門(mén)與提高[m].北京:清華大學(xué)出版社.2003
    【11】:劉誠(chéng)方,dc++windows初級(jí)程序設(shè)計(jì).天津:天津科學(xué)技術(shù)出版社.1997.1
    【12】陳慧南.數(shù)據(jù)結(jié)構(gòu):使用c++描述.南京:東南大學(xué)出版社.2001
    倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)論文篇二
    畢業(yè)實(shí)習(xí)報(bào)告
    一、實(shí)習(xí)目的
    信息與計(jì)算科學(xué)是一門(mén)需要實(shí)踐性的課程,平時(shí)大多數(shù)時(shí)間都在講理論, 所 以實(shí)踐的機(jī)會(huì)是十分重要的并且珍貴的。為了能更好的把理論與實(shí)踐相結(jié)合, 增 強(qiáng)對(duì) java 語(yǔ)言的應(yīng)用能力,增強(qiáng)知識(shí)運(yùn)用能力,我們專(zhuān)業(yè)在學(xué)院的安排下于今 年暑假進(jìn)行了畢業(yè)實(shí)習(xí)。
    二、實(shí)習(xí)時(shí)間
    實(shí)習(xí)時(shí)間為 2011-7-4—— 2011-7-23, 主要有學(xué)習(xí)java 相關(guān)知識(shí)、分小組做項(xiàng)目、答辯幾個(gè)階段組成。
    三、實(shí)習(xí)地點(diǎn) 數(shù)學(xué)實(shí)驗(yàn)室。
    四、實(shí)驗(yàn)方式
    重慶達(dá)內(nèi)軟件有限公司兼學(xué)院老師指導(dǎo)的校內(nèi)實(shí)習(xí)。
    五、實(shí)習(xí)主要內(nèi)容 1 初期知識(shí)積累
    實(shí)習(xí)開(kāi)始于放假后的幾天 在重慶炎熱的夏天 在機(jī)房雖然有空調(diào)但依然很 熱。但是值得慶幸的是我們都學(xué)到了一些東西 ,這就是俗話說(shuō)的陽(yáng)光總在風(fēng)雨 后吧。
    實(shí)習(xí)的主要內(nèi)容是 java 的運(yùn)用。java 的主要特點(diǎn)是 java 的安全性高,不 能寫(xiě)病毒, 所以適用于金融等對(duì)安全性要求較高的行業(yè)。但是病毒可以通過(guò) java 虛擬機(jī)寫(xiě)。java 和 flash 一起可以達(dá)到很好的頁(yè)面效果, 單單 java 是做不到的。數(shù)據(jù)庫(kù)和 java 的連接需要在程序中寫(xiě)好代碼, 外部用建好的數(shù)據(jù)庫(kù), 只要 設(shè)置正確就可以實(shí)現(xiàn)數(shù)據(jù)的調(diào)用。若某些操作可能拋出異常, 則先將其選中, 然 后右
    擊鼠標(biāo)—包圍方式— 塊,即可自動(dòng)生成 try-catch 語(yǔ)句。建立 一個(gè)類(lèi)之后, 定義相關(guān)的屬性, 右擊鼠標(biāo)—源代碼—生成 get 和 set 語(yǔ)句, 即可 快速地生成每個(gè)屬性的 set 與 get 函數(shù), 減少了工作量。這些簡(jiǎn)易高效率的操作 也更加證明了 java 作為一門(mén)語(yǔ)言的強(qiáng)大。
    三層架構(gòu)在寫(xiě)代碼時(shí)起到了很重要的作用,一切的工作都需要依附于這一 結(jié)構(gòu)才能夠真正地去構(gòu)建要實(shí)現(xiàn)的系統(tǒng)。它們是組織整個(gè)系統(tǒng)的骨骼, 支撐起整 個(gè)系統(tǒng)的各項(xiàng)功能。action 層是返回層, biz 層是業(yè)務(wù)邏輯層, dao 層是數(shù)據(jù)訪 問(wèn)層。
    struts 框架工具是 apache 基金會(huì) jakarta 項(xiàng)目中推出的一個(gè)子項(xiàng)目。struts 在英文中是支架、支撐的意思, 這也體現(xiàn)出 struts 在開(kāi)發(fā) web 應(yīng)用程 序過(guò)程所起到的重要作用, struts 為 web 應(yīng)用提供了通用的框架,讓開(kāi)發(fā)人 員可以把主要精力集中在如何解決實(shí)際業(yè)務(wù)問(wèn)題上, 與此同時(shí) struts 框架也允 許開(kāi)發(fā)人員根據(jù)實(shí)際需要進(jìn)行擴(kuò)展和定制, 從而可以更好的適應(yīng)用戶(hù)的需求。采 用 struts 可以簡(jiǎn)化遵循 mvc 設(shè)計(jì)模式的 web 應(yīng)用的開(kāi)發(fā)工作, 很好地實(shí)現(xiàn)代 碼重用,使開(kāi)發(fā)人員從一些繁瑣的工作中解脫出來(lái),快速開(kāi)發(fā)能夠充分發(fā)揮 jsp/servlet 優(yōu)點(diǎn)、并具有強(qiáng)可擴(kuò)展性的 web 應(yīng)用??傊? struts 的出現(xiàn)使 得 web 應(yīng)用的開(kāi)發(fā)過(guò)程大大簡(jiǎn)化,從而能夠縮短開(kāi)發(fā)周期、提高開(kāi)發(fā)效率。struts 架構(gòu)一經(jīng)推出, 即受到 java 開(kāi)發(fā)群體的廣泛重視, 從 2004 年開(kāi) 始逐漸升溫,并日漸成為 java 創(chuàng)建 web 應(yīng)用開(kāi)發(fā)的最流行的框架工具,在目 前 java web 程序員的招聘要求中,幾乎都提出了對(duì) struts 的要求,精通 struts 架構(gòu)已經(jīng)成為 java web 程序員必備的技能。
    2實(shí)習(xí)中遇到的問(wèn)題及解決方案
    實(shí)習(xí)前期最重要的是安裝軟件 又由于學(xué)校的機(jī)房的電腦的配置不是很好故不 是每一臺(tái)電腦都可以用的, 所以好多的同學(xué)都得帶自己的電腦來(lái)。就在這個(gè)安裝 的過(guò)程中問(wèn)題又是很多種的路勁的問(wèn)題最多。最后在老師的幫助下這個(gè)問(wèn)題算是 很快的解決了。java 對(duì)于某些細(xì)節(jié)的東西要求是很?chē)?yán)格的 對(duì)于代碼是不能出錯(cuò) 的這是絕對(duì)的因?yàn)槿绻愠隽艘稽c(diǎn)點(diǎn)的小錯(cuò)誤可能導(dǎo)致你的整個(gè)程序都跑步起 來(lái), 或者是其中某些重要的功能不能實(shí)現(xiàn)。再有對(duì)于頁(yè)面的設(shè)置頁(yè)面之間的跳轉(zhuǎn) 傳值字體 的設(shè)置是關(guān)鍵雖然這是一個(gè)在老師看來(lái)是不為問(wèn)題的問(wèn)題但還是經(jīng)常 出錯(cuò) utf-8這個(gè)就是頁(yè)面上的設(shè)置。是一個(gè)很小的細(xì)節(jié)問(wèn)題。這里也體現(xiàn)了 java 細(xì)節(jié)重要性。
    3倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)過(guò)程
    實(shí)習(xí)的最后要求是做一個(gè)項(xiàng)目可供選擇的項(xiàng)目有 4個(gè),我們小組做的項(xiàng) 目是倉(cāng)庫(kù)管理系統(tǒng)。該系統(tǒng)又又前臺(tái)和后臺(tái)組成我主要的分工是做前臺(tái)頁(yè)面的設(shè) 計(jì), 設(shè)計(jì)用戶(hù)的登陸和注冊(cè)。在用戶(hù)表中插入一條管理員的相關(guān)信息的記錄, 在 登陸界面上用戶(hù)可以選擇登錄或者注冊(cè)。若選擇登錄,即要輸入用戶(hù)名和密碼, 系統(tǒng)要判斷輸入的用戶(hù)名是否存在, 密碼是否一致。若滿足條件, 則可以順利登 陸,即頁(yè)面跳轉(zhuǎn)至顯示有用戶(hù)信息的頁(yè)面;若選擇注冊(cè),則跳轉(zhuǎn)至注冊(cè)頁(yè)面,用 戶(hù)需輸入各種信息以完成注冊(cè)。如果輸入合法, 則注冊(cè)成功并能夠跳轉(zhuǎn)至登錄頁(yè) 面。這一塊只是外部的一個(gè)框架包括顏色的配比什么的。主要的內(nèi)容還是內(nèi)部的 代碼的運(yùn)用。
    物資入庫(kù),往一個(gè)表中插入物品記錄。這個(gè)表中的數(shù)據(jù)記錄在數(shù)據(jù)庫(kù)當(dāng)中 這一功能的實(shí)現(xiàn)需要用戶(hù)輸入物資名、數(shù)量等信息, 這樣即可將相應(yīng)的物資入庫(kù)。物資查詢(xún),就是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)把要求的在頁(yè)面顯示,這一功能比較容 易實(shí)現(xiàn)。點(diǎn)擊物資查詢(xún)的鏈接后就可以跳至查詢(xún)界面,并顯示物資的各項(xiàng)信息。庫(kù)存系統(tǒng)的設(shè)計(jì)中,各種功能較多,實(shí)現(xiàn)的頁(yè)面跳轉(zhuǎn)尤其多,所以需要一 個(gè)主頁(yè)面,使得操作簡(jiǎn)單明了,不至于混亂。
    主頁(yè)面要實(shí)現(xiàn)把各個(gè)部分分塊,即先把頁(yè)面的格局分好,再分別在每一個(gè) 小區(qū)塊中寫(xiě)相應(yīng)的頁(yè)面。有固定的導(dǎo)航塊, 所以對(duì)各種功能的操作更加容易實(shí)現(xiàn) 了。
    主頁(yè)面的外部設(shè)計(jì)用了學(xué)校的主頁(yè)頁(yè)面圖片看上去比較氣氛。我們又在主 頁(yè)面的最上部加了滾動(dòng)條這讓整個(gè)頁(yè)面顯得更加又生氣。中間部分, 左邊顯示用 戶(hù)信息, 右上部分是各種操作功能的鏈接。在鏈接處都放上了按鈕的圖片, 使這 一部風(fēng)看起來(lái)像是按鈕圖片。(其實(shí)是連接所以有了具有按鈕效果的鏈接,這 是一個(gè)小技巧, 因?yàn)橹苯佑冒粹o是實(shí)現(xiàn)不了相應(yīng)的跳轉(zhuǎn)功能的, 只有鏈接才可以 做到, 于是鏈接加上按鈕的圖片就是最好的解決方案了。右下部分跳轉(zhuǎn)頁(yè)面, 即 點(diǎn)擊鏈接后, 右下 的頁(yè)面跳轉(zhuǎn)至相應(yīng)的頁(yè)面??傊? 主頁(yè)面的設(shè)計(jì)讓一系列復(fù)雜 繁瑣的操作有了較強(qiáng)的連貫性,使用戶(hù)使用該系統(tǒng)的舒適感倍增。
    剛開(kāi)始時(shí),實(shí)現(xiàn)的物資出庫(kù)功能沒(méi)有考慮要出庫(kù)的數(shù)量是否多于庫(kù)存的數(shù) 量, 所以貌似完成的庫(kù)存系統(tǒng)是一個(gè)可以無(wú)限出庫(kù)的系統(tǒng), 不能滿足對(duì)系統(tǒng)的安 全性和穩(wěn)定性的要求??紤]到上述因素, 又對(duì)系統(tǒng)有了進(jìn)一步的完善, 即增加了 出庫(kù)時(shí)的數(shù)量判斷。編寫(xiě)一個(gè)判斷函數(shù)即可滿足要求。輸入了出庫(kù)信息后, 提交 時(shí)即判斷庫(kù)存量是否滿足需求:若出庫(kù)量過(guò)大, 則顯示物品在倉(cāng)庫(kù)中不存在。通 過(guò)這一系列的提示即可滿足倉(cāng)庫(kù)系統(tǒng)的實(shí)際性要求。
    六、實(shí)習(xí)總結(jié)及體會(huì)
    一個(gè)項(xiàng)目是一個(gè)團(tuán)隊(duì)的工作一個(gè)人不能把一個(gè)項(xiàng)目搞定的幾時(shí)可以那花的 時(shí)間也是非常的巨大的還有很多的地方不一定能涉及到。團(tuán)隊(duì)的力量才是最厲害 的俗話說(shuō)人心其泰山移說(shuō)的就是這個(gè)道理。再有一點(diǎn)就是我們要充分相信我們的 隊(duì)友, 我們也要為我們的團(tuán)隊(duì)盡自己的最大努力。我們最終寫(xiě)了一個(gè)庫(kù)存系統(tǒng)雖 然在老師的眼里不是很好但是這個(gè)項(xiàng)目也是我們實(shí)習(xí)里的最好的一個(gè)對(duì)于我們 來(lái)說(shuō)這個(gè)項(xiàng)目是我們以團(tuán)隊(duì)做的第一個(gè)項(xiàng)目即時(shí)它很爛我們也覺(jué)得很好因?yàn)槲?們努力去做了以團(tuán)隊(duì)去做了。
    對(duì)于這個(gè) java 項(xiàng)目它對(duì)代碼要求很高特別是細(xì)節(jié)問(wèn)題。在平時(shí)學(xué)習(xí)的知識(shí) 太有限了, 與實(shí)際的應(yīng)用的技能有較大的差距, 我們必須加強(qiáng)相關(guān)的訓(xùn)練以增強(qiáng) 編程、網(wǎng)頁(yè)設(shè)計(jì)等方面的技能,只有把理論運(yùn)用到實(shí)踐才是正真的理會(huì)。總的來(lái)說(shuō), 實(shí)習(xí)雖然是個(gè)艱辛的過(guò)程但只有經(jīng)歷風(fēng)雨我們才能成長(zhǎng)經(jīng)歷磨難 錯(cuò)誤我們才會(huì)成功,這是這個(gè)項(xiàng)目教會(huì)我的。
    倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)論文篇三
    畢業(yè)實(shí)習(xí)報(bào)告
    一、實(shí)習(xí)目的信息與計(jì)算科學(xué)是一門(mén)需要實(shí)踐性的課程,平時(shí)大多數(shù)時(shí)間都在講理論,所以實(shí)踐的機(jī)會(huì)是十分重要的并且珍貴的。為了能更好的把理論與實(shí)踐相結(jié)合,增強(qiáng)對(duì)java語(yǔ)言的應(yīng)用能力,增強(qiáng)知識(shí)運(yùn)用能力,我們專(zhuān)業(yè)在學(xué)院的安排下于今年暑假進(jìn)行了畢業(yè)實(shí)習(xí)。
    二、實(shí)習(xí)時(shí)間
    實(shí)習(xí)時(shí)間為2011-7-4——2011-7-23,主要有學(xué)習(xí)java相關(guān)知識(shí)、分小組做項(xiàng)目、答辯幾個(gè)階段組成。
    三、實(shí)習(xí)地點(diǎn)
    數(shù)學(xué)實(shí)驗(yàn)室。
    四、實(shí)驗(yàn)方式
    重慶達(dá)內(nèi)軟件有限公司兼學(xué)院老師指導(dǎo)的校內(nèi)實(shí)習(xí)。
    五、實(shí)習(xí)主要內(nèi)容初期知識(shí)積累
    實(shí)習(xí)開(kāi)始于放假后的幾天 在重慶炎熱的夏天 在機(jī)房雖然有空調(diào)但依然很熱。但是值得慶幸的是我們都學(xué)到了一些東西,這就是俗話說(shuō)的陽(yáng)光總在風(fēng)雨后吧。
    實(shí)習(xí)的主要內(nèi)容是java的運(yùn)用。java的主要特點(diǎn)是java的安全性高,不能寫(xiě)病毒,所以適用于金融等對(duì)安全性要求較高的行業(yè)。但是病毒可以通過(guò)java虛擬機(jī)寫(xiě)。java和flash一起可以達(dá)到很好的頁(yè)面效果,單單java是做不到的。
    數(shù)據(jù)庫(kù)和java的連接需要在程序中寫(xiě)好代碼,外部用建好的數(shù)據(jù)庫(kù),只要設(shè)置正確就可以實(shí)現(xiàn)數(shù)據(jù)的調(diào)用。若某些操作可能拋出異常,則先將其選中,然后右擊鼠標(biāo)—包圍方式—try.catch塊,即可自動(dòng)生成try-catch語(yǔ)句。建立一個(gè)類(lèi)之后,定義相關(guān)的屬性,右擊鼠標(biāo)—源代碼—生成get和set語(yǔ)句,即可快速地生成每個(gè)屬性的set與get函數(shù),減少了工作量。這些簡(jiǎn)易高效率的操作也更加證明了java作為一門(mén)語(yǔ)言的強(qiáng)大。
    三層架構(gòu)在寫(xiě)代碼時(shí)起到了很重要的作用,一切的工作都需要依附于這一結(jié)構(gòu)才能夠真正地去構(gòu)建要實(shí)現(xiàn)的系統(tǒng)。它們是組織整個(gè)系統(tǒng)的骨骼,支撐起整個(gè)系統(tǒng)的各項(xiàng)功能。action層是返回層,biz層是業(yè)務(wù)邏輯層,dao層是數(shù)據(jù)訪問(wèn)層。
    struts 框架工具是 apache 基金會(huì) jakarta 項(xiàng)目中推出的一個(gè)子項(xiàng)目。struts 在英文中是支架、支撐的意思,這也體現(xiàn)出 struts 在開(kāi)發(fā) web 應(yīng)用程序過(guò)程所起到的重要作用,struts 為 web 應(yīng)用提供了通用的框架,讓開(kāi)發(fā)人員可以把主要精力集中在如何解決實(shí)際業(yè)務(wù)問(wèn)題上,與此同時(shí) struts 框架也允許開(kāi)發(fā)人員根據(jù)實(shí)際需要進(jìn)行擴(kuò)展和定制,從而可以更好的適應(yīng)用戶(hù)的需求。采用 struts 可以簡(jiǎn)化遵循 mvc 設(shè)計(jì)模式的 web 應(yīng)用的開(kāi)發(fā)工作,很好地實(shí)現(xiàn)代碼重用,使開(kāi)發(fā)人員從一些繁瑣的工作中解脫出來(lái),快速開(kāi)發(fā)能夠充分發(fā)揮 jsp/servlet 優(yōu)點(diǎn)、并具有強(qiáng)可擴(kuò)展性的 web 應(yīng)用。總之,struts 的出現(xiàn)使得 web 應(yīng)用的開(kāi)發(fā)過(guò)程大大簡(jiǎn)化,從而能夠縮短開(kāi)發(fā)周期、提高開(kāi)發(fā)效率。
    struts 架構(gòu)一經(jīng)推出,即受到 java 開(kāi)發(fā)群體的廣泛重視,從 2004 年開(kāi)始逐漸升溫,并日漸成為 java 創(chuàng)建 web 應(yīng)用開(kāi)發(fā)的最流行的框架工具,在目前 java web 程序員的招聘要求中,幾乎都提出了對(duì) struts 的要求,精通 struts 架構(gòu)已經(jīng)成為 java web 程序員必備的技能。實(shí)習(xí)中遇到的問(wèn)題及解決方案
    實(shí)習(xí)前期最重要的是安裝軟件 又由于學(xué)校的機(jī)房的電腦的配置不是很好故不是每一臺(tái)電腦都可以用的,所以好多的同學(xué)都得帶自己的電腦來(lái)。就在這個(gè)安裝的過(guò)程中問(wèn)題又是很多種的路勁的問(wèn)題最多。最后在老師的幫助下這個(gè)問(wèn)題算是很快的解決了。java對(duì)于某些細(xì)節(jié)的東西要求是很?chē)?yán)格的 對(duì)于代碼是不能出錯(cuò)的這是絕對(duì)的因?yàn)槿绻愠隽艘稽c(diǎn)點(diǎn)的小錯(cuò)誤可能導(dǎo)致你的整個(gè)程序都跑步起來(lái),或者是其中某些重要的功能不能實(shí)現(xiàn)。再有對(duì)于頁(yè)面的設(shè)置頁(yè)面之間的跳轉(zhuǎn)傳值字體的設(shè)置是關(guān)鍵雖然這是一個(gè)在老師看來(lái)是不為問(wèn)題的問(wèn)題但還是經(jīng)常出錯(cuò)utf-8這個(gè)就是頁(yè)面上的設(shè)置。是一個(gè)很小的細(xì)節(jié)問(wèn)題。這里也體現(xiàn)了java細(xì)節(jié)重要性。倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)過(guò)程
    實(shí)習(xí)的最后要求是做一個(gè)項(xiàng)目可供選擇的項(xiàng)目有4個(gè),我們小組做的項(xiàng)目是倉(cāng)庫(kù)管理系統(tǒng)。該系統(tǒng)又又前臺(tái)和后臺(tái)組成我主要的分工是做前臺(tái)頁(yè)面的設(shè)計(jì),設(shè)計(jì)用戶(hù)的登陸和注冊(cè)。在用戶(hù)表中插入一條管理員的相關(guān)信息的記錄,在登陸界面上用戶(hù)可以選擇登錄或者注冊(cè)。若選擇登錄,即要輸入用戶(hù)名和密碼,系統(tǒng)要判斷輸入的用戶(hù)名是否存在,密碼是否一致。若滿足條件,則可以順利登陸,即頁(yè)面跳轉(zhuǎn)至顯示有用戶(hù)信息的頁(yè)面;若選擇注冊(cè),則跳轉(zhuǎn)至注冊(cè)頁(yè)面,用戶(hù)需輸入各種信息以完成注冊(cè)。如果輸入合法,則注冊(cè)成功并能夠跳轉(zhuǎn)至登錄頁(yè)面。這一塊只是外部的一個(gè)框架包括顏色的配比什么的。主要的內(nèi)容還是內(nèi)部的代碼的運(yùn)用。
    物資入庫(kù),往一個(gè)表中插入物品記錄。這個(gè)表中的數(shù)據(jù)記錄在數(shù)據(jù)庫(kù)當(dāng)中這一功能的實(shí)現(xiàn)需要用戶(hù)輸入物資名、數(shù)量等信息,這樣即可將相應(yīng)的物資入庫(kù)。
    物資查詢(xún),就是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)把要求的在頁(yè)面顯示,這一功能比較容易實(shí)現(xiàn)。點(diǎn)擊物資查詢(xún)的鏈接后就可以跳至查詢(xún)界面,并顯示物資的各項(xiàng)信息。
    庫(kù)存系統(tǒng)的設(shè)計(jì)中,各種功能較多,實(shí)現(xiàn)的頁(yè)面跳轉(zhuǎn)尤其多,所以需要一個(gè)主頁(yè)面,使得操作簡(jiǎn)單明了,不至于混亂。
    主頁(yè)面要實(shí)現(xiàn)把各個(gè)部分分塊,即先把頁(yè)面的格局分好,再分別在每一個(gè)小區(qū)塊中寫(xiě)相應(yīng)的頁(yè)面。有固定的導(dǎo)航塊,所以對(duì)各種功能的操作更加容易實(shí)現(xiàn)了。
    主頁(yè)面的外部設(shè)計(jì)用了學(xué)校的主頁(yè)頁(yè)面圖片看上去比較氣氛。我們又在主頁(yè)面的最上部加了滾動(dòng)條這讓整個(gè)頁(yè)面顯得更加又生氣。中間部分,左邊顯示用戶(hù)信息,右上部分是各種操作功能的鏈接。在鏈接處都放上了按鈕的圖片,使這一部風(fēng)看起來(lái)像是按鈕圖片。(其實(shí)是連接)所以有了具有按鈕效果的鏈接,這是一個(gè)小技巧,因?yàn)橹苯佑冒粹o是實(shí)現(xiàn)不了相應(yīng)的跳轉(zhuǎn)功能的,只有鏈接才可以做到,于是鏈接加上按鈕的圖片就是最好的解決方案了。右下部分跳轉(zhuǎn)頁(yè)面,即點(diǎn)擊鏈接后,右下的頁(yè)面跳轉(zhuǎn)至相應(yīng)的頁(yè)面??傊黜?yè)面的設(shè)計(jì)讓一系列復(fù)雜繁瑣的操作有了較強(qiáng)的連貫性,使用戶(hù)使用該系統(tǒng)的舒適感倍增。
    剛開(kāi)始時(shí),實(shí)現(xiàn)的物資出庫(kù)功能沒(méi)有考慮要出庫(kù)的數(shù)量是否多于庫(kù)存的數(shù)量,所以貌似完成的庫(kù)存系統(tǒng)是一個(gè)可以無(wú)限出庫(kù)的系統(tǒng),不能滿足對(duì)系統(tǒng)的安全性和穩(wěn)定性的要求??紤]到上述因素,又對(duì)系統(tǒng)有了進(jìn)一步的完善,即增加了出庫(kù)時(shí)的數(shù)量判斷。編寫(xiě)一個(gè)判斷函數(shù)即可滿足要求。輸入了出庫(kù)信息后,提交時(shí)即判斷庫(kù)存量是否滿足需求:若出庫(kù)量過(guò)大,則顯示物品在倉(cāng)庫(kù)中不存在。通過(guò)這一系列的提示即可滿足倉(cāng)庫(kù)系統(tǒng)的實(shí)際性要求。
    六、實(shí)習(xí)總結(jié)及體會(huì)
    一個(gè)項(xiàng)目是一個(gè)團(tuán)隊(duì)的工作一個(gè)人不能把一個(gè)項(xiàng)目搞定的幾時(shí)可以那花的時(shí)間也是非常的巨大的還有很多的地方不一定能涉及到。團(tuán)隊(duì)的力量才是最厲害的俗話說(shuō)人心其泰山移說(shuō)的就是這個(gè)道理。再有一點(diǎn)就是我們要充分相信我們的隊(duì)友,我們也要為我們的團(tuán)隊(duì)盡自己的最大努力。我們最終寫(xiě)了一個(gè)庫(kù)存系統(tǒng)雖然在老師的眼里不是很好但是這個(gè)項(xiàng)目也是我們實(shí)習(xí)里的最好的一個(gè)對(duì)于我們來(lái)說(shuō)這個(gè)項(xiàng)目是我們以團(tuán)隊(duì)做的第一個(gè)項(xiàng)目即時(shí)它很爛我們也覺(jué)得很好因?yàn)槲覀兣θプ隽艘詧F(tuán)隊(duì)去做了。
    對(duì)于這個(gè)java項(xiàng)目它對(duì)代碼要求很高特別是細(xì)節(jié)問(wèn)題。在平時(shí)學(xué)習(xí)的知識(shí)太有限了,與實(shí)際的應(yīng)用的技能有較大的差距,我們必須加強(qiáng)相關(guān)的訓(xùn)練以增強(qiáng)編程、網(wǎng)頁(yè)設(shè)計(jì)等方面的技能,只有把理論運(yùn)用到實(shí)踐才是正真的理會(huì)。
    總的來(lái)說(shuō),實(shí)習(xí)雖然是個(gè)艱辛的過(guò)程但只有經(jīng)歷風(fēng)雨我們才能成長(zhǎng)經(jīng)歷磨難錯(cuò)誤我們才會(huì)成功,這是這個(gè)項(xiàng)目教會(huì)我的。