數(shù)據(jù)庫原理與應(yīng)用課程設(shè)計指導(dǎo)書(ACCESS)_第1頁
數(shù)據(jù)庫原理與應(yīng)用課程設(shè)計指導(dǎo)書(ACCESS)_第2頁
數(shù)據(jù)庫原理與應(yīng)用課程設(shè)計指導(dǎo)書(ACCESS)_第3頁
數(shù)據(jù)庫原理與應(yīng)用課程設(shè)計指導(dǎo)書(ACCESS)_第4頁
數(shù)據(jù)庫原理與應(yīng)用課程設(shè)計指導(dǎo)書(ACCESS)_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、PAGE 19PAGE 34數(shù)據(jù)庫原理與應(yīng)用實訓(xùn)指導(dǎo)書交通信息學(xué)院2011.09 庫存管理系統(tǒng)傳統(tǒng)的庫存管理,一批產(chǎn)品從入庫到出庫,要經(jīng)過多個環(huán)節(jié),而且具有如下幾個弊端:手工處理入庫、出庫造成產(chǎn)品供應(yīng)效率低,影響企業(yè)發(fā)展;手工完成大量的入庫、出庫和庫存統(tǒng)計,造成庫存產(chǎn)品匯總困難,使庫存結(jié)構(gòu)難以掌握;倉庫與管理部門之間信息交流少,造成庫存積壓,使資金周轉(zhuǎn)緩慢。建立計算機(jī)化的庫存管理系統(tǒng)可以對解決這些問題提供有效地幫助。一、數(shù)據(jù)庫設(shè)計根據(jù)庫存管理系統(tǒng)分析,庫存管理系統(tǒng)處理的數(shù)據(jù)涉及的表有入庫表、出庫表、庫存表以及商品信息等。要使所有表既無數(shù)據(jù)冗余,又無傳遞依賴,可將庫存管理系統(tǒng)數(shù)據(jù)庫定義為5張表,

2、分別為商品入庫表、商品出庫表、庫存表、商品信息表和倉庫表。各表結(jié)構(gòu)如下:表1 商品入庫表字段名稱字段類型長度允許空值備注入庫ID數(shù)字長整型必填主鍵入庫日期日期/時間長日期商品代碼文本20必填入庫數(shù)量數(shù)字長整型必填單位文本4組合框倉庫文本10組合框標(biāo)志文本1入庫數(shù)量修改差數(shù)字長整型表2 商品出庫表字 段 名 稱字 段 類 型長 度允 許 空 值備 注出庫ID數(shù)字長整型必填主鍵出庫日期日期/時間長日期商品代碼文本20必填出庫數(shù)量數(shù)字長整型必填單位文本4組合框倉庫文本10組合框標(biāo)志文本1出庫數(shù)量修改差數(shù)字長整型表3 庫存表字 段 名 稱字 段 類 型長 度必填備 注商品代碼數(shù)字長整型主鍵商品名稱文本

3、50倉庫文本10組合框單位文本4必填組合框庫存數(shù)量數(shù)字長整型必填默認(rèn)值:0最高儲備數(shù)字長整型必填最低儲備數(shù)字長整型表4 商品信息表字 段 名 稱字 段 類 型長 度允 許 空 值備 注商品代碼文本20必填主鍵商品名稱文本50必填條形碼文本20必填商品拼音編碼文本10必填單位文本4必填規(guī)格文本10必填產(chǎn)地文本20必填類別文本10必填進(jìn)貨價數(shù)字單精度必填倉庫文本10必填表5 倉庫表字 段 名 稱字 段 類 型長 度允 許 空 值備 注倉庫ID數(shù)字長整型必填主鍵倉庫名稱文本10倉庫位置文本50倉庫類型文本50安全等級文本50倉庫用途文本50倉庫容量數(shù)字長整型默認(rèn)值:0二、模塊設(shè)計根據(jù)前面的分析,并依

4、據(jù)系統(tǒng)設(shè)計,對整個系統(tǒng)進(jìn)行模塊設(shè)計,得到如圖1所示功能模塊。庫存管理系統(tǒng)庫存管理系統(tǒng)入庫處理出庫處理報表統(tǒng)計庫存控制填寫入庫單維護(hù)入庫單入庫信息查詢?nèi)霂煨畔@示維護(hù)出庫單填寫出庫單出庫信息顯示設(shè)置庫存限量庫存查詢報警處理催貨處理月入庫統(tǒng)計月出庫統(tǒng)計庫存統(tǒng)計出庫信息查詢圖1 庫存管理系統(tǒng)功能模塊三、 庫存管理系統(tǒng)設(shè)計過程1創(chuàng)建新數(shù)據(jù)庫啟動Access 2003 創(chuàng)建“庫存管理系統(tǒng).mdb”空數(shù)據(jù)庫。 2.創(chuàng)建表根據(jù)表1-表5的結(jié)構(gòu)在“庫存管理系統(tǒng).mdb”中創(chuàng)建表。3設(shè)置各表間的關(guān)系按圖2所示的關(guān)系創(chuàng)建表間關(guān)系。4填寫入庫/出庫單入庫/出庫處理最基本的工作內(nèi)容是填寫入庫/出庫單,修改庫存。根據(jù)倉

5、庫管理的要求,應(yīng)在填寫完入庫/出庫單后立即修改庫存,將入庫數(shù)量加到庫存量中,將出庫數(shù)量從庫存量中減去。要完成這樣的計算操作可以使用更新查詢。因此,在實現(xiàn)這個功能模塊時,首先建立更新查詢,然后創(chuàng)建填寫入庫/出庫單窗體,并將更新查詢與窗體連接起來,在關(guān)閉窗體時運(yùn)行該查詢,完成“庫存表”的修改操作。(1)創(chuàng)建更新庫存查詢查詢的功能是使用入庫信息更新庫存量和使用出庫信息更新庫存量。查詢名稱分別為“更新庫存量(入庫)”和“更新庫存量(出庫)”。創(chuàng)建“更新庫存量(入庫)”的步驟如下。 圖2 表間關(guān)系在數(shù)據(jù)庫窗口中單擊“查詢”容器,然后雙擊“在設(shè)計視圖中創(chuàng)建查詢”,調(diào)出“查詢設(shè)計視圖”窗口,并顯示一個“顯示

6、表”對話框,在“顯示表”對話框中,單擊“表”選項卡,然后分別雙擊“商品入庫表”和 “庫存表”,單擊【關(guān)閉】按鈕,關(guān)閉“顯示表”對話框。如圖3所示。圖3 顯示表對話框選擇“查詢”“更新查詢”菜單命令,在查詢“設(shè)計網(wǎng)格”中顯示一個“更新到”行。將“庫存表”中的“庫存數(shù)量”字段拖動到“設(shè)計網(wǎng)格”的“字段”行的第1列中,將“商品入庫表”中的“標(biāo)志”字段拖動到“設(shè)計網(wǎng)格”的“字段”行的第2列中,再在“庫存數(shù)量”字段的“更新到”單元格中輸入更新表達(dá)式“庫存表!庫存數(shù)量+商品入庫表!入庫數(shù)量”。在“標(biāo)志”字段的“更新到”單元格中輸入“1”,在“條件”單元格中輸入條件“0”,如圖4所示。圖4入庫更新查詢窗口為

7、了能夠區(qū)分已經(jīng)處理的入庫單,在“商品入庫表”中設(shè)置了一個“標(biāo)志”字段,當(dāng)該字段值為“0”時,表示該入庫單的“入庫數(shù)量”還未加到“庫存表”中。所以,在建立更新查詢時,應(yīng)只對“標(biāo)志”字段值為“0”的“庫存量”字段值進(jìn)行更新。更新后,應(yīng)將“標(biāo)志”字段值改為“1”,表示已經(jīng)處理完畢。 單擊工具欄的【保存】按鈕或選擇“文件”“保存”菜單命令保存該查詢,并命名為“更新庫存量(入庫)”。“更新庫存量(出庫)”查詢的創(chuàng)建步驟與上述步驟相同,結(jié)果如圖5所示。圖5 出庫更新查詢窗口(2)創(chuàng)建填寫入庫/出庫單窗體 建立如圖6所示的入庫單窗體。方便輸入操作,設(shè)置“日期”字段的“輸入掩碼”為“0000-99-99;0;

8、_;”,“默認(rèn)值”設(shè)置為“=date()”。圖6入庫單窗體設(shè)置窗體的“格式”屬性和“數(shù)據(jù)”屬性,如圖7所示。圖7 設(shè)置窗體屬性(3)入庫單號查重:在“商品入庫表”中,每個入庫記錄對應(yīng)一個入庫單號,即“入庫ID”值。為了避免輸入重復(fù)的入庫單號,系統(tǒng)提供入庫單號查重功能。將輸入的入庫單號與表中的“入庫ID”進(jìn)行比較,如果兩值相同,則顯示提示信息。在“入庫單輸入”窗體的設(shè)計視圖中,單擊選中“入庫單號”文本框,右擊調(diào)出快捷菜單,選擇“屬性”命令,在調(diào)出的“入庫單號”文本框?qū)傩詫υ捒蛑?,選擇“事件”選項卡,在“更新后”文本框中選中“事件過程”,如圖8所示。 圖8 創(chuàng)建“更新后”事件然后再單擊其后的“”按

9、鈕,調(diào)出“Microsoft Visual編輯器”窗口,在光標(biāo)處插入下列代碼。 Private sub 入庫單號_afterupdate() With CodeContextObject rrr=商品入庫表!入庫ID=&Me!入庫單號 DoCmd.ApplyFilter uuu,rrr If(.RecordestClone.RecordCount0) Then MsgBox入庫單號已存在,請重新輸入!,vbOKOnly,提示框“ 入庫單號.SetFocus End If End With End sub(4)入庫單保存:輸入入庫單信息后,單擊【保存】按鈕即可將輸入的數(shù)據(jù)添加到“商品入庫表”中。

10、“保存”命令按鈕的“單擊”事件的代碼如下。Private sub 保存r_click()DoCmd.GoToRecord , , acNewRecMe!入庫ID=Me!入庫單號Me!日期=Me!日期rMe!商品代碼=Me!商品代碼rMe!入庫數(shù)量=Me!入庫數(shù)量rMe!標(biāo)志=0DoCmd.DoMenuItem acFromBar,acRecordsMenu,acSaveRecord, ,acMenuVer70Me!入庫單號= Me!日期r=DateMe!商品代碼r= Me!入庫數(shù)量r=0Me.RefreshExit_保存r_click()(5)入庫單重填:如果數(shù)據(jù)輸入有誤或希望放棄此次輸入,可

11、單擊【重填】按鈕。該命令按鈕的“單擊”事件代碼如下。 Private sub重填r_click() Me!入庫單號 = Me!日期r = Date Me!商品代碼r = Me!入庫數(shù)量r = 0 End sub(6)入庫單取消:這里的取消操作實質(zhì)上是退出輸入操作,即關(guān)閉輸入窗口。該命令按鈕上的“單擊”事件代碼為: Private sub取消r_click()DoCmd.Close End sub(7)庫存量修改:本系統(tǒng)在輸入完成所有入庫單后,對“庫存表”中的“庫存數(shù)量”進(jìn)行修改,即在關(guān)閉輸入窗口時完成修改操作。因此,可設(shè)置窗口的“關(guān)閉”事件,當(dāng)發(fā)生該事件時運(yùn)行已建立的“更新庫存量(入庫)”更新

12、查詢。更新庫存量代碼如下:Private sub form_close() DoCmd.OpenQuery 更新庫存量(入庫),acViewNormal,acEdit End sub 出庫單輸入窗體的建立內(nèi)容和方法與入庫單輸入相似。 5維護(hù)入庫/出庫單信息有時,輸入的入庫單或出庫單數(shù)據(jù)在存盤后才發(fā)現(xiàn)錯誤,就需要對其進(jìn)行修改。修改數(shù)據(jù)與輸入數(shù)據(jù)相似,修改完成后,應(yīng)對“庫存表”中“庫存數(shù)量”作相應(yīng)更新。為了方便更新,在“商品入庫表”和“商品出庫表”中增加了一個記憶修改前和修改后差值的字段,分別是“入庫數(shù)量修改差”和“出庫數(shù)量修改差”,應(yīng)用該字段來更新“庫存數(shù)量”。要完成這樣的操作,需要建立更新查詢

13、。(1)創(chuàng)建更新庫存查詢建立更新庫存查詢的方法與上述相同。當(dāng)“商品入庫表”或“商品出庫表”中的“標(biāo)志”字段值為“0”時,表示還未對“庫存數(shù)量”進(jìn)行修改,因此要用這些數(shù)量值更新“庫存數(shù)量”值。但應(yīng)注意,更新完成后應(yīng)將相應(yīng)的“標(biāo)志”字段值由“0”改為“1”。“更新修改后的庫存數(shù)量(入庫)”的設(shè)計視圖如圖9所示。圖9 更新修改后的庫存數(shù)量(入庫)”的設(shè)計視圖(2)創(chuàng)建維護(hù)入庫/出庫窗體 商品入庫單維護(hù)窗體如圖10所示。該窗體分為3個部分:上半部分為入庫單信息顯示區(qū);中間部分為修改區(qū),該區(qū)放置了3個文本框控件,用來修改制定的入庫單;下半部分為查詢區(qū),該區(qū)有3個文本框和一個組合框,用來查找需要修改的入庫

14、單。窗體最下方有3個命令按鈕,實現(xiàn)查詢、保存和退出等功能。圖10 商品入庫單維護(hù)窗體入庫單保存:修改數(shù)據(jù)時,即可以在修改區(qū)直接輸入要修改的數(shù)據(jù),也可以先查找要修改的入庫單,然后在顯示區(qū)修改。當(dāng)修改區(qū)輸入了要修改的內(nèi)容后,直接單擊“保存”命令按鈕,即可保存已輸入的修改信息。“保存”命令按鈕的“單擊”事件代碼如下。 Private sub命令1_click()Me!入庫ID.SetFocus DoCmd.FindRecord Me!文本1, , True, , True Me!入庫ID=Me!文本1 Me!入庫日期=Me!文本2 Me!入庫數(shù)量修改差=Me!文本3-Me!入庫數(shù)量 Me!入庫數(shù)量=

15、Me!文本3 Me!標(biāo)志=0 Me!文本1= Me!文本2=Date Me!文本3=0 Me.Refresh End sub入庫單查詢:在查詢區(qū)輸入查詢內(nèi)容,然后單擊【查詢】按鈕查找相應(yīng)的內(nèi)容,如果找到,信息顯示區(qū)指針定位到該記錄,此時可對該記錄進(jìn)行修改。為了實現(xiàn)這樣的查詢,需要對每一輸入框的“失去焦點(diǎn)”事件進(jìn)行記錄定位設(shè)置,然后通過“查詢”命令按鈕的“單擊”事件完成實際定位。4個輸入控件的“失去焦點(diǎn)”事件的代碼如下。入庫單號“失去焦點(diǎn)”事件代碼:Me!入庫ID.SetFocusDoCmd.FindRecord Me!文本4, , True, , TrueMe!命令5.Visible=True

16、入庫日期“失去焦點(diǎn)”事件代碼:Me!入庫日期.SetFocusDoCmd.FindRecord Me!文本5, , True, , TrueMe!命令5.Visible=True入庫數(shù)量“失去焦點(diǎn)”事件代碼:Me!入庫數(shù)量.SetFocusDoCmd.FindRecord Me!文本6, , True, , TrueMe!命令5.Visible=True商品代碼“失去焦點(diǎn)”事件代碼:Me!商品代碼.SetFocusDoCmd.FindRecord Me!組合1, , True, , TrueMe!命令5.Visible=True【查詢】按鈕的“單擊”事件VBA代碼:Screen.Previou

17、sControl.SetFocusDoCmd.FindNext【退出】按鈕的功能是關(guān)閉窗體(3)修改庫存量:與入庫輸入設(shè)計一樣,修改入庫單后對“庫存數(shù)量”的修改也是在關(guān)閉輸入窗口時完成,即設(shè)置窗口的“關(guān)閉”事件,當(dāng)發(fā)生該事件時運(yùn)行已建立的“更新修改后的庫存數(shù)量(入庫)”更新查詢。所設(shè)代碼如下:DoCmd.OpenQuery 更新修改后的庫存數(shù)量(入庫), acViewNormal, acEdit6.查詢?nèi)霂?出庫單信息對入庫/出庫信息的查詢可按入庫/出庫單中的任意內(nèi)容查詢。無論是查詢?nèi)霂煨畔?,還是查詢出庫信息,其設(shè)計方法相同,只是窗體所用數(shù)據(jù)源不同。因此,只介紹入庫信息查詢。入庫信息查詢控制窗

18、體如圖11所示。圖11 入庫信息查詢窗體(1)高級查詢單擊【高級查詢】按鈕,調(diào)出“入庫信息高級查詢”窗體,如圖12所示。在窗體中相應(yīng)的文本框內(nèi)輸入要查詢的內(nèi)容,然后單擊【查找記錄】按鈕,這時系統(tǒng)將在“商品入庫表”中查找記錄并顯示在窗體中。使用向?qū)?chuàng)建以“商品入庫表”為數(shù)據(jù)源的“表格”式窗體。調(diào)整窗體頁眉區(qū)大小,并在頁眉區(qū)上方放置1個標(biāo)簽、1個組合框和3個文本框。3個文本框用來輸入“入庫單號”、“入庫日期”、“入庫數(shù)量”等內(nèi)容,組合框用來選擇“商品代碼”。在窗體頁腳區(qū)放置2個命令按鈕,“查找記錄”和“退出”。保存查詢窗體,并命名為“入庫信息高級查詢”。圖12 高級查詢窗口編寫查詢代碼,對每個文本

19、框的“失去焦點(diǎn)”事件進(jìn)行記錄定位設(shè)置,然后通過“查找記錄”命令按鈕的“單擊”事件完成實際定位。4個輸入控件的“失去焦點(diǎn)”事件的代碼如下。入庫單號“失去焦點(diǎn)”事件代碼: Private Sub 文本21_LostFocus() On Error GoTo Err_文本21_LostFocus Me!入庫ID.SetFocusDoCmd.FindRecord Me!文本21, , True, , True Me!命令5.Visible = TrueExit_文本21_LostFocus: Exit SubErr_文本21_LostFocus: MsgBox Err.Description Resu

20、me Exit_文本21_LostFocusEnd Sub入庫日期“失去焦點(diǎn)”事件代碼: Private Sub 文本2_LostFocus() On Error GoTo Err_文本2_LostFocus Me!入庫日期.SetFocusDoCmd.FindRecord Me!文本2, , True, , True Me!命令5.Visible = TrueExit_文本2_LostFocus: Exit SubErr_文本2_LostFocus: MsgBox Err.Description Resume Exit_文本2_LostFocusEnd Sub商品代碼“失去焦點(diǎn)”事件代碼:

21、Private Sub 組合25_LostFocus()On Error GoTo Err_組合25_LostFocus Me!商品代碼.SetFocusDoCmd.FindRecord Me!組合25, , True, , True Me!命令5.Visible = TrueExit_組合25_LostFocus: Exit SubErr_組合25_LostFocus: MsgBox Err.Description Resume Exit_組合25_LostFocusEnd Sub入庫數(shù)量“失去焦點(diǎn)”事件代碼:Private Sub 文本27_LostFocus()On Error GoTo

22、 Err_文本27_LostFocus Me!入庫數(shù)量.SetFocusDoCmd.FindRecord Me!文本27, , True, , True Me!命令5.Visible = TrueExit_文本27_LostFocus: Exit SubErr_文本27_LostFocus: MsgBox Err.Description Resume Exit_文本27_LostFocusEnd Sub“查找記錄”命令按鈕的“單擊”事件代碼:Private Sub 命令5_Click()Screen.PreviousControl.SetFocus DoCmd.FindNextEnd Sub(

23、2)按條件查詢“按入庫數(shù)量查詢”和“按入庫日期查詢”,通過創(chuàng)建參數(shù)查詢來實現(xiàn)查詢。在建立這兩個查詢之前先建立“所有入庫信息查詢”。創(chuàng)建“所有入庫信息查詢”??赏ㄟ^創(chuàng)建選擇查詢來完成該查詢的創(chuàng)建。創(chuàng)建結(jié)果如圖13所示。圖13 按所有入庫信息查詢創(chuàng)建“按入庫數(shù)量查詢”。以“所有入庫信息查詢”為數(shù)據(jù)源,在設(shè)計視圖中創(chuàng)建該查詢,如圖14所示。圖14 按入庫數(shù)量查詢在“入庫數(shù)量”字段的“條件”行中輸入: =請輸入入庫數(shù)量下限值 And =請輸入日期上限值(*-*-*) And 0”,如圖21 所示保存查詢。圖21 報警查詢設(shè)計視圖(2)創(chuàng)建報警報表創(chuàng)建了報警查詢后,以此查詢?yōu)閿?shù)據(jù)源創(chuàng)建一個報警報表,使其

24、顯示需要報警的消息。使用向?qū)?chuàng)建報表,調(diào)出“報表向?qū)А贝翱?。在“?查詢”下拉列表框中選擇“報警查詢”,選取全部字段。單擊【下一步】按鈕,確認(rèn)是否添加分組級別,該報表不分組。單擊【下一步】按鈕,以“庫存數(shù)量”降序排序。單擊【下一步】按鈕,確定布局及方向為“表格”、“縱向”。單擊【下一步】按鈕,確定報表采用的樣式為“組織”。單擊【下一步】按鈕,指定報表的名稱,并選中“修改報表設(shè)計”單選按鈕,單擊【完成】按鈕。 在“報警表”設(shè)計視圖中,修改報表設(shè)計,如圖22所示。圖22 報警表設(shè)計視圖(3)創(chuàng)建報警窗體報警處理只要打開報警表,顯示相應(yīng)的報警信息就可以了。在報警之前應(yīng)判斷查詢結(jié)果是否有需要報警的商品

25、。實現(xiàn)這一功能的代碼如下:Private Sub Form_Open(Cancel As Integer)With CodeContextObject rrr = 報警查詢!商品代碼 Null DoCmd.ApplyFilter uuu, rrr If (.RecordsetClone.RecordCount 0) Then MsgBox 有需要報警的產(chǎn)品!, vbOKOnly, 提示框 DoCmd.Close DoCmd.OpenReport 報警表, acViewPreview Else MsgBox 沒有需要報警的產(chǎn)品!, vbOKOnly, 提示框 DoCmd.Close End If

26、End WithEnd Sub為了能夠在打開報警表之前運(yùn)行這一代碼,建立一個報警臨時窗體,將上述代碼放到該窗體的“打開”事件中,如圖23所示。這樣當(dāng)打開該窗體時,就可以運(yùn)行這段代碼。這里,報警臨時窗體的作用就是運(yùn)行該代碼,窗體中無任何設(shè)置。(4)催貨處理與報警處理相似,催貨處理是將“庫存表”中的“庫存數(shù)量”與“最低儲備”進(jìn)行比較,當(dāng)“庫存數(shù)量”低于“最低儲備”時,顯示這些需要催貨商品的相關(guān)信息。實現(xiàn)催貨處理功能的步驟如下。建立一個催貨查詢,設(shè)計結(jié)果如圖24所示。 圖23 報警臨時窗體圖24 崔貨查詢使用向?qū)?chuàng)建一個催貨報表,報表數(shù)據(jù)源為“催貨查詢”,如圖25所示。 圖25 崔貨表(3)建立一個

27、催貨臨時窗體,設(shè)置窗體“打開”事件,事件代碼為:Private Sub Form_Open(Cancel As Integer)With CodeContextObject rrr=催貨查詢!商品代碼 Null DoCmd.ApplyFilter uuu, rrr If(.RecordsetClone.RecordCount0) Then MsgBox 有需要催貨的產(chǎn)品!, vbOKOnly, 提示框 DoCmd.Close DoCmd.OpenReport 催貨表, acViewPreview Else MsgBox 沒有需要催貨的產(chǎn)品!, vbOKOnly, 提示框 DoCmd.Close

28、 End IfEnd WithEnd Sub8報表設(shè)計用戶需要系統(tǒng)為其提供統(tǒng)計功能,使管理者隨時了解和掌握某一時期入庫、出庫和庫存信息。本文系統(tǒng)提供了統(tǒng)計功能,并以報表形式顯示所有統(tǒng)計信息。(1)設(shè)計思路報表統(tǒng)計功能主要包括:庫存統(tǒng)計、按月入庫統(tǒng)計和按月出庫統(tǒng)計。通過它們統(tǒng)計某年某月入庫、出庫和庫存的匯總信息。由于需要對每種商品的入庫數(shù)量和出庫數(shù)量進(jìn)行匯總,在報表輸出之前應(yīng)當(dāng)進(jìn)行計算。報表統(tǒng)計包括如下功能: 創(chuàng)建統(tǒng)計查詢,計算出指定日期每種商品的入庫總量和出庫總量。以所建統(tǒng)計查詢?yōu)閿?shù)據(jù)源,使用向?qū)?chuàng)建相應(yīng)的報表。設(shè)置報表的調(diào)用方式。(2)創(chuàng)建統(tǒng)計查詢由于系統(tǒng)要求統(tǒng)計出指定日期的入庫數(shù)量,因此,

29、需要創(chuàng)建具有統(tǒng)計功能的參數(shù)查詢。 以“商品入庫表”和“商品信息”為數(shù)據(jù)源創(chuàng)建查詢“按月統(tǒng)計入庫信息”。包含字段有“商品代碼”、“商品名稱”、“單位”、“規(guī)格”、“入庫數(shù)量”和“入庫日期”等。在查詢的設(shè)計視圖中,添加一個新字段,統(tǒng)計月份“Month(商品入庫表.入庫日期)”。在所加字段的“條件”行上輸入條件“Month(請輸入年月(-)”。單擊工具欄上的【合計】按鈕,顯示“總計”行,并把所有字段設(shè)置成“分組”。單擊“入庫數(shù)量”字段的“總計”行,從下拉列表中選中“總計”,單擊“入庫日期”字段列顯示行上的復(fù)選框。設(shè)計結(jié)果如圖26所示。圖26 統(tǒng)計入庫查詢保存該查詢,并命名為“按月統(tǒng)計入庫信息”。(3

30、)創(chuàng)建顯示報表完成統(tǒng)計查詢的創(chuàng)建后,可以開始創(chuàng)建按月入庫統(tǒng)計報表。先使用報表向?qū)?chuàng)建一個報表,然后再使用設(shè)計視圖修改。單擊數(shù)據(jù)庫窗口對象列表框中的“報表”,雙擊“使用向?qū)?chuàng)建報表”,調(diào)出“報表向?qū)А睂υ捒?。在“報表向?qū)А睂υ捒蛑?,在“?查詢”下拉列表框中選擇“按月統(tǒng)計入庫信息”,選取全部字段。單擊【下一步】按鈕,在調(diào)出的對話框中確定是否添加分組級別,選擇不分組。單擊【下一步】按鈕,在調(diào)出的對話框中確定排序次序,選擇“入庫數(shù)量之總計”作為排序字段。單擊【下一步】按鈕,在調(diào)出的對話框中確定布局方式,選擇“表格”的布局方式。單擊【下一步】按鈕,在調(diào)出的對話框中確定使用的樣式,選擇樣式為“組織”。單

31、擊【下一步】按鈕,在對話框的“請輸入報表的標(biāo)題:”文本框中輸入報表的名字“月入庫統(tǒng)計表”,并在窗口的下方選中“修改報表設(shè)計”單選按鈕。單擊【完成】按鈕,進(jìn)入設(shè)計窗口,調(diào)整各個部件的位置,使布局更加合理美觀,如圖27所示。圖27 月入庫統(tǒng)計表設(shè)計(4)編寫調(diào)用模塊為了方便報表使用,此處編寫了調(diào)用模塊,并通過系統(tǒng)主菜單上的3個命令按鈕來調(diào)用該模塊,打開不同報表。建立模塊的方法如下。單擊數(shù)據(jù)庫窗口“對象”列表框中的“模塊”,單擊【新建】按鈕,調(diào)出“模塊編輯窗口”,如圖28所示。圖28 調(diào)用模塊設(shè)計在“模塊編輯窗口”輸入下列代碼。Public Function onecheck(Strname) Se

32、lect Case StrnameCase “月入庫統(tǒng)計” stDocName=”月入庫統(tǒng)計表”Case “月出庫統(tǒng)計” stDocName=”月出庫統(tǒng)計表”Case Else stDocName=”庫存表” End SelectDoCmd.OpenReport stDocName, acPreviewEnd Function保存該模塊,模塊名為“模塊1”??赏ㄟ^主菜單中的“月入庫統(tǒng)計”、“月初庫統(tǒng)計”和“庫存統(tǒng)計”等3個命令按鈕的“單擊”事件來調(diào)用該模塊。四、庫存管理系統(tǒng)的集成當(dāng)用戶需要的全部窗體、報表和查詢都建好以后,就應(yīng)將它們集成在一起,形成完整的系統(tǒng),才能方便用戶使用。在“庫存管理系統(tǒng)

33、”實例中使用多頁窗體來集成系統(tǒng),實現(xiàn)功能選擇。1.系統(tǒng)主控界面設(shè)計庫存管理系統(tǒng)由4大功能模塊組成,它們由主控窗體中的選項卡來實現(xiàn)。通過選擇不同的選項卡進(jìn)入不同的功能模塊,再通過選項卡中的不同命令按鈕進(jìn)入下一級子模塊。單擊主控窗體的“入庫處理”選項卡,進(jìn)入“入庫處理”子模塊,包括“填寫入庫單”、“維護(hù)入庫單”、“入庫信息查詢”和“入庫信息顯示”4個按鈕,如圖29所示。圖29 入庫處理選項卡單擊主控窗體的“出庫處理”選項卡,進(jìn)入“出庫處理”子模塊,包括“填寫出庫單”、“維護(hù)出庫單”、“出庫信息查詢”和“出庫信息顯示”4個按鈕,如圖30所示。圖30 “出庫處理”選項卡單擊主控窗體的“庫存處理”選項卡

34、,進(jìn)入“庫存處理”子模塊,包括“設(shè)置庫存限量”、“庫存查詢”、“報警處理”和“催貨處理”4個按鈕,如圖31所示。單擊主控窗體的“報表統(tǒng)計”選項卡,進(jìn)入“報表統(tǒng)計”子模塊,包括“月入庫統(tǒng)計”、“月出庫統(tǒng)計”、和“庫存統(tǒng)計”3個按鈕,如圖32所示。圖31 “庫存處理”選項卡圖32 “報表統(tǒng)計”選項卡(1)選項卡設(shè)置“選項卡”控件可以將不同集合的信息放在不同頁面上,它是創(chuàng)建多頁窗體最容易和最有效的方法。在主控窗體中設(shè)置選項卡的方法如下。打開窗體設(shè)計視圖,單擊“工具箱”中的【選項卡控件】按鈕,在窗體上要放置選項卡的位置單擊,Access將在窗體中自動添加有2頁的選項卡。在選項卡上單擊鼠標(biāo)右鍵,在調(diào)出的

35、快捷菜單中單擊“插入頁”命令,這時在選項卡上插入了一頁,重復(fù)以上步驟再插入一頁。 選中選項卡的“頁1”,調(diào)出屬性對話框,單擊“格式”選項卡,并在“標(biāo)題行”中輸入“入庫處理”,并使用同樣的方法在“頁2”、“頁3”和“頁4”的“標(biāo)題行”輸入“出庫處理”、“庫存控制”和“報表處理”。如圖33所示。圖33 選項卡設(shè)置 圖34 選項卡屬性設(shè)置選中選項卡控件,設(shè)置選項卡的屬性值,如圖34所示。單擊第一頁,在適當(dāng)?shù)奈恢梅胖谩疤顚懭霂靻巍?、“維護(hù)入庫單”、“入庫信息查詢”和“入庫信息顯示”4個命令按鈕,并設(shè)置它們相應(yīng)的屬性,如圖35所示。用同樣的方法在第二頁、第三頁和第四頁上放置相應(yīng)的命令按鈕。圖35 添加命

36、令按鈕在選項卡控件的上方,添加標(biāo)題“庫存管理系統(tǒng)”,在選項卡控件的下方添加一個“返回”命令按鈕,并設(shè)置它們的屬性。(2)命令按鈕事件設(shè)置在使用該系統(tǒng)時,主要是通過單擊主控窗體上的命令按鈕來選擇相應(yīng)的功能。因此,對每一個命令按鈕的“單擊”事件進(jìn)行設(shè)置。在使用該系統(tǒng)時,主要是通過單擊主控窗體上的命令按鈕來選擇相應(yīng)的功能。因此,對每一個命令按鈕的“單擊”事件進(jìn)行設(shè)置。本系統(tǒng)中有些命令按鈕的“單擊”事件是打開相應(yīng)的窗體,如入庫處理中的“填寫入庫單”、“維護(hù)入庫單”,出庫處理中的“填寫出庫單”、“維護(hù)出庫單”,庫存控制中的“催貨處理”、“報警處理”等命令按鈕;有些命令按鈕則打開相應(yīng)的宏,如入庫處理的“入

37、庫信息查詢”,出庫處理中的“出庫信息查詢”,庫存控制中的“庫存信息查詢”等命令按鈕;有些命令按鈕則是調(diào)用相應(yīng)的模塊,如庫存控制中的“月入庫統(tǒng)計”、“月出庫統(tǒng)計”和“庫存統(tǒng)計”等命令按鈕。下面選擇有代表性的命令按鈕進(jìn)行介紹,其余請參照自行設(shè)置。 “填寫入庫單”命令按鈕上的“單擊”事件:選中“填寫入庫單”命令按鈕,調(diào)出屬性設(shè)置對話框,在“事件”選項卡中選擇“單擊”下拉列表中的“事件過程”。調(diào)出代碼編輯器,在光標(biāo)處輸入如下代碼。 Dim stDocName As StringDim stLinkCriteria As StringstDocName = 入庫單輸入DoCmd.OpenForm stD

38、ocName, , , stLinkCriteria “填寫出庫單”等命令按鈕的“單擊”事件的設(shè)置與上述相似?!按哓浱幚怼泵畎粹o的“單擊”事件:單擊“催貨處理”命令按鈕,調(diào)出屬性設(shè)置對話框,在“事件”選項卡中選擇“單擊”下拉列表中的“事件過程”,調(diào)出代碼編輯器,在光標(biāo)處輸入如下代碼。Dim stDocName As String DoCmd.OpenForm 催貨臨時窗體, acNormal, , , , acWindowNormal報警處理與催貨處理的“單擊”事件相似,將打開窗體名改為“報警臨時窗體”即可。 報表統(tǒng)計功能命令按鈕“單擊”事件:報表統(tǒng)計功能中有3個命令按鈕,這3個命令按鈕通過

39、調(diào)用同一個模塊打開并顯示3個不同的報表。這個模塊已經(jīng)建立,只需要通過3個命令按鈕的“單擊”事件來調(diào)用該模塊?!霸鲁鰩旖y(tǒng)計”命令按鈕的“單擊”事件代碼為:Private Sub 月出庫統(tǒng)計_Click() Strname=月出庫統(tǒng)計.Caption 模塊1.onecheck StrnameEnd Sub“月入庫統(tǒng)計”命令按鈕的“單擊”事件代碼為:Private Sub 月入庫統(tǒng)計_Click() Strname = 月入庫統(tǒng)計.Caption 模塊1.onecheck StrnameEnd Sub“庫存統(tǒng)計”命令按鈕的“單擊”事件代碼為:Private Sub 庫存統(tǒng)計_Click() Strn

40、ame = 庫存統(tǒng)計.Caption 模塊1.onecheck StrnameEnd Sub2.系統(tǒng)開始界面設(shè)計為了使本系統(tǒng)相對完整,設(shè)計了一個開始界面,如圖36所示。設(shè)置命令按鈕的“單擊”事件。圖36 開始界面 “進(jìn)入系統(tǒng)”命令按鈕的“單擊”事件代碼如下:Private Sub 命令3_Click() On Error GoTo Err_命令3_Click Dim stdocname As String Dim stlinkcriteria As String DoCmd.Minimize stdocname = 庫存管理系統(tǒng)主控界面 DoCmd.OpenForm stdocname, ,

41、, stlinkcriteriaExit_命令3_Click: Exit SubErr_命令3_Click: MsgBox Err.Description Resume Exit_命令3_ClickEnd Sub“退出系統(tǒng)”命令按鈕的“單擊”事件代碼為: Private Sub 命令5_Click() On Error GoTo Err_命令5_Click DoCmd.Quit Exit_命令5_Click: Exit Sub Err_命令5_Click: MsgBox Err.Description Resume Exit_命令5_Click End Sub至此,介紹完了“庫存管理系統(tǒng)”各功

42、能實現(xiàn)過程和實現(xiàn)方法。限于篇幅,有些相似的功能這里省略了,有興趣的讀者可運(yùn)用學(xué)習(xí)到的Access數(shù)據(jù)庫知識擴(kuò)展這個數(shù)據(jù)庫的功能并加以完善,使它成為一個完整的、實用的數(shù)據(jù)庫。附錄資料:不需要的可以自行刪除C語言編譯器的設(shè)計與實現(xiàn) 我們設(shè)計的編譯程序涉及到編譯五個階段中的三個,即詞法分析器、語法分析器和中間代碼生成器。編譯程序的輸出結(jié)果包括詞法分析后的二元式序列、變量名表、狀態(tài)棧分析過程顯示及四元式序列程序,整個編譯程序分為三部分:(1) 詞法分析部分(2) 語法分析處理及四元式生成部分 (3) 輸出顯示部分一詞法分析器設(shè)計 由于我們規(guī)定的程序語句中涉及單詞較少,故在詞法分析階段忽略了單詞輸入錯誤

43、的檢查,而將編譯程序的重點(diǎn)放在中間代碼生成階段。詞法分析器的功能是輸入源程序,輸出單詞符號。我們規(guī)定輸出的單詞符號格式為如下的二元式: (單詞種別,單詞自身的值)#define ACC -2#define syl_if 0#define syl_else 1#define syl_while 2#define syl_begin 3#define syl_end 4#define a 5#define semicolon 6#define e 7#define jinghao 8#define s 9#define L 10#define tempsy 11#define EA 12#defi

44、ne EO 13#define plus 14#define times 15#define becomes 16#define op_and 17#define op_or 18#define op_not 19#define rop 20#define lparent 21#define rparent 22#define ident 23#define intconst 24函數(shù)說明 讀取函數(shù) readline( )、readch( )詞法分析包含從源文件讀取字符的操作,但頻繁的讀文件操作會影響程序執(zhí)行效率,故實際上是從源程序文件” source.dat ”中讀取一行到輸入緩沖區(qū),而詞法

45、分析過程中每次讀取一個字符時則是通過執(zhí)行 readch( )從輸入緩沖區(qū)獲得的;若緩沖區(qū)已被讀空,則再執(zhí)行readline( )從 source.dat 中讀取下一行至輸入緩沖區(qū)。掃描函數(shù) scan( ) 掃描函數(shù) scan( )的功能是濾除多余空格并對主要單詞進(jìn)行分析處理,將分析得到的二元式存入二元式結(jié)果緩沖區(qū)。變量處理 find( )變量處理中首先把以字母開頭的字母數(shù)字串存到 spelling 數(shù)組中,然后進(jìn)行識別。識別過程是先讓它與保留關(guān)鍵字表中的所有關(guān)鍵字進(jìn)行匹配,若獲得成功則說明它為保留關(guān)鍵字,即將其內(nèi)碼值寫入二元式結(jié)果緩沖區(qū);否則說明其為變量,這時讓它與變量名表中的變量進(jìn)行匹配(

46、變量匹配函數(shù) find( ) ),如果成功,則說明該變量已存在并在二元式結(jié)果緩沖區(qū)中標(biāo)記為此變量( 值填為該變量在變量名表中的位置),否則將該變量登記到變量名表中,再將這個新變量存入二元式緩存數(shù)組中。數(shù)字識別 number( ) 數(shù)字識別將識別出的數(shù)字填入二元式結(jié)果緩存數(shù)組。顯示函數(shù) 顯示函數(shù)的功能在屏幕上輸出詞法分析的結(jié)果( 即二元式序列程序),同時給出二元式個數(shù)及源程序行數(shù)統(tǒng)計。二語法分析器設(shè)計 語法分析器的核心是三張 SLR 分析表以及針對這三張 SLR 分析表進(jìn)行語義加工的語義動作。編譯程序中語法分析處理及四元式生成部分主要是以二元式作為輸入,并通過 SLR 分析表對語法分析處理過程進(jìn)

47、行控制,使四元式翻譯的工作有條不紊的進(jìn)行,同時識別語法分析中的語法錯誤。在處理 if 和 while 語句時,需要進(jìn)行真值或假值的拉鏈和返填工作,以便轉(zhuǎn)移目標(biāo)的正確填入。1. 控制語句的 SLR 分析表1 設(shè)計過程如下: 將擴(kuò)展文法GS S1)S if e S else S2)S while e S3)S L 4)S a;5)L S6)L SL用_CLOSURE方法構(gòu)造LR(0)項目規(guī)范簇為:I0: S SS if e S else SS while e S S L S a ;I1: S SI2: S ife S else SI3: S while e SI4: S L L S L SL S

48、if e S else SS while e S S L S a ; I5: S a; I6: S if e S else S S if e S else SS while e S S L S a ; I7: S while e S S if e S else SS while e S S L S a ; I8: S L I9: L S L SL L SL L S S if e S else SS while e S S L S a ; I10: S a ; I11: S if e S else SI12: S while e S I13: S L I14: S SL I15: S if e

49、S else S S if e S else SS while e S S L S a ; I16: S if e S else S 構(gòu)造文法G中非終結(jié)符的FOLLOW集如下:FOLLOW(S) = # S if e S else S得FOLLOW(S) = else S L 得FOLLOW(L) = 3) S S 得FOLLOW(S) = else , # L S 因為FIRST(S) = ,所以FOLLOW(S) = else , #, 在()項目規(guī)范簇中,只有9有“移進(jìn)歸約”沖突,L SL SL因為FOLLOW(L) FIRST(L) = 所以可以用方法解決以上沖突,最后我們得到的分析表

50、如下:ACTIONGOTO ifElsewhilea;e#SL0S2S3S4S511ACC2S63S74S2S3S4S5985S106S2S3S4S5117S2S3S4S5128S139S2S3S4R5S591410R4R4R4111512R2R2R213R3R3R314R615S2S3S4S51616R1R1R1static int action2011=/* 0 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 1, -1,/* 1 */ -1, -1, -1, -1, -1, -1, -1, -1,ACC, -1, -1,/* 2 */ -1, -1, -1, -1,

51、 -1, -1, -1, 6, -1, -1, -1,/* 3 */ -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1,/* 4 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 9, 8,/* 5 */ -1, -1, -1, -1, -1, -1, 10, -1, -1, -1, -1,/* 6 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 11, -1,/* 7 */ 2, -1, 3, 4, -1, 5, -1, -1, -1, 12, -1,/* 8 */ -1, -1, -1, -1, 13, -1, -

52、1, -1, -1, -1, -1,/* 9 */ 2, -1, 3, 4,105, 5, -1, -1, -1, 9, 14,/* 10*/ -1,104, -1, -1,104, -1, -1, -1,104, -1, -1,/* 11*/ -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1,/* 12*/ -1,102, -1, -1,102, -1, -1, -1,102, -1, -1,/* 13*/ -1,103, -1, -1,103, -1, -1, -1,103, -1, -1,/* 14*/ -1, -1, -1, -1,106, -1,

53、-1, -1, -1, -1, -1,/* 15*/ 2, -1, 3, 4, -1, 5, -1, -1, -1, 16, -1,/* 16*/ -1,101, -1, -1,101, -1, -1, -1,101, -1, -1;其中,前 9 列為 action 值,后 2 列為 goto 值;016 表示 17 個移進(jìn)狀態(tài)( 即 Si);-1表示出錯;ACC 表示分析成功;而 100106 對應(yīng) 7 個歸約產(chǎn)生式:S SS if e S else SS while e SS L S a;L SL SL2. 算術(shù)表達(dá)式的 LR 分析表 2 設(shè)計如下:S EE E+EE E*EE (E)E

54、i (過程略)ACTIONGOTOI+*()#E0S3S211S4S5ACC2S3S263R4R4R4R44S3S275S3S286S4S5S97R1R5R1R18R2R2R2R29R3R3R3R3static int action1107=/* 0 */ 3, -1, -1, 2, -1, -1, 1,/* 1 */ -1, 4, 5, -1, -1,ACC, -1,/* 2 */ 3, -1, -1, 2, -1, -1, 6,/* 3 */ -1,104,104, -1,104,104, -1,/* 4 */ 3, -1, -1, 2, -1, -1, 7,/* 5 */ 3, -1,

55、-1, 2, -1, -1, 8,/* 6 */ -1, 4, 5, -1, 9, -1, -1,/* 7 */ -1,101, 5, -1,101,101, -1,/* 8 */ -1,102,102, -1,102,102, -1,/* 9 */ -1,103,103, -1,103,103, -1;3.布爾表達(dá)式的 SLR 分析表3 設(shè)計如下:(過程略)S BB iB i rop iB ( B )B ! BA B &B ABO B |B OBACTIONGOTOiRop()!&|#BAO0S1S4S513781S2R1R1R1R12S33R2R2R2R24S1S4S511785S1S4S

56、56786R4S9S10R47S1S4S514788S1S4S515789R5R5R510R7R7R711S12S9S1012R3R3R3R313S9S10ACC14R6S9S10R615R8S9S10R8static int action21611=/* 0 */ 1, -1, 4, -1, 5, -1, -1, -1, 13, 7, 8,/* 1 */ 1, 2, -1,101, -1,101,101,101, -1, -1, -1,/* 2 */ 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,/* 3 */ -1, -1, -1,102, -1,10

57、2,102,102, -1, -1, -1,/* 4 */ 1, -1, 4, -1, 5, -1, -1, -1, 11, 7, 8,/* 5 */ 1, -1, 4, -1, 5, -1, -1, -1, 6, 7, 8,/* 6 */ -1, -1, -1,104, -1, 9, 10,104, -1, -1, -1,/* 7 */ 1, -1, 4, -1, 5, -1, -1, -1, 14, 7, 8,/* 8 */ 1, -1, 4, -1, 5, -1, -1, -1, 15, 7, 8,/* 9 */ 105, -1,105, -1,105, -1, -1, -1, -1,

58、-1, -1,/*10 */ 107, -1,107, -1,107, -1, -1, -1, -1, -1, -1,/*11 */ -1, -1, -1, 12, -1, 9, 10, -1, -1, -1, -1,/*12 */ -1, -1, -1,103, -1,103,103,103, -1, -1, -1,/*13 */ -1, -1, -1, -1, -1, 9, 10,ACC, -1, -1, -1,/*14 */ -1, -1, -1,106, -1, 9, 10,106, -1, -1, -1,/*15 */ -1, -1, -1,108, -1, 9, 10,108, -

59、1, -1, -1;LR 分析表控制語義加工的實現(xiàn):當(dāng)掃描 LR 分析表的當(dāng)前狀態(tài)為歸約狀態(tài)時,則在調(diào)用與該狀態(tài)對應(yīng)的產(chǎn)生式進(jìn)行歸約的同時,調(diào)用相應(yīng)的語義子程序進(jìn)行有關(guān)的翻譯工作?,F(xiàn)在對 LR 分析器的分析棧加以擴(kuò)充,使得每個文法符號之后都跟著它的語義值。為了清晰起見,我們把這個棧的每一項看成由三部分組成:狀態(tài) state ,文法符號 syl 和語義值 val。編譯程序?qū)崿F(xiàn)算術(shù)表達(dá)式、布爾表達(dá)式及程序語句的語義加工時,都是按這種狀態(tài)棧加工方式進(jìn)行的。例如:( 5 + 3 ) * 6的分析過程序號STATEValsylinput10-#( 5 + 3 ) * 6 #202-#(5 + 3 ) *

60、 6 #3023#(5+ 3 ) * 6 #4026-5#(E+ 3 ) * 6 #50264-5-#(E+3 ) * 6 #602643-5-#(E+3 ) * 6 #702647-5-3#(E+E) * 6 #8026-8#(E) * 6 #90269-8-#(E)* 6 #1001-8#E* 6 #11015-8-#E* 6 #120153-8-#E*6#130158-8-6#E*E#1401-48#E#15ACC在分析過程中,第(3)步操作后的狀態(tài)棧為 023,根據(jù)棧頂狀態(tài)“ 3”和現(xiàn)行輸入符號“ +”( input 欄字符串的第一個字符)查分析表 ACTION3,+=R4,即按第(4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論