《2022年面向对象程序设计课程设计之加密与解密 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计课程设计之加密与解密 .pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软 件 学 院课程设计报告书课程名称面向对象程序设计课程设计设计题目加密与解密专业班级软件 09-4 学号姓名指导教师2011 年 6 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - 2 1 设计时间 . 32 设计目的 . 33 设计任务. 34 设计内容 . 34.1 抽象数据类型的定义.34.1.1 程序所需要引入的包.34.1.2 其他定义.34.2 程序流程.44.3 模块间层次关系.44.4 详细设计.54.4.
2、1 主函数代码.54.4.2 选择文件路径代码.54.4.3 加密监听代码5 4.4.4 解密监听代码64.4.5 加密与解密代码. .64.5 测试结果84.5.1 选择文件路径结果.84.5.2 文件加密结果 .94.5.3 解密结果.104.6 源代码115 总结与展望.15参考文献.16名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 17 页 - - - - - - - - - 3 1 设计时间2011/6/7-2011/6/132 设计目的面向对象程序设计是一门
3、实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java 语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。3 设计任务要求:采用图形用户界面,建立菜单(1) 给定任意一个文本文件,进行加密,生成另一个文件。(2) 对加密后的文件还原。4 设计内容4.1 抽象数据类型的定义4.1.1 程序所需要引入的包import java.awt.*;import java.awt.event.*; import java.io.*;
4、import javax.swing.*; 4.1.2 其他定义new JPanel() new JTextField() new JButton( ) new JTextArea() new JPanel() new ActionListener() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - 4 4.2 程序流程图是否否是图 1 程序流程图4.3 模块间层次关系图 2 层次(调用)关系图弹出文件加密器对话框选择要加密的
5、文件是否获得文件路径加密或解密解密文 件 是 否已加密加密生成机密文生成解密文结束开始文件加密器、解密模块加密模块加密操作模块文件选择模块解密模块解密操作模块名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 17 页 - - - - - - - - - 5 4.4 详细设计4.4.1 主函数代码public static void main(String args) Swallow sw = new Swallow(); 4.4.2 选择文件路径代码class myjian
6、ting1 implements ActionListener public void actionPerformed(ActionEvent e) JFileChooser fc = new JFileChooser(); / 实例化文件选择器fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); / 设 置文件选择模式 ,此处为文件和目录均可if (fc.showOpenDialog(Swallow.this) = JFileChooser.APPROVE_OPTION) / 弹出文件选择器 ,并判断是否点击了打开按钮Str
7、ing fileName = fc.getSelectedFile().getAbsolutePath(); / 得到选择文件或目录的绝对路径tf1.setText(fileName); 4.4.3 加密监听代码class myjianting2 implements ActionListener public void actionPerformed(ActionEvent event) swallow1 sw = new swallow1(); try sw.open(); sw.password(); sw.showFileContent(); 名师资料总结 - - -精品资料欢迎下载
8、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - 6 catch(IOException e) nr.setText(文件不能打开! ); 4.4.4 解密监听代码class myjianting3 implements ActionListener public void actionPerformed(ActionEvent event) swallow1 sw = new swallow1(); try sw.open(); sw.password(); sw.s
9、howFileContent(); catch (IOException e) nr.setText(文件解密有误! ); 4.4.5 加密与解密代码public class swallow1 private File file; byte buf; RandomAccessFile raf,raf1; public swallow1() file = new File(tf1.getText(); buf = new byte(int)file.length(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
10、- - - - - - - 第 6 页,共 17 页 - - - - - - - - - 7 public void open() throws FileNotFoundException raf = new RandomAccessFile(file, rw); raf1 = new RandomAccessFile( “ 加密后的文件 .txt” , rw); public void password() throws IOException raf.read(buf); for (int i = 0; i buf.length; i+) bufi = (byte)(bufi); raf.
11、seek(0); raf.write(buf); public void showFileContent() File file = new File(“ 加密后的文件 .txt” ); BufferedReader reader = null; try reader = new BufferedReader(new FileReader(file); String temp = null; while (temp = reader.readLine() != null) nr.setText(temp); reader.close(); catch (IOException e) /e.pr
12、intStackTrace(); nr.setText(文件无法解密! ); finally if (reader != null) try 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - 8 reader.close(); catch (IOException e) 4.5 测试结果4.5.1 选择文件路径结果图 3 运行程序名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
13、 - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - 9 图 4 选择加密文件图 5 选择加密文件4.5.2 文件加密结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 17 页 - - - - - - - - - 10 图 6 加密后的文件显示4.5.3 解密结果图 7 解密后的文件显示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心
14、整理 - - - - - - - 第 10 页,共 17 页 - - - - - - - - - 11 4.6 源代码import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class Swallow extends Frame JLabel la1; JButton bt1, bt2, bt3; JTextField tf1; JTextArea nr; public static void main(String args) new Swallow(); publi
15、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
16、); bt2 = new JButton(加密); bt2.addActionListener(new myjianting2(); bt3 = new JButton(解密); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 17 页 - - - - - - - - - 12 bt3.addActionListener(new myjianting3(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); p3.a
17、dd(bt2); p3.add(bt3); p2.add(p3); add(p2, BorderLayout.SOUTH); setSize(500, 400); setLocation(200, 200); setVisible(true); this.addWindowListener(new myclosing(); class myclosing extends WindowAdapter public void windowClosing(WindowEvent e) setVisible(false); System.exit(0); class myjianting1 imple
18、ments ActionListener public void actionPerformed(ActionEvent e) JFileChooser fc = new JFileChooser(); / 实例化文件选择器fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); / 设 置文件选择模式 ,此处为文件和目录均可if (fc.showOpenDialog(Swallow.this) = JFileChooser.APPROVE_OPTION) / 弹出文件选择器 ,并判断是否点击了打开按钮String fileNam
19、e = fc.getSelectedFile().getAbsolutePath(); / 得到选择文件或目录的绝对路径tf1.setText(fileName); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 17 页 - - - - - - - - - 13 class myjianting2 implements ActionListener public void actionPerformed(ActionEvent event) swallow1 sw =
20、 new swallow1(); try sw.open(); sw.password(); sw.showFileContent(); catch(IOException e) nr.setText(文件不能打开! ); class myjianting3 implements ActionListener public void actionPerformed(ActionEvent event) swallow1 sw = new swallow1(); try sw.open(); sw.password(); sw.showFileContent(); catch (IOExcept
21、ion e) nr.setText(文件解密有误! ); public class swallow1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 17 页 - - - - - - - - - 14 private File file; byte buf; RandomAccessFile raf,raf1; public swallow1() file = new File(tf1.getText(); buf = new byte(int)file.length(
22、); public void open() throws FileNotFoundException raf = new RandomAccessFile(file, rw); raf1 = new RandomAccessFile( “ 加密后的文件 .txt” , rw); public void password() throws IOException raf.read(buf); for (int i = 0; i buf.length; i+) bufi = (byte)(bufi); raf.seek(0); raf1.write(buf); public void showFi
23、leContent() File file = new File(“ 加密后的文件 .txt” ); BufferedReader reader = null; try reader = new BufferedReader(new FileReader(file); String temp = null; while (temp = reader.readLine() != null) nr.setText(temp); reader.close(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
24、- - - - 第 14 页,共 17 页 - - - - - - - - - 15 catch (IOException e) /e.printStackTrace(); nr.setText(文件无法解密! ); finally if (reader != null) try reader.close(); catch (IOException e) 5 总结与展望通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思
25、维。它还让我学会了在网上查阅那些无限的资源。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 17 页 - - - - - - - - - 16 参考文献1 刘万军,梁清华,王松波,宋强等编著 .Java 程序设计 .实践教程 .北京:清华大学出版社2 (美) Bruce Eckel 著.陈昊鹏 译.Java编程思想 .第 4 版.北京:机械工业出版社3 张帆 等编著 .Java 范例开发大全 .北京:清华大学出版社4 百度: http:/ 5 百度文库 : http:/ 成绩评定成绩教师签字名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 17 页 - - - - - - - - - 17 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 17 页 - - - - - - - - -