版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> Java語言程序設計</p><p><b> 課程設計報告</b></p><p> 題目: 個人備忘錄管理系統(tǒng) </p><p> 專 業(yè) 信息管理與信息系統(tǒng)</p><p> 班 級 信管091 </p><p>
2、 姓 名 </p><p> 學 號 </p><p> 指導教師 </p><p> 完成日期 2011.01.06 </p><p> 2011 年 秋季 學期</p><p><b
3、> 系統(tǒng)需求分析</b></p><p> 個人備忘錄管理系統(tǒng)是能夠設備上運行,為使用者提供日常信息管理功能的工具,通過備忘錄,使用者可以提高生活質量和工作效率。隨著當前生活節(jié)奏的加快,以及個人信息量的增長,人們越來越重視信息的價值、時間的利用、以及個人生活的安排,備忘錄便成為了人們日常生活中的“小管家”與“小鬧鐘”,無論是電腦,還是手機,備忘錄都成為了其必不可少的功能, 一個良好的備忘錄,
4、不僅要方便實用,功能完善,還要具有人性化等特點。本次課程設計希望通過NetBeans IDE來設計個人備忘錄系統(tǒng),要求能夠實現(xiàn)日常所見備忘錄的基本功能。</p><p><b> 系統(tǒng)實現(xiàn)目標</b></p><p> 本備忘錄系統(tǒng)依附于簡單實用的原則,要求實現(xiàn)日常所見備忘錄的基本功能,主要功能項包含以下幾個方面:</p><p> 新增
5、備忘:添加備忘事件信息;</p><p> 查詢備忘:通過輸入事件字段或日期字段,可查詢備忘事件的所有信息;</p><p> 修改備忘:更改已存?zhèn)渫南嚓P信息,實現(xiàn)更新;</p><p> 刪除備忘:事件被選中后,可以實現(xiàn)刪除不重要備忘的功能。</p><p> 以上各功能均要求與數(shù)據(jù)庫相連接,并且數(shù)據(jù)庫可同步更新。 </p&
6、gt;<p><b> 系統(tǒng)設計</b></p><p><b> 系統(tǒng)實現(xiàn)</b></p><p> 根據(jù)系統(tǒng)要求,本系統(tǒng)采用Microsoft Office Access 2003數(shù)據(jù)庫,數(shù)據(jù)庫名為Memorandum,有一個表單Memorandum,用來存儲備忘信息,表結構如下:</p><p>
7、 項目包含兩個文件:Memorandum.java和changeJFrame.java。</p><p> Memorandum.java為主類,實現(xiàn)界面設定、添加備忘(addButtonActionPerformed)、查詢備忘(queryButtonActionPerformed)、引用changeJFrame.java實現(xiàn)修(changeButtonActionPerformed)、刪除備忘(delet
8、eButtonActionPerformed)的功能;changeJFrame.java主要實現(xiàn)更新數(shù)據(jù)信息并存入數(shù)據(jù)庫的功能。</p><p><b> 連接數(shù)據(jù)庫的實現(xiàn):</b></p><p> private Connection getConnectionAccess(){</p><p> String url = "
9、;jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Memorandum.mdb;";</p><p> Connection conn = null;</p><p><b> try {</b></p><p> Class.forName("sun.jd
10、bc.odbc.JdbcOdbcDriver");</p><p> conn = DriverManager.getConnection(url , "" , ""); </p><p> } catch (Exception e) {</p><p><b> }</b></p&
11、gt;<p> return conn;</p><p><b> }</b></p><p><b> 查詢事件的實現(xiàn):</b></p><p> private void queryButtonActionPerformed(java.awt.event.ActionEvent evt) {
12、 </p><p> String Choice =(String)this.QueryChoiceJCB.getSelectedItem();</p><p> Connection conn = getConnectionAccess();</p><p> ResultSet
13、 bs = null;</p><p> String t=this.QueryTextfiled.getText();</p><p> if (t.trim().equals(""))</p><p> { JOptionPane.showMessageDialog(this,"請輸入查詢信息!"); };</
14、p><p><b> try {</b></p><p> Statement statement = conn.createStatement();</p><p> if("日期查詢".equals(Choice))</p><p> bs = statement.executeQuery(&
15、quot;select * from Memorandum where date='" + this.QueryTextfiled.getText() + "'");</p><p> if("事件查詢".equals(Choice))</p><p> bs = statement.executeQuery("
16、;select * from Memorandum where title='" + this.QueryTextfiled.getText() + "'");</p><p> DefaultTableModel dtm = (DefaultTableModel) this.jTable1.getModel();</p><p> for
17、 (int i=dtm.getRowCount()-1;i>=0; i--) {</p><p> dtm.removeRow(i);</p><p><b> }</b></p><p> DefaultTableCellRenderer r = new DefaultTableCellRenderer();</p&g
18、t;<p> r.setHorizontalAlignment(JLabel.CENTER);</p><p> jTable1.setDefaultRenderer(Object.class, r);</p><p> while (bs.next()) {</p><p> String data[] = new String[5];&
19、lt;/p><p> data[0] = bs.getString("title");</p><p> data[1] = bs.getString("date");</p><p> data[2] = bs.getString("time");</p><p> data[
20、3] = bs.getString("position");</p><p> data[4] = bs.getString("content");</p><p> dtm.addRow(data);</p><p><b> }</b></p><p> conn.cl
21、ose();</p><p> } catch (Exception e) {</p><p><b> }</b></p><p> } </p><p><b> 添加事件的實現(xiàn)</b></p>
22、;<p> private void addButtonActionPerformed(java.awt.event.ActionEvent evt) { </p><p> Connection conn =getConnectionAccess();</p><p> String t
23、itle=this.titleTextField.getText();</p><p> String date=this.dateTextField.getText();</p><p> String time=this.timeTextField.getText();</p><p> String position=this.positionTextF
24、ield.getText();</p><p> String content=this.contentTextArea.getText();</p><p> int flag = 1;</p><p><b> try{</b></p><p> Statement statement = conn.crea
25、teStatement();</p><p> ResultSet bs = statement.executeQuery("select * from Memorandum where date='" + this.dateTextField.getText() + "' and time='" + this.timeTextField.getT
26、ext() + "'");</p><p> if(bs.next()) </p><p> {JOptionPane.showMessageDialog(this,"當前日期的當前時間下已存在事件,\n請重設!");flag = 0;}</p><p><b> }</b></p&g
27、t;<p> catch(Exception e)</p><p><b> {}</b></p><p> if(flag==1){</p><p> if (title.trim().equals("")||date.trim().equals("")||time.trim().
28、equals(""))</p><p> JOptionPane.showMessageDialog(this,"請正確填寫信息!"); </p><p><b> else{try{</b></p><p> if(JOptionPane.showConfirmDialog(this,"
29、確認添加?",</p><p> "確認", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){</p><p> Statement statement=conn.createStatement();</p><p> String sqlStr="insert
30、 into Memorandum ([title],[date],[time],[position],[content]) values('"+title+"','"+date+"','"+time+"','"+position+"','"+cont ent+"
31、')";</p><p> statement.executeUpdate(sqlStr);</p><p> JOptionPane.showMessageDialog(this,"添加成功!"); </p><p> conn.close(); </p><p><b> }}&l
32、t;/b></p><p> catch(Exception e)</p><p><b> {</b></p><p> e.printStackTrace();</p><p><b> }} }</b></p><p> }
33、 </p><p><b> 修改事件的實現(xiàn)</b></p><p> private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) { <
34、;/p><p> Connection conn = getConnectionAccess();</p><p><b> try{</b></p><p> String r = jTable1.getValueAt(jTable1.getSelectedRow(),0).toString();</p><p>
35、 String s = jTable1.getValueAt(jTable1.getSelectedRow(),1).toString();</p><p> String t = jTable1.getValueAt(jTable1.getSelectedRow(),2).toString();</p><p> if(JOptionPane.showConfirmDialog(th
36、is,"確認刪除?",</p><p> "確認", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){</p><p> Statement statement=conn.createStatement();</p><p> DefaultTableModel
37、 dtm=(DefaultTableModel)this.jTable1.getModel();</p><p> String sqlStr="delete from Memorandum where title='"+r+"' and date='"+s+"'and time='"+t+"'
38、";</p><p> int i =jTable1.getSelectedRow(); </p><p> dtm.removeRow(i);</p><p> statement.executeUpdate(sqlStr);</p><p> JOptionPane.showMessageDialog(this,&quo
39、t;刪除成功!"); </p><p> conn.close();</p><p><b> }}</b></p><p> catch(Exception e)</p><p><b> {</b></p><p> JOptionPane.showM
40、essageDialog(this,"沒有選擇事件項!"); </p><p><b> }</b></p><p><b> } </b></p><p> private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
41、{ </p><p> Connection conn =getConnectionAccess();</p><p> try { int res = JOptionPane.showConfirmDialog(this, "確認更改?","確認",JOptionP
42、ane.YES_NO_OPTION);</p><p> Statement statement= conn.createStatement();</p><p> if(res == JOptionPane.YES_OPTION)</p><p><b> {</b></p><p> { statement.
43、executeUpdate("update Memorandum set [position]='"+this.positionTextField.getText()+"'where title = '"+title+"'and date='" +date+ "'and time='" +time+ &
44、quot;'");</p><p> statement.executeUpdate("update Memorandum set [content]='"+this.contentTextField.getText()+"'where title = '"+title+"'and date='"
45、; +date+ "'and time='" +time+ "'");</p><p> statement.executeUpdate("update Memorandum set [date]='"+this.dateTextField.getText()+"'where title = '
46、"+title+"'and date='" +date+ "'and time='" +time+ "'");</p><p> statement.executeUpdate("update Memorandum set [time]='"+this.timeTextFie
47、ld.getText()+"'where title = '"+title+"'and date='" + this.dateTextField.getText()+ "'and time='" +time+ "'");</p><p><b> }</b>
48、;</p><p> JOptionPane.showMessageDialog(this, "修改成功!");</p><p> conn.close();}</p><p> if(res == JOptionPane.NO_OPTION){</p><p> changeJFrame cg=new chang
49、eJFrame(title,date,time,position,content);</p><p> cg.setVisible(true);</p><p> cg.setLocation(110, 50);}</p><p> } catch (Exception e) {</p><p><b> }</b&g
50、t;</p><p> this.dispose(); </p><p> } </p><p><b> 刪除事件的實現(xiàn)</b></p><p> private void deleteButtonActionPerformed(ja
51、va.awt.event.ActionEvent evt) { </p><p> Connection conn = getConnectionAccess();</p><p><b> try{</b></p><p> String r = j
52、Table1.getValueAt(jTable1.getSelectedRow(),0).toString();</p><p> String s = jTable1.getValueAt(jTable1.getSelectedRow(),1).toString();</p><p> String t = jTable1.getValueAt(jTable1.getSelecte
53、dRow(),2).toString();</p><p> if(JOptionPane.showConfirmDialog(this,"確認刪除?",</p><p> "確認", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION){</p><p> Stat
54、ement statement=conn.createStatement();</p><p> DefaultTableModel dtm=(DefaultTableModel)this.jTable1.getModel();</p><p> String sqlStr="delete from Memorandum where title='"+r+&
55、quot;' and date='"+s+"'and time='"+t+"'";</p><p> int i =jTable1.getSelectedRow();</p><p> dtm.removeRow(i);</p><p> statement.execut
56、eUpdate(sqlStr);</p><p> JOptionPane.showMessageDialog(this,"刪除成功!"); </p><p> conn.close();</p><p><b> }}</b></p><p> catch(Exception e)</
57、p><p><b> {</b></p><p> JOptionPane.showMessageDialog(this,"沒有選擇事件項!"); </p><p><b> }</b></p><p> }
58、 </p><p><b> 系統(tǒng)配置</b></p><p> 本系統(tǒng)功能的實現(xiàn)主要通過鼠標點擊操作按鈕,進而直接執(zhí)行代碼而成功實現(xiàn)系統(tǒng)功能,系統(tǒng)運行情況如下:</p><p><b> 查詢備忘</b></p><p><b> 原始數(shù)據(jù)庫如下:</b&
59、gt;</p><p> 如果未輸入查詢信息,將彈出提示消息框</p><p> 輸入日期查詢,顯示當天的所有備忘</p><p> 輸入時間查詢,將顯示以該字段為標題的所有備忘</p><p><b> 添加備忘</b></p><p> 未輸入標題,日期和時間時,彈出提示信息<
60、/p><p> 輸入信息時,系統(tǒng)可判斷當前日期的當前時間是否已存在備忘,例如備忘錄中2012-01-06日的20:00已有備忘,則不能再添加當前日期、當前時間的備忘。</p><p> 輸入正確的信息后,點擊確認按鈕,彈出“確認添加對話框”,點擊“否”,則不添加事件,返回原新增備忘界面,點擊“是”,則添加備忘,并提示添加成功。</p><p> 確認添加后,數(shù)據(jù)庫
61、中插入該條目,數(shù)據(jù)庫信息如下:</p><p><b> 查詢顯示</b></p><p><b> 更改備忘</b></p><p> 查詢信息后,如果未選擇事件項,彈出提示窗口</p><p> 選中事件---“約會”,點擊更改按鈕,彈出更改界面</p><p>
62、; 更改原地點“茶樓”為“咖啡館”,點擊確認,彈出確認更改對話框,點擊“否”,返回更改界面,點擊“是”,則實現(xiàn)更新,并提示修改成功。</p><p> 原數(shù)據(jù)庫中該信息為:</p><p> 確認更改后,數(shù)據(jù)信息為:</p><p><b> 刪除備忘</b></p><p> 查詢界面未選中事件項而點擊刪除,
63、提示沒有選擇事件項</p><p> 選中某一事件后,點擊刪除,彈出確認對話框,點擊“否”,返回原界面,點擊“是”,則刪除記錄,并提示刪除成功。例如:選擇事件“碰面”</p><p> 確認刪除后,查詢列表和數(shù)據(jù)庫中對應條目刪除</p><p><b> 系統(tǒng)維護與擴展</b></p><p> 總體來說,本系統(tǒng)
64、大致可以實現(xiàn)備忘錄的基本功能,但相對于一些備忘錄軟件工具來說,還有欠缺部分,就系統(tǒng)本身來說,有以下幾個問題:第一,界面過于簡單,需要美化;第二,如果最新添加的備忘錄比原有備忘的時間早,查詢時,按照添加時間的先后排序,無二沒有按照備忘的時間排序;第三;添加信息時,日期和時間的格式不能按照標準格式輸入;第四;沒有具有一些備忘錄的擴展功能,如通訊錄,事件提醒等。如若完善擴展,可從這幾個方面進行。</p><p><
65、;b> 心得體會</b></p><p> 系統(tǒng)設計是一項很繁瑣的過程,從界面設計、數(shù)據(jù)庫連接到功能實現(xiàn),各項內容都有很多工作要完成,再加上之前接觸開發(fā)軟件NetBeans并不多,相關操作還不是很熟悉,從而遇到了很多問題。這時我總是積極的查閱資料,了解操作方式。實踐了才知道方法,從設計系統(tǒng)之初,也就是最基本的界面設計做起,慢慢的摸索門路,循序漸進、這樣就在后邊避免了一些不必要問題,自己也加強
66、了知識的掌握,并且提高了學習和實踐的能力。</p><p> 雖然完成了任務,但最終設計出來的系統(tǒng)還是有不足之處,諸如系統(tǒng)維護與拓展之中所言種種,還有待解決,也顯示了自己能力的欠缺,以后還應加強這方面的練習。另外,本次課程設計,培養(yǎng)了我將實際問題轉化為系統(tǒng)方案的技能,這對于以后的工作等方面大有裨益。 </p><p><b> 參考文獻</b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論