




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、遼 寧 工 業(yè) 大 學(xué)2012 2013 學(xué)年 第二學(xué)期開 放 性 試 驗(yàn)選題名稱: 倉庫管理系統(tǒng) 專業(yè): 信息管理 班級: 信管101班 姓名: 桂瑩瑩 學(xué)號: 101603029 指導(dǎo)教師: 張彩虹 日 期: 2013.07.12 摘要: 隨著現(xiàn)代工業(yè)的發(fā)展,計(jì)算機(jī)信息管理系統(tǒng)越來越受到企業(yè)的重視。本文主要分析介紹了倉庫管理系統(tǒng)的一些基本功能和組成情況,包括系統(tǒng)的需求分析、系統(tǒng)結(jié)構(gòu)、功能模塊劃分以及數(shù)據(jù)庫模式分析等,重點(diǎn)對應(yīng)用程序的實(shí)際開發(fā)實(shí)現(xiàn)作了介紹。達(dá)到了數(shù)據(jù)的一致性和安全性,且應(yīng)用程序功能完備,符合了庫存管理系統(tǒng)作為典型的信息管理系統(tǒng)(MIS)的要求。同時(shí)簡單介紹了Visual St
2、udio 2008編程環(huán)境和SQL數(shù)據(jù)庫管理系統(tǒng)的功能特點(diǎn),庫存管理系統(tǒng)是企業(yè)物流管理中不可或缺的的一部分。本系統(tǒng)利用ASO三層架構(gòu),完成系統(tǒng)登錄,注銷,修改密碼的基本功能,倉庫入庫登記,出庫登記,倉庫貨物預(yù)警,倉庫內(nèi)貨物盤點(diǎn)的主要功能。本系統(tǒng)并不復(fù)雜,主要完成通過GUI開發(fā),利用關(guān)鍵字對數(shù)據(jù)庫進(jìn)行增刪改查等操作。關(guān)鍵詞:倉庫管理;數(shù)據(jù)庫;信息管理;Visual Studio 2008目 錄1 需求分析21.1 系統(tǒng)概述21.2系統(tǒng)總體需求21.3可行性分析22 概要設(shè)計(jì)32.1 E-R圖32.2相關(guān)說明33 詳細(xì)設(shè)計(jì)43.1數(shù)據(jù)庫表定義43.2 GUI框架設(shè)計(jì)54 編碼實(shí)現(xiàn)85 總結(jié)181
3、需求分析1.1 系統(tǒng)概述倉庫存放的貨物品種繁多,堆放方式以及處理過程也很復(fù)雜。隨著業(yè)務(wù)量的增加,倉庫管理者需要處理的信息量會大幅上升,因此往往很難及時(shí)準(zhǔn)確的掌握整個(gè)倉庫的運(yùn)作狀態(tài)。針對這一情況,本系統(tǒng)在滿足倉庫的基本管理功能基礎(chǔ)上發(fā)揮信息系統(tǒng)的智能化,減輕倉庫管理人員和操作人員的工作負(fù)擔(dān)。系統(tǒng)主要實(shí)現(xiàn)目標(biāo)是監(jiān)控整個(gè)倉庫的運(yùn)作情況;提供完整的計(jì)劃任務(wù)功能,由整個(gè)操作系統(tǒng)的指令中心來安排進(jìn)出任務(wù),確認(rèn)任務(wù)的開始,進(jìn)貨管理和出貨管理按其指令執(zhí)行即可;實(shí)時(shí)監(jiān)控所有貨物的在線運(yùn)動的情況,實(shí)時(shí)提供倉庫變化的信息。1.2系統(tǒng)總體需求根據(jù)詳細(xì)的需求分析,企業(yè)在庫存中面臨的主要問題體現(xiàn)在:庫存量大,庫存資金周轉(zhuǎn)
4、慢,不能及時(shí)統(tǒng)計(jì)庫存物料;庫房人員重復(fù)工作多,效率低;不知道庫存物資積壓時(shí)間長短。系統(tǒng)輸入繁瑣,極易產(chǎn)生輸入錯(cuò)誤,缺少智能化輸入功能,如:產(chǎn)品名稱輸入過程中,產(chǎn)品名稱和產(chǎn)品代碼不能夠相互協(xié)調(diào),易產(chǎn)生不匹配現(xiàn)象。另外,整個(gè)系統(tǒng)運(yùn)行較慢,數(shù)據(jù)處理能力不夠,進(jìn)行一個(gè)查詢往往需要等待很長時(shí)間。該系統(tǒng)還缺少通用庫存管理理功能,貨物組成條目都是經(jīng)過手工計(jì)算的,工作量很大,且容易產(chǎn)生錯(cuò)誤,有一個(gè)小錯(cuò)誤,核對都需要花費(fèi)很大的精力,換句話說,當(dāng)前沒有通用庫存管理系統(tǒng)。本系統(tǒng)從最初的采購到存儲和出庫,倉庫管理將決定企業(yè)是否兌現(xiàn)其承諾。從倉庫計(jì)劃到倉庫操作和交叉運(yùn)輸,優(yōu)化的倉庫將有助于大幅度減少企業(yè)的庫存量和和貨物
5、成本,因?yàn)槠髽I(yè)將能保持較低的庫存貨水平,優(yōu)化入庫,保管和出庫活動,并且協(xié)調(diào)載貨量。1.3可行性分析技術(shù)上可行:該系統(tǒng)所需硬件設(shè)備,市場上銷售且價(jià)格較低,甚至可以使用原有的設(shè)備,軟件上,操作系統(tǒng)采用Windows系列操作系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)采用Visual Studio 2008,這些軟件在GUI開發(fā)中已被大量應(yīng)用,技術(shù)上都比較成熟。因此在技術(shù)上是可行的。2 概要設(shè)計(jì)輸入賬號 密 碼 登 錄賬號密碼符合要求主要功能重新輸入退出2.1E-R圖NY修改密碼注銷主要功能庫存盤點(diǎn)倉庫預(yù)警出庫登記入庫登記顯示庫內(nèi)貨物詳情輸入預(yù)警數(shù)量輸入貨物詳情輸入貨物詳情顯示數(shù)量不足貨物詳情數(shù)據(jù)庫,信息欄同步修改數(shù)據(jù)庫,
6、信息欄同步修改2.2相關(guān)說明登錄系統(tǒng):賬號密碼均存儲于SQL數(shù)據(jù)庫中。輸入賬號及賬號對應(yīng)密碼,即可登錄系統(tǒng)。修改密碼:需輸入一次原密碼,輸入兩次新密碼相同即可修改。密碼修改同步于SQL數(shù)據(jù)庫。注銷: 登錄賬號退出,返回登陸界面。退出系統(tǒng): 系統(tǒng)退出。入庫登記:輸入產(chǎn)品ID,即可直接獲得產(chǎn)品的相關(guān)信息,此時(shí)輸入入庫數(shù)量就可以完成貨物的入庫操作,如果此時(shí)產(chǎn)品為新產(chǎn)品,需輸入產(chǎn)品的詳細(xì)信息,就可以完成貨物的入庫操作。入庫操作同步更新SQL數(shù)據(jù)庫。出庫登記:輸入產(chǎn)品ID,即可直接獲得產(chǎn)品的相關(guān)信息,此時(shí)輸入出庫數(shù)量就可以完成貨物的出庫操作,入庫操作同步更新SQL數(shù)據(jù)庫。倉庫預(yù)警:輸入預(yù)警數(shù)量,點(diǎn)擊確定
7、按鈕,此時(shí)顯示數(shù)據(jù)庫中,貨物數(shù)量小于預(yù)警數(shù)量的貨物總數(shù)和貨物詳細(xì)信息。商品查詢:顯示倉庫中所有貨物的詳細(xì)信息,可以輸入產(chǎn)品ID和產(chǎn)品名稱進(jìn)行貨物查詢,支持模糊查找。3 詳細(xì)設(shè)計(jì)3.1數(shù)據(jù)庫表定義Users表(用戶信息表)Goods表(貨物詳情表)Worehouses表(倉庫信息表)3.2GUI框架設(shè)計(jì)1 倉庫管理系統(tǒng)主頁面 2 設(shè)備臺賬查詢 3 設(shè)備維修登記信息4 歸還信息登記 5 設(shè)備登記信息查詢6 租賃計(jì)劃信息 部門信息查詢9 部門借還信息 編碼實(shí)現(xiàn)登錄系統(tǒng)public static string pwd; public static string pid; private void bu
8、tton1_Click(object sender, EventArgs e) pwd = this.textBox1.Text; pid = this.textBox2.Text; Logs l = new Logs(); if (int.Parse (l.isPassword(this.textBox2.Text,this.textBox1.Text).ToString () )= 1) this.Hide(); Management m = new Management(); m.ShowDialog(); else DialogResult dr = MessageBox.Show(&
9、quot;請檢查您的用戶名和密碼", "登錄失敗", MessageBoxButtons.YesNo); if (DialogResult.No=dr) Application.Exit(); private void button2_Click(object sender, EventArgs e) Application.Exit(); 主菜單public partial class Management : Form public Management() InitializeComponent(); private void ChangeToolStrip
10、MenuItem_Click(object sender, EventArgs e) ChangePassword cp = new ChangePassword(); cp.ShowDialog(); private void LogoutToolStripMenuItem_Click(object sender, EventArgs e) DialogResult dr = MessageBox.Show("您確定要注銷嗎?","注銷", MessageBoxButtons.YesNo); if (dr = DialogResult.Yes) App
11、lication.Exit(); private void OutToolStripMenuItem_Click(object sender, EventArgs e) Application.Exit(); private void Management_Load(object sender, EventArgs e) this.goodsTableAdapter.Fill(this.wmsDataSet.Goods); private void Management_FormClosed(object sender, FormClosedEventArgs e) Application.E
12、xit(); private void InputF2ToolStripMenuItem_Click(object sender, EventArgs e) InputWHForm iwh = new InputWHForm(); iwh.ShowDialog (); private void Management_Activated(object sender, EventArgs e) this.goodsTableAdapter.Fill(this.wmsDataSet.Goods); private void OutF6ToolStripMenuItem_Click(object se
13、nder, EventArgs e) OutWHForm owh = new OutWHForm(); owh.ShowDialog (); private void WarningToolStripMenuItem_Click(object sender, EventArgs e) Warning w = new Warning(); w.ShowDialog(); private void GoodsDetailsToolStripMenuItem_Click(object sender, EventArgs e) this.goodsTableAdapter.Fill(this.wmsD
14、ataSet.Goods); private void WareHouseDetailsToolStripMenuItem_Click(object sender, EventArgs e) this.warehousesTableAdapter.Fill(this.wmsDataSet1.Warehouses); private void SearchToolStripMenuItem_Click(object sender, EventArgs e) Search s = new Search(); s.Show(); private void fillByToolStripButton_
15、Click(object sender, EventArgs e) try this.goodsTableAdapter.FillBy(this.wmsDataSet.Goods); catch (System.Exception ex) System.Windows.Forms.MessageBox.Show(ex.Message); 入庫登記 public partial class InputWHForm : Form public InputWHForm() InitializeComponent(); private void InputWHForm_Load(object send
16、er, EventArgs e) / TODO: 這行代碼將數(shù)據(jù)加載到表“wmsDataSet4.Goods”中。您可以根據(jù)需要移動或移除它。 this.goodsTableAdapter.Fill(this.wmsDataSet4.Goods); private void button6_Click(object sender, EventArgs e) this.Close(); public void SendToInput() GoodsDetails s = new GoodsDetails(); s.GID = int.Parse(this.textBox1.Text); s.GN
17、ame = 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); private void button5_Click(object se
18、nder, EventArgs e) SendToInput(); this.Close(); private void textBox1_TextChanged(object sender, EventArgs e) GoodsDetails g = 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
19、.Wname.ToString (); 出庫登記public partial class OutWHForm : Form public OutWHForm() InitializeComponent(); private void button2_Click(object sender, EventArgs e) this.Close(); private void button1_Click(object sender, EventArgs e) SentToOutput(); this.Close(); private void SentToOutput() GoodsDetails s
20、 = new GoodsDetails(); 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); priva
21、te void OutWHForm_Load(object sender, EventArgs e) / TODO: 這行代碼將數(shù)據(jù)加載到表“wmsDataSet2.Goods”中。您可以根據(jù)需要移動或移除它。 this.goodsTableAdapter.Fill(this.wmsDataSet2.Goods); private void textBox1_TextChanged(object sender, EventArgs e) GoodsDetails g = SqlHelper.Bind(this.textBox1.Text); boBox3.Text = g.GName; thi
22、s.textBox3.Text = g.Gprice.ToString (); boBox1.Text = g.GProvider1; boBox4.Text = g.GProvider2; 庫存預(yù)警 public partial class Warning : Form public Warning() InitializeComponent(); private void button3_Click(object sender, EventArgs e) this.listBox1.Items.Clear(); List<GoodsDetails> g = new List&l
23、t;GoodsDetails>(); g = SqlHelper.WarningBind(this.textBox2.Text); int i = 0; for ( i=0; i < g.Count();i+ ) this.listBox1.Items.Add(gi.GID.ToString().PadLeft(4) + gi.GName.PadLeft(20) + gi.Count.ToString().PadLeft(10) + gi.GProvider1.PadLeft(20) + gi.GProvider2.PadLeft(10); this.textBox1.Text =
24、 i.ToString(); 貨物查詢public partial class Search : Form public Search() InitializeComponent(); private void button1_Click(object sender, EventArgs e) this.Close(); private void Search_Load(object sender, EventArgs e) / TODO: 這行代碼將數(shù)據(jù)加載到表“wmsDataSet5.Goods”中。您可以根據(jù)需要移動或移除它。 this.goodsTableAdapter.Fill(th
25、is.wmsDataSet5.Goods); private void button2_Click(object sender, EventArgs e) GoodsDetails g = 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();
26、this.textBox2.Text = g.Count.ToString(); private void button3_Click(object sender, EventArgs e) GoodsDetails g = 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
27、(); this.textBox2.Text = g.Count.ToString(); 數(shù)據(jù)庫連接 public static void ChangeDBPassword(int p,string p2) SqlConnection co = new SqlConnection(ConnectionString.con); SqlCommand cmd = new SqlCommand(string.Format("update Users set Upassword='0' where UID='1'", p,p2), co); co.O
28、pen(); var i = (int)cmd.ExecuteNonQuery (); MessageBox.Show("密碼修改成功"); co.Close(); public static void AddGoods(GoodsDetails g) SqlConnection co = new SqlConnection(ConnectionString.con); SqlCommand cmd3 = new SqlCommand(string.Format("select count(*) from Goods where 產(chǎn)品ID='0'&
29、quot;, g.GID), co); co.Open (); int j=(int)cmd3.ExecuteScalar (); if(j=0) SqlCommand cmd2 = new SqlCommand(string.Format("insert into Goods values('0','1','2','3','4','5','6','7')", g.GID ,g.GName ,g.Gprice,g.Count ,g.GProvide
30、r1 ,g.GProvider2 ,g.GDescribe,g.Wname ), co); int i = (int)cmd2.ExecuteNonQuery(); MessageBox.Show("添加成功"); co.Close(); else SqlCommand cmd1 = new SqlCommand(string.Format("update Goods set 產(chǎn)品名稱='1',產(chǎn)品價(jià)格='2',倉庫所剩數(shù)量='3',廠商='4',廠商='5',備注='6
31、9;,收貨倉庫ID='7' where 產(chǎn)品ID='0'", g.GID, g.GName, g.Gprice, g.Count , g.GProvider1, g.GProvider2, g.GDescribe,g.Wname ), co); int i = (int)cmd1.ExecuteNonQuery(); MessageBox.Show("更新成功"); co.Close(); public static void OutGoods(GoodsDetails g) SqlConnection co = new SqlCo
32、nnection(ConnectionString.con); try SqlCommand cmd1 = new SqlCommand(string.Format("update Goods set 產(chǎn)品名稱='1',產(chǎn)品價(jià)格='2',倉庫所剩數(shù)量='3',廠商='4',廠商='5',備注='6',收貨倉庫ID='7' where 產(chǎn)品ID='0'", g.GID, g.GName, g.Gprice, g.Count, g.GProvider1
33、, g.GProvider2, g.GDescribe,g.Wname ), co); co.Open(); int i = (int)cmd1.ExecuteNonQuery(); co.Close(); MessageBox.Show("倉庫出庫記錄完成"); catch (SqlException) MessageBox.Show("出庫失敗"); public static int DefiniteCount(string p) SqlConnection co = new SqlConnection(ConnectionString.con);
34、 SqlCommand cmd = new SqlCommand(string.Format("select 倉庫所剩數(shù)量from Goods where 產(chǎn)品ID='0'", p), co); SqlCommand cmd1 = new SqlCommand(string.Format("select count(*) from Goods where 產(chǎn)品ID='0'", p), co); co.Open(); int i=0; if (int)cmd1.ExecuteScalar() = 1) i = (int)cm
35、d.ExecuteScalar(); co.Close(); return i; public static GoodsDetails Bind(string p) SqlConnection co = new SqlConnection(ConnectionString.con); SqlCommand cmd = new SqlCommand(string.Format("select * from Goods where 產(chǎn)品ID='0'", p), co); co.Open(); var i = cmd.ExecuteReader(); GoodsD
36、etails g = new GoodsDetails(); while (i.Read() g.GName = i1.ToString(); g.Gprice = float.Parse(i2.ToString(); g.GProvider1 = i4.ToString(); g.GProvider2 = i5.ToString(); g.GDescribe = i6.ToString(); g.Count = (int)i3; g.Wname = (int)i7; return g; public static List<GoodsDetails> WarningBind(st
37、ring p) SqlConnection co = new SqlConnection(ConnectionString.con); SqlCommand cmd = new SqlCommand(string.Format ("select * from Goods where 倉庫所剩數(shù)量<'0'",p), co); co.Open(); var i = cmd.ExecuteReader(); List<GoodsDetails> gd = new List<GoodsDetails>(); while (i.Read(
38、) GoodsDetails g = new GoodsDetails(); g.GName = i1.ToString(); g.GProvider1 = i4.ToString(); g.GProvider2 = i5.ToString(); g.Count = (int)i3; g.Wname = (int)i7; gd.Add(g); return gd; public static GoodsDetails BindVague(string p) SqlConnection co = new SqlConnection(ConnectionString.con); SqlComman
39、d cmd = new SqlCommand(string.Format("select * from Goods where 產(chǎn)品名稱like '%0%'", p), co); co.Open(); var i = cmd.ExecuteReader(); GoodsDetails g = new GoodsDetails(); while (i.Read() g.GID = (int)i0; g.GName = i1.ToString(); g.Gprice = float.Parse(i2.ToString(); g.GProvider1 = i4.T
40、oString(); g.GProvider2 = i5.ToString(); g.GDescribe = i6.ToString(); g.Count = (int)i3; g.Wname = (int)i7; return g; 5 總結(jié) 在這次課程設(shè)計(jì)中,讓我學(xué)到了很多在課堂和書本上學(xué)不到的知識,我在這次課程設(shè)計(jì)中最大的收獲有以下幾個(gè)方面: 一、領(lǐng)略到了數(shù)據(jù)庫設(shè)計(jì)在計(jì)算機(jī)領(lǐng)域的重要性。數(shù)據(jù)庫作為一個(gè)永久存儲形式在應(yīng)用中發(fā)揮著重要的作用。在數(shù)據(jù)庫設(shè)計(jì)中,我明白了數(shù)據(jù)庫設(shè)計(jì)中不是范式越高越好的。我們要根據(jù)我們的應(yīng)用來決定,一切應(yīng)該以需求為首要選擇。 二、對變成環(huán)境、一些控件的使用和界面的美化方面更加熟悉。因?yàn)閭}庫管理系統(tǒng)中涉及到很多控件的使用,只有很好的使用這些控件才可以給出一個(gè)很好的界面呈現(xiàn)在用戶的面前。這樣更有利于數(shù)據(jù)庫和用戶之間的交流。這里就要涉及一些平時(shí)不太常見的控件的使用問題。為了更好的在系統(tǒng)中利用這些控件,我上網(wǎng)查詢了一些關(guān)于控件使用的資料,最主要的是M
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財(cái)務(wù)總賬工作總結(jié)
- 2025年數(shù)字出版合作協(xié)議書
- 質(zhì)量與成本培訓(xùn)
- 2025年度藥店負(fù)責(zé)人可持續(xù)發(fā)展戰(zhàn)略聘用合同
- 二零二五年度特色民宿店面租賃協(xié)議模板
- 用電檢查年終總結(jié)
- 母子公司2025年度管理費(fèi)支付、結(jié)算及監(jiān)督合同模板
- 二零二五年度新能源技術(shù)研發(fā)商鋪?zhàn)赓U合同模板(含技術(shù)成果轉(zhuǎn)化)
- 二零二五年度農(nóng)村土地征收補(bǔ)償及安置協(xié)議
- 2025年度裝飾材料供應(yīng)商與裝飾公司產(chǎn)品追溯合作協(xié)議
- 枸櫞酸鈉血濾置換液-藥品臨床應(yīng)用解讀
- 2024年興湘集團(tuán)全資子公司招聘筆試參考題庫含答案解析
- 第十七課 《虛擬與現(xiàn)實(shí)》(課件)2023-2024學(xué)年北師大版(2013)初中心理健康七年級上冊
- GB/T 15558.4-2023燃?xì)庥寐竦鼐垡蚁?PE)管道系統(tǒng)第4部分:閥門
- 硬件設(shè)計(jì)評審Checklist(含器件原理圖堆疊布局PCB-checklist)
- 管理學(xué)原理說課課件
- 拆除電桿施工方案
- 管理學(xué)原理 王光健版
- 聚酯生產(chǎn)技術(shù) 聚酯聚合影響因素
- 消息、新聞基本格式和寫作技巧課件
- 七氟丙烷柜式滅火裝置使用說明書
評論
0/150
提交評論