Java实验报告二数组.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验(二) 数组 一、实验目的和要求 掌握数组的定义、初始化与使用 掌握Java文档注释及文档生成方法 二、实验内容和原理 设计一个矩阵类Matrix,包含一个元素类型为int的二维数组,分别设计一个静态方法和实例方法把矩阵转置,分别设计静态方法和实例方法实现二个矩阵相加、相乘。重写方法toString(),使其能输出此矩阵。 三、实验环境 硬件环境:方正品牌机 软件环境:JDK1.5 四、算法描述及实验步骤 算法描述(可以用流程图、伪代码或源程序描述) toString():将矩阵值转成字符串输出; transportMatrix():将矩阵转置 transportMatrix(Matrix newMat):转置矩阵静态方法 plus():矩阵相加 plus(Matrix first, Matrix second):矩阵相加静态方法 times():矩阵相乘 times(Matrix first, Matrix second):矩阵相乘静态方法 实验步骤 输入源代码 进行编译 进行测试,使用的测试用例: 输入: int[][] a = {{1, 2, 3}, {1, 2, 3}}; int[][] b = {{0, 1, 1}, {1, 0, 1}, {1, 1, 0}}; 预期输出: 转置矩阵(静态与实例结果应相同): 1 1 2 2 3 3 加法(静态与实例结果应相同): 2 4 6 2 4 6 乘法(静态与实例结果应相同) 5 4 3 5 4 3 五、调试过程 编译过程 静态方法中调用了直接调用了非静态方法,造成“无法从静态上下文中引用非静态方法”的错误; toString()方法中,第二个for循环应是j++,但是打成了i++,导致溢出错误。 转置方法transportMatrix()赋值的i、j位置写错,导致溢出错误。 第一个for循环用了i控制,第二个用了j控制 原始为:mtx[i][j] = data[j][i]; 应改为:mtx[j][i] = data[i][j]; 在写静态方法时,还是一样把所有算法都写了一边,但这样实际上是代码重复了,后来参照别人的改成了直接返回第一个参数调用实例方法,如: 加法算法的第二个for循环写错,导致溢出错误: 第二个for循环中的 i < data[i].length,应改为j < data[i],length; 调试过程 输入: 预期输出: 实际输出: 分析: 乘法运算无法输出,溢出错误!原因是乘法赋值中,行和列搞错了,如下: 应把最后一局mtx[k][i] = r;修改为mtx[i][k]; 六、实验结果 输入: 输出结果: 结果正确。 在每个函数前面都加上注释,如: 然后点击:运行——生成Javadoc可生成html网页文档。 七、总结 通过本次实验,我基本掌握了声明与使用基本数据类型和数组的方法,同时也基本掌握了Java文档注释和生成Javadoc文档的方法。 编程的过程中主要的还是粗心大意的错误,导致了几个地方的溢出现象。做本次实验的时候,我的面向对象的思想仍不是很明确,在转置方法transportMatrix、加法plus、乘法times等方法中,返回的和传入的仍只是整型的二维数组,而不是一个矩阵对象,偏向了面向过程的变成方法,不符合现在的编程模式,所以原本已经写好的代码又打翻重写了一次。 另外,因为经常用一个类文件就解决一整个程序,所以并没有注意到说,当使用多个类文件来写程序时,所用到的包必须在各自的类上头再导入一次。比如:JOptionPane。 矩阵的乘法运算相对来说比较复杂,需要考虑到同型矩阵相乘、非同型矩阵相乘的情况,因此在用for控制循环时,就必须得用到i、j、k三个变量来进行控制,同时在赋值的时候也必须考虑好变量的书写位置,如本次实验中的mtx[i][k] = r;r行列相乘后相加的结果。 附录: // main.java主类 package exp02code; import javax.swing.JOptionPane; /** * * @author Administrator */ public class Main { /** * @param args the command line arguments * 主函数 */ public static void main(String[] args) { int[][] a = {{1, 2, 3}, {1, 2, 3}}; int[][] b = {{0, 1, 1}, {1, 0, 1}, {1, 1, 0}}; /

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档