扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这个应该不难,定义一个行列的坐标系,用来标识每个座位,如果有座位的就标位1,没有座位的就标位0,如果此座位票已售出,就设为99(或者其他也行),至于移动,删除等其实就是改变整个坐标系的值了,然后通过图形方式显示出来,移动呀,删除呀什么的操作可以通过拖动等来实现,考虑到电影院中实际的前排与后排座位是有一定的错开的,所以在绘制的时候,要考虑这个错开距离,这样就美观了。
成都创新互联专注于胶州企业网站建设,响应式网站开发,成都做商城网站。胶州网站建设公司,为胶州等地区提供建站服务。全流程按需定制开发,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
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);
}
}
}
}
最怕看到急需的。。。不急需的人家慢慢做还是能够完成的,急需的就免谈了,毕竟不是我本职工作。。。
给你写个简单的例子 并没有对参数做验证 理解下数组的用法够用了
真实的选座比例子复杂的多,包括同步等方面知识
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 + "座 已经被人选啦");
}
}
}
public class Yugi implements Runnable
{
@Override
public void run()
{
String name = Thread.currentThread().getName();
while(name.startsWith("窗口"))
{
if(tickets.length == 0)
{
stop();
break;
}
int num = (int) (Math.random() * tickets.length) + 1;
tickets = new int[tickets.length - num];
System.out.println(name + " 售出了 " + num + " 张票");
try
{
Thread.sleep(500);
}
catch(InterruptedException e)
{}
}
}
public synchronized void start()
{
for(int i = 0; i ts.length; i++)
{
Thread thread = ts[i];
if(thread == null)
{
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.setName("窗口" + (i + 1));
thread.start();
}
}
}
public synchronized void stop()
{
for(int i = 0; i ts.length; i++)
{
Thread thread = ts[i];
if(thread != null)
{
thread.interrupt();
}
thread = null;
}
notifyAll();
}
static int[] tickets = new int[100];
private static int WIN = 5;
Thread[] ts = new Thread[WIN];
public static void main(String[] args)
{
new Yugi().start();
}
}
选好座位提交后修改该座位状态。 后面的人在选同样一个后提交就提示已卖出,然后刷新页面
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流