java上机实践567.docx

上传人:b****5 文档编号:7383501 上传时间:2023-01-23 格式:DOCX 页数:32 大小:189.58KB
下载 相关 举报
java上机实践567.docx_第1页
第1页 / 共32页
java上机实践567.docx_第2页
第2页 / 共32页
java上机实践567.docx_第3页
第3页 / 共32页
java上机实践567.docx_第4页
第4页 / 共32页
java上机实践567.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

java上机实践567.docx

《java上机实践567.docx》由会员分享,可在线阅读,更多相关《java上机实践567.docx(32页珍藏版)》请在冰豆网上搜索。

java上机实践567.docx

java上机实践567

上机实践5字符串、时间与数字

●实验1String类的常用方法

1.实验目的

掌握String类的常用方法

2.实验要求

编写一个java应用程序,判断两个字符串是否相同,判断字符串的前缀、后缀是否和某个字符串相同,按字典顺序比较两个字符串的大小,检索字符串,创建子字符串,将数字型字符串转换为数字,将字符串存放到数组中,用字符数组创建字符串。

3.程序源代码

publicclassStringExample

{

publicstaticvoidmain(String[]args)

{

Strings1=newString("youareastudent");

Strings2=newString("howareyou");

if(s1.equals(s2))

{

System.out.println("s1与s2相同");

}

else

{

System.out.println("s1与s2不同");

}

Strings3=newString("22030219851022024");

if(s3.startsWith("220302"));

{

System.out.println("吉林省的身份证");

}

Strings4=newString("你"),s5=newString("我");

if((pareTo(s5))>0)

{

System.out.println("按字典顺序s4大于s5");

}

else

{

System.out.println("按字典顺序s4小于s5");

}

intposition=0;

Stringpath="c:

\\java\\jsp\\A.java";

position=path.lastIndexOf("\\");

System.out.println("c:

\\java\\jsp\\A.java中最后出现\\的位置:

"+position);

StringfileName=path.substring(12,18);

System.out.println("c:

\\java\\jsp\\A.java中含有的文件名:

"+fileName);

Strings6=newString("100");

Strings7=newString("123.678");

intn1=Integer.parseInt(s6);

doublen2=Double.parseDouble(s7);

doublem=n1+n2;

System.out.println(m);

Strings8=String.valueOf(m);

position=s8.indexOf(".");

Stringtemp=s8.substring(position+1);

System.out.println("数字"+m+"有"+temp.length()+"位小数");

Strings9=newString("ABCDEF");

chara[]=s9.toCharArray();

for(inti=a.length-1;i>=0;i--)

{

System.out.print(""+a[i]);

}

}

}

4.程序运行结果

s1与s2不同

吉林省的身份证

按字典顺序s4小于s5

c:

\java\jsp\A.java中最后出现\的位置:

11

c:

\java\jsp\A.java中含有的文件名:

A.java

223.678

数字223.678有3位小数

FEDCBA

●实验2比较日期的大小

1.实验目的

掌握Date类以及Calendar类的常用方法

2.实验要求

编写一个Java应用程序,用户从输入对话框输入两个日期,程序将判断两个日期的大小关系,以及两个日期之间的间隔天数。

3.程序源代码

importjava.util.*;

importjavax.swing.JOptionPane;

publicclassDateExample

{

publicstaticvoidmain(Stringargs[])

{

Stringstr=JOptionPane.showInputDialog("输入第一个日期的年份:

");

intyearOne=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入该年的月份:

");

intmonthOne=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入该月份的日期:

");

intdayOne=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入第二个日期的年份");

intyearTwo=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入该年的月份");

intmonthTwo=Integer.parseInt(str);

str=JOptionPane.showInputDialog("输入该月份的日期");

intdayTwo=Integer.parseInt(str);

Calendarcalendar=Calendar.getInstance();

calendar.set(yearOne,monthOne,dayOne);

longtimeOne=calendar.getTimeInMillis();

calendar.set(yearTwo,monthTwo,dayTwo);

longtimeTwo=calendar.getTimeInMillis();

Datedate1=newDate(timeOne);

Datedate2=newDate(timeTwo);

if(date2.equals(date1))

{System.out.println("两个日期的年、月、日完全相同");

}

elseif(date2.after(date1))

{System.out.println("您输入的第二个日期大于第一个日期");

}

elseif(date2.before(date1))

{System.out.println("您输入的第二个日期小于第一个日期");

}

longdays=(timeTwo-timeOne)/(1000*60*60*24);

System.out.println(yearOne+"年"+monthOne+"月"+dayOne+"日和"+yearTwo+"年"

+monthTwo+"月"+dayTwo+"相隔"+days+"天");

}

}

您输入的第二个日期大于第一个日期

2006年6月6日和2008年8月3日相隔789天

●实验3处理大整数

1.实验目的

掌握BigInteger类的常用方法

2.实验要求

编写一个Java应用程序,计算两个大整数的和、差、积和商,并计算一个大整数的因子个数(因子中不包括1和大整数本身)。

3.程序源代码

importjava.math.*;

publicclassBigIntegerExa{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

BigIntegern1=newBigInteger("987654321987654321");

BigIntegern2=newBigInteger("123456789123456789");

BigIntegerresult=null;

result=n1.add(n2);

System.out.println("和:

"+result.toString());

result=n1.subtract(n2);

System.out.println("差:

"+result.toString());

result=n1.multiply(n2);

System.out.println("积:

"+result.toString());

result=n1.divide(n2);

System.out.println("商:

"+result.toString());

BigIntegerm=newBigInteger(”1968957");

BigIntegerCONUT=newBigInteger("0");

BigIntegerONE=newBigInteger("1");

BigIntegerTWO=newBigInteger("2");

System.out.println(m.toString()+"的因子有:

");

for(BigIntegeri=TWO;pareTo(m)<0;i=i.add(ONE))

{

if((n1.remainder(i).compareTo(BigInteger.ZERO))==0)

{

CONUT=CONUT.add(ONE);

System.out.print(""+i.toString());

}

}

System.out.println('');

System.out.println(m.toString()+"一共有"+CONUT.toString()+"个因子");

}

}

4.程序运行结果

和:

111111*********1110

差:

864197532864197532

积:

121932631356500531347203169112635269

商:

8

1968957的因子有:

379111317192133395157637791991171191331431531711872092212312472732893233573994295616276636937418198679691001107111971287130914631547168317291881198920232223226124312601271729073003317935533757392741994389464151875491606967837293815190099537106591127111781125971316713923155611647317017182071901920349218792225324453248712629928611293933197733813377913843741327461894941951051525795705760401667597138374613788978817911531112398113856715315315773717117118120320027721414922383923669126453728928932332334593336805337194337972141570142280747321149968154360957836964244768352778521386786789384396996999900111041591139163126842114990431735107

1968957一共有146个因子

●实验心得及体会

通过实验,我已基本掌握了String类、Date类和calendar类以及BigInteger类的常用方法。

上机实践6组件及事件处理

(1)

●实验1算数测试

1.实验目的

学习处理ActionEvent事件

2.实验要求

编写一个算数测试小软件,用来训练小学生的算数能力。

程序由3个类组成,其中Teacher类对象负责给出算数题目,并判断回答者的答案是否正确;ComputerFrame类对象负责算数题目提供视图,比如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面给出题目的答案;MailClass是软件的主类。

3.程序源代码

//Teacher.java

publicclassTeacher

{

intnumberOne,numberTwo;

Stringoperator="";

booleanright;

publicintgiveNumberOne(intn)

{

numberOne=(int)(Math.random()*n)+1;

returnnumberOne;

}

publicintgiveNumberTwo(intn)

{

numberTwo=(int)(Math.random()*n)+1;

returnnumberTwo;

}

publicStringgiveOperator()

{

doubled=Math.random();

if(d>=0.5)

operator="+";

else

operator="-";

returnoperator;

}

publicbooleangetRight(intanswer)

{

if(operator.equals("+"))

{if(answer==numberOne+numberTwo)

right=true;

else

right=false;

}

elseif(operator.equals("-"))

{if(answer==numberOne-numberTwo)

right=true;

else

right=false;

}

returnright;

}

}

//ComputerFrame.java

importjava.awt.*;

importjava.awt.event.*;

publicclassComputerFrameextendsFrameimplementsActionListener

{

TextFieldtextOne,textTwo,textResult;

ButtongetProblem,giveAnswer;

LabeloperatorLabel,message;

Teacherteacher;

ComputerFrame(Strings)

{

super(s);

teacher=newTeacher();

setLayout(newFlowLayout());

textOne=newTextField(10);

textTwo=newTextField(10);

textResult=newTextField(10);

operatorLabel=newLabel("+");

message=newLabel("你还没有回答呢");

getProblem=newButton("获取题目");

giveAnswer=newButton("确认答案");

add(getProblem);

add(textOne);

add(operatorLabel);

add(textTwo);

add(newLabel("="));

add(textResult);

add(giveAnswer);

add(message);

textResult.requestFocus();

textOne.setEditable(false);

textTwo.setEditable(false);

getProblem.addActionListener(this);

giveAnswer.addActionListener(this);

textResult.addActionListener(this);

setBounds(100,100,450,100);

setVisible(true);

validate();

addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvente)

{System.exit(0);

}

});

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==getProblem)

{

intnumber1=teacher.giveNumberOne(100);

intnumber2=teacher.giveNumberTwo(100);

Stringoperator=teacher.giveOperator();

textOne.setText(""+number1);

textTwo.setText(""+number2);

operatorLabel.setText(operator);

message.setText("请回答");

textResult.setText(null);

}

if(e.getSource()==giveAnswer)

{

Stringanswer=textResult.getText();

try

{intresult=Integer.parseInt(answer);

if(teacher.getRight(result)==true)

{

message.setText("你回答正确");

}

else

{message.setText("你回答错误");

}

}

catch(NumberFormatExceptionex)

{message.setText("请输入数字字符");

}

}

textResult.requestFocus();

validate();

}

}

//MainClass.java

publicclassMainClass

{

publicstaticvoidmain(Stringargs[])

{

ComputerFrameframe;

frame=newComputerFrame("算术测试");

}

}

4.运行结果

●实验2信号灯

1.实验目的

学习处理ItemEvent事件和paint方法

2.实验要求

编写一个带有窗口的应用程序。

在窗口的北面添加一个下拉列表,该下拉表有“红灯”,“绿灯”和“黄灯”三个选项。

在窗口的中心添加一个画布,当用户在下拉列表选择某项后,画布上绘制相应的信号灯。

3.程序源代码

//SignalCanvas.java

importjava.awt.Canvas;

importjava.awt.Color;

importjava.awt.Graphics;

publicclassSignalCanvasextendsCanvas

{

intred,green,yellow,x,y,r;

SignalCanvas()

{setBackground(Color.white);

}

publicvoidsetRed(intr)

{red=r;

}

publicvoidsetGreen(intg)

{green=g;

}

publicvoidsetYellow(inty)

{yellow=y;

}

publicvoidsetPosition(intx,inty)

{this.x=x;

this.y=y;

}

publicvoidsetRadius(intr)

{this.r=r;

}

publicvoidpaint(Graphicsg)

{

if(red==1)

{g.setColor(Color.red);

}

elseif(green==1)

{g.setColor(Color.green);

}

elseif(yellow==1)

{g.setColor(Color.yellow);

}

g.fillOval(x,y,2*r,2*r);

}

}

//SignalFrame.java

importjava.awt.*;

importjava.applet.*;

importjava.awt.event.*;

publicclassSignalFrameextendsFrameimplementsItemListener

{

Choicechoice;

SignalCanvassignal=null;

StringitemRed="红灯",itemYellow="黄灯",itemGreen="绿灯";

publicSignalFrame()

{

choice=newChoice();

choice.add(itemRed);

choice.add(itemYellow);

choice.add(itemGreen);

choice.addItemListener(this);

add(choice,BorderLayout.NORTH);

try

{

Classcs=Class.forName("SignalCanvas");

signal=(SignalCanvas)cs.newInstance();

add(signal,BorderLayout.CENTER);

}

catch(Exceptione)

{add(newLabel("您还没有编写SignalCanvas类"),BorderLayout.CENTER);

}

setBounds

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

当前位置:首页 > 农林牧渔 > 林学

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

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