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

Posted erdiba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了假设客车的座位数是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     }

 

以上是关于假设客车的座位数是9行4列,使用二维数组在控制台应用程序中实现简单的客车售票系统。的主要内容,如果未能解决你的问题,请参考以下文章

java二维数组int[][]a=1,2,3,,4,5,6,7,8,9啥意思,

实验九总结

作业9总结

从 Java 中的二维数组矩阵中获取行和列

c语言 输出二维数组任意行任意列元素的值

二位数组按行按列遍历效率问题小细节