收藏 分销(赏)

ajva课程设计加密与解密.doc

上传人:精**** 文档编号:2383921 上传时间:2024-05-29 格式:DOC 页数:14 大小:140KB 下载积分:8 金币
下载 相关 举报
ajva课程设计加密与解密.doc_第1页
第1页 / 共14页
ajva课程设计加密与解密.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
JAVA课程设计报告 题 目 加密与解密 院 系 班 级 学 号 姓 名 13 目录 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程序流程 开始 点击浏览 读取文件 输入密钥 密钥非空 Y N 加/解密 是否存在此文件的加/解密文件 N 加/解密成功 N Y 图1 程序流程 3程序相关问题 3.1程序解决的核心问题 利用文件的输入输出流,按字符读取文件内容,把读取的内容,注意进行处理后,在重新写入新文件,实现文件加密。用到的类:FileRead,FileWrite. 添加窗体并布置面板,中间用到了,弹出对话框的事件。设计的类有,Frame,Panel,JOptionPane。 文件选择器的载入。通过为按钮添加事件监听,来实现文件选择器的触发操作。用到的类为:JFileChooser。 自定义异常的种类,实现异常的灵活应用。适当的调整程序的终止点或者循环点。 3.2程序源代码 import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; class Myframe extends Frame implements ActionListener { FileDialog filedialog_save, filedialog_load; Button button1, button2; Label label; MenuBar bar; Menu menu; MenuItem itemOpen, itemSave; TextArea texta; Myframe(String s) // 创建对话框 { super(s); texta = new TextArea(38, 160); button1 = new Button("加密"); button2 = new Button("解密"); menu = new Menu("文件"); itemOpen = new MenuItem("打开"); itemSave = new MenuItem("保存"); label = new Label("文件浏览窗口"); itemOpen.addActionListener(this); itemSave.addActionListener(this); button1.addActionListener(this); button2.addActionListener(this); filedialog_save = new FileDialog(this, "保存文件对话框", FileDialog.SAVE); filedialog_load = new FileDialog(this, "打开文件对话框", FileDialog.LOAD); filedialog_save.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { filedialog_save.setVisible(false); } }); filedialog_load.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { filedialog_load.setVisible(false); } }); Box box1 = Box.createHorizontalBox(); // 创建一个从左到右显示其组件的 box1; Box box2 = Box.createVerticalBox(); // 创建一个从上到下显示其组件的 box2; Box box3 = Box.createVerticalBox(); Box boxbase = Box.createVerticalBox(); Panel panel1 = new Panel(); Panel panel2 = new Panel(); setMenuBar(bar = new MenuBar()); 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(new FlowLayout()); setBounds(100, 0, 1200, 750); setVisible(true); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } // “关闭”窗口事件; public void actionPerformed(ActionEvent e) // 查找读入文件 { if (e.getSource() == itemOpen) { filedialog_load.setVisible(true); texta.setText(null); String s; if (filedialog_load.getFile() != null) { try { File file = new File(filedialog_load.getDirectory(), filedialog_load.getFile()); FileReader file_reader = new FileReader(file);// 读取字符流 BufferedReader in = new BufferedReader(file_reader); while ((s = in.readLine()) != null) texta.append(s + '\n'); in.close(); file_reader.close(); } catch (IOException e1) { } } } if (e.getSource() == itemSave) // 查找写入的文件 { filedialog_save.setVisible(true); if (filedialog_save.getFile() != null) { try { File file = new File(filedialog_save.getDirectory(), filedialog_save.getFile()); FileWriter tofile = new FileWriter(file); // 读取字符流 BufferedWriter out = new BufferedWriter(tofile); out.write(texta.getText(), 0, (texta.getText()).length()); out.close(); tofile.close(); } catch (IOException e2) { } } } if (e.getSource() == button1) { char a[] = texta.getText().toCharArray(); // 把text中获得的文本,进行初始化,与原字符串长度相等,并将该字符串对象的全部字符复制到该数组a[]中 texta.setText(null); int n; char secret = ' '; for (int i = 0; i < a.length; i++) { char c = (char) (secret ^ a[i]); // 进行异或运算 texta.append("" + c); } } if (e.getSource() == button2) { char a[] = texta.getText().toCharArray(); texta.setText(null); int n; char secret = ' '; for (int i = 0; i < a.length; i++) { char c = (char) (secret ^ a[i]); // 再次异或运算,即还原 texta.append("" + c); } } } } public class E1 { public static void main(String args[]) { Myframe frame = new Myframe("加密与解密"); }; } 3.3程序执行界面 图 2 进入程序的主页面 图2 输入内容 图3 加密之后 图4解密之后 4 总结与展望 通过这次课程设计,我学到了很多。课本的内容虽说是基础,是一切的根本,但是学习基本内容和应用编程,简直就是两个天地。一些编程的思想不是靠基础知识就能学到的,比如文件加密,开始接触到这个题目,第一反应就是,我没学过关于文件加密的内容啊,该怎么办啊。但是当我听了老师的提醒后,才恍然醒悟,加密不一定是你没学的知识,也许它就是用你已经有的知识的变形和应用。所以,知识的应用是灵活多态的。 有些知识虽然我们懂了,但是真正去应用时,却会捉襟见肘。比如一个类的程序段,什么时候该用内部类什么时候该用外部类,我们怎么去权衡。什么样的变量可以在哪个部分去调用,都需要我们在实践应用中去加强认识。不只是通过死记硬背就能灵活应用的。 知识的海洋是无限大的,我们手头中有的资源也是无穷无尽的每次编程,不可能一点问题都没有。总有这样和那样的难题,出现在我们思维的盲区。我们要充分利用好自己的帮助文档和网上的资源,不要太执着于自己的知识层面,出去荡荡资料,会发现原来这个问题如此简单就可以解决。 这次课程设计后,我的学习目标和手段,有了新的改观,不在整天肯书本了,我要用自己学到的知识应用到生活中去编程,去实践,从而磨练自己的编程思维和手法。多看网上的使用编程实例,练习自己的编程思维,学习新方法新思路。 5参考文献 [1] 屈辉立,陈可明,石武信.JSP网站编程教程[M].第1版, 北京:北京希望电子出版社,2005 [2] 白勇.用B/S模式构建在线考试系统[J],重庆电力高等专科学校学报,2003,10(4): 100~130. [3] Jiang Guo,Yuehong Liao,Behzad Parviz.A Survey of J2EE Application Performance Management Systems[J],Proceedings of the IEEE International Conference on Web Services (ICWS'04),2004.6(5):17~32. [4] VB数据库管理范例: 录 第一章 概 论 1 1.1项目名称 1 1.2项目地点 1 1.3区域特点 1 1.4建设规模 1 1.5可行性研究范围 2 1.6项目估算总投资额 3 第二章 项目市场分析 3 2.1####县经济发展趋势分析 3 2.2####县房地产发展概况 4 2.3区域市场分析 10 2.4项目利弊分析 11 第三章 项目定位及销售预测 12 3.1项目定位 12 3.2销售情况预测 14 3.3销售价格预测 14 第四章 项目的工程技术方案 15 4.1总平面及建筑方案 15 4.2结构 16 4.3供配电工程 16 4.4给排水工程 16 4.5人防 17 4.6弱电工程 17 4.7主要设备设施 17 4.8交通与停车 17 4.9环境保护 17 第五章 项目管理与建设进度计划 19 5.1项目运作模式 19 5.2招投标管理 19 5.3工程监理 19 5.4物业管理 19 5.5建设进度计划 19 5.6销售计划 20 第六章 项目营销和招商方案 21 6.1销售、租赁比例 21 6.2运营策略 21 6.3招商策略 22 第七章 投资估算和资金筹措 25 7.1投资估算 25 7.2资金筹措 27 7.3资金平衡计划:见下表 28 第八章 效益分析 29 8.1销售收入、销售税金及附加估算 29 8.2经营成本及费用估算 30 第九章 项目风险及防范措施 31 9.1市场风险 31 9.2筹资风险 31 9.3销售不确定性风险 31 9.4项目开发的风险 32 9.5成本控制的风险 32 第十章 结论及建议 33 10.1结论 33 10.2建议 33
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服