軟件綜合課程設計--家庭理財工具的設計與實現(xiàn)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設 計 報 告</p><p>  課程設計名稱:軟件綜合課程設計</p><p>  課程設計題目:家庭理財工具的設計與實現(xiàn)</p><p>  院(系):計算機學院</p><p><b>  專 業(yè):</b></p><p><b>  班

2、 級: </b></p><p><b>  學 號:</b></p><p><b>  姓 名:</b></p><p><b>  指導教師:</b></p><p><b>  完成日期:</b></p>&l

3、t;p><b>  目 錄</b></p><p><b>  1 系統(tǒng)分析1</b></p><p>  1.1需求分析1</p><p>  1.2編程技術簡介1</p><p><b>  2 系統(tǒng)設計2</b></p><

4、p>  2.1 系統(tǒng)模塊設計2</p><p>  2.2數據庫設計3</p><p>  2.3函數設計5</p><p>  2.3 關鍵流程6</p><p>  2.3.1 系統(tǒng)主流程6</p><p>  2.3.2 登錄函數功能的實現(xiàn)7</p><p>  

5、2.3.3收支管理及資產管理函數的實現(xiàn)9</p><p>  2.3.4收支查詢和資產查詢功能的實現(xiàn)13</p><p>  2.3.5數據備份恢復功能的實現(xiàn)16</p><p>  3 調試分析19</p><p>  4 測試及運行結果21</p><p><b>  參考文獻26<

6、/b></p><p><b>  附 錄27</b></p><p><b>  1 系統(tǒng)分析</b></p><p><b>  需求分析</b></p><p>  家庭理財工具的總體目標是為使用者管理家庭收支信息和資產信息提供一個方便有效的管理平臺,最大化

7、的提高家庭理財效率和效果。</p><p>  作為計算機應用的一部分,使用計算機對家庭理財進行管理,具有人工管理無法比擬的優(yōu)點,它的檢索速、方便查找、可靠性高、存儲量大、保密性好、成本低等,這些都能極大的提高管理工作效率。</p><p>  從題目內容和要求來看,需要在數據庫中建立多個數據表,包括用戶表,收入表,支出表,資產管理表等,表與表之間要存在關聯(lián),一個表出現(xiàn)改動,其它表也要做出

8、相應的變化。而且,在書寫程序時,相比以往邏輯性更高,考慮得更為多元化,才能真正完成一個實用,方便,效率高效的家庭財務管理系統(tǒng)。 </p><p><b>  編程技術簡介</b></p><p>  本次課設我主要使用的軟件是NetBeans IDE 7.1.3和Navicat for MySQL,語言則以Java為主。</p><p>  N

9、etBeans IDE 7.1.3:NetBeans是開源軟件開發(fā)集成環(huán)境,是一個開放框架,可擴展的開發(fā)平臺,可以用于Java、C/C++,PHP等語言的開發(fā),本身是一個開發(fā)平臺,可以通過擴展插件來擴展功能。</p><p>  在 NetBeans Platform 平臺中,應用軟體是用一系列的軟體模組(Modular Software Components)建構出來。而這些模組是一個jar檔(Java Arc

10、hive File)它包含了一組Java程式的類別而它們實作全依據依 NetBeans 定義了的公開介面以及一系列用來區(qū)分不同模組的定義描述檔(Manifest File)。有賴於模組化帶來的好處,用模組來建構的應用程式可只要加上新的模組就能進一步擴充。由於模組可以獨立地進行開發(fā),所以由 NetBeans 平臺開發(fā)出來的應用程式就能利用著第三方軟件,非常容易及有效率地進行擴充</p><p>  Navicat

11、for MySQL:Navicat for MySQL[1]是一款強大的 MySQL 數據庫管理和開發(fā)工具,它為專業(yè)開發(fā)者提供了一套強大的足夠尖端的工具,但對于新用戶仍然易于學習。Navicat for MySQL 基于Windows平臺,為 MySQL 量身訂作,提供類似于 MySQL 的用管理界面工具。此解決方案的出現(xiàn),將解放 PHP、J2EE 等程序員以及數據庫設計者、管理者的大腦,降低開發(fā)成本,為用戶帶來更高的開發(fā)效率。<

12、/p><p>  Navicat for MySQL 使用了極好的圖形用戶界面(GUI),可以用一種安全和更為容易的方式快速和容易地創(chuàng)建、組織、存取和共享信息。 用戶可完全控制 MySQL 數據庫和顯示不同的管理資料,包括一個多功能的圖形化管理用戶和訪問權限的管理工具,方便將數據從一個數據庫轉移到另一個數據庫中(Local to Remote、Remote to Remote、Remote to Local),進行檔

13、案備份。 Navicat for MySQL 支援 Unicode,以及本地或遠程 MySQL 服務器多連線,用戶可瀏覽數據庫、建立和刪除數據庫、編輯數據、建立或執(zhí)行 SQL queries、管理用戶權限(安全設定)、將數據庫備份/復原、匯入/匯出數據(支援 CSV, TXT, DBF 和 XML 檔案種類)等。軟件與任何 MySQL 5.0.x 伺服器版本兼容,支援 Triggers,以及 BINARY VARBINARY/BIT 數

14、據種類等的規(guī)范。</p><p>  Java語言:Java編程語言的風格十分接近C、C++語言。Java是一個純粹的面向對象的程序設計語言,它繼承了 C++語言面向對象技術的核心。Java舍棄了C語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對象所占據的內存空間,使得程序員不用再為內存管理而擔

15、憂。</p><p><b>  2 系統(tǒng)設計</b></p><p>  2.1 系統(tǒng)模塊設計</p><p>  根據課設的內容和要求,將系統(tǒng)分為4個模塊,分別為收支模塊,資產模塊,用戶管理模塊和數據備份模塊。</p><p>  用戶模塊的主要功能有用戶信息管理,包塊用戶的增加,刪除;收支管理,包括收支信息的增

16、加,修改,刪除,查詢功能;資產模塊的主要功能是增加,刪除,修改,查詢有關信息;除此之外,還可以用數據庫管理數據,可以及時備份與恢復,保證了系統(tǒng)的安全性。</p><p>  圖2.1 系統(tǒng)功能模塊圖</p><p><b>  數據庫設計</b></p><p>  (1) 用戶表:tabyonghu</p><p>

17、;  以用戶名為主鍵,同時還有密碼,姓名,出生日期,住址,電話等屬性。具體屬性設定如表2.1所示。 </p><p><b>  表2.1 用戶表</b></p><p>  (2) 收入表:tabshouru</p><p>  以收入者為主鍵,且編號,收入金額,日期,存放入屬性與用戶表相關聯(lián)。具體屬性設定如表2.2所示。</p>

18、<p><b>  表2.2 收入表</b></p><p>  (3) 支出表:tabzhichu</p><p>  以支出者為主鍵,且編號,支出金額,日期,用途屬性與用戶表相關聯(lián)。具體屬性設定如表2.3所示。</p><p><b>  表2.3 支出表</b></p><p>

19、  (4) 資產表:tabzichan</p><p>  用戶名為主鍵,銀行類型,銀行名稱,開戶人和總金額等。具體屬性設定如表2.4所示。</p><p><b>  表2.4 資產表</b></p><p><b>  函數設計</b></p><p>  本系統(tǒng)所設計的函數及所用到的網絡通信函

20、數見表2.6。</p><p><b>  表2.6 函數列表</b></p><p><b>  2.3 關鍵流程</b></p><p>  2.3.1 系統(tǒng)主流程</p><p>  進入此系統(tǒng)時,先輸入用戶名和密碼驗證登錄,驗證成功后進入主界面,再選擇要使用的功能,按要求輸入相應的數據,之

21、后退出;驗證失敗則不能登錄。 </p><p><b>  如圖2.2所示。</b></p><p>  圖2.2 系統(tǒng)主流程圖</p><p>  2.3.2 登錄函數功能的實現(xiàn)</p><p>  登錄系統(tǒng)是驗證用戶是否可以使用此系統(tǒng),如果輸入的用戶名和密碼正確,選擇身份正確,才可以驗證成功,登錄此系統(tǒng)進行使用

22、,否則,信息不正確或者身份不爭取,都不可以進入此系統(tǒng)。</p><p><b>  具體代碼如下:</b></p><p>  String uname=txtUname.getText();</p><p>  String upass=txtPwd.getText();</p><p>  if(uname==nul

23、l||uname.trim().length()<1){</p><p>  javax.swing.JOptionPane.showMessageDialog(null,"用戶名不能為空");</p><p><b>  return;</b></p><p><b>  }</b></p

24、><p>  /////得到用戶登錄權限</p><p>  Object power=cmbPower.getSelectedItem();</p><p><b>  //封裝用戶數據</b></p><p>  tabyonghu user=new tabyonghu();</p><p>  

25、user.setUser(uname);</p><p>  user.setUpass(upass);</p><p>  if(power.equals("管理員")){</p><p>  user.setSq(1);</p><p><b>  }else{</b></p>&l

26、t;p>  user.setSq(2);</p><p><b>  }</b></p><p>  //調用控制用戶登錄模塊</p><p>  Denglu uc=new Denglu();</p><p>  uc.login(user, this);</p><p><b>

27、;  如圖2.3所示。</b></p><p>  圖2.3 登錄系統(tǒng)流程圖</p><p>  2.3.3收支管理及資產管理函數的實現(xiàn)</p><p>  用戶可以根據收入支出管理模塊實現(xiàn)添加、刪除、修改、查詢收支項目的功能,進入此界面,按要求進行操作,對用戶的收入和支出情況進行填寫,以實現(xiàn)該模塊功能。收支模塊里具體有收入記錄功能和支出記錄功能,兩個

28、功能大體相同。資產管理是對家庭總資產來源進行管理記錄及統(tǒng)計,具體功能也包括添加、刪除、修改、查詢各項功能。以下只列出收入記錄功能流程圖。如圖2.4所示。</p><p>  圖2.4 收入功能實現(xiàn)流程圖</p><p><b>  具體代碼如下:</b></p><p>  tabshouru tea=new tabshouru();</

29、p><p>  String bianhao=jT1.getText();</p><p>  if(bianhao==null||bianhao.trim().length()<1){</p><p>  javax.swing.JOptionPane.showMessageDialog(null, "編號不能為空!");</p>

30、<p><b>  return;</b></p><p><b>  }</b></p><p>  String shouruzhe=jT2.getText();</p><p>  if(shouruzhe==null||shouruzhe.trim().length()<1){</p>

31、;<p>  javax.swing.JOptionPane.showMessageDialog(null, "收入者不能為空!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  String jine=jT3.getTe

32、xt();</p><p>  if(jine==null||jine.trim().length()<1){</p><p>  javax.swing.JOptionPane.showMessageDialog(null, "金額不能為空!");</p><p><b>  return;</b></p>

33、;<p><b>  }</b></p><p>  String data=jT4.getText();</p><p>  if(data==null||data.trim().length()<1){</p><p>  javax.swing.JOptionPane.showMessageDialog(null, &

34、quot;日期不能為空!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  String chunfangru=jT5.getText();</p><p>  if(chunfangru==null||chunfangr

35、u.trim().length()<1){</p><p>  javax.swing.JOptionPane.showMessageDialog(null, "存放處不能為空!");</p><p><b>  return;</b></p><p><b>  }</b></p>

36、<p>  tea.setBianhao(bianhao);</p><p>  tea.setShouruzhe(shouruzhe);</p><p>  tea.setJine(jine);</p><p>  tea.setData(data);</p><p>  tea.setChunfangru(chunfangru

37、);</p><p>  boolean x=tdao.save(tea);</p><p><b>  if(x){</b></p><p>  javax.swing.JOptionPane.showMessageDialog(null, "信息保存成功!");</p><p>  initcla

38、ssinfo();</p><p><b>  }</b></p><p>  // TODO add your handling code here:</p><p>  int row=jTable1.getSelectedRow();</p><p><b>  //得到表格選中列</b>&l

39、t;/p><p>  int col=jTable1.getSelectedColumn();</p><p>  String shouruzhe=(String)jTable1.getValueAt(row, 1);//得到系編號</p><p>  // System.out.println("系編號:"+cid);</p>&l

40、t;p>  //按系編號刪除數據</p><p>  boolean x=tdao.delete(shouruzhe);</p><p>  if(x==true){</p><p>  javax.swing.JOptionPane.showMessageDialog(null, "刪除成功");</p><p>

41、<b>  }</b></p><p><b>  //并顯示回表格</b></p><p>  javax.swing.table.DefaultTableModel m=(javax.swing.table.DefaultTableModel)jTable1.getModel();</p><p>  //刪除表格中顯

42、示的數據</p><p>  m.removeRow(row);</p><p>  public boolean save(tabshouru shouruzhe){</p><p>  sql="insert into tabshouru values(?,?,?,?,?,?)";</p><p>  int x=th

43、is.saveOrUpdate(sql, shouruzhe.getBianhao(),shouruzhe.getShouruzhe(),shouruzhe.getJine(),shouruzhe.getData(),shouruzhe.getChunfangru(),shouruzhe.getBeizhu());</p><p>  if(x>0)return true;</p><p

44、>  return false;</p><p><b>  }</b></p><p>  public boolean delete(String shouruzhe)</p><p><b>  {</b></p><p>  sql="delete from tabshour

45、u where shouruzhe=?";</p><p>  int x=this.saveOrUpdate(sql, shouruzhe);</p><p>  if(x>0)return true;</p><p>  return false;</p><p><b>  }</b></p&

46、gt;<p>  2.3.4收支查詢和資產查詢功能的實現(xiàn)</p><p>  收入支出查詢和資產查詢都是對財務信息的查詢,用戶可以根據收入者或支出者查詢收入,支出條目的具體信息;資產查詢是通過用戶id查詢資產管理中的具體信息。如圖2.5是顯示支出查詢的具體步驟。</p><p>  圖2.5 查詢功能實現(xiàn)流程圖</p><p><b>  

47、具體代碼如下:</b></p><p>  tabshouru s=new tabshouru();</p><p>  String shouruzhe=jT1.getText();</p><p>  /*if(stunum!=null&&stunum.toString().length()>0){</p><

48、;p>  List<Object[]> dli=studao.findByStunum(stunum.toString());</p><p>  if(dli!=null&&dli.size()>0){</p><p>  Object[]da=dli.get(0);</p><p>  s.setObjid((String

49、)da[2]);</p><p><b>  }</b></p><p><b>  }*/</b></p><p>  if(shouruzhe==null||shouruzhe.trim().length()<1){</p><p>  javax.swing.JOptionPane.sh

50、owMessageDialog(null, "收入者不能為空");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  s.setShouruzhe(shouruzhe);</p><p>  javax.swing.t

51、able.DefaultTableModel m=new javax.swing.table.DefaultTableModel();</p><p>  m.addColumn("編號");</p><p>  m.addColumn("收入者");</p><p>  m.addColumn("金額")

52、; </p><p>  m.addColumn("日期");</p><p>  m.addColumn("存放入");</p><p>  List<Object[]> li=shourudao.findbyid2(s);</p><p>  m.addRow(li.get(0));//

53、按行添加數據</p><p>  jTable1.setModel(m);</p><p>  // TODO add your handling code here:</p><p>  public List<Object[]> findall(){</p><p>  sql="select * from tabs

54、houru";</p><p>  return this.query(sql);</p><p><b>  }</b></p><p>  2.3.5數據備份恢復功能的實現(xiàn)</p><p>  數據庫管理模塊對于用戶非常重要,數據庫備份模塊可以把用戶的信息在數據庫里再保存一份,為以后發(fā)生特殊情況做準備,也可

55、以說是為用戶信息的安全又加了一層保險,數據庫管理模塊界面如圖2.6所示</p><p>  圖2.6 數據庫備份恢復功能流程圖</p><p><b>  具體代碼如下:</b></p><p>  private void backup(){</p><p><b>  // 數據庫導出</b>

56、</p><p>  String user = "root"; // 數據庫帳號</p><p>  String password = "admin"; // 登陸密碼</p><p>  String database = "caiwu"; // 需要備份的數據庫名</p><p&

57、gt;  String filepath = "D:\\Java\\mysql-5.6.15-winx64\\beifen.sql"; // 備份的路徑地址</p><p>  String stmt1 = "mysqldump " + database + " -u " + user + " -p"</p><p

58、>  + password + " --result-file=" + filepath;/* String mysql="mysqldump test -u root -proot</p><p>  * --result-file=d:\\test.sql";*/</p><p>  try {Runtime.getRuntime().ex

59、ec(stmt1);</p><p>  System.out.println("數據已導出到文件" + filepath + "中");}</p><p>  catch (IOException e) {</p><p>  e.printStackTrace();}</p><p>  javax

60、.swing.JOptionPane.showMessageDialog(null, "數據已導出到文件" + filepath + "中");</p><p><b>  } </b></p><p>  public static void load() { </p><p><b>

61、;  try { </b></p><p>  String fPath =( "D:\\Java\\mysql-5.6.15-winx64\\beifen.sql"); </p><p>  Runtime rt = Runtime.getRuntime(); </p><p>  // 調用 mysql 的 cmd: &l

62、t;/p><p>  // rt.exec("create database demo"); </p><p>  Process child = rt.exec("mysql -u root -p admin caiwu1"); </p><p>  OutputStream out = child.getOutput

63、Stream();// 控制臺的輸入信息作為輸出流 </p><p>  String inStr; </p><p>  StringBuffer sb = new StringBuffer(""); </p><p>  String outStr; </p><p>  BufferedReader br =

64、 new BufferedReader(new InputStreamReader( </p><p>  new FileInputStream(fPath), "utf8")); </p><p>  while ((inStr = br.readLine()) != null) { </p><p>  sb.append(inStr

65、 + "\r\n"); </p><p><b>  } </b></p><p>  outStr = sb.toString(); </p><p>  OutputStreamWriter writer = new OutputStreamWriter(out, "utf8"); &l

66、t;/p><p>  writer.write(outStr); </p><p>  // 注:這里如果用緩沖方式寫入文件的話,會導致中文亂碼,用flush()方法則可以避免 </p><p>  writer.flush(); </p><p>  // 別忘記關閉輸入輸出流 </p><p>  out.cl

67、ose(); </p><p>  br.close(); </p><p>  writer.close(); </p><p>  javax.swing.JOptionPane.showMessageDialog(null, "數據已導入"); </p><p>  } catch (Exception e)

68、{ </p><p>  e.printStackTrace(); </p><p><b>  } </b></p><p><b>  3 調試分析</b></p><p>  (1) SQL語句問題</p><p>  問題描述:在寫代碼時,SQL語句經常會出

69、現(xiàn)輸寫錯誤,有時是格式出錯,有時是屬性添加錯誤,或者是添加不全,有時返回值與我想要的結果不符合。</p><p>  問題分析:對SQL的語句書寫不熟練,格式不明確,對數據庫的屬性信息記得不夠仔細。</p><p>  解決方法:通過查看書本,按照書本上的格式認真書寫,并對照數據庫看屬性信息是否有誤。</p><p>  (2) 對象的類型轉換</p>

70、<p>  問題描述:在程序中,經常用到將對象的類型轉換成另一種類型,以便更好的將其功能實現(xiàn),我運用最多的是將String型轉化為INT型,但在轉換時經常會出錯,比如int seqid=Integer.parseInt(jT1.getText())。</p><p>  問題分析:對轉換的語句不熟練,不知道語句如何書寫以及括號里具體添加什么。</p><p>  解決方法:上

71、網查詢,也會使用環(huán)境的提示工具來解決。</p><p>  (3) 讀取數據并以表格形式顯示出錯</p><p>  問題描述:在讀取數據并以表格形式顯示的時候,有時查詢的數據比要顯示的表格多了一列,有時顯示的數據串行(比如班級的數據都顯示到了學號的列中)。</p><p>  問題分析:讀取的列數與顯示的表格的列數不匹配,表格的列數和行數都從0開始記而不是從1開

72、始,所以會出現(xiàn)串行的現(xiàn)象。</p><p>  解決方法:查看讀取函數的讀取列數和讀取的限定條件,確定具體讀取的列數,再根據列數確定顯示的列數,第一列列數為0。</p><p>  (4) 登錄時權限設定錯誤</p><p>  問題描述:在第一次制作登錄界面時,無論老師,學生,管理員,登錄成功后都可以使用管理員權限下的管理員管理功能。</p>&l

73、t;p>  問題分析:最初遇到這個問題時,以為窗體下的登錄函數有問題,結果是主窗體下函數有問題,沒有對登錄用戶的權限做具體的設置。</p><p>  解決方法:在主窗體的主函數中添加對權限的設定,使其只有管理員能使用管理員管理功能。具體實現(xiàn)如下:</p><p>  if(user.getSeqid()==2||user.getSeqid()==3)</p><

74、p>  {jMenu1.setEnabled(false);</p><p>  System.out.print(user.getSeqid());</p><p><b>  }</b></p><p>  (5) 窗體屬性的設定</p><p>  問題描述:在運行程序時,運行完畢一個窗體的功能,點擊關閉之

75、后不能返回到主窗體,都全部關閉,要想運用其他功能只能重新登錄或者不關閉此次使用的窗體</p><p>  問題分析:這個問題是在程序完成之后發(fā)現(xiàn)的,是窗體的屬性設定為EXIT_ON_CLOSE,應該設定為HIDE</p><p>  解決方法:通過上網查詢了解,點擊窗體,右鍵屬性,在第一欄中的屬性EXIT_ON_CLOSE改為HIDE。</p><p>  (6)

76、 數據庫的連接</p><p>  問題描述:數據庫建好之后,不能連接成功,從程序中運行結果顯示找不到所要查看的表格。</p><p>  問題分析:在連接是數據庫的名字填寫錯誤,后邊的密碼也不對。</p><p>  解決方法: 將 con=DriverManager.getConnection(…)括號中的數據名寫正確,后邊的密碼是安裝時的密碼。</p&g

77、t;<p>  4 測試及運行結果</p><p><b>  (1) 登錄界面</b></p><p>  用戶登錄時,先輸入用戶名和密碼,讓后選擇身份,點擊登錄,只有3者都正確才能登錄成功,測試結果如圖4.1所示。</p><p>  圖4.1 登錄界面</p><p>  (2) 添加用戶界面&l

78、t;/p><p>  管理員添加用戶時,按照要求填寫信息,不能漏填,填寫完之后點擊添加按鈕,顯示添加成功,則說明信息添加成功;刪除用戶則是選中要刪除的數據行,點擊刪除按鈕。如圖4.2所示。</p><p>  圖4.2添加用戶界面</p><p>  (3) 收支信息界面</p><p>  用戶添加信息時,按照要求填寫信息,不能漏填,填寫完之后

79、點擊添加按鈕,顯示添加成功,則說明信息添加成功;用戶對錯誤信息進行修改時,選中需要修改的數據行,并進行編輯然后點修改按鈕。如圖4.3所示。</p><p>  圖4.3 收支信息界面</p><p><b>  (4)查詢界面</b></p><p>  此界面是通過輸入收入者,支出者和用戶id點擊查詢即可。如圖4.4所示。</p>

80、;<p><b>  圖4.4查詢界面</b></p><p><b>  (5) 主界面</b></p><p>  主界面是系統(tǒng)的樞紐,選擇菜單欄中的菜單項,點擊要選擇的功能即可。如圖4.5所示。</p><p><b>  圖4.5主界面</b></p><p&

81、gt;<b>  參考文獻</b></p><p>  [1] 計算機網絡教程(第二版)[M].北京:人民郵電出版社,2006</p><p>  [2] TCP/IP協(xié)議與網絡編程[M].西安:西安電子科技大學大學出版社,2004</p><p>  [3] 數據庫系統(tǒng)概論(第四版) [M].高等教育出版社,2006</p>&

溫馨提示

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

評論

0/150

提交評論