第六章 Java系统常用类练习.docx
- 文档编号:3160009
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:19
- 大小:25.72KB
第六章 Java系统常用类练习.docx
《第六章 Java系统常用类练习.docx》由会员分享,可在线阅读,更多相关《第六章 Java系统常用类练习.docx(19页珍藏版)》请在冰豆网上搜索。
第六章Java系统常用类练习
第6章系统常用类
在基本了解了Java类的构成,初步掌握Java面向对象的程序设计的方法之后,在编写应用程序中,需要使用系统提供的一些常用类的功能。
本章试验的任务主要是了解和掌握Java系统提供的一些常用的基本类的功能及应用。
6.1实验一:
系统常用类的应用
实验目的
(1)了解系统常用类(Object、System、Runtime、Math等)的作用和功能。
(2)基本掌握系统常用类在程序中的正确应用。
实验要求
编写相关的应用程序,在程序中需要的地方正确地使用相关系统常用类的功能,以满足程序的要求。
实验内容
实验示例6.1.1编写Java应用程序,查看当前的内存情况,并调用Windos下的绘图工具mspaint.exe,绘制一幅简单的图画,并统计操作所花费的时间。
实现该示例的方法步骤如下:
⑴简要分析
根据程序要求,要查看当前的内存情况并调用外部程序,需要建立Runtime对象,使用Runtime对象的功能完成所需的操作;在统计计时中需要使用System类方法来记录当前时间,根据时间差计算所需时间。
⑵根据上述简要分析,给出如下参考程序代码(ExecExterior.java):
classExecExterior
{
publicstaticvoidmain(Stringargs[])throwsException
{
Runtimert=Runtime.getRuntime();//创建对象
System.out.println("最大内存:
"+rt.maxMemory());
System.out.println("总内存:
"+rt.totalMemory());
System.out.println("可用内存:
"+rt.freeMemory());
longn0=System.currentTimeMillis();//记录进入绘图时间
Processp1=rt.exec("mspaint");//调用绘图程序并创建Process对象
p1.waitFor();//等待绘图操作结束
longn1=System.currentTimeMillis();//记录结束绘图时间
n1=(n1-n0)/1000;//以秒为单位计算绘图所需时间
System.out.println("绘制这样一幅图画花费了"+n1/3600+"小时"+n1/60%60+"分"+n1%60+"秒");
}
}
⑶编译ExecExterior.java程序,并执行该程序,观看程序的执行结果,对于绘制不同的图画,统计所需的时间也是各不相同的。
⑷程序及分析
在程序中执行Runtime对象的exec()方法调用外部程序时获得了一个Process对象p1,然后执行对象的waitFor(),等待绘图操作的结束。
思考一下,若取消等待操作,即去掉“p1.waitFor();”语句,会出现什么情况,统计绘图所花费的时间正确吗?
请修改程序,观看其执行结果,并给出解释。
实验示例6.1.2编写Java应用程序,列出任意区段内sin、cos、tan的函数值。
实现该示例的方法步骤如下:
⑴简要分析
根据程序要求,需要使用Math类的功能完成所需的操作。
Math提供了众多的类方法,可以直接使用类的sin()、cos()和tan()方法即可。
由于要计算某一区间内的函数值,可以在类中添加一个成员方法display()实现,设置3个参数传递信息,即区间的两个端点值和区间内取值的间隔(步长)。
⑵根据上述简要分析,给出如下参考程序代码(TriangleFunctio.java):
classTriangleFunction
{
publicvoiddisplay(doubled1,doubled2,doublestep)
{
System.out.println("度数sin---------------cos------------------tan");
for(;d1<=d2;d1+=step)
{
doubledm1=Math.toRadians(d1);//转为弧度
System.out.print(d1+""+Math.sin(dm1)+"-----");
System.out.print(Math.cos(dm1)+"-----");
System.out.println(Math.tan(dm1));
}
}
publicstaticvoidmain(Stringargs[])
{
TriangleFunctiont1=newTriangleFunction();
t1.display(0.0,90.0,15.0);
}
}
⑶编译TriangleFunctio.java程序,并执行该程序,观看程序的执行结果。
⑷程序及分析
在程序中的main()方法中,创建了TriangleFunctio对象,给出不同区间不同步长的值调用方法display(),将列出该区间上所有指定点的sin、cos和tan的函数值。
自由练习6.1仿照上边程序,编写列出某一区间指定的对数和指数值。
6.2实验二:
数组及数组类的应用
实验目的
(1)数组在程序设计中是比较重要的一部分,了解数组的构造,正确理解一维数组、二维数组和二维不定长度数组中数据的存放。
初步掌握数组在程序中的正确应用。
(2)了解数组类的作用和功能,基本掌握使用数组类的功能来处理数组。
实验要求
根据题目的要求编写相应的应用程序,在程序中正确地使用数组存放数据,运用数组类的功能对数组数据进行相关的处理。
实验内容
实验示例6.2.1编写Java程序,定义一个一维整数数组类,具有排序和查找值所在位置的功能。
实现该示例的方法步骤如下:
⑴简要分析
根据程序要求,首先确定程序的结构,要定义一个类来处理一维数组,当然应具有数组的声明,可以作为一个类的成员变量来声明数组,在构造方法中定义数组的大小并赋初值。
定义两个成员方法实现排序和查找功能。
⑵根据上述简要分析,给出如下参考程序代码(OneIntArray.java):
importjava.util.*;
classOneIntArray
{
int[]arr;//说明数组
/*****构造方法1*****/
OneIntArray(intn)//n表示数组大小
{
arr=newint[n];//定义数组大小
Arrays.fill(arr,0);//为数组所有元素置0
}
/*****构造方法2*****/
OneIntArray(intn,intm)//n表示数组大小,所有元素的值不超过m
{
arr=newint[n];
for(inti=0;i } /*****成员方法排序并输出*****/ publicvoidsort() { Arrays.sort(arr); for(inti=0;i { if(i%10==0)System.out.print('\n');//控制每行输出10个元素 System.out.print(arr[i]+""); } } /*****成员方法查找位置*****/ publicintsearch(intkey)//key为要查找的数 { intn=Arrays.binarySearch(arr,key);//n为key所在位置 returnn; } } ⑶在源程序代码完成之后,编译OneIntArray.java程序,生成OneIntArray.class类文件供其他程序使用。 ⑷程序及分析 在程序中有两个构造方法,一个带有确定数组大小的一个参数,在生成数组之后,对每一个数组元素赋予初值0;另一个带有两个参数,第一个参数确定数组大小,第二个参数规定数组元素的上限,在生成数组之后,将数组的每一个元素赋予不大于第二个参数的随机值。 在排序和查找方法中,分别使用了Arrays类的排序和查找方法。 自由练习6.2编写应用程序,测试OneIntArray类的功能。 实验示例6.2.2某单位经常会举办一些比赛,诸如才艺大赛、歌咏比赛等。 比赛会邀请一些评委为参赛选手打分,选手的最终成绩根据评委给出的分数综合确定,其一般原则是,去掉一个最高分和一个最低分,其他分数的平均值即是选手的最终得分。 编写Java类程序处理比赛分数。 实现该示例的方法步骤如下: ⑴简要分析 根据题目要求,可有多个选手参赛和多个评委评分,假定有n位选手和m位评委,可以定义一个二维数组n行m列,每一行存放一个选手的由各评委打出的分数,每一列表示一位评委为各个选手评定的分数。 若对每一行的数据进行排序,去掉两端的元素(一个最低分和一个最高分),其他元素值求平均即是选手的最后得分。 和示例6.2.1类似,建立一个MatchGrade类,在类中定义一个二维数组的成员变量用于存储选手的分数数据,再定义一些方法用于处理选手的最终得分。 ⑵根据上述简要分析,给出如下参考程序代码(MatchGrade.java): importjava.util.*; classMatchGrade { inta[][];//成员变量定义 publicvoidgrade(intn,intm)//成员方法 { a=newint[n][m]; for(inti=0;i for(intj=1;j for(inti=0;i { Arrays.sort(a[i]);//对每一位选手的得分进行排序 System.out.print((i+1)+"."); inttotal=0;//统计每一位选手的得分,去掉一个最高分和一个最低分 for(intj=1;j { System.out.print(a[i][j]+"");//输出各评委的打分 total+=a[i][j]; } System.out.println((float)total/(m-2)+"\n");//输出选手的最终得分 } } /*类方法*/ publicstaticvoidgrade(int[][]a) { intn=a.length;//参赛人数 intm=a[0].length;//评委人数 for(inti=0;i { Arrays.sort(a[i]);//对每一位选手的得分进行排序 System.out.print((i+1)+"."); inttotal=0;//统计每一位选手的得分,去掉一个最高分和一个最低分 for(intj=1;j System.out.println((float)total/(m-2)+"\n");//输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六章 Java系统常用类练习 第六 Java 系统 常用 练习
![提示](https://static.bdocx.com/images/bang_tan.gif)