java考试座位号_怎么用java编写出座位号(1.0)这样格式?

本文展示了如何使用Java编写一个简单的电影院座位管理系统。程序初始化5排5座的座位,并使用正则表达式处理用户输入的座位号,支持售票、退票和退出等功能。用户输入如(1.3)这样的格式来指定座位,程序会检查座位是否可用并进行相应操作。
摘要由CSDN通过智能技术生成

展开全部

惨,写了一个多小时。

标题中说“写出座位号(1.0)这样格式”,我不是很理解,e68a84e8a2ad3231313335323631343130323136353331333433633961只能理解为选座位的时候需要输入正确的格式,格式为:[格式:(排.座),例如一排三座请输入(1.3)]。

连续售票状态就是进入售票后,售完一张票后可以继续售票,而不是退出程序或者返回主菜单,通过while(true)即可实现。连续退票状态也一样。

好了,上代码:

首先当然是座位初始化,这里定义了5排5座:

bd39317216c2fe6cc0839a2a4cae9efd.png

private static final int PAI = 5;//定义座位有几排

private static final int ZUO = 5;//定义每排有几座

private static String[][] seat = new String[PAI][ZUO];//定义5排5座的座位

座位初始化,因为你没有说空座位怎么表示,我就用“-”来表示空座位,将所有座位初始为空座位:

7572d2aa751f8c44ed55553dc2349097.png

public static void main(String[] args) {

//初始化座位,空位用“-”表示

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 5; j++) {

seat[i][j] = "-";

}

}

printSeat();//显示座位

先看一下显示座位方法:

d76b1367f8e9e669bcd9cd3dfbb50de4.png

/**

* 显示座位方法

*/

private static void printSeat() {

for (int i = 0; i < PAI; i++) {

System.out.print("|");

for (int j = 0; j < ZUO; j++) {

System.out.print(seat[i][j]);

}

System.out.println("|");

}

}

接着就是主菜单编写,都写了注释了应该不难理解:

642eebad5f45b5a65094fd56ab023b21.png

Scanner in = new Scanner(System.in);

int input;

//主菜单连续运行状态

while (true) {

System.out.println("请选择操作方法(1-售票、2-退票、3-退出):");

input = in.nextInt();

if (input == 1) {//售票

saleSeat();

} else if (input == 2) {//退票

returnSeat();

} else if (input == 3) {//退出

System.out.println("退出系统");

System.exit(-1);

} else {//错误输入

System.out.println("输入错误,请选择操作方法(1-售票、2-退票、3-退出):");

}

}

}

售票方法:

cbc1db042777b3d5bfea0babbaa711ee.png

/**

* 售票方法

*/

private static void saleSeat() {

Scanner in = new Scanner(System.in);

String input;

//售票方法连续工作状态

while (true) {

printSeat();//显示座位

System.out.println("\n请输入要购买的座位号[格式:(排.座),例如一排三座请输入(1.3)],输入[-1]返回主菜单:");

input = in.nextLine();

if ("-1".equals(input)) {//返回主菜单

break;

}

try {

//使用正则表达式“\D”截取字符串,(1.3)的截取结果为:{"","1","3"}

String tmp[] = input.split("\\D");

int pai = Integer.valueOf(tmp[1]) - 1;//取出输入的排号

int zuo = Integer.valueOf(tmp[2]) - 1;//取出输入的座号

System.out.println("所选的座位为[" + (pai + 1) + "]排[" + (zuo + 1) + "]座");

if ("-".equals(seat[pai][zuo])) {//当这个座位没有售卖时,卖出

seat[pai][zuo] = "*";

System.out.println("[" + (pai + 1) + "]排[" + (zuo + 1) + "]座已成功售出");

} else {

System.out.println("这个位置已经被人买了,换一个吧");

}

} catch (Exception e) {//捕获到异常,一般两种情况:座位号格式不对或者排号座号超过了定义的最大值

System.out.println("错误的座位号:" + input + "[格式:(排.座),例如一排三座请输入(1.3)]");

}

}

}

退票方法:

c86b2f81e427330d94b766f11d82dd4b.png

/**

* 退票方法

*/

private static void returnSeat() {

Scanner in = new Scanner(System.in);

String input;

while (true) {

printSeat();//显示座位

System.out.println("\n请输入要退回的座位号[格式:(排.座),例如一排三座请输入(1.3)],输入[-1]返回主菜单:");

input = in.nextLine();

if ("-1".equals(input)) {

break;

}

try {

//使用正则表达式“\D”截取字符串,(1.3)的截取结果为:{"","1","3"}

String tmp[] = input.split("\\D");

int pai = Integer.valueOf(tmp[1]) - 1;//取出输入的排号

int zuo = Integer.valueOf(tmp[2]) - 1;//取出输入的座号

System.out.println("待退的座位为[" + (pai + 1) + "]排[" + (zuo + 1) + "]座");

if ("*".equals(seat[pai][zuo])) {//当这个座位已经售卖时,才可以退回

seat[pai][zuo] = "-";

System.out.println("[" + (pai + 1) + "]排[" + (zuo + 1) + "]座已成功退回");

} else {

System.out.println("这个位置还没人买,无法退回");

}

} catch (Exception e) {//捕获到异常,一般两种情况:座位号格式不对或者排号座号超过了定义的最大值

System.out.println("错误的座位号:" + input + "[格式:(排.座),例如一排三座请输入(1.3)]");

}

}

}

运行结果:

主菜单:

88825cebcd8a81806ddcebf010b1da6c.png

选择售票,并购买2排4座:

dd189e7fa3cdb1c8b1310e5a79b08369.png

继续购买5排5座:

9a1d11a7a279ec7f8ed29b1c930a936d.png

再次购买5排5座:

b996fbcc55e8102ae74c0c31cf701ef3.png

返回主菜单:

1e485847937f8716cf1ec96a2898b0b5.png

选择退票并退1排1座:

0b79bd0bce31751b4a3f2477eb055db8.png

退2排4座:

f2ee946a4abd7bc9628f7ecbb9620396.png

返回主菜单,退出:

495dec7062b6ee3dd79f25c3f26d2b8c.png

以上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值