银行排队系统.docx
- 文档编号:8175053
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:25
- 大小:20.13KB
银行排队系统.docx
《银行排队系统.docx》由会员分享,可在线阅读,更多相关《银行排队系统.docx(25页珍藏版)》请在冰豆网上搜索。
银行排队系统
//demo.java
importjavax.swing.*;
importjavax.swing.border.BevelBorder;
importjavax.swing.border.Border;
importjava.awt.*;
importjava.util.LinkedList;
importjava.util.Random;
//importjava.util.List;
importjava.util.Queue;
publicclassdemoextendsJFrameimplementsRunnable{
privatestaticfinallongserialVersionUID=1L;
privatestaticintallcount;
privateJPanelpanel0=newJPanel();
privateJPanelpanel1=newJPanel();
privateJPanelpanel2=newJPanel();
privateJPanelpanel3=newJPanel();
privateJPanelpanel4=newJPanel();
privateJPanelpanel5=newJPanel();
privateBorderborder;
JLabelj11;
JLabelj12;
JLabelj13;
JLabelj14;
JLabelj15;
JLabelj21;
JLabelj22;
JLabelj23;
JLabelj24;
JLabelj25;
JLabelj31;
JLabelj32;
JLabelj33;
JLabelj34;
JLabelj35;
JLabelj41;
JLabelj42;
JLabelj43;
JLabelj44;
JLabelj45;
JLabelj51;
JLabelj52;
JLabelj53;
JLabelj54;
JLabelj55;
JLabelj56;
privateQueue
privateQueue
privateQueue
privateQueue
CustomerDaocsDao=newCustomerDao();
privateintwindow1=0;
privateintwindow1free=0;
privateintwindow2=0;
privateintwindow2free=0;
privateintwindowCompany=0;
privateintwindowCompanyfree=0;
privateintwindowVip=0;
privateintwindowVipfree=0;
publicdemo(){
super("银行排队系统模拟器");
mainpanel();
layoutpanel1();
layoutpanel2();
layoutpanel3();
layoutpanel4();
layoutpanel5();
queue=newLinkedList
queueNormal=newLinkedList
queueCompany=newLinkedList
queueVip=newLinkedList
allcount=0;
}
privatevoidmainpanel(){
setSize(1200,500);
setLocationRelativeTo(null);
//setLocation(400,150);
//setTitle("demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridLayoutgridlayout=newGridLayout(1,4);
gridlayout.setHgap(10);
//gridlayout.setVgap(30);
BorderbevelBorder=BorderFactory.createBevelBorder(BevelBorder.RAISED,
Color.white,Color.white,Color.white,Color.white);
border=BorderFactory.createCompoundBorder(bevelBorder,null);
panel0.setBorder(border);
panel0.setSize(600,400);
panel0.setLayout(gridlayout);
panel0.add(panel1);
panel0.add(panel2);
panel0.add(panel3);
panel0.add(panel4);
JSplitPanespTop=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,panel0,panel5);
spTop.setDividerLocation(800);
spTop.setOneTouchExpandable(false);
add(spTop);
}
privatevoidlayoutpanel1(){
j11=newJLabel("个人用户业务办理");//窗口类型
j12=newJLabel("1号窗口");//窗口号
j13=newJLabel("客户类型");//客户类型
j14=newJLabel("办理时间");//办理时间
j15=newJLabel("工作状态");//工作状态
j11.setHorizontalAlignment(SwingConstants.CENTER);
j12.setHorizontalAlignment(SwingConstants.CENTER);
j13.setHorizontalAlignment(SwingConstants.CENTER);
j14.setHorizontalAlignment(SwingConstants.CENTER);
j15.setHorizontalAlignment(SwingConstants.CENTER);
panel1.setLayout(newGridLayout(5,1));
panel1.setBorder(border);
panel1.setSize(300,400);
//panel1.setBackground(Color.pink);
panel1.setBackground(Color.getHSBColor((newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255));
panel1.add(j11);
panel1.add(j12);
panel1.add(j13);
panel1.add(j14);
panel1.add(j15);
}
privatevoidlayoutpanel2(){
panel2.setBorder(border);
//panel2.setBackground(Color.orange);
panel2.setBackground(Color.getHSBColor((newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255));
j21=newJLabel("个人用户业务办理");//窗口类型
j22=newJLabel("2号窗口");//窗口号
j23=newJLabel("客户类型");//客户类型
j24=newJLabel("办理时间");//办理时间
j25=newJLabel("工作状态");//工作状态
j21.setHorizontalAlignment(SwingConstants.CENTER);
j22.setHorizontalAlignment(SwingConstants.CENTER);
j23.setHorizontalAlignment(SwingConstants.CENTER);
j24.setHorizontalAlignment(SwingConstants.CENTER);
j25.setHorizontalAlignment(SwingConstants.CENTER);
panel2.setLayout(newGridLayout(5,1));
panel2.setSize(300,400);
panel2.add(j21);
panel2.add(j22);
panel2.add(j23);
panel2.add(j24);
panel2.add(j25);
}
privatevoidlayoutpanel3(){
panel3.setBorder(border);
//panel3.setBackground(Color.lightGray);
panel3.setBackground(Color.getHSBColor((newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255));
j31=newJLabel("公司客户业务办理");//窗口类型
j32=newJLabel("3号窗口");//窗口号
j33=newJLabel("客户类型");//客户类型
j34=newJLabel("办理时间");//办理时间
j35=newJLabel("工作状态");//工作状态
j31.setHorizontalAlignment(SwingConstants.CENTER);
j32.setHorizontalAlignment(SwingConstants.CENTER);
j33.setHorizontalAlignment(SwingConstants.CENTER);
j34.setHorizontalAlignment(SwingConstants.CENTER);
j35.setHorizontalAlignment(SwingConstants.CENTER);
panel3.setLayout(newGridLayout(5,1));
panel3.setSize(300,400);
panel3.add(j31);
panel3.add(j32);
panel3.add(j33);
panel3.add(j34);
panel3.add(j35);
}
privatevoidlayoutpanel4(){
panel4.setBorder(border);
//panel3.setBackground(Color.lightGray);
panel4.setBackground(Color.getHSBColor((newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255));
j41=newJLabel("VIP客户业务办理");//窗口类型
j42=newJLabel("4号窗口");//窗口号
j43=newJLabel("客户类型");//客户类型
j44=newJLabel("办理时间");//办理时间
j45=newJLabel("工作状态");//工作状态
j41.setHorizontalAlignment(SwingConstants.CENTER);
j42.setHorizontalAlignment(SwingConstants.CENTER);
j43.setHorizontalAlignment(SwingConstants.CENTER);
j44.setHorizontalAlignment(SwingConstants.CENTER);
j45.setHorizontalAlignment(SwingConstants.CENTER);
panel4.setLayout(newGridLayout(5,1));
panel4.setSize(300,400);
panel4.add(j41);
panel4.add(j42);
panel4.add(j43);
panel4.add(j44);
panel4.add(j45);
}
privatevoidlayoutpanel5(){
panel5.setBorder(border);
panel5.setSize(400,400);
//panel4.setBackground(Color.blue);
panel5.setBackground(Color.getHSBColor((newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255,
(newRandom()).nextFloat()*255));
panel5.setBorder(BorderFactory.createTitledBorder("显示器"));//设置边框
j51=newJLabel("客户产生");//
j52=newJLabel("产生");
j53=newJLabel("客户评分");//
j54=newJLabel("评分");
j55=newJLabel("排队等候");//
j56=newJLabel("等候");
j51.setHorizontalAlignment(SwingConstants.LEFT);
j52.setHorizontalAlignment(SwingConstants.CENTER);
j53.setHorizontalAlignment(SwingConstants.LEFT);
j54.setHorizontalAlignment(SwingConstants.CENTER);
j55.setHorizontalAlignment(SwingConstants.LEFT);
j56.setHorizontalAlignment(SwingConstants.CENTER);
panel5.setLayout(newGridLayout(6,1));
panel5.add(j51);
panel5.add(j52);
panel5.add(j53);
panel5.add(j54);
panel5.add(j55);
panel5.add(j56);
}
publicstaticvoidmain(String[]args){
demode=newdemo();
de.setVisible(true);
de.run();
}
publicvoidrun(){
normalWindow01win1=newnormalWindow01();//start();//普通窗口1启动
normalWindow02win2=newnormalWindow02();//普通窗口2启动
companyWindowwin3=newcompanyWindow();//公司窗口启动
VipWindowwin4=newVipWindow();//VIP窗口启动
worldwd=newworld();
win1.start();
win2.start();
win3.start();
win4.start();
wd.start();
}
classworldextendsThread{
publicvoidrun(){//产生模拟进入银行的客户的线程
intrandomNumber;//=(int)(Math.random()*100);//产生0-100的随机数;
while(allcount<=100){//从开始到结束一共100个客户
randomNumber=(int)(Math.random()*399/100);//产生0-3的随机数;0普通客户;1公司客户;2VIP客户3普通客户
allcount++;
queue.offer(randomNumber);
//System.out.println("进入银行客户类型:
"+randomNumber);
//System.out.println("第一队列长度:
"+queue.size());
intpoll=queue.poll();
if(poll==0||poll==3){
queueNormal.offer(0);
//System.out.println("普通客户进入!
");
//System.out.println("普通客户队列长度:
"+queueNormal.size());
j52.setText("第"+allcount+"位"+"客户进入银行,客户类型:
"+"普通用户");
Stringtemp="目前还有"+queueNormal.size()+"位普通客户"+"\n"
+""+queueCompany.size()+"位公司用户"+"\n"
+""+queueVip.size()+"位Vip用户在等待";
j56.setText(temp);
}
elseif(poll==1){
queueCompany.offer
(1);
//System.out.println("公司客户进入company!
");
//System.out.println("company长度:
"+queueCompany.size());
j52.setText("第"+allcount+"位"+"客户进入银行,客户类型:
"+"公司客户");
Stringtemp="目前还有"+queueNormal.size()+"位普通客户"+"\n"
+""+queueCompany.size()+"位公司用户"+"\n"
+""+queueVip.size()+"位Vip用户在等待";
j56.setText(temp);
}
elseif(poll==2){
queueVip.offer
(2);
//System.out.println("VIP客户进入vip!
");
//System.out.println("vip长度:
"+queueVip.size());
j52.setText("第"+allcount+"位"+"客户进入银行,客户类型:
"+"VIP客户");
Stringtemp="目前还有"+queueNormal.size()+"位普通客户"+"\n"
+""+queueCompany.size()+"位公司用户"+"\n"
+""+queueVip.size()+"位Vip用户在等待";
j56.setText(temp);
}
//}
try{
sleep(3000);
//sleep(Poisson.peek());
//Poisson.poll();
//Thread.wait();
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
classnormalWindow01extendsThread{
publicvoidrun(){
intonecount=0;
while(onecount<=100){
inta=0;//窗口业务办理状态
intserviceTime01=0;
onecount++;
intcusType=-1;
synchronized(queueNormal){
if(queueNormal.size()!
=0){
a=1;
//System.out.println("办理人类别:
"+queueNormal.element());
j13.setText("客户类型:
普通客户"+queueNormal.element());
intcusType01=queueNormal.element();
cusType=cusType01;
queueNormal.po
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行 排队 系统