版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課程設計(大作業(yè))報告</p><p> 課程名稱: 面向對象程序設計 </p><p> 設計題目: 設計一個記事本 </p><p> 院 系: 信息技術學院 </p><p> 課程設計(大作業(yè))任務書</p><p><b> 課
2、程設計題目: </b></p><p><b> 課程設計要求:</b></p><p> 1、需求分析(功能分析)</p><p> 2、系統(tǒng)總體設計(須有框圖、UML圖)</p><p><b> 3、軟件平臺</b></p><p> 4、各模塊
3、分析與實現(xiàn)</p><p><b> 5、調(diào)試分析</b></p><p><b> 6、總結(收獲)</b></p><p><b> 7、參考文獻</b></p><p><b> 8、附錄 源代碼</b></p><p&g
4、t;<b> 工作計劃及安排:</b></p><p> 1、12月31日完成設計分析報告</p><p> 2、1月1日分析記事本的需求</p><p> 3、1月2日基本功能的實現(xiàn)與概要設計</p><p> 4、1月3日初定程序設計思路</p><p> 5、1月4日完成程序運行
5、界面</p><p> 6、1月5日實現(xiàn)功能分析與流程圖</p><p> 7、1月6日開展日異常處理與總結報告</p><p> 指導教師簽字 </p><p> 年 月 日 </p><p> 課程設計(大作業(yè))成績</p><p>
6、 課程設計題目: 《設計一個記事本》</p><p><b> 總結:</b></p><p> 通過本次實訓,我搞懂了很多東西,也基本完成了簡單的記事本程序,同時基本上實現(xiàn)了我在需求分析時所預期的功能。通過課程設計,將理論知識用到了實踐上,從而進一步鞏固和豐富了我所學過的知識,使用SWING包創(chuàng)建圖形界面,JFRAME設計按鈕我很感興趣,讓我更深層次地認識到
7、Java及其強大的功能。同時,做這門課程設計也進一步加強了我的動手能力。為了完成好這次課程設計,我提前做了準備,上網(wǎng)查閱資料,查閱相關書籍,咨詢學長。在這過程中也無形中鍛煉了我的思維分析、遇到問題及想方設法通過各種途徑解決問題的能力。但是,設計過程中也存在一些問題,由于知識不足的原因,使得設置密碼功能沒有實現(xiàn),這是一點遺憾,但是更加激勵了我學好這門課的決心。</p><p><b> 指導教師評語:&
8、lt;/b></p><p><b> 成績:</b></p><p> 填表時間:指導教師簽名:</p><p> 課程設計(大作業(yè))報告</p><p><b> 一、需求分析</b></p><p> 如今有關記事本的軟件種類繁多。功能也是
9、應有盡有,但是,軟件并不是十全十美的:有的文件體積相對于一般文字編輯來說太大;有的功能太繁雜,使初級使用者一時難以掌握。僅從日常應用方面來說,實現(xiàn)輸入、保存、編輯等簡單實用的功能就夠了。本程序的設計就是依照這樣一種需要設計了一個簡單的記事本程序。</p><p> 本程序要構建的記事本程序參照了Windows操作系統(tǒng)的記事本工具,具體其功能有以下幾個方面:</p><p> (1)菜單
10、中有“文件”,“編輯”,“關于”三個主菜單。</p><p> ?。?)“文件”有“新建”“打開”“保存”“退出”四個子菜單:分別用于新</p><p> 建文件,打開文件,保存文件,退出記事本。</p><p> (3)“編輯”中有“剪切”“復制”“粘貼”“顏色”三個字菜單:用于剪切文字,復制文字,粘貼文字。增加了“顏色”子菜單來對文字的顏色進行設置。<
11、/p><p> ?。?)“關于”菜單中有關于記事本程序的制作日期,作者等信息。</p><p><b> 二、系統(tǒng)總體設計</b></p><p> 在本程序中,設計了一個菜單欄和文本內(nèi)容區(qū)。設計過程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用來制作菜單,菜單包括“文件”“編輯”“關于
12、”。JTextPane主要用來輸入文本。為了加入顏色的設置,所以加了一個JColorChooser組件。</p><p> 1.系統(tǒng)功能結構圖設計</p><p> 2.系統(tǒng)文件結構圖設計</p><p> 3.系統(tǒng)編輯結構圖設計</p><p><b> UML圖:</b></p><p&g
13、t;<b> 三、軟件平臺 </b></p><p> 1、使用JDK配置環(huán)境在JAVA編輯器下進行編輯JAVA源程序</p><p> 2、EditPlus 3</p><p> 四、模塊的分析與實現(xiàn)</p><p> 構建菜單以及下拉菜單:</p><p> JMenu[] men
14、us=new JMenu[]{</p><p> new JMenu("文件"),</p><p> new JMenu("編輯"),</p><p> new JMenu("關于")</p><p><b> };</b></p><
15、;p> JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p> new JMenuItem("新建"),</p><p> new JMenuItem("打開"),</p><p> new JMenuItem("保存"),</p&
16、gt;<p> new JMenuItem("退出")</p><p><b> },</b></p><p><b> {</b></p><p> new JMenuItem("復制"), </p><p> new
17、 JMenuItem("剪切"),</p><p> new JMenuItem("粘貼"),</p><p> new JMenuItem("顏色")</p><p><b> },</b></p><p><b> {</b>&
18、lt;/p><p> new JMenuItem("關于")</p><p><b> }</b></p><p><b> };</b></p><p><b> 文件菜單事件監(jiān)聽:</b></p><p> ActionLi
19、stener action=new ActionListener(){ </p><p> public void actionPerformed(ActionEvent e){</p><p> String name = e.getActionCommand();</p><p> JMenuItem MI=(JMenu
20、Item)e.getSource();</p><p> if("新建".equals(name)){</p><p> content.setText("");</p><p> file=null;</p><p> }else if("打開".equals(name))
21、{</p><p> if(file !=null)openfile.setSelectedFile(file);</p><p> int returnVal=openfile.showOpenDialog(mynotepad.this);</p><p> if(returnVal==JFileChooser.APPROVE_OPTION){</p&
22、gt;<p> file=openfile.getSelectedFile();</p><p><b> unfold();</b></p><p><b> }</b></p><p> }else if("保存".equals(name)){</p><p
23、> if(file!=null) openfile.setSelectedFile(file);</p><p> int returnVal=openfile.showSaveDialog(mynotepad.this);</p><p> if(returnVal==JFileChooser.APPROVE_OPTION){</p><p> fi
24、le=openfile.getSelectedFile();</p><p><b> saving();</b></p><p><b> }</b></p><p> }else if("退出".equals(name)){</p><p> mynotepad f=
25、new mynotepad();</p><p> int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);</p><p> 編輯菜單的事件監(jiān)聽:</p><p> else if("剪切".equals
26、(name)){</p><p> content.cut();</p><p> }else if("復制".equals(name)){</p><p> content.copy();</p><p> }else if("粘貼".equals(name)){</p><
27、;p> content.paste();</p><p> }else if("顏色".equals(name)){</p><p> color=JColorChooser.showDialog(mynotepad.this,"",color);</p><p> content.setForeground(c
28、olor);</p><p><b> 異常處理:</b></p><p> void saving(){</p><p><b> try{</b></p><p> FileWriter Writef=new FileWriter(file);</p><p>
29、 Writef.write(content.getText());</p><p> Writef.close();</p><p><b> }</b></p><p> Catch (Exception e){e.printStackTrace();}</p><p> } &l
30、t;/p><p><b> 關于部分:</b></p><p> void initAboutDialog(){ </p><p> about.setLayout(new GridLayout(3,1));</p><p> about.getCon
31、tentPane().setBackground(Color.white);</p><p> about.getContentPane().add(new JLabel("簡單記事本程序設計"));</p><p> about.getContentPane().add(new JLabel("11級計算機1班"));</p>&
32、lt;p> about.getContentPane().add(new JLabel("制作者:彭磊"));</p><p> about.getContentPane().add(new JLabel("2012年12月27日"));</p><p> about.setModal(true);</p><p>
33、; about.setSize(200,100);</p><p> about.setLocation(250,150);</p><p><b> }</b></p><p><b> 五、調(diào)試分析</b></p><p> 各部分調(diào)試功能如圖所示:</p><p&
34、gt;<b> 六、總結</b></p><p> 在完成記事本合格程序中,基本上實現(xiàn)了我在需求分析時所預期的功能。通過課程設計,將理論知識用到了實踐上,從而進一步鞏固和豐富了我所學過的知識,使用SWING包創(chuàng)建圖形界面,JFRAME設計按鈕我很感興趣,讓我更深層次地認識到Java及其強大的功能。同時,做這門課程設計也進一步加強了我的動手能力。我收獲比較大的一點是在運行程序代碼是有可能會
35、產(chǎn)生異常情況或異常事件,為了避免這種情況,就需要在程序中用到Java異常處理機制。本程序中選用的異常處理機制是try,catch。捕獲處理異常的第一步是用try選定要監(jiān)控的異常范圍,try后跟隨catch代碼塊。</p><p><b> saving(){</b></p><p><b> try{</b></p><p
36、> FileWriter Writef=new FileWriter(file);</p><p> Writef.write(content.getText());</p><p> Writef.close();</p><p><b> }</b></p><p> catch(Exception
37、e){e.printStackTrace();</p><p><b> }</b></p><p> } </p><p> void unfold(){</p><p><b> try{</b></p><p> FileRea
38、der Readf=new FileReader(file);</p><p> int len=(int)file.length();</p><p> char []buffer=new char[len];</p><p> Readf.read(buffer,0,len);</p><p> Readf.close();<
39、;/p><p> content.setText(new String(buffer));</p><p> }catch(Exception e){e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><
40、;p><b> 七、參考文獻</b></p><p> [1]JAVA語言程序設計《基礎篇》</p><p> [2].李蘢怡,Java編程實例講解,高等教育出版社,2005.11</p><p> 八、附錄----源代碼</p><p> import java.awt.*;</p>&l
41、t;p> import java.awt.event.*;</p><p> import javax.swing.*;</p><p> import java.io.*;</p><p> class mynotepad extends JFrame{</p><p> File file=null;</p>
42、<p> Color color=Color.red;</p><p> mynotepad(){</p><p> initTextContent();</p><p> initMenu();</p><p> initAboutDialog();</p><p><b> }&l
43、t;/b></p><p> void initTextContent(){</p><p> getContentPane().add(new JScrollPane(content));</p><p><b> }</b></p><p> JTextPane content=new JTextPan
44、e(); </p><p> JFileChooser openfile=new JFileChooser();</p><p> JColorChooser opencolor=new JColorChooser();</p><p> JDialog about=new JDialog(this);</p><p> JMenuB
45、ar menu=new JMenuBar();</p><p> JMenu[] menus=new JMenu[]{</p><p> new JMenu("文件"),</p><p> new JMenu("編輯"),</p><p> new JMenu("關于")&l
46、t;/p><p><b> };</b></p><p> JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p> new JMenuItem("新建"),</p><p> new JMenuItem("打開"),<
47、;/p><p> new JMenuItem("保存"),</p><p> new JMenuItem("退出")</p><p><b> },</b></p><p><b> {</b></p><p> new JMen
48、uItem("復制"), </p><p> new JMenuItem("剪切"),</p><p> new JMenuItem("粘貼"),</p><p> new JMenuItem("顏色")</p><p><b>
49、 },</b></p><p><b> {</b></p><p> new JMenuItem("關于") }</p><p><b> };</b></p><p> void initMenu()</p>&l
50、t;p><b> {</b></p><p> for(int i=0;i<menus.length;i++){</p><p> menu.add(menus[i]);</p><p> for(int j=0;j<optionofmenu[i].length;j++){</p><p>
51、menus[i].add(optionofmenu[i][j]);</p><p> optionofmenu[i][j].addActionListener( action );</p><p><b> }</b></p><p><b> }</b></p><p> this.set
52、JMenuBar(menu);</p><p><b> } </b></p><p> ActionListener action=new ActionListener(){ </p><p> public void actionPerformed(ActionEvent e){</p>
53、<p> String name = e.getActionCommand();</p><p> JMenuItem MI=(JMenuItem)e.getSource();</p><p> if("新建".equals(name)){</p><p> content.setText("");<
54、;/p><p> file=null;</p><p> }else if("打開".equals(name)){</p><p> if(file !=null)openfile.setSelectedFile(file);</p><p> int returnVal=openfile.showOpenDialog
55、(mynotepad.this);</p><p> if(returnVal==JFileChooser.APPROVE_OPTION){</p><p> file=openfile.getSelectedFile();</p><p><b> unfold();</b></p><p><b>
56、 }</b></p><p> }else if("保存".equals(name)){</p><p> if(file!=null) openfile.setSelectedFile(file);</p><p> int returnVal=openfile.showSaveDialog(mynotepad.this);&
57、lt;/p><p> if(returnVal==JFileChooser.APPROVE_OPTION){</p><p> file=openfile.getSelectedFile();</p><p><b> saving();</b></p><p><b> }</b></p
58、><p> }else if("退出".equals(name)){</p><p> mynotepad f=new mynotepad();</p><p> int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPT
59、ION);</p><p> if(s==JOptionPane.YES_OPTION)</p><p> System.exit(0);</p><p> }else if("剪切".equals(name)){</p><p> content.cut();</p><p> }els
60、e if("復制".equals(name)){</p><p> content.copy();</p><p> }else if("粘貼".equals(name)){</p><p> content.paste();</p><p> }else if("顏色".e
61、quals(name)){</p><p> color=JColorChooser.showDialog(mynotepad.this,"",color);</p><p> content.setForeground(color); </p><p><b> }</b></p><p>
62、 else if("關于".equals(name)){ about.setSize(300,150);</p><p> about.show();</p><p><b> }</b></p><p><b> } </b></p><p><b>
63、 }; </b></p><p> void saving(){</p><p><b> try{</b></p><p> FileWriter Writef=new FileWriter(file);</p><p> Writef.write(content.getText());</p
64、><p> Writef.close();</p><p><b> }</b></p><p> catch(Exception e){e.printStackTrace();}</p><p> } </p><p> void unfold(){</
65、p><p><b> try{</b></p><p> FileReader Readf=new FileReader(file);</p><p> int len=(int)file.length();</p><p> char []buffer=new char[len];</p><p
66、> Readf.read(buffer,0,len);</p><p> Readf.close();</p><p> content.setText(new String(buffer));</p><p> }catch(Exception e){e.printStackTrace();}</p><p><b>
67、; }</b></p><p> void initAboutDialog(){</p><p> about.setLayout(new GridLayout(3,1));</p><p> about.getContentPane().setBackground(Color.white);</p><p> abou
68、t.getContentPane().add(new JLabel("簡單記事本程序設計"));</p><p> about.getContentPane().add(new JLabel("2011級計算機2班"));</p><p> about.getContentPane().add(new JLabel("制作者:丁廷飛&q
69、uot;));</p><p> about.getContentPane().add(new JLabel("2012年12月31日"));</p><p> about.setModal(true);</p><p> about.setSize(200,100);</p><p> about.setLoca
70、tion(250,150);</p><p><b> }</b></p><p><b> ;</b></p><p><b> } </b></p><p> public class Notepad{</p><p> public
71、static void main(String args[]){</p><p> mynotepad noted=new mynotepad();</p><p> noted.addWindowListener(new WindowAdapter(){</p><p><b> });</b></p><p>
72、 noted.setTitle("我的記事本");</p><p> noted.setSize(640,320);</p><p> noted.show();</p><p> noted.setLocation(150,100);</p><p><b> }</b></p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設計--編寫一個記事本程序
- java課程設計-編寫一個記事本程序
- java課程設計--日歷記事本
- java課程設計日歷記事本
- java課程設計--日歷記事本
- 日歷記事本-java課程設計
- 日歷記事本java課程設計
- 日歷記事本java課程設計論文
- java記事本程序課程設計報告
- java課程設計--- 記事本程序設計
- 基于java的記事本程序課程設計
- java課程設計記事本(含代碼)1
- java課程設計報告--實現(xiàn)記事本功能
- 基于java的記事本程序課程設計
- java語言課程設計---記事本程序設計
- java課程設計--簡單記事本程序的設計
- java記事本課程設計
- java課程設計---基于java的記事本軟件設計
- java記事本課程設計
- java記事本課程設計報告
評論
0/150
提交評論