3.编写一个窗体程序,能实现矩阵操作,要求如下: (1)能随机生成方阵,矩阵的维数用户可以指定。 (2)实现矩阵相加、相减以及相乘。 (3)实现矩阵转置。
时间: 2024-03-08 21:47:54 浏览: 176
下面是一个简单的 C# 窗体程序,实现了矩阵的生成、相加、相减、相乘和转置功能。用户可以通过输入维数和选择操作来进行矩阵操作。
```csharp
using System;
using System.Windows.Forms;
namespace MatrixCalculator
{
public partial class Form1 : Form
{
private int[,] matrix1;
private int[,] matrix2;
private int[,] result;
private int dimension;
public Form1()
{
InitializeComponent();
}
private void btnGenerate_Click(object sender, EventArgs e)
{
dimension = int.Parse(txtDimension.Text);
matrix1 = new int[dimension, dimension];
matrix2 = new int[dimension, dimension];
result = new int[dimension, dimension];
Random random = new Random();
for (int i = 0; i < dimension; i++)
{
for (int j = 0; j < dimension; j++)
{
matrix1[i, j] = random.Next(10);
matrix2[i, j] = random.Next(10);
}
}
lblMatrix1.Text = MatrixToString(matrix1);
lblMatrix2.Text = MatrixToString(matrix2);
}
private void btnAdd_Click(object sender, EventArgs e)
{
for (int i = 0; i < dimension; i++)
{
for (int j = 0; j < dimension; j++)
{
result[i, j] = matrix1[i, j] + matrix2[i, j];
}
}
lblResult.Text = MatrixToString(result);
}
private void btnSubtract_Click(object sender, EventArgs e)
{
for (int i = 0; i < dimension; i++)
{
for (int j = 0; j < dimension; j++)
{
result[i, j] = matrix1[i, j] - matrix2[i, j];
}
}
lblResult.Text = MatrixToString(result);
}
private void btnMultiply_Click(object sender, EventArgs e)
{
for (int i = 0; i < dimension; i++)
{
for (int j = 0; j < dimension; j++)
{
for (int k = 0; k < dimension; k++)
{
result[i, j] += matrix1[i, k] * matrix2[k, j];
}
}
}
lblResult.Text = MatrixToString(result);
}
private void btnTranspose_Click(object sender, EventArgs e)
{
for (int i = 0; i < dimension; i++)
{
for (int j = 0; j < dimension; j++)
{
result[i, j] = matrix1[j, i];
}
}
lblResult.Text = MatrixToString(result);
}
private string MatrixToString(int[,] matrix)
{
string output = "";
for (int i = 0; i < dimension; i++)
{
for (int j = 0; j < dimension; j++)
{
output += matrix[i, j] + "\t";
}
output += Environment.NewLine;
}
return output;
}
}
}
```
在窗体设计器中添加以下控件:
- 三个 Label 控件,用于显示矩阵和结果。
- 一个 TextBox 控件,用于输入矩阵的维数。
- 四个 Button 控件,分别实现生成矩阵、相加、相减、相乘和转置操作。
然后在代码中实现以上功能。在 btnGenerate_Click 方法中,生成两个随机矩阵并显示在 Label 控件中。在 btnAdd_Click、btnSubtract_Click 和 btnMultiply_Click 方法中,分别实现矩阵的相加、相减和相乘,并将结果显示在 Label 控件中。在 btnTranspose_Click 方法中,实现矩阵的转置。最后,定义一个 MatrixToString 方法,将二维数组转换为字符串显示在 Label 控件中。
阅读全文