c# 构建工艺图的示例代码
时间: 2023-12-07 13:53:51 浏览: 157
以下是使用C#构建工艺图的示例代码:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CraftDiagram
{
public class Process
{
public string Name { get; set; }
public List<Process> Inputs { get; set; }
public List<Process> Outputs { get; set; }
public Process(string name)
{
Name = name;
Inputs = new List<Process>();
Outputs = new List<Process>();
}
public void AddInput(Process process)
{
Inputs.Add(process);
process.Outputs.Add(this);
}
public void AddOutput(Process process)
{
Outputs.Add(process);
process.Inputs.Add(this);
}
public void RemoveInput(Process process)
{
Inputs.Remove(process);
process.Outputs.Remove(this);
}
public void RemoveOutput(Process process)
{
Outputs.Remove(process);
process.Inputs.Remove(this);
}
public static void DrawDiagram(Process process, int indent = 0)
{
Console.WriteLine(new string(' ', indent) + process.Name);
foreach (var input in process.Inputs)
{
DrawDiagram(input, indent + 4);
}
}
}
class Program
{
static void Main(string[] args)
{
var p1 = new Process("Process 1");
var p2 = new Process("Process 2");
var p3 = new Process("Process 3");
var p4 = new Process("Process 4");
var p5 = new Process("Process 5");
p1.AddOutput(p2);
p1.AddOutput(p3);
p2.AddInput(p1);
p2.AddOutput(p4);
p3.AddInput(p1);
p3.AddOutput(p4);
p4.AddInput(p2);
p4.AddInput(p3);
p4.AddOutput(p5);
p5.AddInput(p4);
Process.DrawDiagram(p1);
}
}
}
```
这个示例代码演示了如何使用简单的Process类来构建工艺图,并使用递归函数来绘制工艺图。在这个示例中,我们创建了5个Process对象,并使用AddInput和AddOutput方法来建立它们之间的关系。最后,我们使用DrawDiagram方法来绘制工艺图。
阅读全文