排队机java代码,java 快排代码

求助!银行排队叫号程序,java待完善。。。

import java.awt.Color;

十年的香洲网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整香洲建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“香洲网站设计”,“香洲网站推广”以来,每个客户项目都认真落实执行。

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.ButtonGroup;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class BankWaiting extends JFrame implements ActionListener {

int total = 0, now = 0;

boolean is1Ready = false, is2Ready = false, is3Ready = false;

int call1, call2, call3;

JFrame jf;

JLabel jr, jl, jl1, j2, jl2, j3, jl3;

JTextField jr4;

JButton jb, jb1, jb2, j1;

JButton workBut1, workBut2, workBut3;

JPanel jp, jp1, jp2;

public BankWaiting() {

setLayout(null);

jf = new JFrame("银行叫号程序");// 窗体

jr = new JLabel("请**号到*号窗口办理业务");

jr.setBounds(300, 10, 800, 50);

jr.setForeground(Color.red);

j1 = new JButton("取号");

j1.addActionListener(this);

jr4 = new JTextField("欢迎");

jr4.setEditable(false);

ButtonGroup bg = new ButtonGroup();

bg.add(j1);

jp = new JPanel();

jl = new JLabel("一号窗口");

jl1 = new JLabel("一号窗口,欢迎你!");

jb = new JButton("下一位");

workBut1 = new JButton("开始办理");

workBut1.addActionListener(this);

jb.addActionListener(this);

jp.setBackground(Color.pink);

jp.setSize(200, 80);// 大小

jp.setLocation(20, 120); // 位置

jf.setLayout(null);

jp1 = new JPanel();

j2 = new JLabel("二号窗口");

jl2 = new JLabel("二号窗口,欢迎你!");

jb1 = new JButton("下一位");

workBut2 = new JButton("开始办理");

jb1.addActionListener(this);

workBut2.addActionListener(this);

jp1.setBackground(Color.pink);

jp1.setSize(200, 80);// 大小

jp1.setLocation(250, 120); // 位置

jf.setLayout(null);

jp2 = new JPanel();

j3 = new JLabel("三号窗口");

jl3 = new JLabel("三号窗口,欢迎你!");

jb2 = new JButton("下一位");

workBut3 = new JButton("开始办理");

workBut3.addActionListener(this);

jb2.addActionListener(this);

jp2.setBackground(Color.pink);

jp2.setSize(200, 80);// 大小

jp2.setLocation(500, 120); // 位置

jf.setLayout(null);

jf.add(jp);

jf.add(jp1);

jf.add(jp2);

jf.add(jr);

jp.add(jl);

jp.add(jl1);

jp.add(jb);

jp.add(workBut1);

jp1.add(j2);

jp1.add(jl2);

jp1.add(jb1);

jp1.add(workBut2);

jp2.add(j3);

jp2.add(jl3);

jp2.add(jb2);

jp2.add(workBut3);

jf.add(j1);

jf.add(jr4);

j1.setBounds(550, 300, 60, 30);

jr4.setBounds(300, 300, 200, 40);

jf.setSize(800, 600);

jf.setVisible(true);

jf.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

}

public void actionPerformed(ActionEvent e) {

String s = "";

if (e.getSource() == j1) {

s = "第" + (++total) + "号,前面还有" + (total - now - 1) + "位顾客!";

jr4.setText(s);

}

if (e.getSource() == jb) {

if (this.hasCustomers()) {

s = "请" + (++now) + "号顾客到一号窗口办理";

call1 = now;

jl1.setText(s);

jr.setText(s);

is1Ready = true;

} else {

s = "当前已经没有顾客了";

jl1.setText(s);

is1Ready = false;

}

} else if (e.getSource() == jb1) {

if (this.hasCustomers()) {

s = "请" + (++now) + "号顾客到二号窗口办理";

call2 = now;

jl2.setText(s);

jr.setText(s);

is2Ready = true;

} else {

s = "当前已经没有顾客了";

jl2.setText(s);

is2Ready = false;

}

} else if (e.getSource() == jb2) {

if (this.hasCustomers()) {

s = "请" + (++now) + "号顾客到三号窗口办理";

call3 = now;

jl3.setText(s);

jr.setText(s);

is3Ready = true;

} else {

s = "当前已经没有顾客了";

jl3.setText(s);

is3Ready = false;

}

}

if (e.getSource() == workBut1) {

if (is1Ready) {

s = call1 + "号顾客正在办理业务。。。";

jl1.setText(s);

is1Ready = false;

}

} else if (e.getSource() == workBut2) {

if (is2Ready) {

s = call2 + "号顾客正在办理业务。。。";

jl2.setText(s);

is2Ready = false;

}

} else if (e.getSource() == workBut3) {

if (is3Ready) {

s = call3 + "号顾客正在办理业务。。。";

jl3.setText(s);

is3Ready = false;

}

}

}

public boolean hasCustomers() {

if (now  total) {

return true;

} else {

return false;

}

}

public static void main(String[] args) {

new BankWaiting();

}

}

用java实现游戏排队问题

这个比较复杂,估计你出个200分会有人帮你写一个

这个涉及到concurrent包,还有lock锁啊,还有net包啊,很多,最好找个别人写好的改下就好了

高分求JAVA高手帮忙

public class Buy{

Object seller=new Object();

int twantyNumber=0;

int tenNumber=0;

int fiveNumber=1;

int all=5;

public Buy(){

printmony();

buyer zhao=new buyer("赵",2,20);

buyer qian=new buyer("钱",1,20);

buyer sun=new buyer("孙",1,10);

buyer li=new buyer("李",2,10);

buyer zhou=new buyer("周",1,5);

zhao.start();

qian.start();

sun.start();

li.start();

zhou.start();

}

class buyer extends Thread{

int number=0;

int mony=0;

String name=null;

boolean hasBuyed=false;

public buyer(String name,int number,int mony) {

this.number=number;

this.mony=mony;

this. name=name;

}

void print(int i){

if(i==0){System.out.println(name+" 正在买 "+number+" 张票 "+ mony+ "元钱");

}

if(i==1){System.out.println(name+" 已经买完 !");

printmony();

}

}

public void run(){

while(!hasBuyed){

synchronized (seller) {

int charge=mony-number*5;

if((tenNumber=charge/10fiveNumber=(charge%10)/5)||charge==0){

print(0);

if(mony==20)twantyNumber++;

if(mony==10)tenNumber++;

if(mony==5)fiveNumber++;

tenNumber-=charge/10;

fiveNumber-=(charge%10)/5;

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

print(1);

hasBuyed=true;

seller.notifyAll();

}else{

try {

seller.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

}

}

void printmony(){

System.out.println("\t 售票员的钱数:");

System.out.println("\t\t\t20元\t10元\t五元");

System.out.println("\t\t\t"+twantyNumber+"张\t"+tenNumber+"张\t"+fiveNumber+"张");

}

public static void main(String[] s){

new Buy();

}

}

结果:

售票员的钱数:

20元 10元 五元

0张 0张 1张

孙 正在买 1 张票 10元钱

孙 已经买完 !

售票员的钱数:

20元 10元 五元

0张 1张 0张

赵 正在买 2 张票 20元钱

赵 已经买完 !

售票员的钱数:

20元 10元 五元

1张 0张 0张

周 正在买 1 张票 5元钱

周 已经买完 !

售票员的钱数:

20元 10元 五元

1张 0张 1张

李 正在买 2 张票 10元钱

李 已经买完 !

售票员的钱数:

20元 10元 五元

1张 1张 1张

钱 正在买 1 张票 20元钱

钱 已经买完 !

售票员的钱数:

20元 10元 五元

2张 0张 0张

java排队

排序就排序呗。

数据量不大,排序花不了多少时间的。

其实既然你要求的“要求服务时间”是固定的,那么优先级就等于1+等待时间/要求服务时间。也就是优先级和等待时间是线性关系。而且,刚服务的那人等待时间被清0了,一定是最小的,所以这样:每处理一个业务,检查他时间到没,到了出队列,没到排队尾,因为他的等待时间是0,必然最小,而刚才没有做业务的,等待时间都同等增加的,所以他们的优先级次序没变,直接把下个拿过来办就行了


本文题目:排队机java代码,java 快排代码
文章来源:http://scjbc.cn/article/dssoeii.html

其他资讯