这段代码逻辑不清楚
海城网站制作公司哪家好,找成都创新互联公司!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联公司公司2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联公司。
int[] number=new int[100]; 这个number表示什么?座位号,一共100个座位?
n 代表什么?
最好把你的想法说下,这样好帮助你
import java.util.Scanner;
/**
*
* @author 12052010
* @Date December 05,2014
*
*/
public class Film {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int [][] num = new int[2][10];
int fg1,fg2;//标志顾客选择 的座位fg1:排数 fg2:列数
for(int i=0;inum.length;i++){
for(int j=0;jnum[i].length;j++)
num[i][j]=0;//赋初值,所有座位没有被预定
}
randomBook(num);
System.out.print("\n-----------电影院座位订票情况(0:还没被预定 1: 已经被预定)------------");
for(int i=0;inum.length;i++){
System.out.println("");
for(int j=0;jnum[i].length;j++)
System.out.print(" "+num[i][j]);
}
/**
* 顾客输进的排数必须符合0 or 1
*/
do{
System.out.print("\nInput fg1: ");
fg1=input.nextInt();
} while(fg10||fg12);
/**
* 顾客输进的列数必须符合 0-9
*/
do{
System.out.print("Input fg2: ");
fg2=input.nextInt();
} while(fg20||fg29);
if(num[fg1][fg2]==1){
System.out.print("\n已经被人订了,不好意思");
}else{
System.out.print("\n你要订的座位是: "+ fg1+"排 "+ fg2+"列, 票价:");
if(fg1==1)
System.out.print("10000文");
else
System.out.print("20000文");
}
}
/**
* 随即设置电影院的座位被预定
*/
public static void randomBook(int[][] num){
for(int i=0;inum.length;i++){
for(int j=0;jnum[i].length;j++){
//随机设置
num[i][j]=(int)(Math.random()*2);
}
}
}
}
给你写了个小程序自己看吧,代码如下
package test;
public class Seat {
int rowNum ;
int columNum;
boolean status;
public int getRowNum() {
return rowNum;
}
public void setRowNum(int rowNum) {
this.rowNum = rowNum;
}
public int getColumNum() {
return columNum;
}
public void setColumNum(int columNum) {
this.columNum = columNum;
}
public boolean getStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
}
package test;
import java.util.HashMap;
import java.util.Scanner;
public class ChangeSeat {
static HashMapString, Seat seatMap = new HashMapString, Seat();
public static void main(String[] args) {
// 初始化座位数据
for (int i = 0; i 5; i++) {
Seat seat = new Seat();
seat.setRowNum(1);
seat.setColumNum(i + 1);
seat.setStatus(false);
seatMap.put((i + 1) + "", seat);
}
setvalue();
while (true) {
System.out.println("*********请输入座位编号选择座位*********");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
Seat seat2 = seatMap.get(str);
if (seat2.getStatus())// 判断该座位是否已经出售
{
System.out.println("抱歉您选择的座位已经出售请重新选择");
System.out.println(" ");
System.out.println(" ");
} else {
seat2.setStatus(true);// 将该座位状态改为已出售
seatMap.put(str, seat2);
System.out.println("购买成功,已经为您出票!!");
System.out.println(" ");
System.out.println(" ");
}
setvalue();
}
}
public static void setvalue() {
System.out.println("**********座位情况如下********");
System.out.println(" 座位编号 排号 座位号 状态");
for (String num : seatMap.keySet()) {
Seat seat1 = seatMap.get(num);
String zt = "未出售";
if (seat1.getStatus()) {
zt = "已出售";
}
System.out.println(" " + num + " " + " " + seat1.getRowNum() + " " + " "
+ seat1.getColumNum() + " " + " " + zt + " ");
}
}
}
给你写个简单的例子 并没有对参数做验证 理解下数组的用法够用了
真实的选座比例子复杂的多,包括同步等方面知识
public class Main {
public static void main(String[] args) {
//你描述不够清晰,我就假设 电影院 6排 每排8座
//座位数
int num = 48;
int[] arr = new int[num];
Main obj = new Main();
//调用选座方法
obj.selection(arr,1,1);
//同一个位置调用2次验证一下
obj.selection(arr,1,1);
}
/**
*
* @param arr 座位表
* @param x 排
* @param y 位
*/
public void selection(int[] arr, int x, int y) {
int index = (x - 1) * 6 + y - 1;
if (arr[index] == 0) {
//对应位置的元素设置为1,表示有人
arr[index] = 1;
System.out.println("选座成功:" + "第" + x + "排,第" + y + "座 ");
} else {
System.out.println("第" + x + "排,第" + y + "座 已经被人选啦");
}
}
}
难个P啊。就是增删改查而已。不过前后端都要会一点。
选中座位,提交时候向数据库里增加被选中的座位号。然后页面刷新,跳回选择页面时候要从新查询!跳回的时候带着参数回来,前端拿值,判断是否已经被选。把背景色从蓝色调成红色。
这个应该不难,定义一个行列的坐标系,用来标识每个座位,如果有座位的就标位1,没有座位的就标位0,如果此座位票已售出,就设为99(或者其他也行),至于移动,删除等其实就是改变整个坐标系的值了,然后通过图形方式显示出来,移动呀,删除呀什么的操作可以通过拖动等来实现,考虑到电影院中实际的前排与后排座位是有一定的错开的,所以在绘制的时候,要考虑这个错开距离,这样就美观了。