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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

2、 級(jí): </b></p><p><b>  學(xué) 號(hào):</b></p><p><b>  姓 名:</b></p><p><b>  指導(dǎo)教師:</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編程技術(shù)簡(jiǎn)介1</p><p><b>  2 系統(tǒng)設(shè)計(jì)2</b></p><

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

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

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

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

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

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

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

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

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

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

14、據(jù)種類等的規(guī)范。</p><p>  Java語(yǔ)言:Java編程語(yǔ)言的風(fēng)格十分接近C、C++語(yǔ)言。Java是一個(gè)純粹的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它繼承了 C++語(yǔ)言面向?qū)ο蠹夹g(shù)的核心。Java舍棄了C語(yǔ)言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)

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

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

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

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

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

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

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

22、,否則,信息不正確或者身份不爭(zhēng)取,都不可以進(jìn)入此系統(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>  /////得到用戶登錄權(quán)限</p><p>  Object power=cmbPower.getSelectedItem();</p><p><b>  //封裝用戶數(shù)據(jù)</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>  //調(diào)用控制用戶登錄模塊</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收支管理及資產(chǎn)管理函數(shù)的實(shí)現(xiàn)</p><p>  用戶可以根據(jù)收入支出管理模塊實(shí)現(xiàn)添加、刪除、修改、查詢收支項(xiàng)目的功能,進(jìn)入此界面,按要求進(jìn)行操作,對(duì)用戶的收入和支出情況進(jìn)行填寫,以實(shí)現(xiàn)該模塊功能。收支模塊里具體有收入記錄功能和支出記錄功能,兩個(gè)

28、功能大體相同。資產(chǎn)管理是對(duì)家庭總資產(chǎn)來源進(jìn)行管理記錄及統(tǒng)計(jì),具體功能也包括添加、刪除、修改、查詢各項(xiàng)功能。以下只列出收入記錄功能流程圖。如圖2.4所示。</p><p>  圖2.4 收入功能實(shí)現(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, "編號(hào)不能為空!");</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);//得到系編號(hào)</p><p>  // System.out.println("系編號(hào):"+cid);</p>&l

40、t;p>  //按系編號(hào)刪除數(shù)據(jù)</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、示的數(shù)據(jù)</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收支查詢和資產(chǎn)查詢功能的實(shí)現(xiàn)</p><p>  收入支出查詢和資產(chǎn)查詢都是對(duì)財(cái)務(wù)信息的查詢,用戶可以根據(jù)收入者或支出者查詢收入,支出條目的具體信息;資產(chǎn)查詢是通過用戶id查詢資產(chǎn)管理中的具體信息。如圖2.5是顯示支出查詢的具體步驟。</p><p>  圖2.5 查詢功能實(shí)現(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("編號(hào)");</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、按行添加數(shù)據(jù)</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數(shù)據(jù)備份恢復(fù)功能的實(shí)現(xiàn)</p><p>  數(shù)據(jù)庫(kù)管理模塊對(duì)于用戶非常重要,數(shù)據(jù)庫(kù)備份模塊可以把用戶的信息在數(shù)據(jù)庫(kù)里再保存一份,為以后發(fā)生特殊情況做準(zhǔn)備,也可

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

56、</p><p>  String user = "root"; // 數(shù)據(jù)庫(kù)帳號(hào)</p><p>  String password = "admin"; // 登陸密碼</p><p>  String database = "caiwu"; // 需要備份的數(shù)據(jù)庫(kù)名</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("數(shù)據(jù)已導(dǎo)出到文件" + filepath + "中");}</p><p>  catch (IOException e) {</p><p>  e.printStackTrace();}</p><p>  javax

60、.swing.JOptionPane.showMessageDialog(null, "數(shù)據(jù)已導(dǎo)出到文件" + 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>  // 調(diào)用 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();// 控制臺(tái)的輸入信息作為輸出流 </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>  // 注:這里如果用緩沖方式寫入文件的話,會(huì)導(dǎo)致中文亂碼,用flush()方法則可以避免 </p><p>  writer.flush(); </p><p>  // 別忘記關(guān)閉輸入輸出流 </p><p>  out.cl

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

68、{ </p><p>  e.printStackTrace(); </p><p><b>  } </b></p><p><b>  3 調(diào)試分析</b></p><p>  (1) SQL語(yǔ)句問題</p><p>  問題描述:在寫代碼時(shí),SQL語(yǔ)句經(jīng)常會(huì)出

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

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

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

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

73、t;p>  問題分析:最初遇到這個(gè)問題時(shí),以為窗體下的登錄函數(shù)有問題,結(jié)果是主窗體下函數(shù)有問題,沒有對(duì)登錄用戶的權(quán)限做具體的設(shè)置。</p><p>  解決方法:在主窗體的主函數(shù)中添加對(duì)權(quán)限的設(shè)定,使其只有管理員能使用管理員管理功能。具體實(shí)現(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) 窗體屬性的設(shè)定</p><p>  問題描述:在運(yùn)行程序時(shí),運(yùn)行完畢一個(gè)窗體的功能,點(diǎn)擊關(guān)閉之

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論