記事本的設計與實現(xiàn)(實驗報告全)_第1頁
記事本的設計與實現(xiàn)(實驗報告全)_第2頁
記事本的設計與實現(xiàn)(實驗報告全)_第3頁
記事本的設計與實現(xiàn)(實驗報告全)_第4頁
記事本的設計與實現(xiàn)(實驗報告全)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

科技學院綜合實驗報告(2012--2013年度第1學期)名稱:軟件設計與實踐題目:記事本的設計與實現(xiàn)院系:信息系班級:網(wǎng)絡09k2學號:學生姓名:指導教師:設計周數(shù):2成績:日期:2012年1月11日《軟件綜合實驗》任務書一、目的與要求軟件綜合實驗是計算機科學與技術、軟件工程、網(wǎng)絡工程和信息安全專業(yè)學生的必修實踐環(huán)節(jié),本環(huán)節(jié)是在第六學期、第七學期設置,主要讓學生進一步理解、鞏固、加深前面所學的課程,并能綜合運用所學課程的知識進行設計,掌握算法設計及實現(xiàn)的理論與方法,為畢業(yè)設計和今后的工作打下良好的基礎。課程的基本要求:1.熟悉微機的應用環(huán)境。2.利用所學課程的知識,解決程序設計中的實際問題(實際應用題目,或模擬實際應用的題目),為畢業(yè)設計和今后的工作打下良好的基礎。二、主要內(nèi)容能熟練地利用微機設計出有實用價值的程序。1.熟悉Windows以及其它工具軟件系統(tǒng),2.根據(jù)所選題目進行算法設計(畫出流程圖,寫出各模塊的文檔)。3.編程。4.上機調(diào)試。三、進度計劃序號設計(實驗)內(nèi)容完成時間備注1查找、熟悉相關資料2天2根據(jù)題目進行詳細設計2天3編碼4天4調(diào)試2天四、設計(實驗)成果要求程序代碼注釋豐富,經(jīng)過測試,運行正常、合理;程序頁面友好,使用方便;功能齊全,能夠具體的表現(xiàn)記事本的功能。五、考核方式實驗結果(60%)+實驗報告(30%)+實驗過程表現(xiàn)(10%)學生姓名:指導教師:2012年1月

一、課程設計(綜合實驗)的目的與要求1.1實驗目的:通過綜合性實驗的設計,使學生綜合訓練自己的需求分析、系統(tǒng)設計、編程、測試等各種能力,積累軟件開發(fā)的經(jīng)驗,提高學生進行軟件開發(fā)所需具備的專業(yè)素質(zhì)以及團隊協(xié)作能力。1.2設計要求:(1).菜單中有“文件”,“編輯”,“查找”三個主菜單。(2)“文件”有“新建”“打開”“保存”“退出”四個子菜單:分別用于新建文件,打開文件,保存文件,退出記事本。(3)“編輯”中有“剪切”“復制”“粘貼”“顏色”三個字菜單:用于剪切文字,復制文字,粘貼文字。增加了“顏色”子菜單來對文字的顏色進行設置。二、設計(實驗)正文importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjava.awt.datatransfer.*;

classMyMenuBarextendsMenuBar{

publicMyMenuBar(Frameparent){

parent.setMenuBar(this);//菜單條的方法

}

publicvoidaddMenus(String[]menus){

for(inti=0;i<menus.length;i++)

add(newMenu(menus[i]));//菜單條里的可以放入一些菜單

}

publicvoidaddMenuItems(intmenuNumber,String[]items){

for(inti=0;i<items.length;i++){

if(items[i]!=null)

getMenu(menuNumber).add(newMenuItem(items[i]));

elsegetMenu(menuNumber).addSeparator();//每個菜單里面的下拉列表

}

}

publicvoidaddActionListener(ActionListeneral){

for(inti=0;i<getMenuCount();i++)

for(intj=0;j<getMenu(i).getItemCount();j++)

getMenu(i).getItem(j).addActionListener(al);//對下拉列表里的事件的監(jiān)聽

}

}

classMyFile{

privateFileDialogfDlg;

publicMyFile(Frameparent){

fDlg=newFileDialog(parent,"",FileDialog.LOAD);

}

privateStringgetPath(){

returnfDlg.getDirectory()+"\\"+fDlg.getFile();//文件的路徑

}

publicStringgetData()throwsIOException{

fDlg.setTitle("打開");

fDlg.setMode(FileDialog.LOAD);

fDlg.setVisible(true);

BufferedReaderbr=newBufferedReader(newFileReader(getPath()));

StringBuffersb=newStringBuffer();

Stringaline;

while((aline=br.readLine())!=null)

sb.append(aline+'\n');

br.close();

returnsb.toString();//文件的打開

}

publicvoidsetData(Stringdata)throwsIOException{

fDlg.setTitle("保存");

fDlg.setMode(FileDialog.SAVE);

fDlg.setVisible(true);

BufferedWriterbw=newBufferedWriter(newFileWriter(getPath()));

bw.write(data);

bw.close();//文件的保存

}

}

classMyClipboard{

privateClipboardcb;

publicMyClipboard(){

cb=Toolkit.getDefaultToolkit().getSystemClipboard();

}

publicvoidsetData(Stringdata){

cb.setContents(newStringSelection(data),null);

}

publicStringgetData(){

Transferablecontent=cb.getContents(null);

try{

return(String)content.getTransferData(DataFlavor.stringFlavor);

//DataFlavor.stringFlavor會將剪貼板中的字符串轉換成Unicode碼形式的String對象。

//DataFlavor類是與存儲在剪貼板上的數(shù)據(jù)的形式有關的類。

}catch(Exceptionue){}

returnnull;

}

}

classMyFindDialogextendsDialogimplementsActionListener{

privateLabellFind=newLabel("查找字符串");

privateLabellReplace=newLabel("替換字符串");

privateTextFieldtFind=newTextField(10);

privateTextFieldtReplace=newTextField(10);

privateButtonbFind=newButton("查找");

privateButtonbReplace=newButton("替換");

privateTextAreata;

publicMyFindDialog(Frameowner,TextAreata){

super(owner,"查找",false);

this.ta=ta;

setLayout(null);

lFind.setBounds(10,30,80,20);

lReplace.setBounds(10,70,80,20);

tFind.setBounds(90,30,90,20);

tReplace.setBounds(90,70,90,20);

bFind.setBounds(190,30,80,20);

bReplace.setBounds(190,70,80,20);

add(lFind);

add(tFind);

add(bFind);

add(lReplace);

add(tReplace);

add(bReplace);

setResizable(false);//布局不可變

bFind.addActionListener(this);

bReplace.addActionListener(this);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

MyFindDialog.this.dispose();//查找里面的布局,有查找和替換,并且對事件和窗口進行監(jiān)聽

}

});

}//構造函數(shù)結束

publicvoidshowFind(){

setTitle("查找");

setSize(280,60);

setVisible(true);//顯示查找的窗口

}

publicvoidshowReplace(){

setTitle("查找替換");

setSize(280,110);

setVisible(true);//顯示替換的窗口

}

privatevoidfind(){//查找的方法

Stringtext=ta.getText();

Stringstr=tFind.getText();

intend=text.length();

intlen=str.length();

intstart=ta.getSelectionEnd();

if(start==end)start=0;

for(;start<=end-len;start++){

if(text.substring(start,start+len).equals(str)){

ta.setSelectionStart(start);

ta.setSelectionEnd(start+len);

return;

}

}

//若找不到待查字符串,則將光標置于末尾

ta.setSelectionStart(end);

ta.setSelectionEnd(end);

}

publicButtongetBFind(){

returnbFind;

}

privatevoidreplace(){//替換的方法

Stringstr=tReplace.getText();

if(ta.getSelectedText().equals(tFind.getText()))

ta.replaceRange(str,ta.getSelectionStart(),ta.getSelectionEnd());

elsefind();

}

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==bFind)

find();//查找到的字符串

elseif(e.getSource()==bReplace)

replace();//替換到查找到的字符串

}

}

publicclassMyMemoextendsFrameimplementsActionListener{

privateTextAreaeditor=newTextArea();//可編輯的TextArea

privateMyFilemf=newMyFile(this);//MyFile對象

privateMyClipboardcb=newMyClipboard();

privateMyFindDialogfindDlg=newMyFindDialog(this,editor);

publicMyMemo(Stringtitle){//構造函數(shù)

super(title);

MyMenuBarmb=newMyMenuBar(this);

//添加需要的菜單及菜單項

mb.addMenus(newString[]{"文件","編輯","查找","幫助"});

mb.addMenuItems(0,newString[]{"新建","打開","保存",null,"全選"});

mb.addMenuItems(1,newString[]{"剪貼","復制","粘貼","清除",null,"全選"});

mb.addMenuItems(2,newString[]{"查找",null,"查找替換"});

mb.addMenuItems(3,newString[]{"我的記事本信息"});

add(editor);//為菜單項注冊動作時間監(jiān)聽器

mb.addActionListener(this);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

MyMemo.this.dispose();

}

});//分號不能忘了

}//構造函數(shù)完

publicvoidactionPerformed(ActionEvente){

Stringselected=e.getActionCommand();//獲取菜單項標題

if(selected.equals("新建"))

editor.setText("");

elseif(selected.equals("打開")){

try{

editor.setText(mf.getData());

}catch(IOExceptionie){}

}

elseif(selected.equals("保存")){

try{

mf.setData(editor.getText());

}catch(IOExceptionie){}

}

elseif(selected.equals("退出")){

dispose();

}

elseif(selected.equals("剪貼")){

//將選中的字符串復制到剪貼板中并清除字符串

cb.setData(editor.getSelectedText());

editor.replaceRange("",editor.getSelectionStart(),editor.getSelectionEnd());

}

elseif(selected.equals("復制")){

cb.setData(editor.getSelectedText());

}

elseif(selected.equals("粘貼")){

Stringstr=cb.getData();

editor.replaceRange(str,editor.getSelectionStart(),editor.getSelectionEnd());

//粘貼在光標位置

}

elseif(selected.equals("清除")){

editor.replaceRange("",editor.getSelectionStart(),editor.getSelectionEnd());

}

elseif(selected.equals("全選")){

editor.setSelectionStart(0);

editor.setSelectionEnd(editor.getText().length());

}

elseif(selected.equals("查找")){

findDlg.showFind();

}

elseif(selected.equals("查找替換")){

findDlg.showReplace();//菜單里的下拉列表的各個事件對應各自的方法

}

}

publicstaticvoidmain(String[]args){

MyMemomemo=newMyMemo("記事本");

memo.setSize(650,450);

memo.setVisible(true);//名字

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論