处理多个选项C#的最佳方法

时间:2016-01-21 14:34:19

标签: c#

我的计划工作流程:

1)显示菜单

2)通过开关捕捉选项

2.1)将float添加到列表中

2.2)增加int1

2.3)增量int2

2.4)显示输入

现在我想添加一个发生器,它将在控制台中打印我的光纤轨道的样子。例如:

1)增加了20公里长的部分

2)在最新版本中添加了焊接

3)添加了再生器

4)添加了连接器

5)增加了10km长度的部分

我想进入我的控制台:

  

这就是你的曲目的样子:   [发射机] - GT; [--20km track--] - > [焊接] - > [再生器] - > [连接器]> - > [--10km轨道 - ]

第一个问题是我应该创建什么样的List来处理我的轨道设计?我只想制作一个整数列表,并制作一个编码方法,将例如1转换为第2节,用于连接器等的焊接3。

任何建议都会很好!感谢您的时间和耐心。

public class Program
{

    public int WeldCount;
    public int ConnectroCount;
    public List<float> section = new List<float>();
    //public List<> TrackElements = new List<>();

    public Program()
    {
        section.Add(0);

    }
    public void showResults()
    {
        float allSections = 0;
        foreach (float item in section)
        {
            allSections += item;
        }

        Console.Clear();
        Console.WriteLine("Weld count: {0}, connector count: {1}, sum of sections: {2}", WeldCount,ConnectroCount,allSections);
        Console.ReadKey();
    }



    public void finalConstruction()
    {




    }


    public static void mainMenu()
    {
        Console.Clear();
        Console.WriteLine("\n");
        Console.WriteLine("Add: \n1. Section \n2. Weld \n3. Regenerator\n4. Show results");




    }


    public void menuChoose()
    {

        var key = Console.ReadKey();

        switch (key.Key)
        {
            case ConsoleKey.D1:
            case ConsoleKey.NumPad1:

                Console.Clear();
                Console.WriteLine("Give lenght:");
                float result;
                float.TryParse(Console.ReadLine(), out result);


                section.Add(result);



                mainMenu();
                menuChoose();

                break;

            case ConsoleKey.D2:

                WeldCount++;
                mainMenu();
                menuChoose();
                break;

            case ConsoleKey.D3:
                ConnectroCount++;
                mainMenu();
                menuChoose();
                break;

            case ConsoleKey.D4:
                showResults();
                mainMenu();
                menuChoose();
                break;





            default:
                Console.WriteLine("Coś ty odjebał");
                break;
        }

    }


    static void Main(string[] args)
    {


        Program program = new Program();
        mainMenu();
        program.menuChoose();




    }





}

2 个答案:

答案 0 :(得分:0)

创建List<string>。这样您就可以添加变送器,焊机和轨道,然后进行打印。

答案 1 :(得分:0)

如果您熟悉使用类,我首先要创建一个Track类。 拥有浮动列表的问题是,您无法确定它们的输入顺序,那么如何将特定长度映射到特定轨道?

这是您的Track类的简单程度:

public class Track
{
    public string Name;
    public float Length;
}

在您的mainMenu中,您可以通过以下方式添加新曲目:

Track t = new Track();
t.Name = "Welding";
t.Length = 4.5f;
trackElements.Add(t);

只需显示如下:

public void showResults()
{
    foreach(Track item in trackElements)
    {
        Console.WriteLine(item.Name + ": " + item.Length);
    }
    Console.WriteLine("Number of sections: " + trackElements.Count());
    Console.ReadKey();
}