实验3 方法和数组.docx

上传人:b****4 文档编号:24324734 上传时间:2023-05-26 格式:DOCX 页数:15 大小:362.87KB
下载 相关 举报
实验3 方法和数组.docx_第1页
第1页 / 共15页
实验3 方法和数组.docx_第2页
第2页 / 共15页
实验3 方法和数组.docx_第3页
第3页 / 共15页
实验3 方法和数组.docx_第4页
第4页 / 共15页
实验3 方法和数组.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验3 方法和数组.docx

《实验3 方法和数组.docx》由会员分享,可在线阅读,更多相关《实验3 方法和数组.docx(15页珍藏版)》请在冰豆网上搜索。

实验3 方法和数组.docx

实验3方法和数组

实验报告

姓名

学号

专业班级

计科

课程名称

Java实验

实验日期

成绩

指导教师

批改日期

实验名称

实验3方法和数组

实验目的:

(1)掌握一维数组和二维数组的定义、初始化方法。

(2)了解和初步应用java.lang.Math类的random()方法处理实际问题。

(3)了解增强for循环,并使用增强for循环顺序访问数组元素。

(4)掌握String类中split方法、charAt方法以及length方法的使用。

(5)掌握Double、Integer等数据包装类的parseDouble、parseInt等方法。

(6)掌握数组的length属性的应用

实验内容:

(要求把源程序和运行结果图都粘贴到实验报告中)

(1)分别用一维数组(例子数组如下{7,4,3,9,0,6})实现冒泡排序、选择排序和插入排序中的两种排序算法,程序中要求加注释。

程序代码:

//选择排序

publicclassSelectionSort{

publicstaticvoidselectionSort(int[]list){

for(inti=0;i

intcurrentMin=list[i];//currentMin存储现有的最小值

intcurrentMinIndex=i;//最小值的位置

for(intj=i+1;j

if(currentMin>list[j]){

currentMin=list[j];

currentMinIndex=j;//记下此时的位置

}

}

if(currentMinIndex!

=i){

list[currentMinIndex]=list[i];

list[i]=currentMin;

}//交换位置

}

}

publicstaticvoidmain(String[]args){

int[]list={7,4,3,9,0,6};

SelectionSort.selectionSort(list);

for(inti=0;i

System.out.print(list[i]+””);//输出已排序数组

}

}

运行结果贴图:

程序代码

//插入排序

publicclassInsertSort{

publicstaticvoidinsertSort(int[]list){

for(inti=1;i

intcurrentMin=list[i];//找见现在排序的元素

intj;

for(j=i-1;j>=0&&list[j]>currentMin;j--){

list[j+1]=list[j];

}

list[j+1]=currentMin;//放入插入数据

}

}

publicstaticvoidmain(String[]args){

int[]list={7,4,3,9,0,6};

InsertSort.insertSort(list);

for(inti=0;i

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

}

}

}

运行结果贴图:

(2)编写程序实现两个矩阵的相加、相乘。

要求程序运行结果形如如下显示:

Arrayc

123

456

789

Arrayd

222

111

333

Arrayc+d

345

567

101112

Arrayc*d

121212

212121

303030

 

程序代码:

 

publicclassMatrix{

publicstaticvoidMatrix(int[][]Matrix){

for(inti=0;i<3;i++){

for(intj=0;j<3;j++){

System.out.printf("%4d",Matrix[i][j]);}

System.out.println();

}//输出数组所有数字

}

publicstaticvoidAddMatrix(int[][]add1,int[][]add2){

int[][]Answer=newint[3][3];

for(inti=0;i<3;i++){

for(intj=0;j<3;j++){

Answer[i][j]=add1[i][j]+add2[i][j];

}

}

Matrix(Answer);

}//定义数组各个数字相加方法

publicstaticvoidMultiplyMatrix(int[][]multiply1,int[][]multiply2){

int[][]Answer=newint[3][3];

for(inti=0;i<3;i++){

for(intj=0;j<3;j++){

Answer[i][j]=multiply1[i][0]*multiply2[0][j]+multiply1[i][1]*multiply2[1][j]+multiply1[i][2]*multiply2[2][j];

}

}

Matrix(Answer);

}//定义数组各个数字相乘方法

publicstaticvoidmain(String[]args){

int[][]c={{1,2,3},{4,5,6},{7,8,9}};//定义并初始化数组c

int[][]d={{2,2,2},{1,1,1},{3,3,3}};//定义并初始化数组d

System.out.println("Arrayc");

Matrix(c);

System.out.println("Arrayd");

Matrix(d);

System.out.println("Arrayc+d");

AddMatrix(c,d);//调用addmatrix方法

System.out.println("Arrayc*d");

MultiplyMatrix(c,d);//调用multiplymatrix方法

}

}

 

运行结果贴图:

(3)将用“;”和“,”分割的包含数字字符的字符串“23,21.3,33;34,2,1.9,2.1;3,3,1,3,4,4.9”中的数据解析出来放在一个double类型的二维数组中,以分号分割二维数组的每一行,以逗号分割每行中的各个元素。

(利用String的split方法)

程序代码:

publicclassSplit{

publicstaticvoidmain(String[]args){

String[]a="23,21.3,33;34,2,1.9,2.1;3,3,1,3,4,4.9".split(";");

String[][]b=newString[3][];

for(inti=0;i

b[i]=a[i].split(",");//第i行的值,且split仅能放入Stringl类型

}

double[][]c=newdouble[3][8];

for(inti=0;i<3;i++){//第一层循环

for(intj=0;j

c[i][j]=Double.parseDouble(b[i][j]);

System.out.printf("%-8.1f",c[i][j]);

}

System.out.println();

}

}

}

运行结果贴图:

(4)查看帮助、编写例子

利用System类中的arraycopy()方法复制数组。

分别用Arrays类中的sort方法和binarySearch方法实现数组的排序和折半查找。

 

程序代码:

//数组复制

publicclassArrayCopy{

publicstaticvoidmain(String[]args){

int[]sourceArray={4,3,4,5,6,7,8};//定义并初始化数组

int[]targetArray=newint[7];//定义并创建新目标数组

System.arraycopy(sourceArray,0,targetArray,0,sourceArray.length);//调用系统中arraycopy方法

for(inti=0;i

System.out.println(targetArray[i]);

}

}

}

 

运行结果贴图:

程序代码:

//数组排序

importjava.util.*;

publicclassArraySort{

publicstaticvoidmain(String[]args){

int[]array={5,4,11,20,3,7};

Arrays.sort(array);////调用系统中array类中的sort方法

for(inti=0;i

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

}

}

}

运行结果贴图:

程序代码:

//折半查找

importjava.util.*;

publicclassInsert{

publicstaticvoidmain(String[]args){

double[]a={10,13,21,31,54,66,71,75};

System.out.println("请输入要查找的数:

");

Scannerinput=newScanner(System.in);

inti=input.nextInt();

System.out.println(Arrays.binarySearch(a,i));//调用系统中binarySearch方法

}

}

运行结果贴图:

(5)随机生成100个小写字母,统计每个字母出现的次数,并显示出来。

(利用Math.random()方法随机产生)

 

程序代码:

publicclassMandom{

publicstaticvoidmain(String[]args){

char[]number=newchar[100];//定义并创建一个容量为100的字符数组

for(inti=0;i

number[i]=(char)('a'+Math.random()*('z'-'a'+1));

}

CountNumber(number);

}

publicstaticvoidCountNumber(char[]Count){

int[]counts=newint[26];

for(inti=0;i

counts[Count[i]-'a']++;//count字符减字符存到相应的位置

}

SystemOut(counts);

}

publicstaticvoidSystemOut(int[]syso){

for(inti=0;i

System.out.println((char)(i+'a')+"出现的次数是:

"+syso[i]);

}//i对应a~z

}

}

运行结果贴图:

(6)建立一个不规则的二维数组如下,并在控制台显示,数组如下

135

2468

19162536

102030

123456

 

程序代码:

publicclassTwoArray{

publicstaticvoidmain(String[]args){

int[][]array={{1,3,5},{2,4,6,8},{1,9,16,25,36},

{10,20,30},{1,2,3,4,5,6}};//初始化二位数组

for(inti=0;i<5;i++){

for(intj=0;j

System.out.printf("%-4d",array[i][j]);

}

System.out.println();//输出后换行

}

}

}

运行结果贴图:

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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