java课程实验.doc

上传人:pu****.1 文档编号:557478174 上传时间:2024-02-01 格式:DOC 页数:17 大小:398.51KB
返回 下载 相关 举报
java课程实验.doc_第1页
第1页 / 共17页
java课程实验.doc_第2页
第2页 / 共17页
java课程实验.doc_第3页
第3页 / 共17页
java课程实验.doc_第4页
第4页 / 共17页
java课程实验.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《java课程实验.doc》由会员分享,可在线阅读,更多相关《java课程实验.doc(17页珍藏版)》请在金锄头文库上搜索。

1、一 实验目的1.提高我们的实际操作能力,对一些基础的程序有一个初步的了解。2.掌握面向对象的编程思想及Java语言程序设计的规律与技巧,尽可能多的掌握一些基本的方法,为进一步学习Java高级应用及今后从事专业工作打下基础。二实验1题目内容及要求编程模拟密码攻击的过程,实现下述功能:(1)键盘输入12位密码,包括字母和数字;(2)采用穷举法进行攻击,直到破解密码为止, (3)屏幕输出试验的次数,并输出获得的密码。三 设计思路在这次实验课中,我学到用简单的方法去做一些日常用到的程序,“破译密码”的程序共有用到两个类三个方法第一个公共类的方法是设计空框架;第二个类的第一个方法是确定框架的大小、标题,

2、建立面板,里面加入文本框和按钮,并为按钮设置监听器。第二个方法就是破译密码的核心算法啦,里面用到for循环语句,在我看来和C语言的形式差不多。穷举密码很简单,关键是要用到if(e.getSource()=button)语句和time.setText(+n); resultText.setText(x);意思就是将穷举这个事件添加到按钮上,也就是利用按钮触发该事件。四实验1源代码/poyi.java/是用到的包import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;/建立公

3、共类public class poyi /创建空框架public static void main(String args) poyiFrame frame=new poyiFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/设置窗口的最大化、最小化和关闭frame.show();/显示框架class poyiFrame extends JFrame implements ActionListener public poyiFrame()setTitle(破译密码);/设置标题setSize(300, 200);/设置框

4、架的大小JPanel textPanel = new JPanel();/创建面板Container contentPane = getContentPane();/容纳面板contentPane.add(textPanel);yuanshi = new JPasswordField(20);/设置密码域-密码不公开time = new JTextField(20);/设置普通的文本域-次数 time.setEditable(false);/不能编辑里面的内容resultText = new JTextField(20);resultText.setEditable(false); butto

5、n=new JButton(输出结果); /将文本域添加到面板中textPanel.add(yuanshi);textPanel.add(time);textPanel.add(resultText); textPanel.add(button); button.addActionListener(this); public void actionPerformed(ActionEvent e) if(e.getSource()=button)/点击按钮出触发事件 char s;/存放密码 String x=;/将单个密码连接成整体 chara=0,1,2,3,4,5,6,7,8,9,a,b,

6、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 = yuanshi.getPassword();/获取密码 for( i=0;is.length;i+) for(j=0;ja.length;j+) n=n+1; if(si=aj) x=x+aj; /将事件添加到相应的文本域 time.setText(+n); resultText.setText(x); public int i,j,n=0; private JPasswordField

7、 yuanshi;private JTextField time;private JTextField resultText; private JButton button;五运行结果如果将time.setText(“”+n);注释则出现如果将time.setEditable(false);注释则出现六 实验2题目内容及要求编程模拟遗传算法(Genetic Algorithm, GA)实现下述功能:父亲和母亲的染色体CF、CM分别含有23个基因位,每个基因位是一个10,20上的整数,孩子的基因位也是23个,经过父母染色体的交叉和变异获得,交叉和变异过程如下: 交叉:随机产生两个1,23上的整数

8、,在这两个整数位上的基因进行交换,然后选择所有基因位上的数总和最大的染色体C1;变异:随机产生一个1,23上的整数,将该整数位上的基因加上一个-10,10上的随机数,形成孩子的基因C0。要求实现如下功能:(1)键盘输入一个23位的染色体,经过n次的交叉、变异;(2)屏幕输出得到的染色体,要求在面板上的三个文本域分别显示CF、CM、C0。其中n=100, 200, 500。验证孩子的基因是否在父母基因的基础上有所改进。七设计思路这次实验用到了一个新的布局器GridLayout,这个布局器可以将面板根据文本框的大小均匀的分成几个区域,而BorderLayout只能将面板分成东西南北中五个区域,而且

9、会根据文本域字数的多少自动调节大小,为文本的美观造成很大的障碍。八实验2源代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*; public class heredity /建立框架 public static void main (String args) heredityFrame frame=new heredityFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.sho

10、w(); class heredityFrame extends JFrame implements ActionListener/设置框架public heredityFrame()setTitle(模拟遗传);/设置题目setSize(480,250);/设置尺寸大小 setResizable(false);/尺寸不能改变Container contentPane =getContentPane();JPanel textPanel =new JPanel();/设置文本域面板 JPanel buttonPanel =new JPanel();/设置按钮面板contentPane.add(

11、textPanel);contentPane.add(buttonPanel,BorderLayout.SOUTH);/将面板添加到文本框最下面fatherText=new JTextField( ,40);matherText=new JTextField( ,40);childText=new JTextField( ,40); childText.setEditable(false);/内容不可编辑baText = new JTextField( 父亲的染色体,20); baText.setEditable(false);maText = new JTextField( 母亲的染色体,2

12、0); maText.setEditable(false);boyText = new JTextField( 孩子的染色体,20); boyText.setEditable(false); /将文本域添加到面板中textPanel.add(baText);textPanel.add(fatherText);textPanel.add(maText);textPanel.add(matherText);textPanel.add(boyText);textPanel.add(childText); button1 =new JButton(100次变换);/设置按钮1中的字buttonPane

13、l.add(button1);/将其添加到按钮的面板 button1.addActionListener(this);/为按钮设置监听器button1.setForeground(Color.red);/为按钮中的字设置颜色 button2 =new JButton(200次变换);buttonPanel.add(button2); button2.addActionListener(this);button2.setForeground(Color.blue); button3 =new JButton(500次变换);buttonPanel.add(button3); button3.addActionListener(this);button

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号