假設客車的座位數是9行4列,使用二維數組在控制台應用程式中實現簡單的客車售票系統。

来源:https://www.cnblogs.com/erdiba/archive/2020/03/20/12531557.html
-Advertisement-
Play Games

具體要求為: 使用一個二維數組記錄客車售票系統中的所有座位號,併在每個座位號上都顯示有票,然後用戶輸入一個坐標位置,按Enter鍵,即可將該座位號顯示為已售。 首先我定義的輸入格式為:1,2 個人認為主要知識點偽代碼如下 1.字元串分割 char[] separator = { ',' }; spl ...


具體要求為:

使用一個二維數組記錄客車售票系統中的所有座位號,併在每個座位號上都顯示有票,然後用戶輸入一個坐標位置,按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     }

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 什麼是線性回歸(Linear Regression) 我們在初中可能就接觸過,y=ax,x為自變數,y為因變數,a為繫數也是斜率。如果我們知道了a繫數,那麼給我一個x,我就能得到一個y,由此可以很好地為未知的x值預測相應的y值。在只有一個變數的情況下,線性回歸可以用方程:y = ax+b 表示;多元 ...
  • 目錄 1、函數對象 2、函數嵌套 3、閉包函數 3.1 什麼是閉包函數 3.2 如何定義閉包函數 3.3 為何要有閉包函數——閉包函數的應用場景 1、函數對象 函數對象:指的是函數可以被當做’數據’來處理。 具體可以分為四個方面的使用: (1)函數可以被引用 (2)函數可以作為容器類型的元素 (3) ...
  • 字元串 string是數據類型,不是引用或者指針類型 string是只讀的byte slice,len函數可以獲取他所有的byte數量 string的byte數組可以存放任何數據 輸出 註意:len獲取的string的byte個數,不是字元數 Unicode UTF8 Unicode是一種字元集(c ...
  • Python中文命名 命名規則數字、字母、下劃線 環境 1. python 3.7.3 x64 2. win10 現象 Python在命名的地方都是可以用中文命名 如: 1. 變數 1. 中文下劃線無法被識別 2. 打出中文下劃線按退格鍵會不會被識別,會把前邊一個字元刪了 2. 類、類屬性、方法、函 ...
  • 本人免費整理了Java高級資料,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高併發分散式等教程,一共30G,需要自己領取。傳送門:https://mp.weixin.qq.com/s/osB-BOl6W-ZLTSttTkqMPQ 誰 ...
  • 導讀 前幾天和一個朋友討論了他們公司的系統問題,傳統的單體應用,集群部署,他說近期服務的併發量可能會出現瞬時增加的風險,雖然部署了集群,但是通過壓測後發現請求延遲仍然是很大,想問問我有什麼改進的地方。我沉思了一會,現在去改架構顯然是不可能的,於是我給出了一個建議,讓他去做個介面限流,這樣能夠保證瞬時 ...
  • 前言 在前一篇文章中,我提到最近要陸續為大家寫一些.Net實戰技術文章。從今天起,我將圍繞一個入門級現實的芒果分銷管理系統案例,使用ASP.NET MVC 5,從前端到後端,一步一步為大家呈現整個系統的開發過程與業務關鍵架構以及代碼。 如果您是一位.Net初學者 如果您剛剛接觸MVC 如果您剛剛接觸 ...
  • ArcGISRuntime 載入 高德、騰訊、百度地圖 瓦片並顯示。 環境# Visual Studio 2019,dotNet Framework 4.6.1 SDK 支持Windows Win7、8、10 源碼地址 效果# ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...