




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软 件 学 院课程设计报告书课程名称 面向对象程序设计课程设计 设计题目 文件加密与解密 专业班级 学 号 姓 名 指导教师 2013 年 6 月目录1 设计时间25 设计内容22 设计目的23设计题目24设计任务25.1需求分析25.1.1问题描述25.1.2基本要求25.2程序流程35.3程序解决的核心问题45.4程序源代码45.5程序执行界面86 总结与展望12参考文献131 设计时间2013年6月8日-2013年6月14日2 设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。3设计题目采用图形用户界面,建立菜单。(1)给定任意一个文本文件,进行加密,生成另一个文件。(2)对加密后的文件还原。4设计任务 通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用java语言进行面向对象程序设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。5 设计内容 5.1需求分析5.1.1问题描述 通过编程,实现“加密与解密”功能。给定任意一个文本文件,进行加密,生成另一个文件。对加密后的文件还原。5.1.2基本要求采用图形用户界面,建立菜单 (1)给定任意一个文本文件,进行加密,生成另一个文件。(2)对加密后的文件还原。 5.2程序流程 开始点击浏览读取文件输入密钥密钥非空YN加/解密是否存在此文件的加/解密文件N加/解密成功NY图1 程序流程5.3程序解决的核心问题利用文件的输入输出流,按字符读取文件内容,把读取的内容,注意进行处理后,在重新写入新文件,实现文件加密。用到的类:FileRead,FileWrite.添加窗体并布置面板,中间用到了,弹出对话框的事件。设计的类有,Frame,Panel,J JOptionPane。文件选择器的载入。通过为按钮添加事件监听,来实现文件选择器的触发操作。用到的类为:JFileChooser。自定义异常的种类,实现异常的灵活应用。适当的调整程序的终止点或者循环点。5.4程序源代码import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;public class code Frame f;Panel p1, p2;Label l1, l2;Button key, unkey,scan;TextField t1, t2;TextArea ta;String path;String FileName;public code() /窗体的基本构架和面板布置 f = new Frame(文件加密);f.setLayout(new BorderLayout();p1 = new Panel();p2 = new Panel();l1 = new Label(选择路径);scan = new Button(浏览);l2 = new Label(密钥);key = new Button(加密);unkey = new Button(解密);t1 = new TextField(30);t2 = new TextField(20);ta = new TextArea();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(new win();scan.addActionListener(new scanner();key.addActionListener(new keyer();unkey.addActionListener(new unkeyer();public static void main(String args)code code1 = new code(); /主函数入口class win extends WindowAdapter /关闭窗口的监听事件public void windowClosing(WindowEvent e)System.exit(0);class scanner implements ActionListener /浏览按钮的监听事件public void actionPerformed(ActionEvent e)JFileChooser file = new JFileChooser(.);int result = file.showOpenDialog(null);/0代表选择了文件if (result = JFileChooser.APPROVE_OPTION)FileName = file.getSelectedFile().getName();path = file.getSelectedFile().getAbsolutePath();t1.setText(path);FileReader reader = null;tryreader = new FileReader(path);int tempchar;ta.setText();while (tempchar = reader.read() != -1)char n=(char)tempchar;char m = n;String M = new String(m,0,1);ta.append(M);reader.close();catch (Exception e1)ta.append(文件读取出错!);class keyer implements ActionListener / 加密按钮的监听事件public void actionPerformed(ActionEvent e) FileReader read1 = null;FileWriter write1 = null;int n;tryString a = t1.getText();String b = t2.getText();File Exist = new File(加密+FileName);if (a.equals()throw new MyException1(请选择路径!);if (Exist.exists()throw new MyException1(已存在加密文件,请先删除,再进行加密!);if (b.equals()throw new MyException1(请输入密钥!);else n=Integer.parseInt(t2.getText();tryread1 = new FileReader(path);write1 = new FileWriter(加密+FileName, true);int i;while (i = read1.read() != -1)write1.write(char)(i+n);write1.close();JOptionPane.showMessageDialog(null, 加密成功,祝贺您,JOptionPane.PLAIN_MESSAGE);ta.setText();t2.setText();catch (IOException e1)catch (MyException1 e2) class unkeyer implements ActionListener /解密按钮监听事件public void actionPerformed(ActionEvent e)FileReader read1 = null;FileWriter write1 = null;int n;tryString a = t1.getText();String b = t2.getText();File Exist = new File(解密+FileName); if (a.equals() throw new MyException1(请选择路径!); if (Exist.exists() throw new MyException1(已存在解密密文件,请先删除,再进行解密!); if (b.equals() throw new MyException1(请输入密钥!); else n = Integer.parseInt(t2.getText(); try ta.setText();t2.setText(); read1 = new FileReader(path); write1 = new FileWriter(解密+FileName, true); int i; while (i = read1.read() != -1) write1.write(char)(i-n); char m =(char)(i-n); String M = new String(m, 0, 1); ta.append(M); write1.close(); JOptionPane.showMessageDialog(null, 解密成功, 祝贺您, JOptionPane.PLAIN_MESSAGE); catch (IOException e1) catch(MyException1 e2)class MyException1 extends Exceptionpublic MyException1(String message) 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): 100130. 3 J
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年虚拟现实行业虚拟现实与增强现实技术应用前景与发展研究报告
- 2025年网络科技行业区块链数字货币应用前景研究报告
- 2025年生物科技行业创新药品研发与市场前景研究报告
- 2025年电子制造业柔性电子技术前景展望研究报告
- 商场员工安全培训方案课件
- 2025年汽车行业智能交通系统发展前景研究报告
- 山东省2025年潍坊高密市面向“三支一扶”人员定向招聘事业单位工作人员笔试历年参考题库附带答案详解
- 商场保安员安全培训课件
- 国家事业单位招聘2025中国东航一二三航空有限公司校园招聘笔试历年参考题库附带答案详解
- 南江县2025上半年四川巴中市南江县县级机关事业单位考调(选聘)27人笔试历年参考题库附带答案详解
- 民航局聘用合同模板
- 某市化学品物流仓储交易中心项目可行性研究报告
- 电厂运输煤炭合同模板
- 城镇供水排水行业职业技能竞赛化学检验员(排水化验员)赛项理论考试题库(含答案)
- 2024年工业和信息化局安全生产培训工作方案策划方案
- 江苏省镇江市外国语学校2024-2025学年七年级上学期第一次月考数学试题(原卷版)
- 护理疑难病例讨论课件模板
- 同步课件4:改革开放和社会主义现代化建设的巨大成就
- DL-T-1878-2018燃煤电厂储煤场盘点导则
- 【顺丰控股财务报表探析探究14000字(论文)】
- 【农村电商发展探究文献综述与理论基础4500字】
评论
0/150
提交评论