1 一. 实验目的 1. 提高我们的实际操作能力,对一些基础的程序有一个初步的了解。 2. 掌握面向对象的编程思想及 Java 语言程序设计的规律与技巧, 尽可能多的掌握一些基本的方法,为进一步学习 Java 高级应用及今后从事专业工作打下基础。 1 题目内容及要求编程模拟密码攻击的过程, 实现下述功能: (1 )键盘输入 12 位密码,包括字母和数字; (2 )采用穷举法进行攻击,直到破解密码为止, (3 )屏幕输出试验的次数,并输出获得的密码。三. 设计思路在这次实验课中,我学到用简单的方法去做一些日常用到的程序,“破译密码”的程序共有用到两个类三个方法 2 第一个公共类的方法是设计空框架; 第二个类的第一个方法是确定框架的大小、标题,建立面板,里面加入文本框和按钮,并为按钮设置监听器。第二个方法就是破译密码的核心算法啦,里面用到 for 循环语句,在我看来和 C语言的形式差不多。穷举密码很简单,关键是要 用到 if(()==button) 语 句和 (""+n); (x); 意思就是将穷举这个事件添加到按钮上,也就是利用按钮触发该事件。 1 源代码// //是用到的包 import .*; import .*; import .*; import .*; //建立公共类 public class poyi {//创建空框架 public static void main(String[] args) { 3 poyiFrame frame=new poyiFrame(); ();// 设置窗口的最大化、最小化和关闭 ();// 显示框架}}class poyiFrame extends JFrame implements ActionListener {public poyiFrame() {setTitle(" 破译密码");// 设置标题 setSize(300, 200);// 设置框架的大小 JPanel textPanel =new JPanel();// 创建面板 Container contentPane =getContentPane();// 容纳面板 (textPanel); yuanshi =new JPasswordField(20);// 设置密码域--密码不公开 time =new JTextField(20);// 设置普通的文本域--次数 (false);// 不能编辑里面的内容 resultText =new JTextField(20); (false); button=new JButton(" 输出结果"); //将文本域添加到面板中 (yuanshi); (time); (resultText); (button); (this); }public void actionPerformed(ActionEvent e) {if(()==button)// 点击按钮出触发事件{char[] s;//存放密码 String x="";// 将单个密码连接成整体 char[]a={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e', 'f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v', 'w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; s=();// 获取密码 for( i=0;i<;i++) {for(j=0;j<;j++) {n=n+1; 4 if(s[i]==a[j]) x=x+a[j]; }}//将事件添加到相应的文本域 (""+n); r
java课程实验 来自淘豆网m.daumloan.com转载请标明出处.