java課程設(shè)計(jì)--個(gè)人備忘錄管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩14頁(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>  Java語言程序設(shè)計(jì)</p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  題目: 個(gè)人備忘錄管理系統(tǒng) </p><p>  專 業(yè) 信息管理與信息系統(tǒng)</p><p>  班 級(jí) 信管091 </p><p> 

2、 姓 名 </p><p>  學(xué) 號(hào) </p><p>  指導(dǎo)教師 </p><p>  完成日期 2011.01.06 </p><p>  2011 年 秋季 學(xué)期</p><p><b

3、>  系統(tǒng)需求分析</b></p><p>  個(gè)人備忘錄管理系統(tǒng)是能夠設(shè)備上運(yùn)行,為使用者提供日常信息管理功能的工具,通過備忘錄,使用者可以提高生活質(zhì)量和工作效率。隨著當(dāng)前生活節(jié)奏的加快,以及個(gè)人信息量的增長(zhǎng),人們?cè)絹碓街匾曅畔⒌膬r(jià)值、時(shí)間的利用、以及個(gè)人生活的安排,備忘錄便成為了人們?nèi)粘I钪械摹靶」芗摇迸c“小鬧鐘”,無論是電腦,還是手機(jī),備忘錄都成為了其必不可少的功能, 一個(gè)良好的備忘錄,

4、不僅要方便實(shí)用,功能完善,還要具有人性化等特點(diǎn)。本次課程設(shè)計(jì)希望通過NetBeans IDE來設(shè)計(jì)個(gè)人備忘錄系統(tǒng),要求能夠?qū)崿F(xiàn)日常所見備忘錄的基本功能。</p><p><b>  系統(tǒng)實(shí)現(xiàn)目標(biāo)</b></p><p>  本備忘錄系統(tǒng)依附于簡(jiǎn)單實(shí)用的原則,要求實(shí)現(xiàn)日常所見備忘錄的基本功能,主要功能項(xiàng)包含以下幾個(gè)方面:</p><p>  新增

5、備忘:添加備忘事件信息;</p><p>  查詢備忘:通過輸入事件字段或日期字段,可查詢備忘事件的所有信息;</p><p>  修改備忘:更改已存?zhèn)渫南嚓P(guān)信息,實(shí)現(xiàn)更新;</p><p>  刪除備忘:事件被選中后,可以實(shí)現(xiàn)刪除不重要備忘的功能。</p><p>  以上各功能均要求與數(shù)據(jù)庫(kù)相連接,并且數(shù)據(jù)庫(kù)可同步更新。 </p&

6、gt;<p><b>  系統(tǒng)設(shè)計(jì)</b></p><p><b>  系統(tǒng)實(shí)現(xiàn)</b></p><p>  根據(jù)系統(tǒng)要求,本系統(tǒng)采用Microsoft Office Access 2003數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名為Memorandum,有一個(gè)表單Memorandum,用來存儲(chǔ)備忘信息,表結(jié)構(gòu)如下:</p><p>

7、  項(xiàng)目包含兩個(gè)文件:Memorandum.java和changeJFrame.java。</p><p>  Memorandum.java為主類,實(shí)現(xiàn)界面設(shè)定、添加備忘(addButtonActionPerformed)、查詢備忘(queryButtonActionPerformed)、引用changeJFrame.java實(shí)現(xiàn)修(changeButtonActionPerformed)、刪除備忘(delet

8、eButtonActionPerformed)的功能;changeJFrame.java主要實(shí)現(xiàn)更新數(shù)據(jù)信息并存入數(shù)據(jù)庫(kù)的功能。</p><p><b>  連接數(shù)據(jù)庫(kù)的實(shí)現(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>  查詢事件的實(shí)現(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,"請(qǐng)輸入查詢信息!"); };</

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>  添加事件的實(shí)現(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,"當(dāng)前日期的當(dāng)前時(shí)間下已存在事件,\n請(qǐng)重設(shè)!");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,"請(qǐng)正確填寫信息!"); </p><p><b>  else{try{</b></p><p>  if(JOptionPane.showConfirmDialog(this,"

29、確認(rèn)添加?",</p><p>  "確認(rèn)", 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>  修改事件的實(shí)現(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,"確認(rèn)刪除?",</p><p>  "確認(rèn)", 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,"沒有選擇事件項(xiàng)!"); </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, "確認(rèn)更改?","確認(rèn)",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>  刪除事件的實(shí)現(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,"確認(rèn)刪除?",</p><p>  "確認(rèn)", 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,"沒有選擇事件項(xiàng)!"); </p><p><b>  }</b></p><p>  }

58、 </p><p><b>  系統(tǒng)配置</b></p><p>  本系統(tǒng)功能的實(shí)現(xiàn)主要通過鼠標(biāo)點(diǎn)擊操作按鈕,進(jìn)而直接執(zhí)行代碼而成功實(shí)現(xiàn)系統(tǒng)功能,系統(tǒng)運(yùn)行情況如下:</p><p><b>  查詢備忘</b></p><p><b>  原始數(shù)據(jù)庫(kù)如下:</b&

59、gt;</p><p>  如果未輸入查詢信息,將彈出提示消息框</p><p>  輸入日期查詢,顯示當(dāng)天的所有備忘</p><p>  輸入時(shí)間查詢,將顯示以該字段為標(biāo)題的所有備忘</p><p><b>  添加備忘</b></p><p>  未輸入標(biāo)題,日期和時(shí)間時(shí),彈出提示信息<

60、/p><p>  輸入信息時(shí),系統(tǒng)可判斷當(dāng)前日期的當(dāng)前時(shí)間是否已存在備忘,例如備忘錄中2012-01-06日的20:00已有備忘,則不能再添加當(dāng)前日期、當(dāng)前時(shí)間的備忘。</p><p>  輸入正確的信息后,點(diǎn)擊確認(rèn)按鈕,彈出“確認(rèn)添加對(duì)話框”,點(diǎn)擊“否”,則不添加事件,返回原新增備忘界面,點(diǎn)擊“是”,則添加備忘,并提示添加成功。</p><p>  確認(rèn)添加后,數(shù)據(jù)庫(kù)

61、中插入該條目,數(shù)據(jù)庫(kù)信息如下:</p><p><b>  查詢顯示</b></p><p><b>  更改備忘</b></p><p>  查詢信息后,如果未選擇事件項(xiàng),彈出提示窗口</p><p>  選中事件---“約會(huì)”,點(diǎn)擊更改按鈕,彈出更改界面</p><p>

62、;  更改原地點(diǎn)“茶樓”為“咖啡館”,點(diǎn)擊確認(rèn),彈出確認(rèn)更改對(duì)話框,點(diǎn)擊“否”,返回更改界面,點(diǎn)擊“是”,則實(shí)現(xiàn)更新,并提示修改成功。</p><p>  原數(shù)據(jù)庫(kù)中該信息為:</p><p>  確認(rèn)更改后,數(shù)據(jù)信息為:</p><p><b>  刪除備忘</b></p><p>  查詢界面未選中事件項(xiàng)而點(diǎn)擊刪除,

63、提示沒有選擇事件項(xiàng)</p><p>  選中某一事件后,點(diǎn)擊刪除,彈出確認(rèn)對(duì)話框,點(diǎn)擊“否”,返回原界面,點(diǎn)擊“是”,則刪除記錄,并提示刪除成功。例如:選擇事件“碰面”</p><p>  確認(rèn)刪除后,查詢列表和數(shù)據(jù)庫(kù)中對(duì)應(yīng)條目刪除</p><p><b>  系統(tǒng)維護(hù)與擴(kuò)展</b></p><p>  總體來說,本系統(tǒng)

64、大致可以實(shí)現(xiàn)備忘錄的基本功能,但相對(duì)于一些備忘錄軟件工具來說,還有欠缺部分,就系統(tǒng)本身來說,有以下幾個(gè)問題:第一,界面過于簡(jiǎn)單,需要美化;第二,如果最新添加的備忘錄比原有備忘的時(shí)間早,查詢時(shí),按照添加時(shí)間的先后排序,無二沒有按照備忘的時(shí)間排序;第三;添加信息時(shí),日期和時(shí)間的格式不能按照標(biāo)準(zhǔn)格式輸入;第四;沒有具有一些備忘錄的擴(kuò)展功能,如通訊錄,事件提醒等。如若完善擴(kuò)展,可從這幾個(gè)方面進(jìn)行。</p><p><

65、;b>  心得體會(huì)</b></p><p>  系統(tǒng)設(shè)計(jì)是一項(xiàng)很繁瑣的過程,從界面設(shè)計(jì)、數(shù)據(jù)庫(kù)連接到功能實(shí)現(xiàn),各項(xiàng)內(nèi)容都有很多工作要完成,再加上之前接觸開發(fā)軟件NetBeans并不多,相關(guān)操作還不是很熟悉,從而遇到了很多問題。這時(shí)我總是積極的查閱資料,了解操作方式。實(shí)踐了才知道方法,從設(shè)計(jì)系統(tǒng)之初,也就是最基本的界面設(shè)計(jì)做起,慢慢的摸索門路,循序漸進(jìn)、這樣就在后邊避免了一些不必要問題,自己也加強(qiáng)

66、了知識(shí)的掌握,并且提高了學(xué)習(xí)和實(shí)踐的能力。</p><p>  雖然完成了任務(wù),但最終設(shè)計(jì)出來的系統(tǒng)還是有不足之處,諸如系統(tǒng)維護(hù)與拓展之中所言種種,還有待解決,也顯示了自己能力的欠缺,以后還應(yīng)加強(qiáng)這方面的練習(xí)。另外,本次課程設(shè)計(jì),培養(yǎng)了我將實(shí)際問題轉(zhuǎn)化為系統(tǒng)方案的技能,這對(duì)于以后的工作等方面大有裨益。 </p><p><b>  參考文獻(xiàn)</b></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)論