freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于cs結(jié)構(gòu)_的倉庫智能管理系統(tǒng)畢業(yè)論文-資料下載頁

2025-07-02 06:14本頁面

【導(dǎo)讀】過程,包括從可行性研究到系統(tǒng)投入使用的主要相關(guān)文檔。本系統(tǒng)主要完成對倉庫。系統(tǒng)可以完成對各類信息的瀏覽、查詢、添加、刪修改、報表等功能。系統(tǒng)的開發(fā)環(huán)境為mysql+Myeclipse。使用Myeclipse時限邏輯代碼。的增加,修改,刪除,以及權(quán)限管理;倉庫內(nèi)貨物的基本資料的增加,修改,刪除;單據(jù)填開模塊包括:出庫單,入庫單,等單。據(jù)的填開級作廢操作。些功能的實現(xiàn)對該公司的倉庫管理從以往的手工管理過渡到計算機(jī)的信息化管理,從而大大提高了工作效率。

  

【正文】 包括添加倉庫和查看倉庫 兩個 功能 。 點擊 添加倉庫 ,進(jìn)入添加倉庫界面,該界面 如圖 47。 圖 47 添加 倉庫界面 21 在該界面中,用戶填好相關(guān)信息后, 客戶端向服務(wù)器發(fā)送 新建倉庫請求,數(shù)據(jù)庫創(chuàng)建倉庫成功后,向客戶端發(fā)送成功請求,代碼如下: Socket s = ()。 SourceBag setbag = new SourceBag()。 (address, address)。 (valume, valume)。 (manager_id, ())。 oos = new ObjectOutputStream(())。 (setbag)。()。 ois=new ObjectInputStream(())。 SourceBag getbag=(SourceBag)()。 if (() == ) { (null, 添加成功!返回主界面 ,添加成功! , )。 new LoginPanel(mf).toShow()。 } else { (null, 請您稍后再試 , 添加失敗!,)。} 查看倉庫信息,就是用戶登錄后,客戶端將服務(wù)器發(fā)來的用戶信息進(jìn)行拆包,提取出相關(guān)信息,顯示到客戶端中,主要代碼如下: ListWarehouse warelist = ()。 String[] wareName = new String[()]。 for (int i = 0。 i ()。 i++) { wareName[i] = (i).getArea()。 }if (() == 0) { wareName = new String[1]。 wareName[0] = 您的數(shù)據(jù)庫列表為空 。 } 該界面還有一個“一鍵查詢”功能,在 文本框中輸入要查找的商品名,點擊“一鍵查詢”,客戶端在所有商品中翻找對應(yīng)商品名,找到后跳到查看商品界面,如果找不到則提示“未找到相關(guān)信息”。該功能的核心代碼如下: (new ActionListener() { public void actionPerformed(ActionEvent e) { String goodname=().trim()。 ListWarehouse warelist=()。 for(int i=0。i()。i++){ ListGoods goodslist=(i).getGoods()。 for(int j=0。j()。j++){ 22 Goods good1=(j)。 int a=().indexOf(goodname)。 if(a!=1){ new OneGoodPanel(mf, good1)。 }else{ (null,未找到相關(guān)商品信息 ,提示 ,)。 }}}}})。 3. 添加商品界面:用戶可以在此界面中編輯新的商品信息,包括商品名,商品入庫數(shù)量,商品單價,生產(chǎn)廠家,入庫時間。 相關(guān) 界面、 程序 代碼 查詢附錄:。 相關(guān)界面 如圖 48。 圖 48 添加 倉庫界面 在該界面包含添加商品功能,就是客戶端向服務(wù)器發(fā)送添加商品 請求,數(shù)據(jù)庫添加成功后 向客戶端發(fā)送添加成功請求 ,相關(guān)代碼如下: Socket s = ()。 SourceBag setbag = new SourceBag()。 (name, ())。 (count, ())。 (price, ())。 (shop, ())。 (time, ())。 oos = new ObjectOutputStream(())。 (setbag)。 ()。 ois=new ObjectInputStream(())。 23 SourceBag getbag=(SourceBag)()。 if (() == ) { (null, 添加成功!返回主界面 ,添加成功! , )。 new LoginPanel(mf).toShow()。 } else { (null, 請您稍后再試 , 添加失?。?)。 } 4. 查看商品界面:在這個界面當(dāng)中,用戶可以查看到倉庫里所有的商品信息,在商品列表上方還有一個下拉菜單,可以選擇查看“已入 庫”“已出庫”“全部”商品。在右側(cè)是選中的商品的基本信息。 點擊窗口下面的 按鈕,可進(jìn)行相關(guān)操作:將選中商品入庫,將選中商品出庫,刪除選中商品。 相關(guān)界面 如圖 49。 圖 49 查看商品 界面 在該界面包含刪除商品、將商品出庫方法,這些方法都是先向服務(wù)器發(fā)送請求,然后服務(wù)器對請求進(jìn)行分析后 再對數(shù)據(jù)庫進(jìn)行操作 ,最后如果成功,服務(wù)器會向客戶端發(fā)送一個成功信息。 而修改商品信息則是重新打開添加商品的“ AddGoodPanel”界面,在該界面重新設(shè)置商品信息。 24 服務(wù)器 功能實現(xiàn) 多線程監(jiān)聽功能的實現(xiàn) 服務(wù)器作為多線程服務(wù)器,就需要循環(huán)監(jiān)聽,每一次受到客戶端套接字發(fā)送來的請求,就開啟一個線程來處理客戶端所需要的業(yè)務(wù) 。開啟多線程服務(wù)器的方法如以下代碼所示: public class MainServer { private ServerSocket ss。 private static int count = 1。 public MainServer() { (*************)。 (服務(wù)器開始監(jiān)聽 )。 (*************)。 try { ss = new ServerSocket(8656)。 } catch (IOException e) { ()。 } } public void startServer() throws MyWarehouseException { while (true) { try { Socket s = ()。 Thread th = new Thread(new ServerThread(s, count++))。 ()。 } catch (IOException e) { throw new MyWarehouseException(客戶端連接失敗 )。 } } } public static class ServerThread extends Thread { private Socket s。 private int i。 public ServerThread(Socket s, int i) { = s。 = i。 } 25 public void run() {…… } } public static void main(String[] args) { try { new MainServer().startServer()。 } catch (MyWarehouseException e) { ()。 } } 數(shù)據(jù)傳輸 功能的實現(xiàn) 當(dāng)有客戶端連接到服務(wù)器之后,需要進(jìn)行數(shù)據(jù)傳輸,客戶端和服務(wù)器應(yīng)該具有相同的封裝數(shù)據(jù)包類,然后通過 objectstream 流進(jìn)行發(fā)送讀取 ,保證數(shù)據(jù) 準(zhǔn)確性的同時,有保證了數(shù)據(jù)了封閉性。 服務(wù)器數(shù)據(jù)傳輸及數(shù)據(jù)處理的代碼如以下所示: 服務(wù)器內(nèi)部線程類 (){ public void run() { (**** + i + 次客戶端接入 ****)。 SourceBag getBag = null。 SourceBag setBag = null。 ObjectInputStream ois = null。 ObjectOutputStream oos = null。 try { ois = new ObjectInputStream(())。 oos = new ObjectOutputStream(())。 getBag = (SourceBag) ()。 int flag = ()。 switch (flag) { case : String managerName = (String) (name)。 String pmanagerPassword = (String) getBag .getDate(password)。 try { ManagerDAO dao = new ManagerDAOImpl()。 Manager manager = (managerName, pmanagerPassword)。 if (manager == null) { setBag = new SourceBag()。 26 } else {setBag = new SourceBag()。} (manager, manager)。 (setBag)。 ()。 } catch (MyWarehouseException e) { ()。 }break。 case : String registName = (String) (name)。 String pregistPassword = (String) getBag .getDate(password)。 try {ManagerDAO dao = new ManagerDAOImpl()。 boolean regisfalg = ( registName, pregistPassword)。 if (regisfalg) {setBag = new SourceBag()。 } else { setBag = new SourceBag()。 } (setBag)。 ()。 } catch (MyWarehouseException e) { ()。 }break。 case : String aa = (String) (name)。 (aa)。 String ww = (String) (password)。 (ww)。 setBag = new SourceBag(0)。 (name, 反日 )。 (發(fā)送 )。 (setBag)。 ()。break。 case : String address = (String) (address)。 String valume = (String) (valume)。 int manager_id=((String) (manager_id))。 boolean addWareFlag=false。 27 if (addWareFlag) { setBag = new SourceBag()。 } else { setBag = new SourceBag()。 } (setBag)。 ()。 break。 case : (用戶離開 )。 ()。 break。 default:。 } } catch (IOException e) { ()。 } catch (ClassNotFoundException e) { ()。 } finally { try { if (oos != null) ()。 } catch (IOException e) { ()。 } try { if (ois != null) ()。 } catch (IOException e) { ()。 } if (s != null) { try {(結(jié)束連接 )。 ()。 } catch (IOException e) { ()。 } } } } } 數(shù)據(jù)庫持久層功能的實現(xiàn) 持久層的實現(xiàn)主要是各個結(jié)構(gòu)的實現(xiàn)類。服務(wù)器通過調(diào)用接口,對接收到的 數(shù)據(jù)進(jìn)行數(shù)據(jù)庫操作。我以用戶 登錄 為例,進(jìn)行詳細(xì)介紹。 首先是用戶的接口,代碼如下: public interface ManagerDAO { public boolean
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1