已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JAVA课程设计报告题 目加密与解密院 系班 级学 号姓 名13目录1设计分析511 设计目的51.2设计题目51.3设计任务52 设计内容62.1需求分析62.1.1问题描述62.1.2基本要求62.2程序流程73程序相关问题83.1程序解决的核心问题83.2程序源代码83.3程序执行界面124 总结与展望145参考文献151设计分析11 设计目的面向对象程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。1.2设计题目采用图形用户界面,建立菜单。(1)给定任意一个文本文件,进行加密,生成另一个文件。(2)对加密后的文件还原。1.3设计任务 通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用java语言进行面向对象程序设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。2 设计内容 2.1需求分析2.1.1问题描述 通过编程,实现“加密与解密”功能。给定任意一个文本文件,进行加密,生成另一个文件。对加密后的文件还原。2.1.2基本要求采用图形用户界面,建立菜单 (1)给定任意一个文本文件,进行加密,生成另一个文件。(2)对加密后的文件还原。 2.2程序流程 开始点击浏览读取文件输入密钥密钥非空YN加/解密是否存在此文件的加/解密文件N加/解密成功NY图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 ai); / 进行异或运算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 ai); / 再次异或运算,即还原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): 100130. 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国云教育项目经营分析报告
- 2025中国生物技术发展中心博士后科研工作站博士后研究人员招收2人考试笔试备考题库及答案解析
- 2026年中国电话应答机项目经营分析报告
- 2025河北廊坊香河县人力资源和社会保障局招聘公益性岗位12人考试笔试备考题库及答案解析
- 2025江苏徐州市泉山区城北社区服务中心招聘12人考试笔试备考试题及答案解析
- 销售数据驱动的决策方法论
- 2026年中国铁路武汉局集团有限公司招聘高校毕业生726人(信阳有岗)考试笔试备考试题及答案解析
- 2025山西忻州静乐县专职网格员选聘社区专职工作人员15人笔试考试参考试题附答案解析
- 青岛西海岸新区公开招聘2026届国家公费师范毕业生(80人)笔试考试备考试题及答案解析
- 2025江苏徐州市“三支一扶”计划服务期满考核合格人员专项招聘25人笔试考试参考试题及答案解析
- 2026年长沙职业技术学院单招职业倾向性测试必刷测试卷附答案
- 软件测试与质量保证课件 第1章 软件测试基础
- 2025江苏南通市通州区石港镇招聘便民服务中心人员2人考试笔试备考题库及答案解析
- 电力设计安全相关课件
- 2025四川南充市嘉陵城市发展集团有限公司招聘10人备考考试题库附答案解析
- 芯片科普课程介绍
- 《公路工程集料试验规程》JTG 3432-2024新旧规范对比(细集料、填料)
- 企业建扶贫车间申请书
- 医药代表经验分享
- 季度安全生产工作会议
- Unit1作文专项人教版九年级英语全册
评论
0/150
提交评论