资源描述:
《模拟售票系统java编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、/*项目:用多线程设计一个模拟火车站售票大厅的工作情形。问题描述:火车站有许多售票窗口,有些开放,有些不开放。顾客进入火车站售票厅后,到某个售票窗口排队等候,排到了就办理业务,然后离去。如图2.1所示。*//**共有五个类:*SimulateRaiIwayStation:具体运行主类;*RailwayStation:火车站售票大厅类Mgent类:代表火车站售票窗口类;^Customer类:顾客类;*List类:存储类*/importjava.util.Date;importjava,awt.importjava,awt.event.*;pub
2、licclassSimu1ateRai]wayStationextendsFrameimplementsActionIJstener{〃预设火车站售票大厅有10个售票窗口protectedstaticfinalintNUM_AGANTS=10;//预设目前正在售票的窗口为6个protectedstaticfinalintNUM_TNTTTAL_AGANTS=6;//设置每个窗口办理售票业务的时间protectedstaticfinalintBUSINESSDELAY二6000;//设置有10辆火车的座位可以出售protectedstaticf
3、inalintMAXTRAINNUM二10;//设置每个窗口从一个顾客完成到下一个顾客开始的时间间隔protectedstaticfinalint〃定义按钮,手动添加顾客。privateButton//定义按钮,模拟顾客自己离开privateButton//定义按钮,增加售票窗口privateButton//定义按钮,关闭售票窗口privateButton//10辆火车班次的信息protectedstaticString[]MAXNO_CUSTOMERS=2QO;addcus=newButton(〃添加顾客“);delcus=newButto
4、n(/z顾客离去");addagcnt=ncwButton(z/增加售票窗口〃);delagent二newButton(,z关闭售票窗口“);train_num={,z南京-〉北京,46次〃,〃南京-〉上海,34次〃,〃南京->福州,231次〃,"南京-〉杭州,65次〃,〃南京->武汉,112次〃,〃南京->成都,77次〃,”南京-〉天津,21次〃,〃南京-〉徐州,134次〃,〃南京-〉乌鲁目齐,335次〃,〃南京-〉合肥,456次〃};//与上面的信息对应的每辆火车的票务信息protectedstaticint[]tickets={50,7
5、0,50,50,50,120,60,100,50,50};railwaystation二newRaiIwayStation();//实例化火车站售票大厅类privateRaiIwayStation〃建立窗体适配器,能关闭窗口privateclassWindowCloserextendsWindowAdapter{pub1icvoidwindowClosing(WindowEventwe){railwaystation.stop();System,exit(0);}}〃构造方法,完成界面初始化publicSimulateRaiIwayStati
6、on(){super(z'SimulationRaiIwayStation^);//设置面板Panelbuttons=newPanel();buttons.setLayout(newFlowLayout());〃在面板中添加按钮buttons,add(addcus);buttons.add(delcus);buttons,add(acidagent);buttons,add(delagent);〃对按钮设置监听addcus.addActionListener(this);delcus.addActionListener(this);addag
7、ent.addActionListener(this);delagent.addActionListener(this);〃对窗体适配器设置监听addWindowListener(newWindowCloser());setLayout(newBorderLayout());add("North",railwaystation);add("South",buttons);setSize(500,200);validate();pack();show();〃调用火车站售票大厅类的start()方法,开始售票工作railwaystation.st
8、art();pub1icvoidactionPerfonned(ActionEvontae)if(ae.getSource()—adclcus){〃新增顾客rai1