实验3方法和数组_第1页
实验3方法和数组_第2页
实验3方法和数组_第3页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、山西大学计算机与信息技术学院姓名学号专业班级软件工程 1班课程名称Java实验实验日期2013/11/6成绩指导教师批改日期实验名称实验3方法和数组实验报告实验目的:(1)掌握一维数组和二维数组的定义、初始化方法。(2) 了解和初步应用类的random ()方法处理实际问题。(3) 了解增强for循环,并使用增强for循环顺序访问数组元素。4)掌握String类中split方法、charAt方法以及length方法的使用。(5) 掌握 Double、Integer 等数据包装类的parseDouble、parselnt 等方法。(6) 掌握数组的len gth属性的应用实验内容:(要求把源程序

2、和运行结果图都粘贴到实验报告中)(1 )分别用一维数组(例子数组如下 7, 4, 3, 9, 0, 6 )实现冒泡排序、选择排序和插入排序中的两种排序算法,程序中要求加注释。程序代码:package wenhui;public class Sort /排序方法public static void selectionSort(double list) /选择排序函数,对数组进行从小到大的排序for ( int i = 0; i list.length - 1; i+) /在ilist.length - 1中找到最小值并放在i位置上double min = listi;int m = i;for

3、( int j = i + 1; j = listj) /记录最小数的值和其下标值min = listj;m = j;if (m != i) /如果有小的数就进行交换listm = lis ti;listi = min;public static void bubbleSort(double list) /冒泡排序函数,对数组进行从小到大的排序double m = 0.0;for ( int j = 0;j list.length -1;j+)/每次将一个大的往后移动到位for ( int i = 0;i listi + 1)/俩个数相比较大的往后移,小的往前移m = listi;listi

4、= listi + 1;listi + 1 = m;public static void insertionSort(double list) /插入排序函数,对数组进行从小到大的排序for ( int i = 0; i = 0 & listk currentElement; k-) listk +1 = listk;listk +1 = currentElement;package wenhui;public class Test public staticvoid main(String args) /主函数double list = 7, 4, 3, 9, 0, 6;System. ou

5、t .print(进行插入排序函数调用进行排序:);for ( int i = 0; i list.System. out .print(listi +double listl = 2,8,3,9,1,5,0;length;i+)HIV););Sort. selectionSort(list1);for ( int i = 0; i list1.System. out .print(list1i +double list2 = 9,3,6,1,520,8;length/对选择排序函数调用;i+)HIV System. out .print( n进行选择排序函数调用进行排序:);System.

6、out .print(list2i +HIV);运行结果贴图Jfi行插入扌非序函数调用进行排虑2 进行选择排序函数调用进行排加艇和 进行冒泡排序曲数遹用进行排序訂(2 )编写程序实现两个矩阵的相加、相乘。 要求程序运行结果形如如下显示:Array cSystem. out .print( n进行冒泡排序函数调用进行排序: So比bubbleSort(lis t2);/对冒泡排序函数调用len gth ; i+)for ( int i = 0; i list2.123456789Array d222111333Array c+d345567101112Array c*d1212122121213

7、03030package wenhui;public class Matrix public staticint matrixAdd(int array1,int array2)/矩阵加法运算intforfor array = new int array1. length array10. length ; (int i = 0;i array1. length ;i+)(int j = 0;j array20. length ;j+)arrayij = array1ij + array2ij;return array;int ifpublicstaticint matrixMultiplic

8、ation(array2)/矩阵乘法运算 array =new intarrayl. lengtharray20.lengthintm;(arrayi0.length!= array2. length)System.out .println(你的矩阵不能相乘):int arrayl,;int else forforfor(int i = 0;i array1. length ;i+)(int j = 0;j array20.length;j+)m = 0;(int z = 0;z array10.length;z+)m = m + array1iz * array2zj;arrayij = m

9、;return array; public class Testi public static void main(String args) / TODOAuto-generated method stub int c = 1,2,3,4,5,6,7,8,9;int d = 2,2,2,1,1,1,3,3,3;int array = Matrix. matrixAdd (c, d);卑微如蛟蚁、坚强似大象System. out .println(Array c + d :);for ( int i = 0;i array.for ( int j = 0;j array0.System. out

10、 .printf( System. out .println(int array1 = Matrix.len gth ;i+)length ;j+)%-4d ,arrayij);HIV);matrixMultiplication(c, d);System. out .println(Array c * d :);len gth ;i+)length ;j+)for ( int i = 0;i array1.for ( int j = 0;j array10.System. out .printf(%-4d,array1ij);System. out .println();运行结果贴图,|f ,

11、l Problems 丘 Javadoc 愎:DeclaraticnWOgrarr(2D13亠 1Axay a+34田c:r韦韦12Mi1313313131454S4S(3)将用“;”和“,”分割的包含数字字符的字符串“23,21.3,33 ; 34,2,1.9,2.1 ; 3,3,1,3,4,4.9 ”中的数据解析出来放在一个double类型的二维数组中,以分号分割二维数组的每一行,以逗号分割每行中的各个元素。(利用String的split方法)程序代码:public class Test4 public staticvoid main(String args) / 23,21.3,33 S

12、tring str =;34,2,1.9,2.1;3,3,1,3,4,4.923,21.3,33;34,2,1.9,2.1;3,3,1,3,4,4.9.split( ;);new String3;for(inti = 0;i str.str1i=stri.split(for(inti = 0;i str1.for (int j = 0;j str1i.String叩 str1 =len gth ;i+)IV IV5);length;i+)length ;j+)System. out .printf(%-6s,str1ij);System. out .prlntln();运行结果贴图:-B 际f

13、ete御15 聪滋籲颐 tMonsleO瞬谕ttted霁施砂崎阳 Apph“tionFfMffljnjgtnanriljeaJ曲H;啷證诙範啣生B (2013-123p21 _ 3333422.123344.9(4 )查看帮助、编写例子利用System类中的arraycopy()方法复制数组。分别用Arrays类中的sort方法和binarySearch方法实现数组的排序和折半查找。程序代码:import java.util.Arrays;public class ShuZu public static void main(String args) / TODOAuto-generated m

14、ethod stub System. out .println( 数组 array array = 2,15,7,9,1,8,4,16,11,0,25,14,3;(int i = 0;i array.lengthSystem.的值是:);intforout .print(arrayi +;i+)IV); intarray1 =lengthSystem.System. for ( intoutarraycopyi = 0;i array1.System.new int array.println( n n 复制(array, 0, array1,0, array. ;i+)IVlengtharr

15、ay;数组后array1的值是:”); length );out .print(array1i +IV); Arrays.sort(array1);System.(intSystem. out .print(array1i +for.println(i = 0;i= 0)System. out .println(置上);else System. out .println(运行结果贴图:nn 此数+ key +是在第+ (i + 1) +nn+ key +此数不存在);旦Comole空吗痢!*討h D:ProgramrlSssavawexe 2O13-;215791 B 411125143个位复

16、制BIT丄段215丫数组后熬zrayl的值是:排廓后array!的值罡01234781 11 0,2514331114151625此数14是在第10个位置上publicstaticvoid main(String args) charstr =new char100;chara =a;for(int i =0;i str.length;i+) forstri=(char )( a+Math.random () * (int i =0;i 49;i+) SystiSystem.out .print(stri +);em. out.println();for(int i =50;i 99;i+)

17、SystiSystem.out .print(stri +);em. out.println();intcount =new int26;for(int i =0;i str.length;i+)(5 )随机生成 100个小写字母,统计每个字母出现的次数,并显示出来。(利用 Math.ra ndom()方法随机产生)程序代码:importjavaang.Math;public class CountLettersInArray z - a + 1);int m = stri - a; countm = countm + 1;for ( int i = 0;i t H屛軀.科:举送9- y1 w

18、 q x fr 3 n 2 n齐耳 ydL 阻 Be低 p fa- m 的个敲詡3 h齡魏觥 軽的个TO 6 吼的个数为石*的牛数角4 密的个翹握朋 y的傅:为空 h的金齣为肿 :的5的咿战为耳丄的个如期4 m的吓数为3 胡林數为二 心附个斟为1 p的个数为喘 p的个韵訶币 H时介奴为博 解隔 t的个数為丄 値的亍欝対: 霄的悌为逐 w的呛数为Q X的个薊为 Y的亍数为擋 童的牛魏为4ram FilesBavaravafl a lv G A y jL e g 爭.:黑.直c n禺口 口孔1 bf xu -a ;.d| m(6)建立一个不规则的二维数组如下,并在控制台显示,数组如下1 3 52 4 6819 16 253610 203012 3 4 5 6程序代码:public class Test3 publicintstaticvoid main(String ar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论