Java程序设计课程.docx

上传人:b****8 文档编号:11155496 上传时间:2023-02-25 格式:DOCX 页数:20 大小:60.68KB
下载 相关 举报
Java程序设计课程.docx_第1页
第1页 / 共20页
Java程序设计课程.docx_第2页
第2页 / 共20页
Java程序设计课程.docx_第3页
第3页 / 共20页
Java程序设计课程.docx_第4页
第4页 / 共20页
Java程序设计课程.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

Java程序设计课程.docx

《Java程序设计课程.docx》由会员分享,可在线阅读,更多相关《Java程序设计课程.docx(20页珍藏版)》请在冰豆网上搜索。

Java程序设计课程.docx

Java程序设计课程

 

《Java程序设计课程》

实验报告

 

姓名:

学号:

专业:

电子商务

班级:

Java程序设计0001班

 

二零一一年十二月

 

实验一

实验题目:

编程模拟遗传算法的实现

实验目的:

通过实验掌握面向过程的程序设计方法,掌握循环、分支、选择等结构化设计思想。

掌握基础的数据结构和数组对象的实现方法。

实验内容:

给定义一个10元素的数组,分别设计交叉、变异算子,并迭代100次,200次,分别输出相应的结果

importjavax.swing.*;

importjava.util.*;

 

publicclassYiChuanSuanFa

{

publicstaticvoidmain(Stringargs[])

{

intt=0,times;

int[]A=newint[11];

int[]B=newint[11];

for(inti=1;i

{

A[i]=(int)(Math.random()*10);

}

for(intj=1;j

{

B[j]=(int)(Math.random()*10);

}

System.out.println("parents;");

System.out.println("A:

"+A[1]+A[2]+A[3]+A[4]+A[5]

+A[6]+A[7]+A[8]+A[9]+A[10]

+"B:

"+B[1]+B[2]+B[3]+B[4]+B[5]

+B[6]+B[7]+B[8]+B[9]+B[10]);

 

do{

cross(A,B);

variation(A);

variation(B);

t++;

}while(t<100);

System.out.println("children:

");

System.out.println("C:

"+A[1]+A[2]+A[3]+A[4]+A[5]

+A[6]+A[7]+A[8]+A[9]+A[10]

+"D:

"+B[1]+B[2]+B[3]+B[4]+B[5]

+B[6]+B[7]+B[8]+B[9]+B[10]);

System.out.println("crossover:

"+t+"次");

do{

cross(A,B);

variation(A);

variation(B);

t++;

}while(t<200);

System.out.println("children:

");

System.out.println("E:

"+A[1]+A[2]+A[3]+A[4]+A[5]

+A[6]+A[7]+A[8]+A[9]+A[10]

+"F:

"+B[1]+B[2]+B[3]+B[4]+B[5]

+B[6]+B[7]+B[8]+B[9]+B[10]);

System.out.println("crossover:

"+t+"次");

}

publicstaticvoidcross(inta[],intb[])

{

int[]m=newint[5];

for(intn=1;n

{

m[n]=(int)(Math.random()*10)+1;

}

intk=a[(m[1])];

a[(m[1])]=b[(m[2])];

b[(m[2])]=k;

k=a[(m[3])];

a[(m[3])]=b[(m[4])];

b[(m[4])]=k;

}

publicstaticvoidvariation(intc[])

{

for(intz=0;z<2;z++)

{

inti=1+(int)(Math.random()*10);

c[i]+=(int)(Math.random()*11)-5;

if(c[i]>=10)c[i]=9;

if(c[i]<0)c[i]=0;

}

}

publicstaticintaSum(intd[])

{intsum=0;

for(inti=1;i

{

sum+=d[i];

}

returnsum;

}

}

实验二芯片制造问题

实验要求:

采用JAVA语言编程,将芯片预烧问题进行优化,获得低成本的制造方法。

分别产生20个、50个和100个芯片的制造问题,然后运行程序,输出最终的制造方案。

实验内容:

芯片制造企业有20个芯片需要进行预烧,这20个芯片的大小分别为:

sizeofj={12,2,6,8,1,11,4,2,5,15,3,8,2,10,15,5,7,11,1,2}。

它们的预烧时间分别为timeofj={9,13,2,19,4,9,18,23,7,13,2,24,3,17,16,4,17,10,

3,5}。

芯片分批在预烧炉中加工,企业现有一台预烧炉,体积为20,每一批芯片在预烧过程中不能中断,需所有芯片均达到预烧时间后才能取出芯片,请设计制造方案,使得总预烧时间最短。

附注:

什么是预烧?

芯片在制造过程的最后一个环节,是将芯片放在预烧炉中,经过高温、高压的处理,发现其中有问题的芯片,从而保证出产芯片的合格率。

如何编程实现?

(1)用流程图表示算法实现的过程,每个环节注明条件、命令;

(2)根据流程图确定程序的实现过程,注意循环不能出错。

importjava.util.*;

publicclassXPZZ

{

publicstaticvoidmain(String[]args)

{

intsizeArray[]=newint[20];

inttimeArray[]=newint[20];

inttempArray[]=newint[20];

for(inti=0;i<20;i++)

{

timeArray[i]=(int)(Math.random()*15);

sizeArray[i]=(int)(Math.random()*20);

}

System.arraycopy(sizeArray,0,tempArray,0,20);

Arrays.sort(sizeArray);

intsum=0,YSSJ1=0,YSSJ=0;//预烧时间。

intj=0;

inta[]=newint[20];//用于储存需要预烧几次.

for(inti=0;i<20;i++)

{

sum+=sizeArray[i];

if(sum>20)

{

a[j++]=i-1;

sum=0;

}

if(i==19)

{

a[j]=19;

}

}

intc[]=newint[20];//用于比较.

intn=0;

intb[]=newint[20];//用于储存每次预烧的时间.

for(intk=0;k

{

for(intm=0;m

{

for(intu=0;u<20;u++)

{

if(sizeArray[k]==tempArray[u])

{

c[m]=timeArray[u];

break;

}

}

if(m==0)

{

continue;

}

if(c[m]>=c[m-1])

{

b[k]=c[m];

}

else

{

b[k]=c[m-1];

}

}

n++;

}

for(inti=0;i

{

YSSJ1+=b[i];

}

System.out.println("对尺寸从小到大排序预烧时间="+YSSJ1);

sum=0;

intYSSJ2=0;

intantiSizeArray[]=newint[20];//将尺寸按从大到小排序后的尺寸数组.

for(inti=0;i<20;i++)

{

antiSizeArray[i]=sizeArray[19-i];

}

for(inti=0;i<20;i++)

{

sum+=antiSizeArray[i];

if(sum>20)

{

a[j++]=i-1;

sum=0;

}

if(i==19)

{

a[j]=19;

}

}

for(intk=0;k

{

for(intm=0;m

{

for(intu=0;u<20;u++)

{

if(antiSizeArray[k]==tempArray[u])

{

c[m]=timeArray[u];

break;

}

}

if(m==0)

{

continue;

}

if(c[m]>=c[m-1])

{

b[k]=c[m];

}

else

{

b[k]=c[m-1];

}

}

n++;

}

for(inti=0;i

{

YSSJ2+=b[i];

}

System.out.println("对尺寸从大到小排序预烧时间="+YSSJ2);

sum=0;

intYSSJ3=0;

System.arraycopy(tempArray,0,sizeArray,0,20);

System.arraycopy(timeArray,0,tempArray,0,20);

Arrays.sort(timeArray);

j=0;

intd[]=newint[20];

for(intk=0;k<19;k++)

{

for(intu=0;u<19;u++)

{

if(timeArray[k]==tempArray[u])

{

sum+=tempArray[u];

break;

}

}

if(sum>20)

{

d[j++]=k-1;

}

if(k==19)

{

d[j]=19;

}

}

for(inti=0;i

{

YSSJ3+=timeArray[d[i]];

}

System.out.println("timeArray1-20="+YSSJ3);

sum=0;

intYSSJ4=0;

System.arraycopy(tempArray,0,sizeArray,0,20);

System.arraycopy(timeArray,0,tempArray,0,20);

Arrays.sort(timeArray);

intantiTimeArray[]=newint[20];

for(inti=0;i<19;i++)

{

antiTimeArray[i]=timeArray[19-i];

}

j=0;

inte[]=newint[20];

for(intk=0;k<19;k++)

{

for(intu=0;u<19;u++)

{

if(antiTimeArray[k]==tempArray[u])

{

sum+=tempArray[u];

break;

}

}

if(sum>20)

{

e[j++]=k-1;

}

if(k==19)

{

e[j]=19;

}

}

for(inti=0;i

{

YSSJ4+=antiTimeArray[e[i]];

}

System.out.println("timeArray1-20="+YSSJ4);

if(YSSJ1<=YSSJ2)

{

if(YSSJ1<=YSSJ3)

{

if(YSSJ1<=YSSJ4)

{

YSSJ=YSSJ1;

System.out.println("minYSSJ="+YSSJ);

}

else

{

YSSJ=YSSJ4;

System.out.println("minYSSJ="+YSSJ);

}

}

else

{

if(YSSJ3<=YSSJ4)

{

YSSJ=YSSJ3;

System.out.println("minYSSJ="+YSSJ);

}

else

{

YSSJ=YSSJ4;

System.out.println("minYSSJ="+YSSJ);

}

}

}

else

{

if(YSSJ2<=YSSJ3)

{

if(YSSJ2<=YSSJ4)

{

YSSJ=YSSJ2;

System.out.println("minYSSJ="+YSSJ);

}

else

{

YSSJ=YSSJ4;

System.out.println("minYSSJ="+YSSJ);

}

}

else

{

if(YSSJ3<=YSSJ4)

{

YSSJ=YSSJ3;

System.out.println("minYSSJ="+YSSJ);

}

else

{

YSSJ=YSSJ4;

System.out.println("minYSSJ="+YSSJ);

}

}

}

}

}

实验三密码攻击

实验目的:

掌握图形界面设计的方法,能够将外部界面设计和内部的数据处理结合起来机型编程。

实验要求:

模拟电子商务中的密码安全问题,编程实现密码攻击的过程。

实验内容:

编程模拟密码攻击的过程,实现下述功能:

(1)输出下述窗口:

组件包括:

标题为Login;

第一行提示“Inputpassword:

”;

第二行为文本区,用户在其中输入密码,当用户输入键盘输入10位密码,包括字母和数字,在面板当中显示为一串****;

第三行提示“Checkedpassword:

第四行为验证结果:

用户点击“登录”按钮,如果密码正确,则提示“PASS!

”;否则提示“WRONG!

最下方为按钮组件,名称为“登录”。

(2)密码在程序中设定,分别设定为下述三种密码进行三个实验:

密码为5位数字;

密码为10位数字;

密码为10位,其中包含数字和字母。

importjava.awt.event.*;

importjava.awt.*;

importjavax.swing.*;

importjavax.swing.event.*;

publicclassLogin

{

publicstaticvoidmain(String[]args)

{

LoginFrameframe=newLoginFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

classLoginFrameextendsJFrame

{

publicLoginFrame()

{

setTitle("Login");

setSize(WIDTH,HEIGHT);

ContainercontentPane=getContentPane();

JPaneltextPanel=newJPanel();

JLabelinputPassword=newJLabel("Inputpassword:

",JLabel.CENTER);

myPassword=newJPasswordField(20);

textPanel.add(inputPassword);

textPanel.add(myPassword);

JLabelcheckedPassword=newJLabel("Checkedpassword:

",JLabel.LEFT);

checkPassword=newJTextField(20);

checkPassword.setEditable(false);

textPanel.add(checkedPassword);

textPanel.add(checkPassword);

loginButton=newJButton("登录",newImageIcon("login.gif"));

loginButton.addActionListener(newLoginAction());

textPanel.add(loginButton);

contentPane.add(textPanel);

}

privateclassLoginActionimplementsActionListener

{

publicvoidactionPerformed(ActionEventevent)

{

char[]s=myPassword.getPassword();

Stringgets=newString(s);

if(gets.equals(CHECKPASSWORD))

{

checkPassword.setText("PASS!

");

}

else

{

checkPassword.setText("WRONGPASSWORD!

");

}

}

}

publicstaticfinalintWIDTH=280;

publicstaticfinalintHEIGHT=180;

publicstaticfinalStringCHECKPASSWORD="12345";

privateJPasswordFieldmyPassword;

privateJTextFieldcheckPassword;

privateJButtonloginButton;

}

设置密码:

publicstaticfinalString

CHECKPASSWORD="12345";

设置密码:

publicstaticfinalStringCHECKPASSWORD=“1234567890”;

设置密码:

publicstaticfinalStringCHECKPASSWORD=“abcdefg234”

体会:

Java程序设计教程按计划结束了,有点快,但是很有意义,老师让我们设计三个课程实验,开始的时候,我们开始分组,很荣幸我和我的组员一直相互协调合作,分工明确,彼此之间非常融洽。

俗话说:

团结就是力量,我们分工合作,一人负责查课本上的相关知识,一个人从XX上搜索相关程序,我们得到足够多的资料后,仔细研究并开展了讨论,然后开始著手编写程序,等程序编写好了,运行时出现错误,我们一起解决错误,或找指导老师帮助解决。

整个过程有序且有效地进行着,开始的时候,我们都认为我们不可能作出这样的程序,但事实证明我们团结在一起的强大。

Java是一门很有意思的课,其强大的功能征服了我,我开始慢慢喜欢上了它,我希望继续努力学习Java的相关知识,并能在其领域达到一定的高度。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

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

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