C# 7.3编写一个窗体程序,能实现矩阵操作,要求如下: (1)能随机生成方阵,矩阵的维数用户可以指定。 (2)实现矩阵相加、相减以及相乘。 (3)实现矩阵转置。
时间: 2024-03-18 20:41:00 浏览: 133
C#编写的矩阵类,包含矩阵一般的操作
5星 · 资源好评率100%
以下是一个简单的实现矩阵操作的 C# 7.3 窗体程序:
```csharp
using System;
using System.Windows.Forms;
namespace MatrixOperations
{
public partial class Form1 : Form
{
private int[,] matrixA, matrixB, resultMatrix;
private int matrixSize;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
matrixSize = 0;
}
private void buttonGenerate_Click(object sender, EventArgs e)
{
try
{
matrixSize = int.Parse(textBoxSize.Text);
Random rand = new Random();
matrixA = new int[matrixSize, matrixSize];
matrixB = new int[matrixSize, matrixSize];
resultMatrix = new int[matrixSize, matrixSize];
for (int i = 0; i < matrixSize; i++)
{
for (int j = 0; j < matrixSize; j++)
{
matrixA[i, j] = rand.Next(10);
matrixB[i, j] = rand.Next(10);
}
}
labelMatrixA.Text = "矩阵A:";
labelMatrixB.Text = "矩阵B:";
labelResult.Text = "结果:";
DisplayMatrix(matrixA, labelMatrixA);
DisplayMatrix(matrixB, labelMatrixB);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void buttonAdd_Click(object sender, EventArgs e)
{
if (matrixSize == 0)
{
MessageBox.Show("请先生成矩阵!");
return;
}
for (int i = 0; i < matrixSize; i++)
{
for (int j = 0; j < matrixSize; j++)
{
resultMatrix[i, j] = matrixA[i, j] + matrixB[i, j];
}
}
DisplayMatrix(resultMatrix, labelResult);
}
private void buttonSubtract_Click(object sender, EventArgs e)
{
if (matrixSize == 0)
{
MessageBox.Show("请先生成矩阵!");
return;
}
for (int i = 0; i < matrixSize; i++)
{
for (int j = 0; j < matrixSize; j++)
{
resultMatrix[i, j] = matrixA[i, j] - matrixB[i, j];
}
}
DisplayMatrix(resultMatrix, labelResult);
}
private void buttonMultiply_Click(object sender, EventArgs e)
{
if (matrixSize == 0)
{
MessageBox.Show("请先生成矩阵!");
return;
}
for (int i = 0; i < matrixSize; i++)
{
for (int j = 0; j < matrixSize; j++)
{
resultMatrix[i, j] = 0;
for (int k = 0; k < matrixSize; k++)
{
resultMatrix[i, j] += matrixA[i, k] * matrixB[k, j];
}
}
}
DisplayMatrix(resultMatrix, labelResult);
}
private void buttonTranspose_Click(object sender, EventArgs e)
{
if (matrixSize == 0)
{
MessageBox.Show("请先生成矩阵!");
return;
}
for (int i = 0; i < matrixSize; i++)
{
for (int j = 0; j < i; j++)
{
int temp = matrixA[i, j];
matrixA[i, j] = matrixA[j, i];
matrixA[j, i] = temp;
temp = matrixB[i, j];
matrixB[i, j] = matrixB[j, i];
matrixB[j, i] = temp;
}
}
labelMatrixA.Text = "矩阵A转置后:";
labelMatrixB.Text = "矩阵B转置后:";
labelResult.Text = "结果:";
DisplayMatrix(matrixA, labelMatrixA);
DisplayMatrix(matrixB, labelMatrixB);
}
private void DisplayMatrix(int[,] matrix, Label label)
{
label.Text += "\n";
for (int i = 0; i < matrixSize; i++)
{
for (int j = 0; j < matrixSize; j++)
{
label.Text += matrix[i, j].ToString() + "\t";
}
label.Text += "\n";
}
}
}
}
```
这个程序有一个窗体和五个按钮:生成矩阵、矩阵相加、矩阵相减、矩阵相乘和矩阵转置。用户可以指定矩阵大小,然后随机生成两个矩阵并将它们显示在窗体上。当用户点击矩阵相加、相减或相乘按钮时,程序将计算结果并在窗体上显示。当用户点击矩阵转置按钮时,程序将矩阵转置并将转置后的矩阵显示在窗体上。
阅读全文