问题描述
通过本章所学尝试制作一个简单的客车售票系统,假设客车的坐位数是9行4列,使用一个二维数组记录客车售票系统中的所有座位号,并在每个座位号上都显示“【有票】”,然后用户输入一个坐标位置,按回车键,即可将该座位号显示为“【已售】”。
分析
- Console.Clear()可以结束当前程序而退出
- Console.Read()从标准输入读取一个字符如果用int类型来接收会是当前的ASCII码,如果没有将读入进的信息接受完,那么下一条的Console.Readline()将会跳过从键盘输入从而直接接受未被读走的数据!
- Console.ReadLine()从标准输入读入一行字符
- 如果int.Parse()里面的参数不是数字所对应的字符串,那么此处会抛出异常。
具体内容如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 售票系统
{
class Program
{
static void Main(string[] args)
{
string[,] zuo = new string[9, 4];
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 4; j++)
{
zuo[i, j] ="【有票】";
}
}
while (true)
{
System.Console.Clear();
Console.WriteLine("\n 简单客车售票系统" + "\n");
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 4; j++)
{
System.Console.Write(zuo[i,j]);
}
System.Console.WriteLine();//表示向控制台写入字符串后换行。也就是达到每四行换行一次的效果。
}
System.Console.Write("请输入作为行号和列号(例如:0,2)按q退出!");
String s = Convert.ToString(Console.ReadLine());//读取输入的值。
if (s == "q") break;
try
{
string[] ss = s.Split(',');//以逗号分隔。
int one = int.Parse(ss[0]);
int two = int.Parse(ss[1]);
zuo[one, two] = "【已售】";
}
catch (Exception)
{
Console.Write("异常错误!");
}
}
}
}
}