题目:一辆大巴有9排4列的作为,编写一个程序,模拟这辆大巴的售票过程(1为有票,0为无票)
我的题解:
public class SellTikets {
public static void main(String[] args) {
System.out.println(" " +"简单客车售票系统");
System.out.println(" " +"9排4列的大巴车开始售票");
int tikets[][] = new int[9][4];
for(int i=0;i<9;i++) {
for(int j=0;j<4;j++) {
tikets[i][j]=1;
System.out.print(tikets[i][j] +"\t");
}
System.out.println();
}
System.out.println("请输入要预定的行列号):");
Scanner sc = new Scanner(System.in);
Scanner in = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
for(int i=0;i<9;i++) {
for(int j=0;j<4;j++) {
tikets[x-1][y-1]=0;
System.out.print(tikets[i][j] +"\t");
}
System.out.println();
}
}
}
运行结果
缺点分析
只能选票一次,没有实现用户未退出时可以多次买票,以及票售完时自动退出并输出“票以售完”。
完善后:
public class SellTikets {
public static void main(String[] args) {
System.out.println(" " +"简单客车售票系统");
System.out.println(" " +"9排4列的大巴车开始售票");
int tikets[][] = new int[9][4];
for(int i=0;i<9;i++) {
for(int j=0;j<4;j++) {
tikets[i][j]=1;
System.out.print(tikets[i][j] +"\t");
}
System.out.println();
}
while(true) {
System.out.println("请输入要预定的行列号(退出系统请输入0 0):");
Scanner sc = new Scanner(System.in);
Scanner in = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
if(x==0&&y==0) {
System.out.println("已退出系统,祝您生活愉快!");
break;
}
int sum=0;
for(int i=0;i<9;i++) {
for(int j=0;j<4;j++) {
tikets[x-1][y-1]=0;
sum=sum+tikets[i][j];
System.out.print(tikets[i][j] +"\t");
tikets[i][j]=tikets[i][j];
}
System.out.println();
}
if(sum==0) {
System.out.println("车票已售完!祝您生活愉快!");
break;
}
}
}
}
结果