版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭理財(cái)課程設(shè)計(jì)
- 課程設(shè)計(jì)--家庭理財(cái)系統(tǒng)
- 【課程設(shè)計(jì)】家庭理財(cái)系統(tǒng)
- 【課程設(shè)計(jì)】家庭理財(cái)管理系統(tǒng)
- 課程設(shè)計(jì)——家庭理財(cái)管理系統(tǒng)
- 家庭理財(cái)管理系統(tǒng)——課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告--家庭理財(cái)管理系統(tǒng)
- 課程設(shè)計(jì)--mfc家庭理財(cái)管理系統(tǒng)
- uml家庭理財(cái)管理系統(tǒng)課程設(shè)計(jì)
- 基于iPad的家庭理財(cái)軟件的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 家庭理財(cái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 家庭理財(cái)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 家庭理財(cái)系統(tǒng)數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告
- 家庭理財(cái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 家庭理財(cái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【開題報(bào)告】
- 文獻(xiàn)綜述--家庭理財(cái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 云端家庭理財(cái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 文獻(xiàn)綜述--家庭理財(cái)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)庫(kù)原理課程設(shè)計(jì)報(bào)告--家庭理財(cái)系統(tǒng)
- 基于bs結(jié)構(gòu)家庭理財(cái)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論