ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:373.52KB ,
资源ID:7836949      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7836949.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java课程设计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java课程设计报告.docx

1、java课程设计报告课程设计报告 设计题目: 图书管理系统 学院、系: 电子与信息工程学院 专业班级: 计算机102班 学生姓名: 王喜龙 指导教师: 龙艳彬 成 绩: 2012年-2013年第一学期 第10周摘 要随着网络技术的不断发展,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法有多种,常见的有RSA、DES、MD5等。但是这些算法虽然原理简单,但具体实现起来却非常繁琐复杂,故而本程序设计对文件的加密使用的是最基础方法。Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、

2、高性能、分布式和动态等主要特点。Java是一门很优秀的编程语言,是目前软件设计中极为健壮的编程语言。Java不仅可以用来开发大型的应用程序,而且特别适合于Internet的应用开发。Java确实具备了“一次写成,处处运行”的特点,所以,Java已经成为网络时代最重要的编程语言之一。本程序充分利用Java语言的特点,针对当下社会比较重视的文件加密,设计了本程序。使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,满足了用户对文件安全性的需求。关键词:JAVA ; 加密; 解密;一、设计目的java程序设计是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进

3、行的一次较全面的综合练习。其目的在于通过实践加深学生对java面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。与此同时还培养学生在项目开发中团队合作精神、创新意识及能力。二、设计目的与意义目的: 保密性:防止用户的文档或数据被他人随意读取。广泛性:可以对所有形式的文件进行加密解密,如:文档,可执行文件等等。数据完整性

4、:防止数据被更改,加密解密后不改变原数据。 意义: 随着计算机的广泛应用,计算机信息的保密问题显得越来越重要。数据保密变换,或密码技术,是对计算机信息进行保护的最实用最可靠的方法。设计本系统可以对电脑中的任意文件进行加密,保证了计算机中信息的安全性、完整性。通过加密自己想加密的文件,防止他人偷窥,有利的保护了个人隐私。三、设计内容3.1需求分析3.1.1问题描述(1)给定任意一个文本文件,进行加密,生成另一个文件。(2)对加密后的文件还原。3.1.2基本要求采用图形用户界面,建立菜单。3.2总体设计3.2.1 包的描述导入了java.awt; java.awt.event; java.io;

5、javax.swing等包。3.2.2 类的描述Jiami类:继承JFrame类;有构造方法jiami(),方法void actionPerformed(ActionEvent event),方法void jian(),方法void shuruwenjianzhong(),方法void qu(),主方法static void main(String args),方法void baocun()。AA类:实现了Serializable接口,用来对象系列化,把文本内容变为二进制的数据流;有构造方法AA(String a),构造方法AA(),有方法int getShu(),方法void setShu(

6、int shu)。四、概要设计4.1类的定义:public class jiami extends JFrame ; class AA implements Serializable;4.2设计内容 设计这个系统的主要目的是实现对文件的加密与解密,防止用户的标识或数据被读取,防止数据被更改,确保数据发自特定的一方。功能模块:设计的系统中共包括两个部分,加密模块,解密模块。加密模块:通过选择计算机中的需要加密的文件把其原始的数字信息(明文),按照加密算法变换成与明文完全不同的数字信息(密文)的过程。解密模块:是通过对已加密的文件(密文),按照解密算法把其还原成原来的数字信息(明文)的过程。4.3

7、模块流程图4.4各个事件响应模块1确定按钮的响应 queding.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) jian(); if (xie.isSelected() shuruwenjianzhong(); if (qu.isSelected() qu(); );2 选择模块同上个文件保存模块类似,依旧在选择菜单项“打开”后,查找读入文件,读取字符流,弹出“打开对话框”,从而可实现获取文件。 出口值:被选文件的路径 xuanz.addActionListener(n

8、ew ActionListener() public void actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); if (fileChooser.showOpenDialog( jiami.this) = JFileChooser.APPROVE_OPTION) String fileName = fileChooser.getSelected

9、File().getAbsolutePath(); lujing.setText(fileName); );3 加密与解密模块解密操作模块解密操作其实同加密操作相同,依旧首先打开加密后的文件,使其显示在文本区中,输入加密时的密码,即可得到解密后的文件,再显示到“文件浏览窗口”中。 jiemi.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) ObjectInputStream input; try input = new ObjectInputStream(new File

10、InputStream(lujing.getText(); int mima = Integer.parseInt(password.getText(); AA ac = (AA) input.readObject(); if (ac.getShu() = mima) area.setText(ac.cc); shuruwenjianzhong(); JOptionPane.showMessageDialog(null, 解密成功!); else JOptionPane.showMessageDialog(null, 错误的密码!); catch (Exception e) area.setT

11、ext(无法解密); );加密操作模块本程序采用简单的加密方法,即把从文本区域获得的文本文件,初始化,存放到一个对象的cc属性中,然后用ObjectOutputStream.writeObject()方法把一个实例的对象以文件的形式保存到文件上,以实现加密的效果。 jiami.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) AA a = new AA(area.getText(); password.setText(a.shu + ); try ObjectOutputS

12、tream output = new ObjectOutputStream( new FileOutputStream(lujing.getText(); output.writeObject(a); output.flush(); output.close(); qu(); baocun(); catch (Exception e) area.setText(必须选择加密文件保存地址,文件不存在或者无法加密文件,加密文件不能含有换行); );4.5界面设计在图形用户界面,设置了一个面板,并分别设置显示其组件的布局。设置了四个按钮组件,分别为“选择”,“加密”,“解密”和“确定”;设置两个文本

13、框,分别为“路径”和“密码”;创建一个文本区域,用取出和写入文件,这就是整个图形用户界面。 此外,还添加了一个窗口事件windowClosing,可以关闭运行的程序。 显示页面选择所要加密的文本文件 取出加密前文本文件的内容 加密后界面 解密成功后的界面4.6测试与分析(1)不输入路径的情况 不输入路径时页面(2)路径输入错误 路径错误页面(3)密码错误 密码错误页面五 总结与展望在设计过程中,我们必须持着严谨认真的态度和作风。每一个细节都需要高度重视,如果不认真思考决策,就会出现或大或小的错误。若早期的错误隐藏下来,没被发现,就会对后面的工作产生很大的影响,甚至需要从头开始。在设计过程中,我

14、们不断发现错误,不断改正错误,不断领悟,不断获取。从中,我懂得了在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能获得最终的胜利。不然,将永远不能获得成功,也不能得到社会及他人对自己的认可!课程设计诚然是一门专业课,让我的专业知识以及专业技能上得到提升,同时又是一门讲道课,一门辩思课,给了我许多道、很多思,给了我莫大的空间。我认为,在此次实践中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。而这正是以后最实用的知识。要面对社会的挑战,只有不断的学习、

15、实践,再学习、再实践。我想,以后不管有多苦,我们都要学会变苦为乐,从中寻找乐趣。通过此次的课程设计,我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要肯花时间去认真钻研,动脑思考,动手实践,就没有弄不懂的知识。六 参考文献Java面向对象程序设计/邱少明主编.北京:清华大学出版社;北京交通大学出版社,2009.8Java安全性编程实例/徐迎晓编著.北京:清华大学出版社;2003.4Java数值计算算法编程/周长发著.北京:电子工业出版社;2007.1附录 源代码import java.awt.*;import java.awt.event.*;import java.io.*

16、;import javax.swing.*;public class jiami extends JFrame JLabel jlabel1, jlabel2;JButton queding, xuanz, jiami, jiemi;JTextField lujing, password;JTextArea area;JRadioButton qu, xie;ButtonGroup fz;File f;int shu1;public jiami() Container c = getContentPane();/容器类对象 JPanel jp1 = new JPanel(); jlabel1

17、= new JLabel(输入路径); lujing = new JTextField(15); xuanz = new JButton(选择); jp1.add(jlabel1); jp1.add(lujing); jp1.add(xuanz); c.add(jp1, BorderLayout.NORTH); area = new JTextArea(); c.add(new JScrollPane(area), BorderLayout.CENTER); xie = new JRadioButton(写入); qu = new JRadioButton(取出); fz = new Butt

18、onGroup(); fz.add(qu); fz.add(xie); jlabel2 = new JLabel(密码); password = new JTextField(15); jiami = new JButton(加密); jiemi = new JButton(解密); JPanel jp4 = new JPanel(); jp4.setLayout(new GridLayout(2, 1, 5, 5); JPanel jp2 = new JPanel(); jp2.add(jlabel2); jp2.add(password); jp2.add(jiami); jp2.add(

19、jiemi); jp4.add(jp2); JPanel jp3 = new JPanel(); queding = new JButton(确定); jp3.add(qu); jp3.add(xie); jp3.add(queding); jp4.add(jp3); c.add(jp4, BorderLayout.SOUTH); queding.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) jian(); if (xie.isSelected() shuruwenji

20、anzhong(); if (qu.isSelected() qu(); ); xuanz.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) JFileChooser fileChooser = new JFileChooser(); / 实例化文件选择器 fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); / 设置文件选择模式,此处为文件和目录均可 if (fileChooser.sh

21、owOpenDialog( jiami.this) = JFileChooser.APPROVE_OPTION) / 弹出文件选择器,并判断是否点击了打开按钮 String fileName = fileChooser.getSelectedFile().getAbsolutePath(); / 得到选择文件或目录的绝对路径 lujing.setText(fileName); ); jiemi.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) ObjectInputStre

22、am input; try input = new ObjectInputStream(new FileInputStream(lujing.getText(); int mima = Integer.parseInt(password.getText(); AA ac = (AA) input.readObject(); if (ac.getShu() = mima) area.setText(ac.cc); shuruwenjianzhong(); JOptionPane.showMessageDialog(null, 解密成功!); else JOptionPane.showMessag

23、eDialog(null, 错误的密码!); catch (Exception e) / e.printStackTrace(); area.setText(无法解密); ); jiami.addActionListener(new ActionListener() public void actionPerformed(ActionEvent event) AA a = new AA(area.getText(); password.setText(a.shu + ); try ObjectOutputStream output = new ObjectOutputStream( new F

24、ileOutputStream(lujing.getText(); output.writeObject(a); output.flush(); output.close(); qu(); baocun(); catch (Exception e) / e.printStackTrace(); area.setText(必须选择加密文件保存地址,文件不存在或者无法加密文件,加密文件不能含有换行); ); setSize(380, 350); setVisible(true);public void jian() f = new File(lujing.getText();/读取读取指定路径 t

25、ry f.createNewFile();/用文件对象创建一个文件 catch (IOException e) JOptionPane.showMessageDialog(null, 路径错误!); public void shuruwenjianzhong() try FileOutputStream out = new FileOutputStream(f); byte buf = area.getText().getBytes(); try out.write(buf); out.flush(); out.close(); catch (IOException e) / e.printS

26、tackTrace(); catch (FileNotFoundException e) / e.printStackTrace(); public void qu() try FileInputStream in = new FileInputStream(f); int a = (int) f.length(); byte buf = new bytea;/创建一个数组存储文件内的内容 try int len = in.read(buf); if (len != -1) area.setText(new String(buf, 0, len); else JOptionPane.showM

27、essageDialog(null, 文件内容为空!); catch (IOException e) / e.printStackTrace(); catch (FileNotFoundException e) / e.printStackTrace(); public static void main(String arge) jiami s = new jiami(); s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);public void baocun() AA a = new AA(); shu1 = a.getShu(); a.shu

28、 = shu1;class AA implements Serializable /一个类的接口是对象能够被序列化String cc;public int shu;public AA() public int getShu() return shu;public void setShu(int shu) this.shu = shu;public AA(String a) cc = a; int zu = 1, 2, 3, 4, 5, 6, 7, 8, 9 ; for (int i = 0; i 1000; i+) /做的是整数加法运算所以是一千个数 int second = (int) (Math.random() * 9); shu += zusecond;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1