




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山西大学计算机与信息技术学院实验报告姓 名学 号专业班级软件工程1班课程名称 Java实验实验日期2013/11/6成 绩指导教师批改日期实验名称实验 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 )实现冒泡排序、选择排序和插入排序中的两种排序算法,程序中要求加注释。程序代码: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 (int j = i + 1; j = listj) /记录最小数的值和其下标值min = listj;m = j;if (m != i) /如果有小的数就进行交换listm = listi;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 = 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 static void main(String args) /主函数double list = 7, 4, 3, 9, 0, 6;System.out.print(进行插入排序函数调用进行排序:);Sort.insertionSort(list); /对插入排序函数调用for(int i = 0; i list.length; i+)System.out.print(listi + );double list1 = 2,8,3,9,1,5,0;System.out.print(n进行选择排序函数调用进行排序:);Sort.selectionSort(list1); /对选择排序函数调用for(int i = 0; i list1.length; i+)System.out.print(list1i + );double list2 = 9,3,6,1,5,2,0,8;System.out.print(n进行冒泡排序函数调用进行排序:);Sort.bubbleSort(list2); /对冒泡排序函数调用for(int i = 0; i list2.length; i+)System.out.print(list2i + );运行结果贴图:(2)编写程序实现两个矩阵的相加、相乘。要求程序运行结果形如如下显示:Array c1 2 34 5 67 8 9Array d2 2 21 1 13 3 3Array c+d3 4 55 6 710 11 12Array c*d12 12 1221 21 2130 30 30程序代码: package wenhui;public class Matrix public static int matrixAdd(int array1, int array2)/矩阵加法运算int array = new intarray1.lengtharray10.length;for(int i = 0;i array1.length;i+)for(int j = 0;j array20.length;j+)arrayij = array1ij + array2ij;return array;public static int matrixMultiplication(int array1, int array2)/矩阵乘法运算int array = new intarray1.lengtharray20.length;int m;if(array10.length != array2.length)System.out.println(你的矩阵不能相乘);elsefor(int i = 0;i array1.length;i+)for(int j = 0;j array20.length;j+) m = 0;for(int z = 0;z array10.length;z+)m = m + array1iz * array2zj;arrayij = m;return array;public class Test1 public static void main(String args) / TODO Auto-generated method stubint 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.length;i+)for(int j = 0;j array0.length;j+)System.out.printf(%-4d,arrayij);System.out.println();int array1 = Matrix.matrixMultiplication(c, d);System.out.println(Array c * d :);for(int i = 0;i array1.length;i+)for(int j = 0;j array10.length;j+)System.out.printf(%-4d,array1ij);System.out.println();运行结果贴图:(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 static void main(String args) / 23,21.3,33;34,2,1.9,2.1;3,3,1,3,4,4.9String str = 23,21.3,33;34,2,1.9,2.1;3,3,1,3,4,4.9.split(;);String str1 = new String3;for(int i = 0;i str.length;i+)str1i = stri.split(,);for(int i = 0;i str1.length;i+)for(int j = 0;j str1i.length;j+)System.out.printf(%-6s,str1ij);System.out.println();运行结果贴图:(4)查看帮助、编写例子利用System类中的arraycopy()方法复制数组。分别用Arrays类中的sort方法和binarySearch方法实现数组的排序和折半查找。程序代码:import java.util.Arrays;public class ShuZu public static void main(String args) / TODO Auto-generated method stubSystem.out.println(数组array的值是:);int array = 2,15,7,9,1,8,4,16,11,0,25,14,3;for(int i = 0;i array.length;i+)System.out.print(arrayi + );int array1 = new intarray.length;System.out.println(n n复制array数组后array1的值是:);System.arraycopy(array, 0, array1, 0, array.length);for(int i = 0;i array1.length;i+)System.out.print(array1i + );Arrays.sort(array1);System.out.println(n n排序后array1的值是:);for(int i = 0;i= 0)System.out.println(nn此数 + key + 是在第 + (i + 1) +个位置上);elseSystem.out.println(nn + key + 此数不存在);运行结果贴图:(5)随机生成100个小写字母,统计每个字母出现的次数,并显示出来。(利用Math.random()方法随机产生)程序代码:import java.lang.Math;public class CountLettersInArray public static void main(String args) char str = new char100;char a = a;for(int i = 0;i str.length;i+)stri = (char)(a +Math.random() * (z - a + 1);for(int i = 0;i 49;i+)System.out.print(stri + );System.out.println();for(int i = 50;i 99;i+)System.out.print(stri + );System.out.println();int count = new int26;for(int i = 0;i str.length;i+)int m = stri - a;countm = countm + 1;for(int i = 0;i count.length;i+)System.out.println(char)(a+i) + 的个数为 + counti);运行结果贴图:(6)建立一个不规则的二维数组如下,并在控制台显示,数组如下 1 3 5 2 4 6 8 1 9 16 25 36 10 20 30 1 2 3 4 5 6程序代码:public class Test3 public static void main(String args) int array = 1,3,5,2,4,6,8,1,9,16,25,36,10,20,30,1,2,3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 成人重症非人工气道患者清醒俯卧位通气护理考试试题及答案
- 组合数学竞赛辅导资料试题及答案
- 2025年社交电商裂变营销与用户增长中的食品行业3D打印技术应用报告
- 2025年智能家居产品农村市场销售渠道拓展研究报告
- 2025年扬州房地产市场区域分化态势及投资布局研究报告
- 2025年康复医疗服务体系康复康复与康复康复服务商业模式创新分析预测策略研究报告
- 园林绿化作业人员考前冲刺练习试题(A卷)附答案详解
- 2025至2030年中国纤维石膏板行业市场深度分析及投资战略规划研究报告
- 2025年文化旅游演艺项目特色旅游产品策划与运营模式研究报告
- 湖南邵阳市武冈二中7年级下册数学期末考试定向练习试题(详解版)
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第三季度招聘23人笔试模拟试题及答案解析
- 2025年少儿英语教师职业资格考试试卷:英语教学互动式学习
- 2024年护理综合管理能力考试试题(附答案)
- 培训师必要知识课件
- 2025年事业单位卫生类专业知识试卷(卫生监督与卫生法规)试题
- 新学期-启航出发-2025-2026学年初一上学期新生开学第一课主题班会
- 2025年部编版新教材语文八年级上册全册教案设计(含教学计划)
- 人教版新教材小学二年级《数学》上册新教材解读课件
- DSA术前术后护理要点
- 难治性精神分裂症中国专家共识(2025)解读
- 2025年职业病诊断医师资格考试(职业性尘肺病及其他呼吸系统疾病)历年参考题库含答案详解(5卷)
评论
0/150
提交评论