2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論