版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課程設(shè)計(jì)(大作業(yè))報(bào)告</p><p> 課程名稱: 面向?qū)ο蟪绦蛟O(shè)計(jì) </p><p> 設(shè)計(jì)題目: 設(shè)計(jì)一個(gè)記事本 </p><p> 院 系: 信息技術(shù)學(xué)院 </p><p> 課程設(shè)計(jì)(大作業(yè))任務(wù)書</p><p><b> 課
2、程設(shè)計(jì)題目: </b></p><p><b> 課程設(shè)計(jì)要求:</b></p><p> 1、需求分析(功能分析)</p><p> 2、系統(tǒng)總體設(shè)計(jì)(須有框圖、UML圖)</p><p><b> 3、軟件平臺(tái)</b></p><p> 4、各模塊
3、分析與實(shí)現(xiàn)</p><p><b> 5、調(diào)試分析</b></p><p><b> 6、總結(jié)(收獲)</b></p><p><b> 7、參考文獻(xiàn)</b></p><p><b> 8、附錄 源代碼</b></p><p&g
4、t;<b> 工作計(jì)劃及安排:</b></p><p> 1、12月31日完成設(shè)計(jì)分析報(bào)告</p><p> 2、1月1日分析記事本的需求</p><p> 3、1月2日基本功能的實(shí)現(xiàn)與概要設(shè)計(jì)</p><p> 4、1月3日初定程序設(shè)計(jì)思路</p><p> 5、1月4日完成程序運(yùn)行
5、界面</p><p> 6、1月5日實(shí)現(xiàn)功能分析與流程圖</p><p> 7、1月6日開(kāi)展日異常處理與總結(jié)報(bào)告</p><p> 指導(dǎo)教師簽字 </p><p> 年 月 日 </p><p> 課程設(shè)計(jì)(大作業(yè))成績(jī)</p><p>
6、 課程設(shè)計(jì)題目: 《設(shè)計(jì)一個(gè)記事本》</p><p><b> 總結(jié):</b></p><p> 通過(guò)本次實(shí)訓(xùn),我搞懂了很多東西,也基本完成了簡(jiǎn)單的記事本程序,同時(shí)基本上實(shí)現(xiàn)了我在需求分析時(shí)所預(yù)期的功能。通過(guò)課程設(shè)計(jì),將理論知識(shí)用到了實(shí)踐上,從而進(jìn)一步鞏固和豐富了我所學(xué)過(guò)的知識(shí),使用SWING包創(chuàng)建圖形界面,JFRAME設(shè)計(jì)按鈕我很感興趣,讓我更深層次地認(rèn)識(shí)到
7、Java及其強(qiáng)大的功能。同時(shí),做這門課程設(shè)計(jì)也進(jìn)一步加強(qiáng)了我的動(dòng)手能力。為了完成好這次課程設(shè)計(jì),我提前做了準(zhǔn)備,上網(wǎng)查閱資料,查閱相關(guān)書籍,咨詢學(xué)長(zhǎng)。在這過(guò)程中也無(wú)形中鍛煉了我的思維分析、遇到問(wèn)題及想方設(shè)法通過(guò)各種途徑解決問(wèn)題的能力。但是,設(shè)計(jì)過(guò)程中也存在一些問(wèn)題,由于知識(shí)不足的原因,使得設(shè)置密碼功能沒(méi)有實(shí)現(xiàn),這是一點(diǎn)遺憾,但是更加激勵(lì)了我學(xué)好這門課的決心。</p><p><b> 指導(dǎo)教師評(píng)語(yǔ):&
8、lt;/b></p><p><b> 成績(jī):</b></p><p> 填表時(shí)間:指導(dǎo)教師簽名:</p><p> 課程設(shè)計(jì)(大作業(yè))報(bào)告</p><p><b> 一、需求分析</b></p><p> 如今有關(guān)記事本的軟件種類繁多。功能也是
9、應(yīng)有盡有,但是,軟件并不是十全十美的:有的文件體積相對(duì)于一般文字編輯來(lái)說(shuō)太大;有的功能太繁雜,使初級(jí)使用者一時(shí)難以掌握。僅從日常應(yīng)用方面來(lái)說(shuō),實(shí)現(xiàn)輸入、保存、編輯等簡(jiǎn)單實(shí)用的功能就夠了。本程序的設(shè)計(jì)就是依照這樣一種需要設(shè)計(jì)了一個(gè)簡(jiǎn)單的記事本程序。</p><p> 本程序要構(gòu)建的記事本程序參照了Windows操作系統(tǒng)的記事本工具,具體其功能有以下幾個(gè)方面:</p><p> ?。?)菜單
10、中有“文件”,“編輯”,“關(guān)于”三個(gè)主菜單。</p><p> (2)“文件”有“新建”“打開(kāi)”“保存”“退出”四個(gè)子菜單:分別用于新</p><p> 建文件,打開(kāi)文件,保存文件,退出記事本。</p><p> ?。?)“編輯”中有“剪切”“復(fù)制”“粘貼”“顏色”三個(gè)字菜單:用于剪切文字,復(fù)制文字,粘貼文字。增加了“顏色”子菜單來(lái)對(duì)文字的顏色進(jìn)行設(shè)置。<
11、/p><p> ?。?)“關(guān)于”菜單中有關(guān)于記事本程序的制作日期,作者等信息。</p><p><b> 二、系統(tǒng)總體設(shè)計(jì)</b></p><p> 在本程序中,設(shè)計(jì)了一個(gè)菜單欄和文本內(nèi)容區(qū)。設(shè)計(jì)過(guò)程中用到了JScrollPane,JMenu,JTextPane,JFileChooser等。JMenu用來(lái)制作菜單,菜單包括“文件”“編輯”“關(guān)于
12、”。JTextPane主要用來(lái)輸入文本。為了加入顏色的設(shè)置,所以加了一個(gè)JColorChooser組件。</p><p> 1.系統(tǒng)功能結(jié)構(gòu)圖設(shè)計(jì)</p><p> 2.系統(tǒng)文件結(jié)構(gòu)圖設(shè)計(jì)</p><p> 3.系統(tǒng)編輯結(jié)構(gòu)圖設(shè)計(jì)</p><p><b> UML圖:</b></p><p&g
13、t;<b> 三、軟件平臺(tái) </b></p><p> 1、使用JDK配置環(huán)境在JAVA編輯器下進(jìn)行編輯JAVA源程序</p><p> 2、EditPlus 3</p><p> 四、模塊的分析與實(shí)現(xiàn)</p><p> 構(gòu)建菜單以及下拉菜單:</p><p> JMenu[] men
14、us=new JMenu[]{</p><p> new JMenu("文件"),</p><p> new JMenu("編輯"),</p><p> new JMenu("關(guān)于")</p><p><b> };</b></p><
15、;p> JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p> new JMenuItem("新建"),</p><p> new JMenuItem("打開(kāi)"),</p><p> new JMenuItem("保存"),</p&
16、gt;<p> new JMenuItem("退出")</p><p><b> },</b></p><p><b> {</b></p><p> new JMenuItem("復(fù)制"), </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("關(guān)于")</p><p><b> }</b></p><p><b> };</b></p><p><b> 文件菜單事件監(jiān)聽(tīng):</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("打開(kāi)".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)聽(tīng):</p><p> else if("剪切".equals
26、(name)){</p><p> content.cut();</p><p> }else if("復(fù)制".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> 關(guān)于部分:</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("簡(jiǎn)單記事本程序設(shè)計(jì)"));</p><p> about.getContentPane().add(new JLabel("11級(jí)計(jì)算機(jī)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> 六、總結(jié)</b></p><p> 在完成記事本合格程序中,基本上實(shí)現(xiàn)了我在需求分析時(shí)所預(yù)期的功能。通過(guò)課程設(shè)計(jì),將理論知識(shí)用到了實(shí)踐上,從而進(jìn)一步鞏固和豐富了我所學(xué)過(guò)的知識(shí),使用SWING包創(chuàng)建圖形界面,JFRAME設(shè)計(jì)按鈕我很感興趣,讓我更深層次地認(rèn)識(shí)到Java及其強(qiáng)大的功能。同時(shí),做這門課程設(shè)計(jì)也進(jìn)一步加強(qiáng)了我的動(dòng)手能力。我收獲比較大的一點(diǎn)是在運(yùn)行程序代碼是有可能會(huì)
35、產(chǎn)生異常情況或異常事件,為了避免這種情況,就需要在程序中用到Java異常處理機(jī)制。本程序中選用的異常處理機(jī)制是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> 七、參考文獻(xiàn)</b></p><p> [1]JAVA語(yǔ)言程序設(shè)計(jì)《基礎(chǔ)篇》</p><p> [2].李蘢怡,Java編程實(shí)例講解,高等教育出版社,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("關(guān)于")&l
46、t;/p><p><b> };</b></p><p> JMenuItem optionofmenu[][]=new JMenuItem[][]{{</p><p> new JMenuItem("新建"),</p><p> new JMenuItem("打開(kāi)"),<
47、;/p><p> new JMenuItem("保存"),</p><p> new JMenuItem("退出")</p><p><b> },</b></p><p><b> {</b></p><p> new JMen
48、uItem("復(fù)制"), </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("關(guān)于") }</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("打開(kāi)".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("復(fù)制".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("關(guān)于".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("簡(jiǎn)單記事本程序設(shè)計(jì)"));</p><p> about.getContentPane().add(new JLabel("2011級(jí)計(jì)算機(jī)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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)--編寫一個(gè)記事本程序
- java課程設(shè)計(jì)-編寫一個(gè)記事本程序
- java課程設(shè)計(jì)--日歷記事本
- java課程設(shè)計(jì)日歷記事本
- java課程設(shè)計(jì)--日歷記事本
- 日歷記事本-java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)
- 日歷記事本java課程設(shè)計(jì)論文
- java記事本程序課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--- 記事本程序設(shè)計(jì)
- 基于java的記事本程序課程設(shè)計(jì)
- java課程設(shè)計(jì)記事本(含代碼)1
- java課程設(shè)計(jì)報(bào)告--實(shí)現(xiàn)記事本功能
- 基于java的記事本程序課程設(shè)計(jì)
- java語(yǔ)言課程設(shè)計(jì)---記事本程序設(shè)計(jì)
- java課程設(shè)計(jì)--簡(jiǎn)單記事本程序的設(shè)計(jì)
- java記事本課程設(shè)計(jì)
- java課程設(shè)計(jì)---基于java的記事本軟件設(shè)計(jì)
- java記事本課程設(shè)計(jì)
- java記事本課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論