使用c#预订飞机座位

本文关键字:飞机 使用 | 更新日期: 2023-09-27 18:16:59

我偶然发现了一个用c++编写的在线(使用控制台)座位预订系统的源代码。该程序允许人们在飞机上选择头等舱,商务舱和经济舱,选择排,最后选择座位。我一直试图重写相同的代码,但在c#但遇到错误,下面是代码:

static void Main(string[] args)
    {
        int[,] airplane = new int[13, 6];
        sbyte[,] airchar = new sbyte[13, 6];
        string ticket;
        int[] row = new int[2];

        //--------------------------------------------
        for (int i = 0; i < 13; i++)
        {
            for (int j = 0; j < 6; j++)
            {
                airchar[i, j] = (sbyte)'*';
                airplane[i, j] = 0;
            }
        }
        //--------------------------------------------
        for (;;)
        {
            Console.Write("Rows 1 and 2 are first class (FC)");
            Console.Write("'n");
            Console.Write("Rows 3 through 7 are business class (BC)");
            Console.Write("'n");
            Console.Write("Rows 8 through 13 are economy class (EC)");
            Console.Write("'n");
            Console.Write("'n");
            Console.Write("* - Available");
            Console.Write("'n");
            Console.Write("X - Occupied");
            Console.Write("'n");
            Console.Write("'n");
            Console.Write("     'tA'tB'tC'tD'tE'tF");
            Console.Write("'n");
            Console.Write("Row 1't");
            Console.Write(airchar[0, 0]);
            Console.Write("'t");
            Console.Write(airchar[0, 1]);
            Console.Write("'t");
            Console.Write(airchar[0, 2]);
            Console.Write("'t");
            Console.Write(airchar[0, 3]);
            Console.Write("'t");
            Console.Write(airchar[0, 4]);
            Console.Write("'t");
            Console.Write(airchar[0, 5]);
            Console.Write("'n");
            Console.Write("Row 2't");
            Console.Write(airchar[1, 0]);
            Console.Write("'t");
            Console.Write(airchar[1, 1]);
            Console.Write("'t");
            Console.Write(airchar[1, 2]);
            Console.Write("'t");
            Console.Write(airchar[1, 3]);
            Console.Write("'t");
            Console.Write(airchar[1, 4]);
            Console.Write("'t");
            Console.Write(airchar[1, 5]);
            Console.Write("'n");
            Console.Write("Row 3't");
            Console.Write(airchar[2, 0]);
            Console.Write("'t");
            Console.Write(airchar[2, 1]);
            Console.Write("'t");
            Console.Write(airchar[2, 2]);
            Console.Write("'t");
            Console.Write(airchar[2, 3]);
            Console.Write("'t");
            Console.Write(airchar[2, 4]);
            Console.Write("'t");
            Console.Write(airchar[2, 5]);
            Console.Write("'n");
            Console.Write("Row 4't");
            Console.Write(airchar[3, 0]);
            Console.Write("'t");
            Console.Write(airchar[3, 1]);
            Console.Write("'t");
            Console.Write(airchar[3, 2]);
            Console.Write("'t");
            Console.Write(airchar[3, 3]);
            Console.Write("'t");
            Console.Write(airchar[3, 4]);
            Console.Write("'t");
            Console.Write(airchar[3, 5]);
            Console.Write("'n");
            Console.Write("Row 5't");
            Console.Write(airchar[4, 0]);
            Console.Write("'t");
            Console.Write(airchar[4, 1]);
            Console.Write("'t");
            Console.Write(airchar[4, 2]);
            Console.Write("'t");
            Console.Write(airchar[4, 3]);
            Console.Write("'t");
            Console.Write(airchar[4, 4]);
            Console.Write("'t");
            Console.Write(airchar[4, 5]);
            Console.Write("'n");
            Console.Write("Row 6't");
            Console.Write(airchar[5, 0]);
            Console.Write("'t");
            Console.Write(airchar[5, 1]);
            Console.Write("'t");
            Console.Write(airchar[5, 2]);
            Console.Write("'t");
            Console.Write(airchar[5, 3]);
            Console.Write("'t");
            Console.Write(airchar[5, 4]);
            Console.Write("'t");
            Console.Write(airchar[5, 5]);
            Console.Write("'n");
            Console.Write("Row 7't");
            Console.Write(airchar[6, 0]);
            Console.Write("'t");
            Console.Write(airchar[6, 1]);
            Console.Write("'t");
            Console.Write(airchar[6, 2]);
            Console.Write("'t");
            Console.Write(airchar[6, 3]);
            Console.Write("'t");
            Console.Write(airchar[6, 4]);
            Console.Write("'t");
            Console.Write(airchar[6, 5]);
            Console.Write("'n");
            Console.Write("Row 8't");
            Console.Write(airchar[7, 0]);
            Console.Write("'t");
            Console.Write(airchar[7, 1]);
            Console.Write("'t");
            Console.Write(airchar[7, 2]);
            Console.Write("'t");
            Console.Write(airchar[7, 3]);
            Console.Write("'t");
            Console.Write(airchar[7, 4]);
            Console.Write("'t");
            Console.Write(airchar[7, 5]);
            Console.Write("'n");
            Console.Write("Row 9't");
            Console.Write(airchar[8, 0]);
            Console.Write("'t");
            Console.Write(airchar[8, 1]);
            Console.Write("'t");
            Console.Write(airchar[8, 2]);
            Console.Write("'t");
            Console.Write(airchar[8, 3]);
            Console.Write("'t");
            Console.Write(airchar[8, 4]);
            Console.Write("'t");
            Console.Write(airchar[8, 5]);
            Console.Write("'n");
            Console.Write("Row 10't");
            Console.Write(airchar[9, 0]);
            Console.Write("'t");
            Console.Write(airchar[9, 1]);
            Console.Write("'t");
            Console.Write(airchar[9, 2]);
            Console.Write("'t");
            Console.Write(airchar[9, 3]);
            Console.Write("'t");
            Console.Write(airchar[9, 4]);
            Console.Write("'t");
            Console.Write(airchar[9, 5]);
            Console.Write("'n");
            Console.Write("Row 11't");
            Console.Write(airchar[10, 0]);
            Console.Write("'t");
            Console.Write(airchar[10, 1]);
            Console.Write("'t");
            Console.Write(airchar[10, 2]);
            Console.Write("'t");
            Console.Write(airchar[10, 3]);
            Console.Write("'t");
            Console.Write(airchar[10, 4]);
            Console.Write("'t");
            Console.Write(airchar[10, 5]);
            Console.Write("'n");
            Console.Write("Row 12't");
            Console.Write(airchar[11, 0]);
            Console.Write("'t");
            Console.Write(airchar[11, 1]);
            Console.Write("'t");
            Console.Write(airchar[11, 2]);
            Console.Write("'t");
            Console.Write(airchar[11, 3]);
            Console.Write("'t");
            Console.Write(airchar[11, 4]);
            Console.Write("'t");
            Console.Write(airchar[11, 5]);
            Console.Write("'n");
            Console.Write("Row 13't");
            Console.Write(airchar[12, 0]);
            Console.Write("'t");
            Console.Write(airchar[12, 1]);
            Console.Write("'t");
            Console.Write(airchar[12, 2]);
            Console.Write("'t");
            Console.Write(airchar[12, 3]);
            Console.Write("'t");
            Console.Write(airchar[12, 4]);
            Console.Write("'t");
            Console.Write(airchar[12, 5]);
            Console.Write("'n");
            Console.Write("'n");

//问题从这里开始

            Console.Write("Enter Ticket type (FC, BC, or EC): ");
            ticket = ConsoleInput.ReadToWhiteSpace(true);
            Console.Write("Desired Row: ");
            row[0] = ConsoleInput.ReadToWhiteSpace(true);
            Console.Write("Desired seat (A,B,C,D,E or F): ");
            seat = ConsoleInput.ReadToWhiteSpace(true);

            switch (seat)
            {
                case 'A':
                case 'a':
                    row[0] = row[0] - 1;
                    row[1] = 1;
                    row[1] = row[1] - 1;
                    break;
                case 'B':
                case 'b':
                    row[0] = row[0] - 1;
                    row[1] = 2;
                    row[1] = row[1] - 1;
                    break;
                case 'C':
                case 'c':
                    row[0] = row[0] - 1;
                    row[1] = 3;
                    row[1] = row[1] - 1;
                    break;
                case 'D':
                case 'd':
                    row[0] = row[0] - 1;
                    row[1] = 4;
                    row[1] = row[1] - 1;
                    break;
                case 'E':
                case 'e':
                    row[0] = row[0] - 1;
                    row[1] = 5;
                    row[1] = row[1] - 1;
                    break;
                case 'F':
                case 'f':
                    row[0] = row[0] - 1;
                    row[1] = 6;
                    row[1] = row[1] - 1;
                    break;
            }

语法错误出现在ConsoleInput.ReadToWhiteSpace(true);对于ticket, row[0]和seat。发生的另一个错误是在switch语句中,所有情况都突出显示,并且状态为"不能隐式地将类型'char'转换为'sbyte'。""

如果有人能帮我做这件事,我将非常感激。谢谢你!

使用c#预订飞机座位

在交换机中,您有座位,这是sbyte,在您的case字符。因此,将case中的每个字符转换为sbytereturn char方法中的ReadToWhiteSpace

你可以使用Console.ReadLine()Console.Read()(给出ASCII值)代替ConsoleInput.ReadToWhiteSpace从控制台获得输入。