ajva课程设计加密与解密大学毕设论文.docx

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

ajva课程设计加密与解密大学毕设论文.docx

《ajva课程设计加密与解密大学毕设论文.docx》由会员分享,可在线阅读,更多相关《ajva课程设计加密与解密大学毕设论文.docx(13页珍藏版)》请在冰点文库上搜索。

ajva课程设计加密与解密大学毕设论文.docx

ajva课程设计加密与解密大学毕设论文

 

JAVA课程设计报告

 

题目

加密与解密

院系

班级

学号

姓名

目录

1设计分析5

1.1设计目的5

1.2设计题目5

1.3设计任务5

2设计内容6

2.1需求分析6

2.1.1问题描述6

2.1.2基本要求6

2.2程序流程7

3程序相关问题8

3.1程序解决的核心问题8

3.2程序源代码8

3.3程序执行界面12

4总结与展望14

5参考文献15

1设计分析

1.1设计目的

《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。

其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。

1.2设计题目

采用图形用户界面,建立菜单。

(1)给定任意一个文本文件,进行加密,生成另一个文件。

(2)对加密后的文件还原。

1.3设计任务

通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用java语言进行面向对象程序设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。

2设计内容

2.1需求分析

2.1.1问题描述

通过编程,实现“加密与解密”功能。

给定任意一个文本文件,进行加密,生成另一个文件。

对加密后的文件还原。

2.1.2基本要求

采用图形用户界面,建立菜单

(1)给定任意一个文本文件,进行加密,生成另一个文件。

(2)对加密后的文件还原。

2.2程序流程

3程序相关问题

3.1程序解决的核心问题

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

用到的类:

FileRead,FileWrite.

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

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

文件选择器的载入。

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

用到的类为:

JFileChooser。

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

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

3.2程序源代码

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;

importjavax.swing.*;

classMyframeextendsFrameimplementsActionListener{

FileDialogfiledialog_save,filedialog_load;

Buttonbutton1,button2;

Labellabel;

MenuBarbar;

Menumenu;

MenuItemitemOpen,itemSave;

TextAreatexta;

Myframe(Strings)//创建对话框

{

super(s);

texta=newTextArea(38,160);

button1=newButton("加密");

button2=newButton("解密");

menu=newMenu("文件");

itemOpen=newMenuItem("打开");

itemSave=newMenuItem("保存");

label=newLabel("文件浏览窗口");

itemOpen.addActionListener(this);

itemSave.addActionListener(this);

button1.addActionListener(this);

button2.addActionListener(this);

filedialog_save=newFileDialog(this,"保存文件对话框",FileDialog.SAVE);

filedialog_load=newFileDialog(this,"打开文件对话框",FileDialog.LOAD);

filedialog_save.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

filedialog_save.setVisible(false);

}

});

filedialog_load.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

filedialog_load.setVisible(false);

}

});

Boxbox1=Box.createHorizontalBox();//创建一个从左到右显示其组件的box1;

Boxbox2=Box.createVerticalBox();//创建一个从上到下显示其组件的box2;

Boxbox3=Box.createVerticalBox();

Boxboxbase=Box.createVerticalBox();

Panelpanel1=newPanel();

Panelpanel2=newPanel();

setMenuBar(bar=newMenuBar());

bar.add(menu);

menu.add(itemOpen);

menu.add(itemSave);

panel1.add(button1);

panel1.add(button2);

box1.add(panel1);

box2.add(label);

panel2.add(texta);

box3.add(panel2);

boxbase.add(box1);

boxbase.add(box2);

boxbase.add(box3);

add(boxbase);

setLayout(newFlowLayout());

setBounds(100,0,1200,750);

setVisible(true);

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

}//“关闭”窗口事件;

publicvoidactionPerformed(ActionEvente)//查找读入文件

{

if(e.getSource()==itemOpen){

filedialog_load.setVisible(true);

texta.setText(null);

Strings;

if(filedialog_load.getFile()!

=null){

try{

Filefile=newFile(filedialog_load.getDirectory(),

filedialog_load.getFile());

FileReaderfile_reader=newFileReader(file);//读取字符流

BufferedReaderin=newBufferedReader(file_reader);

while((s=in.readLine())!

=null)

texta.append(s+'\n');

in.close();

file_reader.close();

}catch(IOExceptione1){

}

}

}

if(e.getSource()==itemSave)//查找写入的文件

{

filedialog_save.setVisible(true);

if(filedialog_save.getFile()!

=null){

try{

Filefile=newFile(filedialog_save.getDirectory(),

filedialog_save.getFile());

FileWritertofile=newFileWriter(file);//读取字符流

BufferedWriterout=newBufferedWriter(tofile);

out.write(texta.getText(),0,(texta.getText()).length());

out.close();

tofile.close();

}catch(IOExceptione2){

}

}

}

if(e.getSource()==button1){

chara[]=texta.getText().toCharArray();//把text中获得的文本,进行初始化,与原字符串长度相等,并将该字符串对象的全部字符复制到该数组a[]中

texta.setText(null);

intn;

charsecret='';

for(inti=0;i

charc=(char)(secret^a[i]);//进行异或运算

texta.append(""+c);

}

}

if(e.getSource()==button2){

chara[]=texta.getText().toCharArray();

texta.setText(null);

intn;

charsecret='';

for(inti=0;i

charc=(char)(secret^a[i]);//再次异或运算,即还原

texta.append(""+c);

}

}

}

}

publicclassE1{

publicstaticvoidmain(Stringargs[]){

Myframeframe=newMyframe("加密与解密");

};

}

3.3程序执行界面

图2进入程序的主页面

图2输入内容

图3加密之后

图4解密之后

4总结与展望

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5参考文献

[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