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