




已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
智能決策技術期末考核設計題目: 生產物料需求決策支持系統(tǒng)目錄智能決策技術1期末考核1一規(guī)劃與分析階段31.問題描述31.1現(xiàn)狀31.2解決手段41.3意義42.數據處理分析42.1數據流程圖42.2物料需求分析的核心流程:52.3建立數據字典:63.抽象模型建立63.1系統(tǒng)功能結構圖63.2系統(tǒng)業(yè)務流程圖7二設計階段81.系統(tǒng)平臺設計81.1開發(fā)平臺設計82.主要功能模塊設計82.1登錄模塊82.2主界面模塊92.3主生產計劃模塊102.4訂單管理模塊122.5用戶管理模塊133.數據庫設計13三實施階段161.實現(xiàn)方案162.系統(tǒng)開發(fā)、調試與運行172.1登錄模塊設計172.2訂單管理202.3庫存管理242.4物料需求分析27四總結43一規(guī)劃與分析階段1.問題描述1.1現(xiàn)狀 選定決策支持主題是生產物料需求計劃。在現(xiàn)代企業(yè)的生產經營活動中物料是企業(yè)價值鏈中極其重要的一環(huán),物料采購決策占有十分重要的地位。在成熟、穩(wěn)定的市場條件下,理性的企業(yè)決策者總是力爭在“正確時間”采購“正確數量”的物料,供企業(yè)生產使用。物料需求計算的基本任務是:一是從最終產品的生產計劃導出相關物料(原材料、零部件)的需求量和需求時間(相關需求);二是根據物料的需求時間和訂貨周期來確定其開始訂貨的時間。物料需求計算的基本內容是編制物料(包括零部件和原材料)的采購計劃(這里不考慮生產的自制,假定所有的物料都進行采購)。要正確編制物料采購計劃,首先必須落實最終產品的產出進度計劃,即主生產計劃,這是物料需求計算展開的依據。還要需要知道產品的零部件和原材料結構,即無聊清單,才能把主生產計劃展開成物料需求計劃;同時,必須知道庫存數量才能準確地計算出各種零部件和原材料的采購數量。因此,以主生產計劃,物料清單為依據計算物料需求。物料需求計劃原理框架如下圖1.1:產品產出計劃物料需求計劃報 告物料需求計劃(數量、時間)產品結構文件庫存狀態(tài)文件圖1.11.2解決手段 建立物料需求分析的決策支持系統(tǒng),完成復雜的分析過程,并自動生成物料需求訂單,以供生產使用。 1.3意義應用該系統(tǒng),可為企業(yè)生產過程中物料需求和選擇供應商提供依據。2.數據處理分析2.1數據流程圖圖2 .12.2物料需求分析的核心流程:物料需求計劃主要按照反工藝路線(成品組裝件零部件)的原理,按照產品產出計劃規(guī)定的產品的生產數量和期限要求,利用產品結構文件、庫存信息文件等數據資料,反工藝順序計算出各種物料的需求數量與需求期限,進而,根據企業(yè)實際確定自制和采購的數量和期限。物料需求計算時主要用到五種庫存狀態(tài)數據:毛需求G(t)、計劃到貨量S(t)、現(xiàn)有量H(t)、凈需求量N(t)和計劃發(fā)出訂貨量R(t-L),這里t是表示周期的變量,L是提前期。計算在第t周期第i層所有物料需求量和需求時間的步驟為:第一步:確定第i層第t周期所有毛需求量。毛需求量是指生產中實際需要的量,0層的毛需求由主生產計劃確定,其余各層的毛需求量是由其上層的計劃訂單下達。第二步:確定物料第i層第t周期的凈需求量,凈需求量是指實際需要的增加量。第三步:根據凈需求量確定第t周期計劃下達數量第四步:第i層第t周期的計劃訂單下達數量,即為第i層物料的毛需求量,由毛需求量開始重復上述14步,直至最低層物料。其分析流程圖如下圖:i=0 , t=1按照時間周期計算第n層所有物料的毛需求量第0層根據產品計劃得出,其他層由其父項計劃下達取得 確定第n層第t周期凈需求量N(t) 由凈需求N(t)確定計劃定單入庫R(t-L)所有周期算完否 確定計劃定單下達所有產品結構層次已分解 向下一層分解i=i+1結 束t=t+1否是是否2.3建立數據字典:總編號編號名稱來源去向包含數據結構1-01F1客戶訂單客戶分析處理訂單號、產品編號、訂購數量、交貨日期1-02F2產品結構設計分析處理產品編號、層次、上層編號、上層需求1-03F3庫存狀態(tài)庫存分析處理產品編號、產品名稱、庫存總量、可用量、將要入庫量、安全庫存1-04F4物料訂單分析處理訂單下達訂單號、物料編號、訂購數量、訂購日期、有效期至1-05F5用戶信息用戶登錄判斷用戶名、密碼、權限、備注表2.33.抽象模型建立3.1系統(tǒng)功能結構圖圖3.13.2系統(tǒng)業(yè)務流程圖圖3.2二設計階段1.系統(tǒng)平臺設計1.1開發(fā)平臺設計前臺設計工具:Borland Delphi 6后臺數據庫: SQL Server 2008開發(fā)環(huán)境:硬件環(huán)境:PC電腦軟件環(huán)境:(見下圖)服務器操作系統(tǒng)WINDOWS 2007應用程序SQL Server 2008客戶端操作系統(tǒng)WINDOWS 2007應用程序Borland Delphi 61.2網絡運行模式設計本系統(tǒng)采用C/S模式,即客戶端/服務器模式網絡拓撲結構為星型結構2.主要功能模塊設計2.1登錄模塊界面截圖如下圖4.2 1:圖4.2 1 功能是驗證用戶是否合法,是否允許登入系統(tǒng),如果合法則還要判斷其權限,以限定用戶的操作權限。2.2主界面模塊界面如圖4.2 2登錄之前及4.2 3登錄之后,其功能是實現(xiàn)在各個功能模塊的界面之間的進行跳轉: 圖4.2 2 圖4.2 32.3主生產計劃模塊界面如下圖4.2 4,主要是實現(xiàn)客戶訂單管理:圖4.2 4 圖4.2 5為產品結構管理:圖4.2 5 圖4.2 6為物料庫存管理:圖4.2 6 圖4.2 7為物料需求分析界面:圖4.2 72.4訂單管理模塊 圖4.2 8為訂單管理界面:圖4.2 82.5用戶管理模塊 圖4.2 9為用戶管理界面,包括注冊、修改密碼、權限設置等:圖4.2 93.數據庫設計數據庫設計如下:客戶訂單文件表oderform字段名稱字段描述數據類型字段長度是否主鍵允許為空否Oderno訂單號Char10YNPno產品編號Char10NNPnum訂單總量Int4NNPselfnum自產量Int4NNPbuynum外購量Int4NNOdert下單日期Datetime8NYDelit交貨日期Datetime8NYState當前狀態(tài)Datetime10NY物料需求訂單文件表matelist字段名稱字段描述數據類型字段長度是否主鍵允許為空否Mlno訂單編號Char10YNMno物料編號Char10NYMlnum訂購數量Int4NYMltime訂購日期Datetime8NYMlvivtime有效期至Datetime8NYRemark備注Char30NY物料庫存文件表matestor字段名稱字段描述數據類型字段長度是否主鍵允許為空否Mno物料編號Char8YNMname物料名稱Char10NYMlayer所屬層次Int4NYMpreno上層編號Char8NYMprenum上層需求Int4NYMtnum庫存總量Int4NYMvnum可用數量Int4NYMwnum將要入庫量Int4NYSecnum安全庫存Int4NYMut計量單位Char4NYMfinish成品率Float8NYMadvant提前期Int4NYAvat生效日期Datetime8NYInvat失效日期Datetime8NYRemark備注Char30NY物料分析臨時表tempinfo字段名稱字段描述數據類型字段長度是否主鍵允許為空否Dtime需求日期Datetime8NNDmno物料編號Char8NNDmname物料名稱Char10NNDmlayer所屬層次Int4NNDmadvantt提前期Int4NNDpreno上層編號Char8NNDprenum上層需求Int4NNDmfinish成品率Float8NNDvnum可用數量Int4NNDwnum將要入庫量Int4NNDsnum安全庫存Int4NNDdtnum毛需求量Int4NNDdnetnum凈需求量Int4NNdselfn自產量Int4NYdbuyn外購量Int4NY用戶信息表userinfo字段名稱字段描述數據類型字段長度是否主鍵允許為空否Username用戶名Char10YNPassswd用密碼Char10NNUright用戶權限Char10NYLastit最近登錄時間Datetime8NYLastot最近登出時間Datetime8NYRemark備注Char30NY三實施階段1.實現(xiàn)方案以一個簡化了的自行車產品來說明,其庫存狀態(tài)書記庫如上圖所示。其結構示意圖為:自行車 車架(1)車輪(2) 車把(1)輪圈(1)輪胎(2)輻條(42)0層1層2層基本的物料計劃步驟為:(1) 確定自行車的總需求、凈需求和計劃定單下達的時間;(2) 根據上層的結果,確定第1層上所有物料的凈需求和計劃定單下達的時間;(3) 根據上層車輪的結果,確定第2層上所有物料的凈需求和計劃定單下達的時間。其中用到的公式有:第t周期的凈需求量=第t周期的毛需求現(xiàn)有量第t周期計劃入庫量+安全庫存不考慮批量問題,則t-L周期計算計劃訂單下達數量等于t周期凈需求量,即: R(t-L)=N(t)2.系統(tǒng)開發(fā)、調試與運行2.1登錄模塊設計 界面如圖圖5.4 1 主要程序代碼為:unit Login;var fmLogin: TfmLogin;implementationuses datamd, Main;$R *.dfm/自定義過程,驗證用戶/procedure Tfmlogin.userjug(u,p,r:string);var upsql,upsql2:string;begin if u= then begin showmessage(用戶名不能為空,請輸入用戶名!); edtun.setfocus; end else if p= then begin showmessage(密碼不能為空,請輸入密碼!); edtpw.setfocus; end else begin upsql:=select usernm,passwd,uright from userinfo where usernm=+u+ and passwd =+p+ and uright=+r+; upsql2:=update userinfo set lastit=+datetostr(Now)+ where usernm=+u+; try dtmd.qryup.Close; dtmd.qryup.SQL.Clear; dtmd.qryup.SQL.Add(upsql); dtmd.qryup.Open; if not dtmd.qryup.Eof then /用戶合法,則進入系統(tǒng) begin dtmd.qryup.Close; /更新用戶的最近登錄時間 dtmd.qryup.SQL.Clear; dtmd.qryup.SQL.Add(upsql2); dtmd.qryup.ExecSQL; fmMain.RzGroup1.Visible:=false; fmMain.RzGroup2.Visible:=true; fmMain.RzGroup2.Opened:=true; fmMain.RzGroup3.Visible:=true; fmMain.RzGroup4.Visible:=true; fmMain.RzGroup5.Visible:=true; fmMain.RzGroup5.Visible:=true; fmMain.pu:=u; fmMain.pp:=p; fmMain.pr:=r; fmMain.sttb.Panels0.Text:=fmMain.pu; fmLogin.Close; end else begin showmessage(用戶名或密碼錯誤!); edtun.SetFocus; end except showmessage(連接數據庫失敗,請檢查數據庫服務是否正常!); end; end;end;/退出登錄/procedure TfmLogin.btnextClick(Sender: TObject);begin self.Close;end;/登錄按鈕/procedure TfmLogin.btnlgClick(Sender: TObject);var ri:string;begin if self.rbu.Checked then ri:=user else if self.rba.Checked then ri:=admini; userjug(trim(edtun.Text),trim(edtpw.Text),ri);end;/用戶名和密碼文本框里回車/procedure TfmLogin.edtunKeyPress(Sender: TObject; var Key: Char);var ri:string;begin if key=#13 then begin if self.rbu.Checked then ri:=user else if self.rba.Checked then ri:=admini; userjug(trim(edtun.Text),trim(edtpw.Text),ri); end;end;end.2.2訂單管理界面如圖5.4 2圖5.4 2主要代碼:unit Oderform;var fmOderform: TfmOderform;implementationuses datamd, Main;$R *.dfm/各個下拉框賦值共用過程/procedure TfmOderform.cbpbdpd(tet:string);var i,j:integer; osql:string;begin with dtmd.qryofm do begin osql:=select distinct +tet+ from oderform; /查詢唯一值 try Close; SQL.clear; SQL.Add(osql); Open; fmOderform.dbno.DataSource:=nil; fmOderform.dbgo.DataSource:=nil; First; i:=RecordCount; for j:=0 to i-1 do /循環(huán)賦值 begin if m=1 then cbno1.Items.Add(FieldByName(oderno).AsString) else if m=2 then cbno2.Items.Add(FieldByName(oderno).AsString); Next; end; except showmessage(數據庫連接失?。≌垯z查數據庫服務是否正常!); end; end;end;procedure TfmOderform.btnexitClick(Sender: TObject);begin self.Close;end;procedure TfmOderform.cbno1DropDown(Sender: TObject);begin m:=1; self.cbno1.Items.Clear; self.cbpbdpd(oderno);end;procedure TfmOderform.cbno2DropDown(Sender: TObject);begin m:=2; self.cbno2.Items.Clear; self.cbpbdpd(oderno);end;/=/procedure TfmOderform.btnsearClick(Sender: TObject);var ssql,cdt:string;begin ssql:=select oderno as 訂單號,pno as 產品編號,mname as 產品名稱,pnum as 訂購量,odert as 訂購日期,delit as 交貨日期,state as 當前狀態(tài) from oderform,matestor where mno=pno and pno+; if cbno1.Text then cdt:= and oderno=+trim(cbno1.Text)+; if cbno2.Text then cdt:=cdt+ and oderno=+trim(cbno2.Text)+; if datetostr(dtp1.Date) then cdt:=cdt+ and delit=+datetostr(dtp1.DateTime)+; if datetostr(dtp2.Date) then cdt:=cdt+ and delit=+datetostr(dtp2.DateTime)+; if cbnm.Text then cdt:=cdt+ and pno=+trim(cbnm.Text)+; if cbst.Text then cdt:=cdt+ and state=+trim(cbst.Text)+; ssql:=ssql+cdt; with dtmd.qryofm do begin try Close; SQL.clear; SQL.Add(ssql); Open; fmOderform.dbno.DataSource:=dtmd.dsofm; /動態(tài)指定數據感知組件的數據源 fmOderform.dbgo.DataSource:=dtmd.dsofm; except showmessage(數據庫連接失敗!請檢查數據庫服務是否正常!); end; end;end;/*是否允許編輯*procedure TfmOderform.edorClick(Sender: TObject);begin if fmOderform.edor.Checked then /允許編輯 begin fmOderform.dbgo.Options:=fmOderform.dbgo.Options-dgRowSelect+dgediting; fmOderform.dbno.VisibleButtons:=nbinsert,nbdelete,nbedit,nbpost,nbcancel,nbrefresh; end else /不允許編輯 begin fmOderform.dbgo.Options:=fmOderform.dbgo.Options+dgRowSelect-dgediting; fmOderform.dbno.VisibleButtons:=nbfirst,nbprior,nbnext,nblast; endend;procedure TfmOderform.FormCreate(Sender: TObject);begin fmOderform.dbno.VisibleButtons:=nbfirst,nbprior,nbnext,nblast; fmOderform.dbgo.Options:=fmOderform.dbgo.Options+dgRowSelect-dgediting;end;procedure TfmOderform.FormShow(Sender: TObject);begin if fmMain.sttb.Panels0.Text= then begin /游客不能操作數據庫 self.GroupBox1.Enabled:=false; self.GroupBox2.Enabled:=false; end else begin /游客不能操作數據庫 self.GroupBox1.Enabled:=true; self.GroupBox2.Enabled:=true; end; / self.dtp1.DateTime:=now; self.dtp2.DateTime:=now;end;/單擊DBGrid標題時排序/procedure TfmOderform.dbgoTitleClick(Column: TColumn);var i:integer;begin if dtmd.qryofm.Active then begin for i:=1 to dbgo.Columns.Count do begin dbgo.Columnsi-1.Title.Font.Color:=clWindowText;/恢復所有標題字體為默認 dbgo.Columnsi-1.Title.Font.Style:=; end; if dtmd.qryofm.Sort(Column.FieldName+ ASC) then begin dtmd.qryofm.Sort:=Column.FieldName+ ASC; Column.Title.Font.Color:= clRed; /改變標題行字體為紅色,表示當前的排序方式為升序 Column.Title.Font.Style:= fsBold; end else begin dtmd.qryofm.Sort:=Column.FieldName+ DESC; Column.Title.Font.Color:=clBlue; /改變標題行字體為藍色,表示當前的排序方式為降序 Column.Title.Font.Style:=fsBold; end end else showmessage(記錄為空,不能排序!);end;end.2.3庫存管理界面如圖5.4 3: 圖5.4 3主要代碼:procedure TfmMstorage.cbmDropDown(tet:string);var i,j:integer; lsql:string;begin with dtmd.qrys do begin lsql:=select distinct +tet+ from matestor; /查詢唯一值 try Close; SQL.clear; SQL.Add(lsql); Open; fmMstorage.dbgd22.DataSource:=nil; fmMstorage.nvg23.DataSource:=nil; First; i:=RecordCount; for j:=0 to i-1 do /循環(huán)賦值 begin if m=1 then cno23.Items.Add(FieldByName(mno).AsString) else if m=2 then cno24.Items.Add(FieldByName(mno).AsString) else if m=3 then cnm22.Items.Add(FieldByName(mname).AsString) else if m=4 then cbly22.Items.Add(FieldByName(mlayer).AsString); Next; end; except showmessage(數據庫連接失?。≌垯z查數據庫服務是否正常!); end; end;end;procedure TfmMo23DropDown(Sender: TObject);begin m:=1; o23.Items.Clear; self.cbmDropDown(mno);end;procedure TfmMo24DropDown(Sender: TObject);begin m:=2; o24.Items.Clear; self.cbmDropDown(mno);end;procedure TfmMm22DropDown(Sender: TObject);begin m:=3; m22.Items.Clear; self.cbmDropDown(mname);end;procedure TfmMstorage.cbly22DropDown(Sender: TObject);begin m:=4; self.cbly22.Items.Clear; self.cbmDropDown(mlayer);end;/*查詢/procedure TfmMstorage.searchClick(Sender: TObject);var ssql,cdt:string;begin ssql:=select mno as 物料編號,mname as 物料名稱,mlayer as 層次,mtnum as 庫存總量,mvnum as 可用量,mwnum as 即將入庫量,secnum as 安全庫存,invat as 有效期至 from matestor where mno+; if cno23.Text then cdt:= and mno=+trim(cno23.Text)+; if cno24.Text then cdt:=cdt+ and mno=+trim(cno24.Text)+; if cnm22.Text then cdt:=cdt+ and mname=+trim(cnm22.Text)+; if datetostr(dtp22.Date) then cdt:=cdt+ and invat=+datetostr(dtp22.DateTime)+; if datetostr(dtp23.Date) then cdt:=cdt+ and invat=+datetostr(dtp23.DateTime)+; if cbly22.Text then cdt:=cdt+ and mlayer=+trim(cbly22.Text)+; ssql:=ssql+cdt; with dtmd.qrys do begin try Close; SQL.clear; SQL.Add(ssql); Open; fmMstorage.dbgd22.DataSource:=dtmd.dss;/動態(tài)指定數據感知組件的數據源 fmMstorage.nvg23.DataSource:=dtmd.dss; except showmessage(數據庫連接失敗!請檢查數據庫服務是否正常!); end; end;end;/*退出/procedure TfmMstorage.exitClick(Sender: TObject);begin self.Close;end;/*是否允許編輯*procedure TfmMstorage.checkClick(Sender: TObject);begin if fmMstorage.check.Checked then /允許編輯 begin fmMstorage.dbgd22.Options:=fmMstorage.dbgd22.Options-dgRowSelect+dgediting; fmMstorage.nvg23.VisibleButtons:=nbinsert,nbdelete,nbedit,nbpost,nbcancel,nbrefresh; end else /不允許編輯 begin fmMstorage.dbgd22.Options:=fmMstorage.dbgd22.Options+dgRowSelect-dgediting; fmMstorage.nvg23.VisibleButtons:=nbfirst,nbprior,nbnext,nblast; endend;/*創(chuàng)建時默認不允許編輯*procedure TfmMstorage.FormCreate(Sender: TObject);begin fmMstorage.dbgd22.Options:=fmMstorage.dbgd22.Options+dgRowSelect-dgediting; fmMstorage.nvg23.VisibleButtons:=nbfirst,nbprior,nbnext,nblast;end;procedure TfmMstorage.FormShow(Sender: TObject);begin if fmMain.sttb.Panels0.Text= then begin /游客不能操作數據庫 self.GroupBox1.Enabled:=false; self.GroupBox2.Enabled:=false; end else begin /用戶可以操作數據庫 self.GroupBox1.Enabled:=true; self.GroupBox2.Enabled:=true; end;end;end.2.4物料需求分析 界面如下圖5.4 4:圖5.4 4主要代碼:procedure TfmDmdbreak.FormCreate(Sender: TObject);begin fmDmdbreak.dbgo.Options:=fmDmdbreak.dbgo.Options+dgRowSelect-dgediting; fmDmdbreak.dbg2.Options:=fmDmdbreak.dbgo.Options+dgRowSelect-dgediting; fmDmdbreak.dbno.VisibleButtons:=nbfirst,nbprior,nbnext,nblast; fmDmdbreak.nvg2.VisibleButtons:=nbfirst,nbprior,nbnext,nblast;end;/=顯示窗體=procedure TfmDmdbreak.FormShow(Sender: TObject);begin if fmMain.sttb.Panels0.Text= then begin /游客不能操作數據庫 self.gpb1.Enabled:=false; self.gpb2.Enabled:=false; end else begin /用戶可以操作數據庫 self.gpb2.Enabled:=true; self.gpb2.Enabled:=true; self.btninit.Enabled:=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學年九江市九江縣數學三上期末試題含解析
- 2025-2026學年揭陽市揭東縣數學三年級第一學期期末達標測試試題含解析
- 2025-2026學年江蘇省鹽城市亭湖區(qū)建軍路小學數學三年級第一學期期末教學質量檢測模擬試題含解析
- 2024年延安市寶塔區(qū)三年級數學第一學期期末綜合測試模擬試題含解析
- 衛(wèi)生資格考試在線試題及答案獲取
- 行政管理操作流程的試題及答案
- 2025年主管護師考試分數提升試題與答案
- 行政法責任的類型劃分試題及答案
- 行政法學課堂重點試題及答案
- 專業(yè)術語辨析試題及答案
- 2024北京二中初二(上)期中數學試題及答案
- XX醫(yī)院核醫(yī)學應急預案手冊
- 華為HCIP云計算H13-527認證備考試題附答案
- 河南省漯河市2024-2025學年高三上學期期末質量監(jiān)測語文試題及答案解析
- 血液透析中心可行性研究投資報告
- 舞蹈藝術賞析課件
- 《孔子的簡介》課件
- 2025年浙江省寧波市江北區(qū)行政服務中心招聘編外人員筆試和高頻重點提升(共500題)附帶答案詳解
- 非謂語動詞-動名詞和分詞
- 生產安全質量培訓
- 復工協(xié)議書模板
評論
0/150
提交評論