模拟售票系统java编程
/*
项目:用多线程设计一个模拟火车站售票大厅的工作情形。
问题描述:火车站有许多售票窗口,有些开放,有些不开放。顾客进入火车站售票厅后,到某个售票窗口排队等候,排到了就办理业务,然后离去。如图2.1所示。
*/
/*
*共有五个类:
*SimulateRailwayStation:具体运行主类;
*RailwayStation:火车站售票大厅类
*Agent类:代表火车站售票窗口类;
*Customer类:顾客类;
*List类:存储类
*/
import java.util.Date;
import java.awt.*;
import java.awt.event.*;
public class SimulateRailwayStation extends Frame implements ActionListener {
//预设火车站售票大厅有10个售票窗口
protected static final int NUM_AGANTS=10;
//预设目前正在售票的窗口为6个
protected static final int NUM_INITIAL_AGANTS=6;
//设置每个窗口办理售票业务的时间
protected static final int BUSINESS_DELAY=6000;
//设置有10辆火车的座位可以出售
protected static final int MAX_TRAIN_NUM=10;
//设置每个窗口从一个顾客完成到下一个顾客开始的时间间隔
protected static final int MAX_NO_CUSTOMERS=200;
//定义按钮,手动添加顾客。
private Button addcus=new Button("添加顾客");
//定义按钮,模拟顾客自己离开
private Button delcus=new Button("顾客离去");
//定义按钮,增加售票窗口
private Button addagent=new Button("增加售票窗口"); //定义按钮,关闭售票窗口
private Button delagent=new Button("关闭售票窗口"); //10辆火车班次的信息
protected static String[] train_num={"南京->北京,46次","南京->上海,34次","南京->福州,231次","南京->杭州,65次","南京->武汉,112次","南京->成都,77次","南京->天津,21次","南京->徐州,134次","南京->乌鲁目齐,335次","南京->合肥,456次"}; //与上面的信息对应的每辆火车的票务信息
protected static int[] tickets={50,70,50,50,50,120,60,100,50,50};