深入面向对象编程2Word格式文档下载.docx

上传人:b****5 文档编号:20777469 上传时间:2023-01-25 格式:DOCX 页数:16 大小:183.19KB
下载 相关 举报
深入面向对象编程2Word格式文档下载.docx_第1页
第1页 / 共16页
深入面向对象编程2Word格式文档下载.docx_第2页
第2页 / 共16页
深入面向对象编程2Word格式文档下载.docx_第3页
第3页 / 共16页
深入面向对象编程2Word格式文档下载.docx_第4页
第4页 / 共16页
深入面向对象编程2Word格式文档下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

深入面向对象编程2Word格式文档下载.docx

《深入面向对象编程2Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《深入面向对象编程2Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。

深入面向对象编程2Word格式文档下载.docx

(3)程序3:

要求输入两个日期(每个日期均由年、月、日组合而成),并计算输出这两个日期之间的天数间隔。

(4)程序4:

利用BigInteger类练习大整数间的算术运算(加、减、乘、除、取余等)(具体用法参照教材)

实验步骤

利用String方法输入字符串,用StringBuffer和StringTokenizer方法对输入的字符串进行修改和单词数目统计。

使用Math类中的常用的静态方法进行简单的数学运算。

利用Date类创建对象,输入两个日期(每个日期均由年、月、日组合而成),利用Calendar类计算输出这两个日期之间的天数间隔。

编程输入两个数目,利用BigInteger类练习大整数间的算术运算(加、减、乘、除、取余等)

实验结果(结论)

【程序1代码】

importjava.io.*;

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.util.*;

publicclassddyy//程序中的主类

{

publicstaticvoidmain(Stringargs[])

{

newFrameInOut();

}

}

classFrameInOutextendsJFrameimplementsActionListener

JButtonbtn1;

JTextAreata;

JPanelp1,p2;

jjccs;

FrameInOut()

super("

字符串表示"

);

btn1=newJButton("

btn1.setForeground(Color.red);

btn1.setFont(newFont("

微软雅黑"

Font.BOLD,12));

ta=newJTextArea(6,25);

ta.setForeground(Color.blue);

ta.setFont(newFont("

黑体"

Font.BOLD,18));

p1=newJPanel();

p2=newJPanel();

p1.add(btn1);

p2.add(ta);

getContentPane().add(p1);

getContentPane().add(p2);

setLayout(newFlowLayout());

p1.setBackground(Color.blue);

p2.setBackground(Color.yellow);

btn1.addActionListener(this);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//设置关闭窗口

setSize(450,325);

//设置窗口大小

setVisible(true);

//显示窗口

Stringa=newString("

ILoveChina"

StringBufferb=newStringBuffer("

b.append("

VeryMuch"

StringTokenizerc=newStringTokenizer(a,"

"

//空格分隔

s=newjjcc(a,b,c);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==btn1)

ta.setText("

"

ta.append(s.toString());

Font.BOLD,15));

ta.setForeground(Color.red);

classjjcc

Stringa;

StringBufferb;

StringTokenizerc;

jjcc(Stringa,StringBufferb,StringTokenizerc)//构造函数

this.a=a;

this.b=b;

this.c=c;

publicStringtoString()

Strings="

;

s+="

字符串A:

+a+"

\n"

字符串的修改B:

+b+"

字符串A的单词数目:

+c.countTokens()+"

returns;

【程序1运行结果】

【程序2代码】

importjava.math.*;

publicclassjsff//程序中的主类

Math的运用"

数字运算"

doublea=Math.sqrt(5);

//5的平方根

doubleb=Math.log

(2);

//2的自然对数

doublec=Math.sin(3);

//正弦值

doubled=Math.pow(2,10);

//2的10次幂

doublee=Math.abs(-1.5);

//绝对值

doublef=Math.IEEEremainder(12,5);

//取余数

doubleg=Math.PI;

s=newjjcc(a,b,c,d,e,f,g);

doublea,b,c,d,e,f,g;

jjcc(doublea,doubleb,doublec,doubled,doublee,doublef,doubleg)//构造函数

this.d=d;

this.e=e;

this.f=f;

this.g=g;

5的平方根是:

2的自然对数:

弧度为3的正弦值是:

+c+"

2的10次幂是:

+d+"

-1.5的绝对值是:

+e+"

12除以5的余数是:

+f+"

常量π是:

+g+"

【程序2运行结果】

【程序3代码】

importjava.text.*;

publicclassabc//程序中的主类

JButtonbtn;

students;

日期查询系统"

btn=newJButton("

日期间隔天数"

btn.setForeground(Color.red);

btn.setFont(newFont("

ta=newJTextArea(6,25);

ta.setForeground(Color.blue);

ta.setFont(newFont("

p1.add(btn);

p2.add(ta);

getContentPane().add(p1);

getContentPane().add(p2);

setLayout(newFlowLayout());

p1.setBackground(Color.blue);

p2.setBackground(Color.yellow);

btn.addActionListener(this);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(450,325);

setVisible(true);

Strings1=JOptionPane.showInputDialog("

请输入第一个日期xxxx/xx/xx:

Strings2=JOptionPane.showInputDialog("

请输入第二个日期xxxx/xx/xx:

SimpleDateFormatformatter=newSimpleDateFormat("

yyyy/MM/dd"

ParsePositionpos=newParsePosition(0);

ParsePositionpos1=newParsePosition(0);

Datedt1=formatter.parse(s1,pos);

Datedt2=formatter.parse(s2,pos1);

longtime1=(dt2.getTime()-dt1.getTime())/(1000*60*60*24);

s=newstudent(s1,s2,time1);

publicvoidactionPerformed(ActionEvente)

if(e.getSource()==btn)

ta.setText("

ta.append(s.toString());

classstudent

Strings1,s2;

longtime1;

student(Strings1,Strings2,longtime1)//构造函数

this.s1=s1;

this.s2=s2;

this.time1=time1;

输入的第一个日期:

+s1+"

输入的第二个日期:

+s2+"

两日期间隔"

+time1+"

天"

}

【程序3运行结果】

【程序4代码】

publicclasssuanfa//程序中的主类

大整数的运算"

请输入第一个数字:

请输入第二个数字:

BigIntegerb1=newBigInteger(s1);

BigIntegerb2=newBigInteger(s2);

BigIntegerb3=b1.add(b2);

//b1+b2

BigIntegerb4=b1.multiply(b2);

//b1*b2

BigIntegerb5=b1.subtract(b2);

//b1-b2

BigIntegerb6=b1.divide(b2);

BigIntegerb7=b1.remainder(b2);

s=newjjcc(s1,s2,b3,b4,b5,b6,b7);

BigIntegerb3,b4,b5,b6,b7;

jjcc(Strings1,Strings2,BigIntegerb3,BigIntegerb4,BigIntegerb5,BigIntegerb6,BigIntegerb7)//构造函数

this.s2=s2;

this.b3=b3;

this.b4=b4;

this.b5=b5;

this.b6=b6;

this.b7=b7;

输入的第一个数字:

输入的第二个数字:

两数相加的和是:

+b3+"

两数相减的差是:

+b4+"

两数相乘的积是:

+b5+"

两数相除的商是:

+b6+"

两数相除的余是:

+b7+"

【程序4的运行结果】

实验结果的分析体会:

这次的实验内容比较多,但是相对而言却比较简单,通过这次的实验,我学到了很多。

对于程序1,String类是final的,不可被继承,而StringBuffer可以更改String的类创建的字符串,这是我以前所不知道的,可以说是一大收获。

对于程序2,Math类的用法,因为之前有接触,所以做起来不是很吃力,编程时,我明白了Math.log

(2)的值不是log2,而是ln2,log2的表达方法是Math.Log10

(2),Math类中是静态方法,可以直接通过类名调用。

对于程序3,Date类的用法,是我此次编程出现错误最多的地方,分析了一下,发现原因是ParsePosition的运用错误,通过查资料,这些问题已经得到解决。

对于程序4,BigInteger类在大数之间运算比较方便,变成也比较简单,没有出现很大的问题。

总的来说,本次编程运用的知识比较琐碎,虽然比较简单,但自己还是用了好长时间才调试好,期间有拼写错误,符号错误和程序上的语言错误,但是只要认真就能克服这些困难,通过这次编程,我学到的不只是程序的编译,更是知识的融合,只有把这些琐碎的知识融合在一起,才能真正做到学以致用,才能早日成为Java高手。

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

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

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

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