[精品論文]JAVA課程設計(論文)_反轉字符串_第1頁
[精品論文]JAVA課程設計(論文)_反轉字符串_第2頁
[精品論文]JAVA課程設計(論文)_反轉字符串_第3頁
[精品論文]JAVA課程設計(論文)_反轉字符串_第4頁
[精品論文]JAVA課程設計(論文)_反轉字符串_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

畢業(yè)設計課程定做 QQ1714879127大 學JAVA程序設計 課程設計(論文)題目: 反轉字符串 程序設計專題(報告)任務及評語院(系):軟件學院 教研室:軟件教研室學 號學生姓名專業(yè)班級軟件技術091程序設計(報告)題目反轉字符串程序設計(報告)任務程序設計專題的任務與要求:(1)掌握Java編程、面向對象的基礎知識。(2)較熟練地編寫Java應用程序Application。(3)了解Java的常用標準類庫、編程技巧、異常處理。(5)聯系已學過的內容,鞏固所學的理論,增強獨立工作能力。(6)通過設計主要使學生有一個獨立編寫程序的過程,對理論學習及動手能力都有一個很大的提高。(7)通過本次設計,進一步培養(yǎng)學生熱愛專業(yè)的思想,同時對本專業(yè)綜合素質的提高起一個積極的推動作用。課程設計過程中,要嚴格遵守實踐環(huán)節(jié)的時間安排,聽從指導教師的指導。正確地完成上述內容,記錄實習日記,規(guī)范完整地撰寫出課程設計報告。指導教師評語及成績成績: 指導教師簽字: 2009 年 12 月 20 日畢業(yè)設計課程定做 QQ1714879127遼 寧 工 業(yè) 大 學 課 程 設 計 說 明 書(論 文)目 錄第1章 課程設計的目的與要求11.1 課程設計目的11.2 課程設計的實驗環(huán)境11.3 課程設計的預備知識11.4 課程設計要求1第2章 課程設計內容22.1課程設計主要內容22.2概要設計22.2.1自定義類說明22.3 數據庫設計52.4詳細設計52.5測試分析142.5.1程序運行情況142.5.2程序異常處理14第3章 課程設計總結15參考資料 16第1章 課程設計的目的與要求1.1 課程設計目的JAVA程序設計是計算機相關專業(yè)的必修專業(yè)基礎課程,其實踐性、應用性很強。實踐教學環(huán)節(jié)是必不可少的一個重要環(huán)節(jié)。本課程的程序設計專題實際是計算機相關專業(yè)學生學習完JAVA程序設計課程后,進行的一次全面的綜合訓練,JAVA程序設計的設計目的是加深對理論教學內容的理解和掌握,使學生較系統(tǒng)地掌握程序設計及其在網絡開發(fā)中的廣泛應用,基本方法及技巧,為學生綜合運用所學知識,利用軟件工程為基礎進行軟件開發(fā)、并在實踐應用方面打下一定基礎。1.2 課程設計的實驗環(huán)境硬件要求能運行Windows 9.X操作系統(tǒng)的微機系統(tǒng)。JAVA程序設計語言及相應的集成開發(fā)環(huán)境,J2SDK和ECLIPSE開發(fā)工具。1.3 課程設計的預備知識熟悉JAVA語言及ECLIPSE開發(fā)工具。1.4 課程設計要求按課程設計指導書提供的課題,要求學生在自行完成各個操作環(huán)節(jié),并能實現且達到舉一反三的目的,完成一個項目解決一類問題。要求學生能夠全面、深入理解和熟練掌握所學內容,并能夠用其分析、設計和解答類似問題;對此能夠較好地理解和掌握,能夠進行簡單分析和判斷;能編寫出具有良好風格的程序;掌握JAVA程序設計的基本技能和面向對象的概念和方法;了解多線程、安全和網絡等編程技術。同時培養(yǎng)學生進行分析問題、解決問題的能力;培養(yǎng)學生進行設計分析、設計方法、設計操作與測試、設計過程的觀察、理解和歸納能力的提高。第2章 課程設計內容2.1課程設計主要內容Java程序反轉字符串是JAVA語言的簡單應用。圖形界面的實現:考慮到簡單、實用、高效等特點,就選擇了java窗體實現,在選擇組件上,文本編輯區(qū)就選用了TaxtArea作為主要的部件。 線程實現文件自動保存:在相關的參考書上查閱到在Frame類中有一個schedule方法可以在后臺自動完成一定的功能,而且調用起來相當簡單,于是就用了Frame類中的schedule方法來實現文件自動保存及備份功能。由于Java的特性,可能用任何一個編輯器來編輯,于是就將Windows中的記事本作為模仿對象,根據實現情況刪減了其中的一些功能,如自動換行,設置字體,打印等功能。 在設計類的時候,考慮到簡單明了,就用了兩個類,一個主類和一個默認屬性類作為程序的整體框架,所有的對象和方法都是在默認屬性類中創(chuàng)建和實現的,以及為各組件注冊事件監(jiān)聽程序也是在默認屬性類中實現的。主類完成對象的實例化及顯示。這們設計的優(yōu)點是:條理清晰,容易理解,容易修改。2.2概要設計* 類名: BorderLayoutTest * 作用: 自定義的異常類,用來處理將輸入的字符串進行反轉* 繼承的父類: Frame類 * 實現的接口: 沒有 *2.2.1自定義類說明類名:EditInstantiation作用:實例化對象繼承的父類:WindowAdapter主要成員變量:Frame myFrm / 定義主窗體TextArea myText / 定義文本編輯區(qū)Dialog myDlgFind,myDlgFindont /查找及設置字體對話框TextField TFfind, TFreplace, TffontSize/查找對話框和字體窗體中的文本行Button BfontOK, Bfind, Breplace, Bnext, Bcancel /定義和創(chuàng)建各按鈕Label Lf, Lr, Ls /定義和創(chuàng)建各標簽 MenuBar Mbbar /定義和創(chuàng)建主菜單 Menu Mfile,Medit,Mformation,Mhelp /定義和創(chuàng)建主菜單中的選項 Toolkit toolKit Clipboard myCB /剪切板對象 FileDialog myFDlg /定義文件對話框 Choice ChfontName /定義和創(chuàng)建字體選擇框 private int VIindex = 1; /構成文件名后綴變量 private String VSsubFixStr=.java; /構成文件名擴展名變量 private String VSmyFileName = Document1,VSmyBFileName; /文件名及備份文件名變量 private File VFmyFile=new File(VSmyFileName+VIindex+.java); /文件名變量 private int VIsearchPosition=0; /查找位置指針 private Timer VTtime; /實例化一個Time類 private int VImin=1; / schedule方法中的一個時間參數 private int VItype=JOptionPane.INFORMATION_MESSAGE; /提示對話框類型 private String VStitle; /提示對話框標題 private String VSmessage; /提示對話框信息 private boolean VBchanged = true; /改變字體的一個標識 private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2; /設置字體大小及步長 define sources 定義各部件 Frame myFrm=new Frame(我的編輯器); /定義窗體 TextArea myText=new TextArea(); /定義窗體 Dialog myDlgFind=new Dialog(myFrm,查找,true); /定義查找對話框 Dialog myDlgFindont=new Dialog(myFrm,字體,true); /定義字體對話框 TextField TFfind=new TextField(30);/定義查找對話中的查找輸入框 TextField TFreplace=new TextField(30); /定義查找對話中的替換輸入框 TextField TFfontSize,TFfontDemo;/定義字體大小文本框和示例框 Choice CHfontName;/定義字體大小選擇框 List LTfontSize; /定義字體大小標簽 Button BfontOK,BfontCancel; /定義字體大小對話中的確定及取消按鈕 Button Bfind=new Button(查找);/定義查找對話中的查找按鈕 Button Breplace=new Button(替換);/定義查找對話中的替換及取消按鈕 Button Bnext=new Button(下一個);/定義查找對話中的下一個及取消按鈕 Button Bcancel=new Button(取消);/定義查找對話中的確定及取消按鈕 Label Lf=new Label(查找內容:); Label Lr=new Label(替換為: ); Label Ls=new Label(字體大小:); FileDialog myFDlg; Clipboard myCB=Toolkit.getDefaultToolkit().getSystemClipboard(); /剪切板對象主要成員方法:public void init() /初始化各部件菜單的定義和事件的監(jiān)聽public void displayEdit ()/顯示窗體及調用Time中的schedule方法public void windowClosing () /關閉窗體public void save /保存文件方法a.內部類類名:KeyEvents作用:實現菜單的事件的響應功能繼承的父類:KeyAdapter主要成員變量:無成員方法:actionPerformed()、keyPressed() b.內部類類名:FindKeyEvent作用:實現查找中各部件事件的響應功能繼承的父類:無主要成員變量:無成員方法:actionPerformed ()c.內部類類名:fontEvent2.3 數據庫設計反轉字符串的查詢方式有很多,在這里介紹一種最常規(guī)的方法。如果大家有更多更好的方法,歡迎提出來一起討論。反轉字符串可用于查詢和轉換字符串和字符串集合。它對文本文件中的半結構化數據尤其有用。查詢可與傳統(tǒng)的字符串函數和正則表達式結合使用。例如,可以使用 Split 或 Split 方法來創(chuàng)建字符串數組,然后可以使用Frame 來查詢或修改此數組。可以在 TFfind查詢的子句中使用IsMatch 方法??梢允褂肨Ffind 來查詢或修改由正則表達式返回的MatchCollection 結果。2.4詳細設計/BorderLayoutTest.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;import javax.swing.event.*;public class test1 public static void main(String args) cloneFrame frame = new cloneFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show();class cloneFrame extends JFramepublic cloneFrame() setTitle(機試程序); setSize(600, 400); /define sources 定義各部件 Frame myFrm=new Frame(我的編輯器); /定義窗體 TextArea myText=new TextArea(); /定義窗體 Dialog myDlgFind=new Dialog(myFrm,查找,true); /定義查找對話框 Dialog myDlgFindont=new Dialog(myFrm,字體,true); /定義字體對話框 TextField TFfind=new TextField(30);/定義查找對話中的查找輸入框 TextField TFreplace=new TextField(30); /定義查找對話中的替換輸入框 TextField TFfontSize,TFfontDemo;/定義字體大小文本框和示例框 Choice CHfontName;/定義字體大小選擇框 List LTfontSize; /定義字體大小標簽 Button BfontOK,BfontCancel; /定義字體大小對話中的確定及取消按鈕 Button Bfind=new Button(查找);/定義查找對話中的查找按鈕 Button Breplace=new Button(替換);/定義查找對話中的替換及取消按鈕 Button Bnext=new Button(下一個);/定義查找對話中的下一個及取消按鈕 Button Bcancel=new Button(取消);/定義查找對話中的確定及取消按鈕 Label Lf=new Label(查找內容:); Label Lr=new Label(替換為: ); Label Ls=new Label(字體大?。?; FileDialog myFDlg; Clipboard myCB=Toolkit.getDefaultToolkit().getSystemClipboard(); /剪切板對象 Menu Mfile,Medit,Mformation,Mhelp; MenuBar /define varities /定義各變量 private int VIindex = 1; private String VSsubFixStr=.java; private String VSmyFileName = Document1,VSmyBFileName; private File VFmyFile=new File(VSmyFileName+VIindex+.java); private int VIsearchPosition=0; private Timer VTtime; private int VImin=1; / parameter in time schedul private int VItype=JOptionPane.INFORMATION_MESSAGE; private String VStitle; private String VSmessage; / flag of the changeing private boolean VBchanged = true; / the scope of the font private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2; /* /founction name:init() /parameter :none /attribute :public /founction :initia all compont /* public void init() /初始化各部件 /- set menu - MBbar=new MenuBar(); myFrm.setMenuBar(MBbar); Mfile=new Menu(文件); Medit=new Menu(編輯); Mformation=new Menu(格式); Mhelp=new Menu(幫助);public String id1;public String name1;public String age1;FileOutputStream fos=null;DataOutputStream dout=null;public proposer(String id,String name,String age)this.id1=id;1=name;this.age1=age;voidsave() tryFile proFile=new File(proposer.txt);fos=new FileOutputStream(proFile);dout=new DataOutputStream(fos);dout.writeUTF(id1);dout.writeUTF(name1);dout.writeUTF(age1);dout.close(); catch(Exception err) private JLabel label_2; private int number; private int sum; final JLabel label = new JLabel(); final JLabel label_1 = new JLabel(); public static void main(String args) new game (); public game () super; getContentPane().setLayout(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JButton button = new JButton(); button.addActionListener(new ActionListener() public void actionPerformed(final ActionEvent arg0) onClick(); ); button.setText); button.setBounds(170, 350, 106, 28); getContentPane().add(button); label.setBorder(new LineBorder(Color.black, 1, false); label.setHorizontalAlignment(SwingConstants.CENTER); label.setFont(new Font(, Font.BOLD, 26); label.setText(背面); label.setBounds(158, 81, 137, 153); getContentPane().add(label); label_1.setText(你已經擁有的牌:); label_1.setBounds(109, 22, 270, 45); getContentPane().add(label_1); this.setBounds(200, 300, 501, 528); this.setVisible(true); getContentPane().add(getLabel_2(); public int randNumber() try Thread.sleep(10); catch (InterruptedException e) e.printStackTrace(); return (int) (Math.random() * 10 + 1); public void onClick() number = this.randNumber(); this.sum += number; label.setText( + number); String strTemp = this.label_1.getText(); strTemp += + number + ; label_1.setText(strTemp); String temp = 合計: + sum; label_2.setText(temp); isWin(); public void isWin() if (sum 21) JOptionPane.showMessageDialog(this, 你輸了); clear(); return; else if (sum = 21) JOptionPane.showMessageDialog(this, 你贏了); clear(); return; else int i = JOptionPane.showOptionDialog(this, 是否繼續(xù)?, 提示, JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, null, null); if (i = JOptionPane.OK_OPTION) onClick(); else return; private void clear() label_2.setText(合計:); sum = 0; number = 0; JPanel buttonPanel = new JPanel(); buttonPanel.setBackground(new Color(56,43,85); Button1 = new JButton(點擊復制反轉字符串); Button1.addActionListener(new turnListener(); buttonPanel.add(Button1); JPanel textPanel = new JPanel(); textPanel.setBackground(new Color(100,100,100) field1 = new JTextField(姓名:老李;學號:2004132028, 20); field2 = new JTextField(反轉, 20); field2.setEditable(false); textPanel.add(field1); textPanel.add(field2); private int VIindex = 1; private String VSsubFixStr=.java; private String VSmyFileName = Document1,VSmyBFileName; private File VFmyFile=new File(VSmyFileName+VIindex+.java); private int VIsearchPosition=0; private Timer VTtime; private int VImin=1; / parameter in time schedul private int VItype=JOptionPane.INFORMATION_MESSAGE; private String VStitle; private String VSmessage; / flag of the changeing private boolean VBchanged = true; / the scope of the font JPanel tuPanel = new JPanel(); JLabel label = new JLabel(new ImageIcon(006.gif); tuPanel.add(label); tuPanel.setBackground(new Color(100,100,100); private int VIindex = 1; private String VSsubFixStr=.java; private String VSmyFileName = Document1,VSmyBFileName; private File VFmyFile=new File(VSmyFileName+VIindex+.java); private int VIsearchPosition=0; private Timer VTtime; private int VImin=1; / parameter in time schedul private int VItype=JOptionPane.INFORMATION_MESSAGE; private String VStitle; private String VSmessage; / flag of the changeing private boolean VBchanged = true; / the scope of the font Container contentPane = getContentPane(); contentPane.add(buttonPanel, BorderLayout.SOUTH); contentPane.add(textPanel, BorderLayout.NORTH); contentPane.add(tuPanel, BorderLayout.CENTER); contentPane.setBackground(new Color(100,100,100);myDlgFind.add(Lf); myDlgFind.add(TFfind); myDlgFind.add(Lr); myDlgFind.add(TFreplace); myDlgFind.add(Bfind); myDlgFind.add(Breplace); myDlgFind.add(Bnext); myDlgFind.add(Bcancel);BfontOK = new Button(確定); BfontOK.addActionListener(new fontEvent(); BfontCancel = new Button(取消); BfontCancel.addActionListener(new fontEvent(); /a TextField for demo the font TFfontDemo = new TextField(Java awt,37); TFfontDemo.setEditable(false);private class turnListener implements ActionListener public void actionPerformed(ActionEvent event) String gets = field1.getText(); int i = gets.length(); StringBuffer buffer = new StringBuffer(i); for(int j=i-1;j=0;j-) buffer.append(gets.charAt(j); String gets2 = buffer.toString(); field2.setText(gets2); private JButton Button1;private JTextField field1;private JTextField field2;2.5測試分析2.5.1程序運行情況當程序正常運行的時候,它能清晰的顯示出運行結果。但也有例外,如輸入的字節(jié)太長,此時便不能正常運行,所以我得想辦法先把它解決了,如果不解決的話,此程序等于沒有或是不底不做。因為它直接影響著此程序能否成功的關鍵,是此程序的命脈所在,所以必須重視。又因為如果是簡單的處理可能還會出現其他情況,所以得條理清晰。解決它很好辦,在程序有關字節(jié)長短加句else if此時,如果出現太長的字符,就會出現BorderLayoutTest類型的類,然后捕捉結果,進行歸零。2.5.2程序異常處理(1)打開文件時的異常處理需要處理的異常:IOException處理方法:捕獲異常后,顯示捕獲的異常(2)保存文件時的異常處理需要處理的異常:IOException處理方法:捕獲異常后,顯示捕獲的異常第3章 課程設計總結隨著本學期Java課程的結束,Java基礎課程的學習也正式落下了帷幕。這部分知識主要是介紹Java程序設計的基礎語法,學習起來不是很困難。要說難

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論