《高级语言程序设计2》课程设计报告——矩阵乘法.doc

《高级语言程序设计2》课程设计报告——矩阵乘法.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《高级语言程序设计2》课程设计报告——矩阵乘法

《高级语言程序设计(2)》课程设计报告 程序设计说明书 【设计题目】矩阵乘法演示程序 【问题描述】 用java编写一个矩阵乘法演示程序。主要表现多线程运算的过程。要求能用图形界面表现出比较形象的过程,两个矩阵数据随机生成,结果矩阵的每个元素各是一个线程的运行结果。 【软件功能】 定义矩阵类; 进行矩阵的乘法运算; 读取用户输入的行数与列数,随机生成矩阵; 实现GUI界面; 响应鼠标事件。 【算法思想】 输入矩阵的行数、列数后创建可变数组,并对数组赋值,然后用多线程同时计算,每一个线程计算出的结果即为结果矩阵的行元素。在多线程计算中,每个线程都是用矩阵1的行元素去乘矩阵2的列元素,每一行乘每一列的结果即为结果矩阵的一个元素。 【类的设计】 类MatrixMultiply:实现GUI,创建数组用来保存矩阵,显示数组; 内部类MultiplyThread:用多线程实现矩阵乘法。 【用户界面】 【程序技巧】 将实现多线程矩阵乘法的类定义为内部类,减少对象的调用传送参数等; 数组用ArrayList定义为可变数组; 矩阵相乘用多线程实现,提高运算效率。 【模块划分及调用关系】 主类MatrixMultiply调用内部类MultiplyThread进行多线程矩阵乘法的计算 【模块流程图】 【运行说明】 程序运行后,在对应的文本框内输入相应矩阵的列数和行数,再单击“确定”按钮,即可得到矩阵1和矩阵2的结果;如想进行第二次运算,单击“重置”按钮,然后重复第一次操作即可。 程序上机调试报告 【语法错误及其排除】 调用createArray()方法时格式错误,起先为createArray(rows_1, columns_1),结果不能创建矩阵,最后改为matrix_1 = createArray(rows_1, columns_1)。 数组类型定义错误,起先定义为ArrayList,结果生成的可变二维数组行列无法相乘,最后改为ArrayListArrayList。 【算法错误及其排除】 起初用多线程计算矩阵时,将一个线程所得的结果定义为结果矩阵的一个元素,每次线程只计算矩阵1的行元素乘矩阵2的列元素;最后将一个线程所得的结果定义为结果矩阵的行元素,每个线程计算矩阵1的行元素乘以矩阵2的所有列元素。 程序测试结果 【测试数据】 第一组:矩阵1:行数 4 列数 5 矩阵2:行数 5 列数 7 第二组:矩阵1:行数 6 列数 7 矩阵2:行数 7 列数 4 【输出结果】 第一组: 第二组: 【收获及体会】 源程序代码 import java.awt.*; import java.lang.reflect.Array; import java.util.*; import javax.swing.*; import javax.swing.border.*; import java.awt.event.*; public class MatrixMultiply extends JFrame implements ActionListener{ private JButton jbtOk = new JButton(确定); private JButton jbtCancel = new JButton(重置); private JTextField jtf_1 = new JTextField(4); private JTextField jtf_2 = new JTextField(4); private JTextField jtf_3 = new JTextField(4); private JTextField jtf_4 = new JTextField(4); JTable jta1 = new JTable(10, 10); JTable jta2 = new JTable(10, 10); JTable jta3 = new JTable(10, 10); static Scanner input = new Scanner(System.in); //用ArrayList创建三个动态数组 static ArrayListArrayList matrix_1, matrix_2, matrix_3; //声明四个变量,分别用来表示矩阵的行数、列数 static int rows_1, rows_2, columns_1, columns_2; public MatrixMultiply(){ JPanel p1 = new JPanel(new FlowLayout(1, 5, 0)); JPanel p2 = new JP

文档评论(0)

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

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

1亿VIP精品文档

相关文档