




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟 件 學(xué) 院課程設(shè)計報告書課程名稱 面向?qū)ο蟪绦蛟O(shè)計課程設(shè)計 設(shè)計題目 加密與解密 專業(yè)班級 軟件09-4 學(xué) 號 姓 名 指導(dǎo)教師 2011 年 6 月1 設(shè)計時間 32 設(shè)計目的 33設(shè)計任務(wù) 34 設(shè)計內(nèi)容 3 4.1 抽象數(shù)據(jù)類型的定義 .34.1.1程序所需要引入的包 .34.1.2 其他定義 .34.2程序流程 .44.3模塊間層次關(guān)系 .44.4 詳細設(shè)計 .54.4.1 主函數(shù)代碼 .54.4.2 選擇文件路徑代碼 .54.4.3 加密監(jiān)聽代碼 54.4.4 解密監(jiān)聽代碼 64.4.5 加密與解密代碼 . .64.5 測試結(jié)果 84.5.1 選擇文件路徑結(jié)果 .84.5.2
2、文件加密結(jié)果 .94.5.3 解密結(jié)果 .104.6 源代碼 115 總結(jié)與展望 .15參考文獻 .161 設(shè)計時間2011/6/7-2011/6/132 設(shè)計目的面向?qū)ο蟪绦蛟O(shè)計是一門實踐性很強的計算機專業(yè)基礎(chǔ)課程,課程設(shè)計是學(xué)習(xí)完該課程后進行的一次較全面的綜合練習(xí)。其目的在于通過實踐加深學(xué)生對面向?qū)ο蟪绦蛟O(shè)計的理論、方法和基礎(chǔ)知識的理解,掌握使用java語言進行面向?qū)ο笤O(shè)計的基本方法,提高運用面向?qū)ο笾R分析實際問題、解決實際問題的能力,提高學(xué)生的應(yīng)用能力。3設(shè)計任務(wù)要求:采用圖形用戶界面,建立菜單(1)給定任意一個文本文件,進行加密,生成另一個文件。(2)對加密后的文件還原。4 設(shè)計內(nèi)容
3、 4.1 抽象數(shù)據(jù)類型的定義4.1.1程序所需要引入的包import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;4.1.2其他定義new jpanel()new jtextfield()new jbutton( )new jtextarea()new jpanel()new actionlistener()4.2程序流程開始圖彈出文件加密器對話框選擇要加密的文件加密或解密是否獲得文件路徑是否文件是否已加密解密 否加密生成機密文件是生成解密文件結(jié)束 圖1 程序流程圖文件加密器、解密模塊4.3模
4、塊間層次關(guān)系文件選擇模塊解密模塊加密模塊解密操作模塊加密操作模塊圖2層次(調(diào)用)關(guān)系圖4.4詳細設(shè)計4.4.1 主函數(shù)代碼public static void main(string args)swallow sw = new swallow();4.4.2 選擇文件路徑代碼class myjianting1 implements actionlistenerpublic void actionperformed(actionevent e)jfilechooser fc = new jfilechooser(); / 實例化文件選擇器fc.setfileselectionmode(jfile
5、chooser.files_and_directories); / 設(shè)置文件選擇模式,此處為文件和目錄均可if (fc.showopendialog(swallow.this) = jfilechooser.approve_option) / 彈出文件選擇器,并判斷是否點擊了打開按鈕string filename = fc.getselectedfile().getabsolutepath(); / 得到選擇文件或目錄的絕對路徑tf1.settext(filename);4.4.3 加密監(jiān)聽代碼class myjianting2 implements actionlistenerpublic
6、void actionperformed(actionevent event)swallow1 sw = new swallow1();trysw.open(); sw.password();sw.showfilecontent();catch(ioexception e)nr.settext(文件不能打開!);4.4.4 解密監(jiān)聽代碼class myjianting3 implements actionlistenerpublic void actionperformed(actionevent event)swallow1 sw = new swallow1();try sw.open()
7、; sw.password();sw.showfilecontent();catch (ioexception e)nr.settext(文件解密有誤!);4.4.5 加密與解密代碼public class swallow1private file file;byte buf;randomaccessfile raf,raf1;public swallow1()file = new file(tf1.gettext();buf = new byte(int)file.length();public void open() throws filenotfoundexceptionraf = ne
8、w randomaccessfile(file, rw); raf1 = new randomaccessfile(“加密后的文件.txt”, rw);public void password() throws ioexceptionraf.read(buf);for (int i = 0; i buf.length; i+)bufi = (byte)(bufi);raf.seek(0);raf.write(buf);public void showfilecontent()file file = new file(“加密后的文件.txt”);bufferedreader reader = n
9、ull;tryreader = new bufferedreader(new filereader(file);string temp = null;while (temp = reader.readline() != null)nr.settext(temp);reader.close();catch (ioexception e)/e.printstacktrace();nr.settext(文件無法解密!);finallyif (reader != null)tryreader.close();catch (ioexception e) 4.5測試結(jié)果4.5.1 選擇文件路徑結(jié)果圖3運行
10、程序圖4選擇加密文件圖5 選擇加密文件4.5.2 文件加密結(jié)果圖6 加密后的文件顯示4.5.3 解密結(jié)果圖7 解密后的文件顯示4.6 源代碼import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;public class swallow extends framejlabel la1;jbutton bt1, bt2, bt3;jtextfield tf1;jtextarea nr;public static void main(string args)new swallow();publi
11、c swallow()this.settitle(java加密和解密);jpanel p1 = new jpanel();la1 = new jlabel(選擇文件路徑);tf1 = new jtextfield(20);bt1 = new jbutton(瀏覽.);bt1.addactionlistener(new myjianting1();p1.add(la1);p1.add(tf1);p1.add(bt1);add(p1, borderlayout.north);nr = new jtextarea();add(nr, borderlayout.center);bt2 = new jb
12、utton(加密);bt2.addactionlistener(new myjianting2();bt3 = new jbutton(解密);bt3.addactionlistener(new myjianting3();jpanel p2 = new jpanel();jpanel p3 = new jpanel();p3.add(bt2);p3.add(bt3);p2.add(p3);add(p2, borderlayout.south);setsize(500, 400);setlocation(200, 200);setvisible(true);this.addwindowlist
13、ener(new myclosing();class myclosing extends windowadapterpublic void windowclosing(windowevent e)setvisible(false);system.exit(0);class myjianting1 implements actionlistenerpublic void actionperformed(actionevent e)jfilechooser fc = new jfilechooser(); / 實例化文件選擇器fc.setfileselectionmode(jfilechooser
14、.files_and_directories); / 設(shè)置文件選擇模式,此處為文件和目錄均可if (fc.showopendialog(swallow.this) = jfilechooser.approve_option) / 彈出文件選擇器,并判斷是否點擊了打開按鈕string filename = fc.getselectedfile().getabsolutepath(); / 得到選擇文件或目錄的絕對路徑tf1.settext(filename);class myjianting2 implements actionlistenerpublic void actionperforme
15、d(actionevent event)swallow1 sw = new swallow1();trysw.open(); sw.password();sw.showfilecontent();catch(ioexception e)nr.settext(文件不能打開!);class myjianting3 implements actionlistenerpublic void actionperformed(actionevent event)swallow1 sw = new swallow1();trysw.open(); sw.password();sw.showfileconte
16、nt();catch (ioexception e)nr.settext(文件解密有誤!);public class swallow1private file file;byte buf;randomaccessfile raf,raf1;public swallow1()file = new file(tf1.gettext();buf = new byte(int)file.length();public void open() throws filenotfoundexceptionraf = new randomaccessfile(file, rw); raf1 = new rand
17、omaccessfile(“加密后的文件.txt”, rw);public void password() throws ioexceptionraf.read(buf);for (int i = 0; i buf.length; i+)bufi = (byte)(bufi);raf.seek(0);raf1.write(buf);public void showfilecontent()file file = new file(“加密后的文件.txt”);bufferedreader reader = null;tryreader = new bufferedreader(new filereader(file);string temp = null;while (temp = reader.readline() != null)nr.settext(temp);reader.close();catch (ioexception e)/e.printstacktrace();nr.settext(文件無法解密!);finallyif (reader != null)tryreader.close();catch (ioexception e) 5 總結(jié)與展望通過此次課程設(shè)計,將
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動力柜施工合同范本
- 公用商業(yè)裝修合同范本
- 包裝供應(yīng)合同范本
- app合伙合同范本
- 以房換房合同范本
- 上傳網(wǎng)貸合同范本
- 包材委托加工合同范本文庫
- 2024年日照市某國有企業(yè)招聘考試真題
- 2024年青海海南州教育局招聘高中教師考試真題
- Module 2 public holidays unit 2英文版教學(xué)設(shè)計 2024-2025學(xué)年外研版英語九年級上冊
- 2024下半年上海事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 網(wǎng)絡(luò)安全風險評估行業(yè)研究報告
- 新能源汽車充電設(shè)施安全檢查記錄表
- GB/T 38153.1-2024印刷技術(shù)測試印樣的實驗室制備第1部分:漿狀油墨
- 2024高考物理考試大綱
- 《上市公司財務(wù)舞弊探究的國內(nèi)外文獻綜述》5000字
- 2024年護師類之護士資格證考試題庫
- 腰椎間盤突出癥課件(共100張課件)
- 委托調(diào)解民事糾紛協(xié)議書合同
- 林學(xué)概論完整版本
- GB/T 44458.3-2024運動用眼部和面部保護第3部分:水面游泳用眼鏡的要求和試驗方法
評論
0/150
提交評論