假设客车的座位数是9行4列,使用二维数组在控制台应用程序中实现简单的客车售票系统。

具体要求为:

使用一个二维数组记录客车售票系统中的所有座位号,并在每个座位号上都显示有票,然后用户输入一个坐标位置,按Enter键,即可将该座位号显示为已售。

首先我定义的输入格式为:1,2

个人认为主要知识点伪代码如下

1.字符串分割

char[] separator = { ',' }; 

splitstrings = str.Split(separator);

2.字符串前后去空

str.Trim()

3.转换类型,如果不是int类型则为false,可以处理异常情况。

int columnNum = 0;
bool isColumn = int.TryParse(column, out columnNum);

先创建如下脚本,然后在Main函数中直接调用即可。

1 public class TicketingSystem 2     { 3         int[,] seatCount = new int[9, 4]; 4  5         public void CheckTicketCount() 6         { 7             bool res = true; 8             String[] splitstrings = { "row", "col"}; 9             char[] separator = { ',' };10             while (res)11             {12                 Console.WriteLine("请输入座位号:");13                 string str = Console.ReadLine();14                 splitstrings = str.Split(separator);15                 if (str.Trim() == "Quit")16                 {17                     res = false;18                     Console.WriteLine("结束购票");19                     return;20                 }21 22                 if (splitstrings.Length < 2)23                 {24                     Console.WriteLine("输入的格式不正确");25                     continue;26                 }27                 string row = splitstrings[0].Trim();28                 string column = splitstrings[1].Trim();29 30                 int rowNum = 0;31                 bool isRow = int.TryParse(row, out rowNum);32                 if (!isRow || rowNum >= seatCount.GetLength(0))33                 {34                     Console.WriteLine("输入的行不正确");35                     continue;36                 }37 38                 int columnNum = 0;39                 bool isColumn = int.TryParse(column, out columnNum);40                 if (!isColumn || columnNum >= seatCount.GetLength(1))41                 {42                     Console.WriteLine("输入的列不正确");43                     continue;44                 }45                 if (seatCount[rowNum, columnNum] == 1)46                 {47                     Console.WriteLine("该座位已经被购买!");48                     continue;49                 }50                 seatCount[rowNum, columnNum] = 1;51                 Console.WriteLine(rowNum + "行" + columnNum + "列车票售出");52                 bool isEmptySeat = false;53                 for (int i = 0; i < seatCount.GetLength(0); i++)54                 {55                     for (int j = 0; j < seatCount.GetLength(1); j++)56                     {57                         if (seatCount[i, j] == 0)58                         {59                             isEmptySeat = true;60                             break;61                         }62                     }63                     if (isEmptySeat)64                     {65                         break;66                     }67                 }68 69                 if (!isEmptySeat)70                 {71                     res = false;72                     Console.WriteLine("车票售完!");73                     return;74                 }75                 Console.WriteLine();76                 Console.WriteLine();77             }78         }79     }
(0)

相关推荐