Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理多个选项的数据的最佳方法C#_C# - Fatal编程技术网

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

处理多个选项的数据的最佳方法C#,c#,C#,我的程序工作流程: 1) 显示菜单 2) 通过开关捕捉选项 2.1)将浮动添加到列表中 2.2)增量int1 2.3)增量int2 2.4)显示输入 现在我想添加一个生成器,它将在控制台中打印我的光纤轨道的外观。例如: 1) 增加了20公里长的路段 2) 在最新版本中添加了焊接 3) 增加了一个再生器 4) 附加连接器 5) 增加了10km长的路段 我想进入我的控制台: 这是您的轨迹的外观: [变送器]->[--20公里轨道--]->[焊接]->[再生器]->[连接器]>->[--10公里轨道-

我的程序工作流程:

1) 显示菜单

2) 通过开关捕捉选项

2.1)将浮动添加到列表中

2.2)增量int1

2.3)增量int2

2.4)显示输入


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

1) 增加了20公里长的路段

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

3) 增加了一个再生器

4) 附加连接器

5) 增加了10km长的路段

我想进入我的控制台:

这是您的轨迹的外观: [变送器]->[--20公里轨道--]->[焊接]->[再生器]->[连接器]>->[--10公里轨道--]

第一个问题是我应该创建什么样的列表来处理我的轨道设计?我只想制作一个整数列表,并制作一个编码方法,将示例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();




    }





}
公共类程序
{
公众参与人数;
公共int连接计数;
公共列表部分=新列表();
//public List TrackElements=new List();
公共计划()
{
第条.加入(0);
}
公开作废展示结果()
{
浮动所有部分=0;
foreach(第节中的浮动项目)
{
所有部分+=项目;
}
Console.Clear();
WriteLine(“焊接计数:{0},连接器计数:{1},截面之和:{2}”,焊接计数,连接器计数,所有截面);
Console.ReadKey();
}
公共无效财务指令()
{
}
公共静态void主菜单()
{
Console.Clear();
Console.WriteLine(“\n”);
Console.WriteLine(“添加:\n1.节\n2.焊接\n3.再生器\n4.显示结果”);
}
公共无效菜单选项()
{
var key=Console.ReadKey();
开关(钥匙,钥匙)
{
案例ConsoleKey.D1:
案例ConsoleKey.NumPad1:
Console.Clear();
控制台。写线(“给出长度:”);
浮动结果;
float.TryParse(Console.ReadLine(),out结果);
添加(结果)部分;
主菜单();
menuChoose();
打破
案例ConsoleKey.D2:
WeldCount++;
主菜单();
menuChoose();
打破
case ConsoleKey.D3:
ConnectroCount++;
主菜单();
menuChoose();
打破
案例ConsoleKey.D4:
showResults();
主菜单();
menuChoose();
打破
违约:
Console.WriteLine(“Cośty odjebał”);
打破
}
}
静态void Main(字符串[]参数)
{
程序=新程序();
主菜单();
program.menuChoose();
}
}

创建一个
列表
。通过这种方式,您可以添加发射机、焊机和曲目,然后打印出来

如果你熟悉使用类,我会先制作一个跟踪类。 拥有浮动列表的问题在于,您无法确定它们的输入顺序,因此如何将特定长度映射到特定轨迹

这就是你的田径课的简单程度:

public class Track
{
    public string Name;
    public float Length;
}
在主菜单中,您可以通过以下方式添加新曲目:

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();
}

有什么问题?你不知道如何组织作业步骤(好吧,定义
类步骤
),如何链接它们(它们是否按顺序排列?),使用哪种数据类型来定义它(关于
列表
?)或什么?“现在我想添加一个生成器,它将在控制台中打印我的光纤轨道的外观。例如“嗯?”?发电机?光纤轨道?我们不是在建造和你一样的东西,给我们一些背景@Sinatr:列表是某种数据类型吗?@Glubus:好吧,那么。。。就像这个节目是轨道设计师一样。如果您正在设计轨道,您可以从开关菜单焊缝、连接器等添加元素。当用户完成后,我想提供一个选项来打印设计轨道。@J.DoeMilion评论建议您创建一个类来建模数据。这没有什么内置的。有趣的方式创建这个程序,我会考虑这个。