制作一个简单的客车售票系统,假设客车的座位数是9行4列,使用一个二维数组记录客车售票系统中的所有座位号,并在每个座位号上都显示“【有票】”,然后用户输入一个坐标位置,按回车键,即可将该座位号显示为“【已售】”。程序运行结果如下所示。
using System; using System.Numerics; namespace 售票 { class Program { static void Main(string[] args) { string[,] Sp = new string[9, 4];//二维数组 Console.WriteLine("\t"+"简单客车售票系统"); for (int i = 0; i < 9; i++)//数组初始化 { for (int j = 0; j < 4; j++) { Sp[i, j] = "【有票】"; Console.Write("{0,3}", Sp[i, j]); } Console.WriteLine("\n"); } string a = string.Empty;//string.Empty是string的静态字段,一般用于字符串的初始化,表示null while (true) { Console.WriteLine("请输入座位行号和列号(如:0,2),输入Q键退出:"); a = Console.ReadLine(); if (a == "Q" || a == "q")//要先进行相等的判断,去break,否则报错 { break; } else { string[] b = a.Split(','); //split 方法将字符串进行分割 语法:字符串名.Split( '分割符',需分割位的段数);【Split有9个重载的方法】* //split 方法返回值是字符串,所以要存入字符串的数组中 int x = Convert.ToInt32(b[0]); int y = Convert.ToInt32(b[1]); Sp[x, y] = "【已售】"; for (int i = 0; i < 9; i++) { for (int j = 0; j < 4; j++) { //Sp[i, j] = "【有票】"; Console.Write("{0,3}", Sp[i, j]); } Console.WriteLine("\n"); } Console.WriteLine("请继续选择:"); Console.WriteLine("\n"); } } //Console.ReadKey(); } } }
重难点
string a = string.Empty;
string.Empty是string的静态字段,一般用于字符串的初始化,表示null string.Empty 等于 " " 与赋空(null)相差不大 2.
string[] b = a.Split(’,’); int x = Convert.ToInt32(b[0]); int y = Convert.ToInt32(b[1]);
split 方法将字符串进行分割 (按需进行分割) 语法:字符串名.Split( ‘分割符’,需分割位的段数); ( 分割符需用单引号引起来) 【Split有9个重载的方法】 3.
if (a == “Q” || a == “q”) 在进行if语句判断时要先进行判断是否相等,先写break,然后再去执行语句,否则出错
小tips: 将选座位的整个过程的代码放入while(true)恒真的循环体中,实现选座过程的不断循环,直至break;结束该循环
***将这种有需要选择输入要求的代码块放在while(true)恒真的循环体内,实现程序的多次选择输入,达到不结束,多次执行,并保留每次选择的结果,一次一次的叠加,直至break;跳出该循环。