版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計報告</b></p><p> 課程名稱 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 </p><p> 設(shè)計題目 產(chǎn)品進銷存儲管理系統(tǒng)(java)</p><p> 專業(yè)、班級 軟件工程1004 </p><p> 一 、引言(簡要說明
2、設(shè)計題目的目的、意義、內(nèi)容、主要任務(wù)等)</p><p> 一 、設(shè)計任務(wù)及目的――產(chǎn)品進銷存管理系統(tǒng)</p><p><b> 問題描述:</b></p><p> 針對某一種行業(yè)的庫房的產(chǎn)品進銷存情況進行管理。</p><p><b> 基本要求目的:</b></p>&l
3、t;p> ⑴采用一定的存儲結(jié)構(gòu)對庫房的貨品及其數(shù)量進行分類管理;</p><p> ⑵可以進行產(chǎn)品類的添加、產(chǎn)品的添加、產(chǎn)品數(shù)量的添加;</p><p> ?、悄軌虿樵儙旆棵糠N產(chǎn)品的總量、進貨日期、銷出數(shù)量、銷售時間</p><p> 二、功能需求分析意義</p><p> 系統(tǒng)的功能主要有:管理員操作:進入系統(tǒng)后,管理員就可以
4、對產(chǎn)品的進貨,銷</p><p> 售,存貨等方面的信息有個詳細(xì)的了解。并且可以對產(chǎn)品的類,產(chǎn)品,產(chǎn)品的數(shù)量,</p><p> 產(chǎn)品銷售信息進行管理,可以添加新的產(chǎn)品信息。同時對庫房每種產(chǎn)品的總</p><p> 量、進貨日期、銷出數(shù)量、銷售時間等也可以有詳細(xì)的了解。</p><p> 三 、主要內(nèi)容及任務(wù)</p>&
5、lt;p> 通過java實現(xiàn)這個系統(tǒng),并用界面的方式展示出來,任務(wù)是通過java創(chuàng)建界面JFrame;</p><p> 并添加按鈕監(jiān)聽,可以對數(shù)據(jù)的查詢,添加等操作;</p><p> 設(shè)計算法對數(shù)據(jù)進行操作;</p><p> 最終為了數(shù)據(jù)的不丟失把數(shù)據(jù)序列化到文件中去,這樣也方便數(shù)據(jù)的添加,查詢等操作。</p><p>
6、 二 、正文(課程設(shè)計的主要內(nèi)容,包括實驗與觀測方法和結(jié)果、儀器設(shè)備、計算方法、編程原理、數(shù)據(jù)處理、設(shè)計說明與依據(jù)、加工整理和圖表、形成的論點和導(dǎo)出的結(jié)論等。正文內(nèi)容必須實事求是、客觀真切、準(zhǔn)確完備、合乎邏輯、層次分明、語言流暢、結(jié)構(gòu)嚴(yán)謹(jǐn),符合各學(xué)科、專業(yè)的有關(guān)要求。)</p><p> 1 . 功能算法設(shè)計</p><p> 1.1 各功能函數(shù)關(guān)系圖</p><p
7、> 2 . 詳細(xì)算法設(shè)計</p><p> 2 . 1 . java 基本窗口建立;</p><p> 基本的JFrame窗口的建立。</p><p> 2 . 2 .建立一個集合,用于存儲產(chǎn)品信息;</p><p> 為了數(shù)據(jù)的不丟失我把數(shù)據(jù)存儲到了文件里。</p><p> 2 . 3 . 添加一
8、個方法;用于添加產(chǎn)品數(shù)據(jù)信息;</p><p> 添加產(chǎn)品的相關(guān)信息,如產(chǎn)品類、產(chǎn)品、產(chǎn)品數(shù)量、進貨日期、銷出數(shù)量、</p><p><b> 銷售時間等。</b></p><p> 2 . 4 . 添加一個方法;用于查詢產(chǎn)品數(shù)據(jù)信息;</p><p> 查詢產(chǎn)品的相關(guān)信息,如產(chǎn)品類、產(chǎn)品、產(chǎn)品數(shù)量、進貨日期、銷
9、出數(shù)量、</p><p><b> 銷售時間等。</b></p><p> 2 . 5 . 添加十多個個監(jiān)聽事件;</p><p> 當(dāng)鼠標(biāo)按下按鈕時,得到事件看執(zhí)行什么任務(wù),如彈出添加窗口,查詢窗口;</p><p><b> 或是退出系統(tǒng)。</b></p><p>
10、; 2 . 6. 再添加監(jiān)聽時有四個我寫的是內(nèi)部類實現(xiàn)actionlistener接口,其他的全是</p><p> 另寫一個類實現(xiàn)actionlistener接口然后調(diào)用這個類來實現(xiàn)。</p><p> 2 . 7 . 重要方法 構(gòu)造器傳參;</p><p> 當(dāng)另一個窗口需要其他窗口數(shù)據(jù)是,需要寫一個構(gòu)造方法把數(shù)據(jù)傳過去,</p>&l
11、t;p> 還有當(dāng)一個內(nèi)部類需要用到外部類的屬性,數(shù)據(jù)時,都需要用構(gòu)造器傳參</p><p><b> 來獲得屬性。</b></p><p> 2 . 8 . 把數(shù)據(jù)集合保存到文件時實現(xiàn)序列化;</p><p> 把數(shù)據(jù)序列化到文件方便存儲,獲取。 </p><p><b> 重要代碼</b
12、></p><p> 3. 1 .主窗口建立;</p><p> import java.awt.BorderLayout;</p><p> import java.awt.GridLayout;</p><p> import java.awt.event.ActionListener;</p><p&g
13、t; import javax.swing.JButton;</p><p> import javax.swing.JFrame;</p><p> import javax.swing.JLabel;</p><p> import javax.swing.JPanel;</p><p> public class Manage
14、rUI extends JFrame{</p><p> private JPanel panel;</p><p> private JPanel panel2;</p><p> private JLabel label;</p><p> private JButton button;</p><p>
15、 private JLabel label1;</p><p> private JButton button2;</p><p> private JLabel label2;</p><p> private JButton button3;</p><p> private JLabel label3;</p>&
16、lt;p> private ActionListener listener;</p><p> public ManagerUI(){</p><p> this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);</p><p> setSize(600, 400);</p><p> l
17、istener=new MyActionlistener(this);</p><p> panel=new JPanel();</p><p> label=new JLabel("歡迎進入管理系統(tǒng)");</p><p> panel.add(label);</p><p> panel2=new JPanel(
18、);</p><p> panel2.setLayout(new GridLayout(4,2));</p><p> button=new JButton("1");</p><p> label1=new JLabel("查詢產(chǎn)品信息");</p><p> button.addAction
19、Listener(listener);</p><p> button2=new JButton("2");</p><p> label2=new JLabel("添加產(chǎn)品");</p><p> button2.addActionListener(listener);</p><p> bu
20、tton3=new JButton("3");</p><p> label3=new JLabel("退出系統(tǒng)");</p><p> button3.addActionListener(listener);</p><p> panel2.add(button);</p><p> pane
21、l2.add(label1);</p><p> panel2.add(button2);</p><p> panel2.add(label2);</p><p> panel2.add(button3);</p><p> panel2.add(label3);</p><p> this.add(pan
22、el,BorderLayout.NORTH);</p><p> this.add(panel2,BorderLayout.SOUTH);</p><p> this.setVisible(true);</p><p><b> }</b></p><p> public static void main(Str
23、ing[] args) {</p><p> new ManagerUI();</p><p><b> }</b></p><p><b> }</b></p><p> 3. 2 . 主界面監(jiān)聽;</p><p> private ManagerUI manag
24、erUI;</p><p> public MyActionlistener(ManagerUI managerUI) {</p><p> // TODO Auto-generated constructor stub</p><p> this.managerUI=managerUI;</p><p><b> }<
25、;/b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> if(e.getActionC
26、ommand().equals("1")){</p><p> new Goodsclass();</p><p><b> }</b></p><p> if(e.getActionCommand().equals("2")){</p><p> new insertGo
27、odsclass();</p><p><b> }</b></p><p> if(e.getActionCommand().equals("3")){</p><p> managerUI.dispose();</p><p><b> }</b></p>
28、<p><b> }</b></p><p> 3. 3 .數(shù)據(jù)的查詢;</p><p> public Goodsclass(){</p><p> setDefaultCloseOperation(DISPOSE_ON_CLOSE);</p><p> setSize(200,100);<
29、;/p><p> panel=new JPanel();</p><p> panel.setLayout(new GridLayout(4,2));</p><p> button=new JButton("1");</p><p> button.addActionListener(new ActionListen
30、er() {</p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> new fruitUI();&l
31、t;/p><p><b> }</b></p><p><b> });</b></p><p> label1=new JLabel("水果類");</p><p> button2=new JButton("2");</p><p&
32、gt; button2.addActionListener(new ActionListener() {</p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated met
33、hod stub</p><p> new ShucaiUI();</p><p><b> }</b></p><p><b> });</b></p><p> label2=new JLabel("蔬菜類");</p><p> butto
34、n3=new JButton("3");</p><p> button3.addActionListener(new ActionListener() {</p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {&
35、lt;/p><p> // TODO Auto-generated method stub</p><p> new OtherUI();</p><p><b> }</b></p><p><b> });</b></p><p> label3=new JLabe
36、l("其它類");</p><p> button4=new JButton("4");</p><p> button4.addActionListener(new ActionListener() {</p><p><b> @Override</b></p><p>
37、 public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> Goodsclass.this.dispose();</p><p><b> }</b></p><p><
38、b> });</b></p><p> label4=new JLabel("關(guān)閉此頁");</p><p> 3. 4 .數(shù)據(jù)的添加;</p><p> setDefaultCloseOperation(DISPOSE_ON_CLOSE);</p><p> setSize(200,100);
39、</p><p> panel=new JPanel();</p><p> panel.setLayout(new GridLayout(4,2));</p><p> button=new JButton("1");</p><p> button.addActionListener(new ActionLis
40、tener() {</p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> new insertFru
41、it();</p><p><b> }</b></p><p><b> });</b></p><p> label1=new JLabel("水果類");</p><p> button2=new JButton("2");</p>
42、<p> button2.addActionListener(new ActionListener() {</p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-genera
43、ted method stub</p><p> new insertShucai();</p><p><b> }</b></p><p><b> });</b></p><p> label2=new JLabel("蔬菜類");</p><p
44、> button3=new JButton("3");</p><p> button3.addActionListener(new ActionListener() {</p><p><b> @Override</b></p><p> public void actionPerformed(Action
45、Event e) {</p><p> // TODO Auto-generated method stub</p><p> new insertOther();</p><p><b> }</b></p><p><b> });</b></p><p> l
46、abel3=new JLabel("添加其它類");</p><p> button4=new JButton("4");</p><p> button4.addActionListener(new ActionListener() {</p><p><b> @Override</b><
47、/p><p> public void actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> insertGoodsclass.this.dispose();</p><p><b> }</b>&l
48、t;/p><p><b> });</b></p><p> label4=new JLabel("關(guān)閉此頁");</p><p> 3. 5 .重要監(jiān)聽事件;</p><p> 算法把數(shù)據(jù)添加到集合;JButton okButton = new JButton("OK");&
49、lt;/p><p> okButton.setActionCommand("OK");</p><p> okButton.addActionListener(new ActionListener() {</p><p><b> @Override</b></p><p> public voi
50、d actionPerformed(ActionEvent e) {</p><p> // TODO Auto-generated method stub</p><p> Other other=new Other();</p><p> other.setName(insertOther.this.getTextField().getText());&l
51、t;/p><p> other.setDate(insertOther.this.getTextField_1().getText());</p><p> other.setNumber(Integer.valueOf(insertOther.this.getTextField_2().getText()));</p><p> IOtherFile file;
52、</p><p> file=new OtherFile() ;</p><p> file.addOther(other);</p><p> JOptionPane.showMessageDialog(contentPanel, "添加成功" );</p><p><b> }</b>&l
53、t;/p><p><b> });</b></p><p> buttonPane.add(okButton);</p><p> getRootPane().setDefaultButton(okButton);</p><p><b> 查詢的顯示界面;</b></p><
54、;p> public fruitUI(){</p><p> setDefaultCloseOperation(DISPOSE_ON_CLOSE);</p><p> label=new JLabel();</p><p> IFruitFile file=new FruitFile();</p><p> List<F
55、ruit> Fruits=file.findallFruit();</p><p> StringBuilder s=new StringBuilder();</p><p> s.append("<html>");</p><p> for(Fruit f:Fruits){</p><p> s
56、.append(f.toString()+"</br>");</p><p><b> }</b></p><p> s.append("/html");</p><p> label.setText(s.toString());</p><p> this.a
57、dd(label);</p><p> this.setSize(500,500);</p><p> this.setVisible(true);</p><p> 3 .7 .序列化到文件;</p><p> 這里只拿一個類其他類似;</p><p> 定義一個接口,就是定義它有什么方法規(guī)則ra然后去實現(xiàn)
58、它就行啦;</p><p> public interface IFruitFile {</p><p> public void addFruit(Fruit fruit);</p><p> public List<Fruit> findallFruit();</p><p><b> }</b>
59、</p><p> 這個是實現(xiàn)類的代碼;private ObjectOutputStream oos;</p><p> private static ObjectInputStream ois;</p><p> static List<Fruit> Fruits;</p><p><b> static {&
60、lt;/b></p><p> File file=new File("E:/Fruits.txt");</p><p> if(file.exists()&&file.length()>0){</p><p><b> try {</b></p><p> ois
61、=new ObjectInputStream(new FileInputStream(file));</p><p><b> try{</b></p><p> Fruits= (List<Fruit>) ois.readObject();</p><p> } catch (ClassNotFoundException e
62、) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }</b></p><p> } catch (FileNotFoundException e) {</p><
63、p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p> } catch (IOException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printS
64、tackTrace();</p><p><b> }</b></p><p><b> finally {</b></p><p><b> try {</b></p><p> ois.close();</p><p> } catch (
65、IOException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p&
66、gt;<b> }</b></p><p><b> else {</b></p><p> Fruits=new ArrayList<Fruit>();</p><p><b> }</b></p><p><b> }</b>&l
67、t;/p><p><b> @Override</b></p><p> public void addFruit(Fruit fruit) {</p><p> // TODO Auto-generated method stub</p><p> Fruits.add(fruit);</p><
68、;p><b> try {</b></p><p> oos=new ObjectOutputStream(new FileOutputStream("E:/Fruits.txt"));</p><p> oos.writeObject(Fruits);</p><p> oos.flush();</p&
69、gt;<p> } catch (FileNotFoundException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p> } catch (IOException e) {</p><p>
70、 // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> finally{</b></p><p><b> try {</b>&
71、lt;/p><p> oos.close();</p><p> } catch (IOException e) {</p><p> // TODO Auto-generated catch block</p><p> e.printStackTrace();</p><p><b> }</
72、b></p><p><b> }</b></p><p><b> }</b></p><p><b> @Override</b></p><p> public List<Fruit> findallFruit() {</p>&l
73、t;p> // TODO Auto-generated method stub</p><p> return Fruits;</p><p><b> }</b></p><p> 3. 8 .有一個實體類對象進行封裝數(shù)據(jù);</p><p> public class Fruit implements
74、Serializable{</p><p> private String name;</p><p> private String date;</p><p> private int number;</p><p> public Fruit(String name, String date, int number) {<
75、;/p><p><b> super();</b></p><p> this.name = name;</p><p> this.date = date;</p><p> this.number = number;</p><p><b> }</b></p
76、><p> public Fruit() {</p><p><b> super();</b></p><p> // TODO Auto-generated constructor stub</p><p><b> }</b></p><p> public St
77、ring getName() {</p><p> return name;</p><p><b> }</b></p><p> public void setName(String name) {</p><p> this.name = name;</p><p><b>
78、; }</b></p><p> public String getDate() {</p><p> return date;</p><p><b> }</b></p><p> public void setDate(String date) {</p><p>
79、this.date = date;</p><p><b> }</b></p><p> public int getNumber() {</p><p> return number;</p><p><b> }</b></p><p> public voi
80、d setNumber(int number) {</p><p> this.number = number;</p><p><b> }</b></p><p><b> @Override</b></p><p> public String toString() {</p&g
81、t;<p> return "Fruit [name=" + name + ", date=" + date + ", number=" + number</p><p><b> + "]";</b></p><p><b> }</b><
82、/p><p><b> @Override</b></p><p> public int hashCode() {</p><p> final int prime = 31;</p><p> int result = 1;</p><p> result = prime * resul
83、t + ((date == null) ? 0 : date.hashCode());</p><p> result = prime * result + ((name == null) ? 0 : name.hashCode());</p><p> result = prime * result + number;</p><p> return res
84、ult;</p><p><b> }</b></p><p><b> @Override</b></p><p> public boolean equals(Object obj) {</p><p> if (this == obj)</p><p> re
85、turn true;</p><p> if (obj == null)</p><p> return false;</p><p> if (getClass() != obj.getClass())</p><p> return false;</p><p> Fruit other = (Fruit
86、) obj;</p><p> if (date == null) {</p><p> if (other.date != null)</p><p> return false;</p><p> } else if (!date.equals(other.date))</p><p> return f
87、alse;</p><p> if (name == null) {</p><p> if (other.name != null)</p><p> return false;</p><p> } else if (!name.equals(other.name))</p><p> return fa
88、lse;</p><p> if (number != other.number)</p><p> return false;</p><p> return true;</p><p><b> }</b></p><p><b> 調(diào)試分析 </b></
89、p><p> 3.1 .存儲結(jié)構(gòu)的建立;</p><p> 了解集合的使用,建立。</p><p> 3.2 .定義添加功能;</p><p><b> 能夠條件產(chǎn)品信息;</b></p><p> 3.3 .定義查詢功能;</p><p> 讓用戶更快的,更好的查
90、詢到產(chǎn)品的相關(guān)信息,在做到存儲以后馬上就能根據(jù)提示進行查詢。</p><p> 3.4 .功能缺失彌補;</p><p> 進行整體效果調(diào)試,減少一些運行時出現(xiàn)的問題和錯誤,使其功能效果更加完善。三 、結(jié)論(應(yīng)當(dāng)準(zhǔn)確、完整、明確精練;也可以在結(jié)論或討論中提出建議、設(shè)想、尚待解決問題等。)</p><p><b> 課設(shè)總結(jié) </b><
91、;/p><p> 要做好一件事,只能一步一步的去做,不可能一下子就完成。在程序的編寫,實現(xiàn)上 </p><p> 同樣如此。簡單的幾個功能,在真正實現(xiàn)、編寫代碼的過程卻發(fā)現(xiàn)有很多的問題沒有解決。比如要存儲哪些數(shù)據(jù),用什么方式存儲;用怎么樣的結(jié)構(gòu)去保存各種數(shù)據(jù)等。并且在最后去演示系統(tǒng)的時候還出來很大的漏洞不過后來經(jīng)過修改終于成功的完成了系統(tǒng)要做好一個
92、系統(tǒng),一個嚴(yán)謹(jǐn)?shù)乃季S是不可以或缺的,每一個聯(lián)系都要考慮,每個細(xì)節(jié)都需要注意,每一種錯誤都要會解決。只有把每一種問題都解決了,才能做出一個完善的系統(tǒng)出來。</p><p><b> 四 、參考文獻</b></p><p> 1.《數(shù)據(jù)結(jié)構(gòu) c語言版》;主編 馬睿、孫立云;北京郵電大學(xué)出版社;</p><p> 2《java 6程序設(shè)計》;主
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-倉庫進銷存管理系統(tǒng)
- 進銷存管理系統(tǒng)課程設(shè)計
- 進銷存管理數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--商品進銷存管理系統(tǒng)
- 課程設(shè)計---進銷存管理系統(tǒng)設(shè)計
- 藥品進銷存管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 超市進銷存管理系統(tǒng)課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計--學(xué)生管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--航班管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計—機場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---員工管理系統(tǒng)
- 藥品進銷存儲管理系統(tǒng)(一)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----huffman編碼
- 課程設(shè)計報告--商品進銷存管理系統(tǒng)
- 藥品進銷存儲管理系統(tǒng)(三)
- 藥品進銷存儲管理系統(tǒng)(二)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--圖書管理系統(tǒng)
評論
0/150
提交評論