import java.util.Scanner;public class TrainTicketSystem { static final int ROWS = 10; // 客车的行数 static final int COLS = 7; // 客车的列数 static String[][] seats = new String[ROWS][COLS]; // 座位信息 public static void main(String[] args) { // 初始化座位信息 for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { seats[i][j] = "【有票】"; } } Scanner sc = new Scanner(System.in); while (true) { // 输出座位信息 System.out.println("===== 火车座位信息 ====="); for (int i = 0; i < ROWS; i++) { for (int j = 0; j < COLS; j++) { System.out.print(seats[i][j] + " "); } System.out.println(); } // 用户输入购票信息 System.out.println("请输入要购买的座位号(格式:行 列,如:2 3),输入-1结束:"); int row = sc.nextInt(); if (row == -1) { break; } int col = sc.nextInt(); // 判断座位号是否合法 if (row < 1 || row > ROWS || col < 1 || col > COLS) { System.out.println("输入的座位号不合法!"); continue; } // 判断座位是否已被购买 if (seats[row-1][col-1].equals("【已售】")) { System.out.println("该座位已被购买,请选择其他座位!"); continue; } // 购票成功,更新座位信息 seats[row-1][col-1] = "【已售】"; System.out.println("购票成功!"); } sc.close(); }}
时间: 2024-02-14 10:19:43 浏览: 21
这段代码是一个简单的火车票订购系统,使用Java语言实现。它创建了一个10行7列的二维数组,表示火车的座位情况。初始化时,所有座位都是可用的。
然后,程序通过Scanner类实现了循环,每次循环中输出当前的座位信息,然后等待用户输入要购买的座位号。如果输入的座位号不合法(即行或列的值不在1到10或1到7的范围内),程序会提示错误并继续等待输入。如果输入的座位已经被购买,程序也会提示错误并继续等待输入。
如果输入的座位是合法的且未被购买,程序会将该座位标记为已售,然后输出购票成功的信息。当用户输入-1时,程序会结束循环并关闭Scanner对象。
相关问题
2、模拟火车售票系统。 提示:假设客车的坐位数是10行7列,使用一个二维数组记录客车售票系统中的所有座位号,并在每个座位号上都显示“【有票】”,然后用户输入一个坐标位置,按回车键,即可将该座位号显示为“【已售】”。
下面是一个简单的火车售票系统的 Java 实现,其中使用了一个二维数组来记录所有座位的状态,初始状态都为“【有票】”,当用户购买票时,将该座位号的状态更新为“【已售】”。
```java
import java.util.Scanner;
public class TrainTicketSystem {
static final int ROWS = 10; // 客车的行数
static final int COLS = 7; // 客车的列数
static String[][] seats = new String[ROWS][COLS]; // 座位信息
public static void main(String[] args) {
// 初始化座位信息
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
seats[i][j] = "【有票】";
}
}
Scanner sc = new Scanner(System.in);
while (true) {
// 输出座位信息
System.out.println("===== 火车座位信息 =====");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
System.out.print(seats[i][j] + " ");
}
System.out.println();
}
// 用户输入购票信息
System.out.println("请输入要购买的座位号(格式:行 列,如:2 3),输入-1结束:");
int row = sc.nextInt();
if (row == -1) {
break;
}
int col = sc.nextInt();
// 判断座位号是否合法
if (row < 1 || row > ROWS || col < 1 || col > COLS) {
System.out.println("输入的座位号不合法!");
continue;
}
// 判断座位是否已被购买
if (seats[row-1][col-1].equals("【已售】")) {
System.out.println("该座位已被购买,请选择其他座位!");
continue;
}
// 购票成功,更新座位信息
seats[row-1][col-1] = "【已售】";
System.out.println("购票成功!");
}
sc.close();
}
}
```
在上面的代码中,我们使用了一个二维数组 `seats` 来存储每个座位的状态,初始状态都为“【有票】”。在用户购买票时,我们需要先输入座位号,然后判断该座位是否已被购买或座位号是否合法,最后更新座位状态。
java4. 编程实现从键盘输入一个矩阵,将矩阵中的元素向右移动一列,最右一列移至第一列
以下是 Java 代码实现:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取矩阵的行数和列数
System.out.print("请输入矩阵的行数和列数,用空格隔开:");
int rows = scanner.nextInt();
int cols = scanner.nextInt();
// 读取矩阵的元素
int[][] matrix = new int[rows][cols];
System.out.println("请输入矩阵的元素:");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
matrix[i][j] = scanner.nextInt();
}
}
// 将矩阵中的元素向右移动一列
int[] lastCol = new int[rows]; // 记录矩阵最右一列的元素
for (int i = 0; i < rows; i++) {
lastCol[i] = matrix[i][cols - 1];
}
for (int j = cols - 1; j > 0; j--) {
for (int i = 0; i < rows; i++) {
matrix[i][j] = matrix[i][j - 1];
}
}
for (int i = 0; i < rows; i++) {
matrix[i][0] = lastCol[i];
}
// 输出移动后的矩阵
System.out.println("移动后的矩阵为:");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
```
运行示例:
```
请输入矩阵的行数和列数,用空格隔开:3 4
请输入矩阵的元素:
1 2 3 4
5 6 7 8
9 10 11 12
移动后的矩阵为:
4 1 2 3
8 5 6 7
12 9 10 11
```