加密与解密Java课程设计Word文档下载推荐.docx

上传人:b****4 文档编号:6772847 上传时间:2023-05-07 格式:DOCX 页数:14 大小:190.47KB
下载 相关 举报
加密与解密Java课程设计Word文档下载推荐.docx_第1页
第1页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第2页
第2页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第3页
第3页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第4页
第4页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第5页
第5页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第6页
第6页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第7页
第7页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第8页
第8页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第9页
第9页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第10页
第10页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第11页
第11页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第12页
第12页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第13页
第13页 / 共14页
加密与解密Java课程设计Word文档下载推荐.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

加密与解密Java课程设计Word文档下载推荐.docx

《加密与解密Java课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《加密与解密Java课程设计Word文档下载推荐.docx(14页珍藏版)》请在冰点文库上搜索。

加密与解密Java课程设计Word文档下载推荐.docx

5.2程序流程

5.3程序解决的核心问题

利用文件的输入输出流,按字符读取文件内容,把读取的内容,注意进行处理后,在重新写入新文件,实现文件加密。

用到的类:

FileRead,FileWrite.

添加窗体并布置面板,中间用到了,弹出对话框的事件。

设计的类有,Frame,Panel,JJOptionPane。

文件选择器的载入。

通过为按钮添加事件监听,来实现文件选择器的触发操作。

用到的类为:

JFileChooser。

自定义异常的种类,实现异常的灵活应用。

适当的调整程序的终止点或者循环点。

5.4程序源代码

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjavax.swing.*;

publicclasscode

{

Framef;

Panelp1,p2;

Labell1,l2;

Buttonkey,unkey,scan;

TextFieldt1,t2;

TextAreata;

Stringpath;

StringFileName;

publiccode()//窗体的基本构架和面板布置

{

f=newFrame("

文件加密"

);

f.setLayout(newBorderLayout());

p1=newPanel();

p2=newPanel();

l1=newLabel("

选择路径"

scan=newButton("

浏览"

l2=newLabel("

密钥"

key=newButton("

加密"

unkey=newButton("

解密"

t1=newTextField(30);

t2=newTextField(20);

ta=newTextArea();

p1.add(l1);

p1.add(t1);

p1.add(scan);

f.add(p1,BorderLayout.NORTH);

p2.add(l2);

p2.add(t2);

p2.add(key);

p2.add(unkey);

f.add(p2,BorderLayout.SOUTH);

f.add(ta,BorderLayout.CENTER);

f.pack();

f.setVisible(true);

f.addWindowListener(newwin());

scan.addActionListener(newscanner());

key.addActionListener(newkeyer());

unkey.addActionListener(newunkeyer());

}

publicstaticvoidmain(String[]args)

codecode1=newcode();

//主函数入口

classwinextendsWindowAdapter//关闭窗口的监听事件

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

classscannerimplementsActionListener//浏览按钮的监听事件

publicvoidactionPerformed(ActionEvente)

JFileChooserfile=newJFileChooser("

."

intresult=file.showOpenDialog(null);

//0代表选择了文件

if(result==JFileChooser.APPROVE_OPTION)

{

FileName=file.getSelectedFile().getName();

path=file.getSelectedFile().getAbsolutePath();

t1.setText(path);

FileReaderreader=null;

try

{

reader=newFileReader(path);

inttempchar;

ta.setText("

"

while((tempchar=reader.read())!

=-1)

{

charn=(char)tempchar;

char[]m={n};

StringM=newString(m,0,1);

ta.append(M);

}

reader.close();

}

catch(Exceptione1)

ta.append("

文件读取出错!

}

classkeyerimplementsActionListener//加密按钮的监听事件

FileReaderread1=null;

FileWriterwrite1=null;

intn;

try

Stringa=t1.getText();

Stringb=t2.getText();

FileExist=newFile("

+FileName);

if(a.equals("

))

thrownewMyException1("

请选择路径!

if(Exist.exists())

已存在加密文件,请先删除,再进行加密!

if(b.equals("

请输入密钥!

else

n=Integer.parseInt(t2.getText());

read1=newFileReader(path);

write1=newFileWriter("

+FileName,true);

inti;

while((i=read1.read())!

write1.write((char)(i+n));

write1.close();

JOptionPane.showMessageDialog(null,"

加密成功"

"

祝贺您"

JOptionPane.PLAIN_MESSAGE);

t2.setText("

catch(IOExceptione1)

catch(MyException1e2)

{

}

classunkeyerimplementsActionListener//解密按钮监听事件

if(a.equals("

thrownewMyException1("

if(Exist.exists())

已存在解密密文件,请先删除,再进行解密!

if(b.equals("

else

n=Integer.parseInt(t2.getText());

read1=newFileReader(path);

write1=newFileWriter("

inti;

while((i=read1.read())!

write1.write((char)(i-n));

char[]m={(char)(i-n)};

StringM=newString(m,0,1);

ta.append(M);

write1.close();

JOptionPane.showMessageDialog(null,"

解密成功"

"

JOptionPane.PLAIN_MESSAGE);

catch(IOExceptione1)

catch(MyException1e2)

classMyException1extendsException

publicMyException1(Stringmessage)

JOptionPane.showMessageDialog(null,message);

}

}

5.5程序执行界面

图2为进入程序的主页面

图3路径为空时弹出上页面

图4未输入密钥时弹出上界面

图5条件满足,点击加密按钮时,弹出上界面

图6已经存在此文件的加密文件时,准备再次加密时弹出上界面

图7条件满足,点击解密按钮时,弹出上界面

图8已经存在选中文件的解密文件,试图再次解密时,弹出上界面

6总结与展望

通过这次课程设计,我学到了很多。

课本的内容虽说是基础,是一切的根本,但是学习基本内容和应用编程,简直就是两个天地。

一些编程的思想不是靠基础知识就能学到的,比如文件加密,开始接触到这个题目,第一反应就是,我没学过关于文件加密的内容啊,该怎么办啊。

但是当我听了老师的提醒后,才恍然醒悟,加密不一定是你没学的知识,也许它就是用你已经有的知识的变形和应用。

所以,知识的应用是灵活多态的。

有些知识虽然我们懂了,但是真正去应用时,却会捉襟见肘。

比如一个类的程序段,什么时候该用内部类什么时候该用外部类,我们怎么去权衡。

什么样的变量可以在哪个部分去调用,都需要我们在实践应用中去加强认识。

不只是通过死记硬背就能灵活应用的。

知识的海洋是无限大的,我们手头中有的资源也是无穷无尽的每次编程,不可能一点问题都没有。

总有这样和那样的难题,出现在我们思维的盲区。

我们要充分利用好自己的帮助文档和网上的资源,不要太执着于自己的知识层面,出去荡荡资料,会发现原来这个问题如此简单就可以解决。

这次课程设计后,我的学习目标和手段,有了新的改观,不在整天肯书本了,我要用自己学到的知识应用到生活中去编程,去实践,从而磨练自己的编程思维和手法。

多看网上的使用编程实例,练习自己的编程思维,学习新方法新思路。

参考文献

[1]屈辉立,陈可明,石武信.JSP网站编程教程[M].第1版,北京:

北京希望电子出版社,2005

[2]白勇.用B/S模式构建在线考试系统[J],重庆电力高等专科学校学报,2003,10(4):

100~130.

[3]JiangGuo,YuehongLiao,BehzadParviz.ASurveyofJ2EEApplicationPerformanceManagementSystems[J],ProceedingsoftheIEEEInternationalConferenceonWebServices(ICWS'

04),2004.6(5):

17~32.

[4]VB数据库管理范例:

成绩评定

成绩:

教师签字:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2