java文件加密解密課程設(shè)計(jì)_第1頁
java文件加密解密課程設(shè)計(jì)_第2頁
java文件加密解密課程設(shè)計(jì)_第3頁
java文件加密解密課程設(shè)計(jì)_第4頁
java文件加密解密課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PAGEPAGE21軟件學(xué)院課程設(shè)計(jì)報(bào)告書課程名稱設(shè)計(jì)題目專業(yè)班級學(xué)號姓名指導(dǎo)教師年月目錄1.設(shè)計(jì)時(shí)間………….……..……12.設(shè)計(jì)目的…………….…..……13.設(shè)計(jì)任務(wù)…………….…..……14.設(shè)計(jì)內(nèi)容………….………..…14.1需求分析………………….14.1.1問題描述……………….………………...…14.1.2基本要求……………….………………...…14.2總體設(shè)計(jì)…………………..….14.2.1包的描述…….……………14.2.2類的描述……….…………14.2.3類之間的關(guān)系…………….24.3詳細(xì)設(shè)計(jì)………….………..….24.3.1類圖……………….………..24.3.2頁面設(shè)計(jì)………….……….34.4測試與分析……….………..….64.5程序與代碼…………………….85.總結(jié)與展望………..…………..17參考文獻(xiàn)…………….…….……..……18課程設(shè)計(jì)成績評定……..……………181設(shè)計(jì)時(shí)間2011年6月13日-2011年6月19日2設(shè)計(jì)目的《面向?qū)ο蟪绦蛟O(shè)計(jì)》是一門實(shí)踐性很強(qiáng)的計(jì)算機(jī)專業(yè)基礎(chǔ)課程,課程設(shè)計(jì)是學(xué)習(xí)完該課程后進(jìn)行的一次較全面的綜合練習(xí)。其目的在于通過實(shí)踐加深學(xué)生對面向?qū)ο蟪绦蛟O(shè)計(jì)的理論、方法和基礎(chǔ)知識(shí)的理解,掌握使用Java語言進(jìn)行面向?qū)ο笤O(shè)計(jì)的基本方法,提高運(yùn)用面向?qū)ο笾R(shí)分析實(shí)際問題、解決實(shí)際問題的能力,提高學(xué)生的應(yīng)用能力。3設(shè)計(jì)任務(wù)文本文件的加密與解密4設(shè)計(jì)內(nèi)容4.1需求分析4.1.1問題描述(1)給定任意一個(gè)文本文件,進(jìn)行加密,生成另一個(gè)文件。(2)對加密后的文件還原。4.1.2基本要求采用圖形用戶界面,建立菜單。4.2總體設(shè)計(jì)4.2.1包的描述導(dǎo)入了java.awt;java.awt.event;java.io;javax.swing等包。4.2.2類的描述KeyPay類:繼承JFrame類;有構(gòu)造方法KeyPay(),方法voidactionPerformed(ActionEventevent),方法voidjian(),方法voidshuchu(),方法voidqu(),主方法staticvoidmain(Stringargs[]),方法Stringmzi(),方法voidbaocun()。AA類:實(shí)現(xiàn)了Serializable接口,用來對象系列化,把文本內(nèi)容變?yōu)槎M(jìn)制的數(shù)據(jù)流;有構(gòu)造方法AA(Stringa),構(gòu)造方法AA(),有方法intgetShu(),方法voidsetShu(intshu)。4.2.3類之間的關(guān)系類KeyPay中的方法voidbaocun()用到類AA進(jìn)行實(shí)例化,然后調(diào)用方法intgetShu()。4.3詳細(xì)設(shè)計(jì)4.3.1類圖KeyPay-shu1:String-jl1:JLabel-jl2:JLabel-cc:String-queding:JButton-xuanz:JButton-jiami:JButton-jiemi:JButton-lujin:JTextField-key:JTextField-nr:JTextArea-qu:JRadioButton-xie:JRadioButton-fz:ButtonGroup-f:File+<<Constructor>>KeyPay()+jian():void+shuchu():void+qu():void+main(Stringargs[]):void+baocun():voidAA-cc:String-shu:int+AA()+getShu():int+setChu():void+AA(String)圖1KeyPay類圖圖2AA類圖4.3.2頁面設(shè)計(jì)圖3顯示頁面圖4選擇所要加密的文本文件圖5取出加密前文本文件的內(nèi)容圖6加密后界面圖7解密成功后的界面圖8把內(nèi)容寫入到指定的文本文檔中圖9寫入后的文本文檔頁面4.4測試與分析(1)不輸入路徑的情況圖10不輸入路徑時(shí)頁面(2)路徑輸入錯(cuò)誤圖11路徑錯(cuò)誤頁面(3)密碼錯(cuò)誤圖12密碼錯(cuò)誤頁面4.5程序代碼importjava.awt.*;importjava.awt.event.*;importjava.io.*;importjavax.swing.*;publicclassKeyPayextendsJFrame{intshu1;JLabeljl1,jl2;Stringcc;JButtonqueding,xuanz,jiami,jiemi;JTextFieldlujin,key;JTextAreanr;JRadioButtonqu,xie;ButtonGroupfz;Filef;publicKeyPay(){Containerc=getContentPane();JPaneljp1=newJPanel();jl1=newJLabel("輸入路徑");lujin=newJTextField(15);xuanz=newJButton("選擇");jp1.add(jl1);jp1.add(lujin);jp1.add(xuanz);c.add(jp1,BorderLayout.NORTH);nr=newJTextArea();c.add(newJScrollPane(nr),BorderLayout.CENTER);xie=newJRadioButton("寫入");qu=newJRadioButton("取出",true);fz=newButtonGroup();fz.add(qu);fz.add(xie);jl2=newJLabel("密鑰");key=newJTextField(15);jiami=newJButton("加密");jiemi=newJButton("解密");JPaneljp4=newJPanel();jp4.setLayout(newGridLayout(2,1,5,5));JPaneljp2=newJPanel();jp2.add(jl2);jp2.add(key);jp2.add(jiami);jp2.add(jiemi);jp4.add(jp2);JPaneljp3=newJPanel();queding=newJButton("確定");jp3.add(qu);jp3.add(xie);jp3.add(queding);jp4.add(jp3);c.add(jp4,BorderLayout.SOUTH);queding.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){jian();if(xie.isSelected())shuchu();if(qu.isSelected())qu();}});xuanz.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){JFileChooserfileChooser=newJFileChooser();//實(shí)例化文件選擇器fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);//設(shè)置文件選擇模式,此處為文件和目錄均可if(fileChooser.showOpenDialog(KeyPay.this)==JFileChooser.APPROVE_OPTION){//彈出文件選擇器,并判斷是否點(diǎn)擊了打開按鈕StringfileName=fileChooser.getSelectedFile().getAbsolutePath();//得到選擇文件或目錄的絕對路徑lujin.setText(fileName);}}});jiemi.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){ObjectInputStreaminput;try{input=newObjectInputStream(newFileInputStream(lujin.getText()));intmima=Integer.parseInt(key.getText());AAac=(AA)input.readObject();if(ac.getShu()==mima){nr.setText(ac.cc);shuchu();JOptionPane.showMessageDialog(null,"解密成功!");}else{JOptionPane.showMessageDialog(null,"錯(cuò)誤的密碼!");}}catch(Exceptione){//e.printStackTrace();nr.setText("無法解密");}}});jiami.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){AAa=newAA(nr.getText());key.setText(a.shu+"");try{ObjectOutputStreamoutput=newObjectOutputStream(newFileOutputStream(lujin.getText()));output.writeObject(a);output.flush();output.close();qu();baocun();}catch(Exceptione){//e.printStackTrace();nr.setText("必須選擇加密文件保存地址,文件不存在或者無法加密文件,加密文件不能含有換行");}}});setSize(380,350);setVisible(true);}publicvoidjian(){f=newFile(lujin.getText());try{f.createNewFile();}catch(IOExceptione){JOptionPane.showMessageDialog(null,"路徑錯(cuò)誤!");}}publicvoidshuchu(){try{FileOutputStreamout=newFileOutputStream(f);bytebuf[]=nr.getText().getBytes();try{out.write(buf);out.flush();out.close();}catch(IOExceptione){//e.printStackTrace();}}catch(FileNotFoundExceptione){//e.printStackTrace();}}publicvoidqu(){try{FileInputStreamin=newFileInputStream(f);inta=(int)f.length();bytebuf[]=newbyte[a];try{intlen=in.read(buf);if(len!=-1) { nr.setText(newString(buf,0,len)); }elseJOptionPane.showMessageDialog(null,"文件內(nèi)容為空!");}catch(IOExceptione){//e.printStackTrace();}}catch(FileNotFoundExceptione){//e.printStackTrace();}}publicstaticvoidmain(Stringarge[]){KeyPays=newKeyPay();s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoidbaocun(){AAa=newAA();shu1=a.getShu();a.shu=shu1;}}classAAimplementsSerializable{Stringcc;publicintshu;publicAA(){}publicintgetShu(){returnshu;}publicvoidsetShu(intshu){this.sh

溫馨提示

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

評論

0/150

提交評論