實習報告之倉庫管理系統_第1頁
實習報告之倉庫管理系統_第2頁
實習報告之倉庫管理系統_第3頁
實習報告之倉庫管理系統_第4頁
實習報告之倉庫管理系統_第5頁
已閱讀5頁,還剩12頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機工程學院Project2(GUI+SQL2005)實習報告選題名稱:倉庫管理系統專業:計算機科學與技術(軟件工程方向)班級:軟件1092姓名:學號:指導教師:馮萬利于長輝高尚兵莊軍2011年06月日

Project2(GUI+SQL2005)實習任務書Kf題稱JJ7ar73人倉庫管理系統設計目的掌握面向對象的程序設計技術和方法;學習用C#設計GUI程序解決實際問題;熟悉VS.NET開發平臺,能使用.NET平臺進行程序設計及程序調試;能使用ADO.NET進行數據庫系統設計與開發。,.r->7^—ISISTJJ-WindowsXP操作系統VisualS開發平臺SQLServer2005數據庫管理系統任務要求利用C#編程思想進行可視化編程,完成系統的設計。突出體現C#語言與其他語言的不同。根據課題需要自主創建sql數據庫,表內數據關聯緊密,數據合理且規范化,避免數據冗余。能合適的選擇高級控件(如:菜單欄,工具欄,dataGridView,treeView等)完成課題內容,窗口布局合理。每個學生從所給題目中任選一題,必須獨立完成,不能相互抄襲。工作進度計劃序號起止日期工作內容12011-4-11—2011-6-5需求分析22011-6-6—2011-6-6系統設計32011-6-7—2011-6-9系統實現42011-6-9—2011-6-9撰寫實習報告52011-6-10—2011-6-10實習答辯指導教師(簽章):2011年06月日摘要:隨著現代工業的發展,計算機信息管理系統越來越受到企業的重視。本文主要分析介紹了倉庫管理系統的一些基本功能和組成情況,包括系統的需求分析、系統結構、功能模塊劃分以及數據庫模式分析等,重點對應用程序的實際開發實現作了介紹。達到了數據的一致性和安全性,且應用程序功能完備,符合了庫存管理系統作為典型的信息管理系統(MIS)的要求。同時簡單介紹了VisualStudio2008編程環境和SQL數據庫管理系統的功能特點,庫存管理系統是企業物流管理中不可或缺的的一部分。本系統利用ASO三層架構,完成系統登錄,注銷,修改密碼的基本功能,倉庫入庫登記,出庫登記,倉庫貨物預警,倉庫內貨物盤點的主要功能。本系統并不復雜,主要完成通過GUI開發,利用關鍵字對數據庫進行增刪改查等操作。關鍵詞:倉庫管理;數據庫;信息管理;VisualStudio20081需求分析1.1系統概述倉庫存放的貨物品種繁多,堆放方式以及處理過程也很復雜。隨著業務量的增加,倉庫管理者需要處理的信息量會大幅上升,因此往往很難及時準確的掌握整個倉庫的運作狀態。針對這一情況,本系統在滿足倉庫的基本管理功能基礎上發揮信息系統的智能化,減輕倉庫管理人員和操作人員的工作負擔。系統主要實現目標是監控整個倉庫的運作情況;提供完整的計劃任務功能,由整個操作系統的指令中心來安排進出任務,確認任務的開始,進貨管理和出貨管理按其指令執行即可;實時監控所有貨物的在線運動的情況,實時提供倉庫變化的信息。1.2系統總體需求根據詳細的需求分析,企業在庫存中面臨的主要問題體現在:庫存量大,庫存資金周轉慢,不能及時統計庫存物料;庫房人員重復工作多,效率低;不知道庫存物資積壓時間長短。系統輸入繁瑣,極易產生輸入錯誤,缺少智能化輸入功能,如:產品名稱輸入過程中,產品名稱和產品代碼不能夠相互協調,易產生不匹配現象。另外,整個系統運行較慢,數據處理能力不夠,進行一個查詢往往需要等待很長時間。該系統還缺少通用庫存管理理功能,貨物組成條目都是經過手工計算的,工作量很大,且容易產生錯誤,有一個小錯誤,核對都需要花費很大的精力,換句話說,當前沒有通用庫存管理系統。本系統從最初的采購到存儲和出庫,倉庫管理將決定企業是否兌現其承諾。從倉庫計劃到倉庫操作和交叉運輸,優化的倉庫將有助于大幅度減少企業的庫存量和和貨物成本,因為企業將能保持較低的庫存貨水平,優化入庫,保管和出庫活動,并且協調載貨量。1.3可行性分析技術上可行:該系統所需硬件設備,市場上銷售且價格較低,甚至可以使用原有的設備,軟件上,操作系統采用Windows系列操作系統,數據庫管理系統采

用VisualStudio2008,這些軟件在GUI開發中已被大量應用,技術上都比較成熟。因此在技術上是可行的。2概要設計2.1E-R圖2.2相關說明登錄系統:賬號密碼均存儲于SQL數據庫中。輸入賬號及賬號對應密碼,即可登錄系統。修改密碼:需輸入一次原密碼,輸入兩次新密碼相同即可修改。密碼修改同步于SQL數據庫。注銷:登錄賬號退出,返回登陸界面。退出系統:系統退出。入庫登記:輸入產品ID,即可直接獲得產品的相關信息,此時輸入入庫數量就可以完成貨物的入庫操作,如果此時產品為新產品,需輸入產品的詳細信息,就可以完成貨物的入庫操作。入庫操作同步更新SQL數據庫。出庫登記:輸入產品ID,即可直接獲得產品的相關信息,此時輸入出庫數量就可以完成貨物的出庫操作,入庫操作同步更新SQL數據庫。倉庫預警:輸入預警數量,點擊確定按鈕,此時顯示數據庫中,貨物數量小于預警數量的貨物總數和貨物詳細信息。商品查詢:顯示倉庫中所有貨物的詳細信息,可以輸入產品ID和產品名稱進行貨物查詢,支持模糊查找。3詳細設計3.1數據庫表定義Users表(用戶信息表)列茗數據類型允在空ULDvardiar(50)BUPasEwordwarcti3r(50)0□PowerintBUSesbitnUNamevarchar(50)oUAdressvardiar(50)BLTT&IwardiarfSO)B□Emailvarchar(5a)OUDepint0UDUPasvwrdURwierLEexLT-ftmeiJAdnMEUTelUEmalUDep海珈Q2Fah=夜晚S涼市壽茨區“oio-tasnscii19S530111234563True熟0北京市海疽區…01062330241bj?ubat§S^.c..1985301G12345&2True暢鼠JUS市酒丑區“.。105匹敏4也X)心」&如293530211234563FalBIE孫諛布海注區…010-62344WBbZOOO^ahOD.,,,2Goods表(貨物詳情表)列名數據類型允許空;產品】口intB產品名稱varttiar(EO)B產品伯格moneyB倉庫所剩數重intn廠商1uardi3r(50)B「即varcharfSO)varchar(500j版祭食庫I口intB

產品名稱「同1廠麗2命主D壬K.三三K岬一點jzaoEGSCODO長風再車程理…11氣三羅西2H0.EOEG110DO北點節發湃….1;丁天妃氣蘭,12?EF^13Z-L'<n2,Hr,...goa.oroDiroDO.IT氐三汽車....|;丁天妃氣包■原廠喝-13?RF=C6C1S-.^商圭1230.EOEO1£ODO=氣點一舌1':...正品1A腳4102發動機氣ZS.aOEG1£ODO=訂一齊1':...15東汽第一即件分「ZH.OKD210DOW氣點一百1':....|;丁至妃氣包.1E?RF=C63O?.TIr帖125.0EODl£OD0東汽第三酬:…17河注E口W?F圭5...1H.OEODl£OD0=訂一齊1':....1;丁天妃氣蘭,150壬[?.三三記沖一點125.0KD9C0D長所車1鯉“155第一汽軍削牛廠55.50EO100長風再車程理…1Worehouses表(倉庫信息表)列名數據類型允許空倉南口?intB倉庫名稱varchar(SO)S奩摩面枳floats倉庫地址varchar(500j備注vardiar(50O^surnLPmSE版rdUPWAerU5€XiJJamsUAdHSEUTelUEffiaiLDep?es30La1Z3*15E2Fabt1=.「項:王.Dia-esaziML卸3D1A196530131234563True°tz15至1?.01062190241brAiiMi5-nJu.c...1驅53MQ1234562Trus樞■:,I--S7I■010623348S4ysiSjF^m2SB53021123^563Fate孫/』LJK市逅淀時CH0-625+W1的旬00巷歸hoc,“.23.2GUI框架設計1用戶系統2主菜單

3密碼修改4貨物入庫5貨物出庫6庫存預警■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■I7商品查詢4編碼實現登錄系統publicstaticstringpwd;publicstaticstringpid;privatevoidbutton1_Click(objectsender,EventArgse)pwd=this.textBox1.Text;pid=this.textBox2.Text;Logsl=newLogs();if(int.Parse(l.isPassword(this.textBox2.Text,this.textBox1.Text).ToString())==1){this.Hide();Managementm=newManagement();m.ShowDialog();}else{DialogResultdr=MessageBox.Show("請檢查您的用戶名和密碼","登錄失敗”,MessageBoxButtons.YesNo);if(DialogResult.No==dr){Application.Exit();}}}privatevoidbutton2_Click(objectsender,EventArgse){Application.Exit();}主菜單publicpartialclassManagement:Form{publicManagement(){InitializeComponent();}privatevoidChangeToolStripMenuItem_Click(objectsender,EventArgse){ChangePasswordcp=newChangePassword();cp.ShowDialog();}privatevoidLogoutToolStripMenuItem_Click(objectsender,EventArgse){DialogResultdr=MessageBox.Show("您確定要注銷嗎?","注銷”,MessageBoxButtons.YesNo);if(dr==DialogResult.Yes){Application.Exit();}}privatevoidOutToolStripMenuItem_Click(objectsender,EventArgse){Application.Exit();}privatevoidManagement_Load(objectsender,EventArgse){this.goodsTableAdapter.Fill(this.wmsDataSet.Goods);}privatevoidManagement_FormClosed(objectsender,FormClosedEventArgse){Application.Exit();}privatevoidInputF2ToolStripMenuItem_Click(objectsender,EventArgse){InputWHFormiwh=newInputWHForm();iwh.ShowDialog();}privatevoidManagement_Activated(objectsender,EventArgse){this.goodsTableAdapter.Fill(this.wmsDataSet.Goods);}privatevoidOutF6ToolStripMenuItem_Click(objectsender,EventArgse){OutWHFormowh=newOutWHForm();owh.ShowDialog();}privatevoidWarningToolStripMenuItem_Click(objectsender,EventArgse){Warningw=newWarning();w.ShowDialog();privatevoidGoodsDetailsToolStripMenuItem_Click(objectsender,EventArgse){this.goodsTableAdapter.Fill(this.wmsDataSet.Goods);}privatevoidWareHouseDetailsToolStripMenuItem_Click(objectsender,EventArgse){this.warehousesTableAdapter.Fill(this.wmsDataSet1.Warehouses);}privatevoidSearchToolStripMenuItem_Click(objectsender,EventArgse){Searchs=newSearch();s.Show();}privatevoidfillByToolStripButton_Click(objectsender,EventArgse){try{this.goodsTableAdapter.FillBy(this.wmsDataSet.Goods);}catch(System.Exceptionex){System.Windows.Forms.MessageBox.Show(ex.Message);}}}入庫登記publicpartialclassInputWHForm:Form{publicInputWHForm(){InitializeComponent();}privatevoidInputWHForm_Load(objectsender,EventArgse){//TODO:這行代碼將數據加載到表“wmsDataSet4.Goods”中。您可以根據需要移動或移除它。this.goodsTableAdapter.Fill(this.wmsDataSet4.Goods);}privatevoidbutton6_Click(objectsender,EventArgse){this.Close();}publicvoidSendToInput(){GoodsDetailss=newGoodsDetails();s.GID=int.Parse(this.textBox1.Text);s.GName=boBox1.Text;s.Gprice=float.Parse(this.textBox3.Text);s.GProvider1=boBox1.Text;s.GProvider2=boBox4.Text;s.Wname=int.Parse(boBox2.Text);s.Count=SqlHelper.DefiniteCount(this.textBox1.Text)+int.Parse(this.textBox2.Text);SqlHelper.AddGoods(s);}privatevoidbutton5_Click(objectsender,EventArgse){SendToInput();this.Close();}privatevoidtextBox1_TextChanged(objectsender,EventArgse){GoodsDetailsg=SqlHelper.Bind(this.textBox1.Text);boBox3.Text=g.GName;this.textBox3.Text=g.Gprice.ToString();boBox1.Text=g.GProvider1;boBox4.Text=g.GProvider2;boBox2.Text=g.Wname.ToString();}}出庫登記publicpartialclassOutWHForm:Form{publicOutWHForm(){InitializeComponent();privatevoidbutton2_Click(objectsender,EventArgse){this.Close();}privatevoidbutton1_Click(objectsender,EventArgse){SentToOutput();this.Close();}privatevoidSentToOutput(){GoodsDetailss=newGoodsDetails();s.GID=int.Parse(this.textBox1.Text);s.GName=boBox1.Text;s.Gprice=float.Parse(this.textBox3.Text);s.GProvider1=boBox1.Text;s.GProvider2=boBox4.Text;s.Count=SqlHelper.DefiniteCount(this.textBox1.Text)-int.Parse(this.textBox2.Text);SqlHelper.OutGoods(s);}privatevoidOutWHForm_Load(objectsender,EventArgse){//TODO:這行代碼將數據加載到表“wmsDataSet2.Goods”中。您可以根據需要移動或移除它。this.goodsTableAdapter.Fill(this.wmsDataSet2.Goods);}privatevoidtextBox1_TextChanged(objectsender,EventArgse){GoodsDetailsg=SqlHelper.Bind(this.textBox1.Text);boBox3.Text=g.GName;this.textBox3.Text=g.Gprice.ToString();boBox1.Text=g.GProvider1;boBox4.Text=g.GProvider2;}}庫存預警publicpartialclassWarning:FormpublicWarning(){InitializeComponent();}privatevoidbutton3_Click(objectsender,EventArgse){this.listBox1.Items.Clear();List<GoodsDetails>g=newList<GoodsDetails>();g=SqlHelper.WarningBind(this.textBox2.Text);inti=0;for(i=0;i<g.Count();i++){this.listBox1.Items.Add(g[i].GID.ToString().PadLeft(4)+g[i].GName.PadLeft(20)+g[i].Count.ToString().PadLeft(10)+g[i].GProvider1.PadLeft(20)+g[i].GProvider2.PadLeft(10));}this.textBox1.Text=i.ToString();}}貨物查詢publicpartialclassSearch:Form{publicSearch(){InitializeComponent();}privatevoidbutton1_Click(objectsender,EventArgse){this.Close();}privatevoidSearch_Load(objectsender,EventArgse){//TODO:這行代碼將數據加載到表“wmsDataSet5.Goods”中。您可以根據需要移動或移除它。this.goodsTableAdapter.Fill(this.wmsDataSet5.Goods);}privatevoidbutton2_Click(objectsender,EventArgse){GoodsDetailsg=SqlHelper.BindVague(boBox3.Text);this.textBox1.Text=g.GID.ToString();this.textBox3.Text=g.Gprice.ToString();boBox1.Text=g.GProvider1;boBox4.Text=g.GProvider2;boBox2.Text=g.Wname.ToString();this.textBox2.Text=g.Count.ToString();}privatevoidbutton3_Click(objectsender,EventArgse){GoodsDetailsg=SqlHelper.Bind(this.textBox1.Text);boBox3.Text=g.GName;this.textBox3.Text=g.Gprice.ToString();boBox1.Text=g.GProvider1;boBox4.Text=g.GProvider2;boBox2.Text=g.Wname.ToString();this.textBox2.Text=g.Count.ToString();}}數據庫連接publicstaticvoidChangeDBPassword(intp,stringp2){SqlConnectionco=newSqlConnection(ConnectionString.con);SqlCommandcmd=newSqlCommand(string.Format("updateUserssetUpassword='{0}'whereUID='{1}'”,p,p2),co);co.Open();vari=(int)cmd.ExecuteNonQuery();MessageBox.Show("密碼修改成功");co.Close();}publicstaticvoidAddGoods(GoodsDetailsg){SqlConnectionco=newSqlConnection(ConnectionString.con);SqlCommandcmd3=newSqlCommand(string.Format("selectcount(*)fromGoodswhere產品ID='{0}'",g.GID),co);co.Open();intj=(int)cmd3.ExecuteScalar();if(j==0){SqlCommandcmd2=newSqlCommand(string.Format("insertintoGoodsvalues('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}')”,g.GID,g.GName,g.Gprice,g.Count,g.GProvider1,g.GProvider2,g.GDescribe,g.Wname),co);inti=(int)cmd2.ExecuteNonQuery();MessageBox.Show("添加成功");co.Close();}else{SqlCommandcmd1=newSqlCommand(string.Format("updateGoodsset產品名稱='{1}',產品價格='{2}',倉庫所剩數量='{3}',廠商='{4}',廠商='{5}',備注='{6}',收貨倉庫ID='{7}'where產品ID='{0}'",g.GID,g.GName,g.Gprice,g.Count,g.GProvider1,g.GProvider2,g.GDescribe,g.Wname),co);inti=(int)cmd1.ExecuteNonQuery();MessageBox.Show("更新成功");co.Close();}}publicstaticvoidOutGoods(GoodsDetailsg){SqlConnectionco=newSqlConnection(ConnectionString.con);try{SqlCommandcmd1=newSqlCommand(string.Format("updateGoodsset產品名稱='{1}',產品價格='{2}',倉庫所剩數量='{3}',廠商='{4}',廠商='{5}',備注='{6}',收貨倉庫ID='{7}'where產品ID='{0}'",g.GID,g.GName,g.Gprice,g.Count,g.GProvider1,g.GProvider2,g.GDescribe,g.Wname),co);co.Open();inti=(int)cmd1.ExecuteNonQuery();co.Close();MessageBox.Show("倉庫出庫記錄完成");}catch(SqlException){MessageBox.Show("出庫失敗");}}publicstaticintDefiniteCount(stringp){SqlConnectionco=newSqlConnection(ConnectionString.con);SqlCommandcmd=newSqlCommand(string.Format("select倉庫所剩數量fromGoodswhere產品ID='{0}'",p),co);SqlCommandcmd1=newSqlCommand(string.Format("selectcount(*)fromGoodswhere產品ID='{0}'",p),co);co.Open();inti=0;if((int)cmd1.ExecuteScalar()==1)i=(int)cmd.ExecuteScalar();co.Close();returni;}publicstaticGoodsDetailsBind(stringp){SqlConnectionco=newSqlConnection(ConnectionString.con);SqlCommandcmd=newSqlCommand(string.Format("select*fromGoodswhere產品ID='{0}'",p),co);co.Open();vari=cmd.ExecuteReader();GoodsDetailsg=newGoodsDetails();while(i.Read()){g.GName=i[1].ToString();g.Gprice=float.Parse(i[2].ToString());g.GProvider1=i[4].ToString();g.GProvider2=i[5].ToString();g.GDescribe=i[6].ToString();g.Count=(int)i[3];g.Wname=(int)i[7];}returng;}publicstaticList<GoodsDetails>WarningBind(stringp){SqlConnectionco=newSqlConnection(ConnectionString.con);SqlCommandcmd=newSqlCommand(string.Format("select*fromGoodswhere倉庫所剩數量<'{0}'",p),co);co.Open();vari=cmd.ExecuteReader();List<GoodsDetails>gd=newList<GoodsDetails>();while(i.Read()){GoodsDetailsg=newGoodsDetails();g.GName=i[1].ToString();g.GProvider1=i[4].ToString();g.GProvider2=i[5].ToString();g.Count=(int)i[3];g.Wname=(int)i[7];gd.Add(g);

}returngd;}publicstaticGoodsDetailsBindVague(stringp){SqlConnectionco=newSqlConnection(ConnectionString.con);SqlCommandcmd=newSqlCommand(string.Format("select*fromGoodswhere產品名稱like'%{0}%'”,p),co);co.Open();vari=cmd.ExecuteReader();GoodsDetailsg=newGoodsDetails();while(i.Read()){g.GID=(int)i[0];g.GName=i[1].ToString();g.Gprice=float.Parse(i[2].ToString());g.GProvider1=i[4].ToString();g.GProvider2=i[5].ToString();g.GDescribe=i[6].ToString();g.Count=(int)i[3];g.Wname=(int)i[7];}returng;}5總結在這次課程設計中,讓我學到了很多在課堂和書本上學不到的知識,我在這次課程設計中最大的收獲有以下幾個方面:一、領略到了數據庫設計在計算機領域的重要性。數據庫作為一個永久存儲形式在應用中發揮著重要的作用。在數據庫設計中,我明白了數據庫設計中不是范式越高越好的。我們要根據我們的應用來決定,一切應該以需求為首要選擇。二、對變成環境、一些控件的使用和界面的美化方面更加熟悉。因為《倉庫管理系統》中涉及到很多控件的使用,只有很好的使用這些控件才可以給出一個很好的界面呈現在用戶的面前。這樣更有利于數據庫和用戶之間的交流。這里就要涉及一些平時不太常見

溫馨提示

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

評論

0/150

提交評論