网站建设资讯

NEWS

网站建设资讯

排队系统java编程代码 排队系统java编程代码大全

Java中应用线程银行排队系统

//您可以使用重入锁实现排队。

创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为遵义企业提供专业的网站制作、做网站遵义网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。

package com.lw;

import java.util.concurrent.locks.Lock;

import java.util.concurrent.locks.ReentrantLock;

public class ReentrantLockDemo implements Runnable {

private int number = 0;// 创建一个变量

private Lock lock = new ReentrantLock();// 创建重入锁对象

@Override

public void run() {

lock.lock();// 打开锁

try {

for (int i = 0; i  5; i++) {

try {

Thread.sleep(100);// 线程休眠0.1秒

} catch (InterruptedException e) {

e.printStackTrace();

}

// 输出当前线程的名称和number的值,每次循环之后number的值都会加一

System.out.println(Thread.currentThread().getName() + ": "

+ number++);

}

} finally {

lock.unlock();// 释放锁

}

}

public static void main(String[] args) {

ReentrantLockDemo run = new ReentrantLockDemo();// 获得ReentrantLockDemo对象

Thread thread1 = new Thread(run);// 创建线程1

Thread thread2 = new Thread(run);// 创建线程2

thread1.start();// 运行线程1

thread2.start();// 运行线程2

}

}

用C或java编写排队服务程序

这个简单。

先做几个实体

客户,售货员,

客户包括到达时间,完成目标需要的时间,开始操作的时间,结束的时间。

售货员包括当前正在服务的客户,

开2个线程。一个是客户产生线程。

一个是售货员消费线程

中间用个公共寄存体queue。

客户产生线程每次产生一个带到达时间,完成目标时间的客户。

放倒队列里,并提醒售货员线程接收。

售货员线程空置则从队列里拿一个客户,当前时间=当前时间和客户到达的时间最大的一个。客户的开始操作时间=当前时间

结束时间=当前时间+需要时间。

处理完以后当前时间=结束时间。

如果队列空,售货员线程等待。

不为空就继续取。

注意所有处理过的客户都需要放到一个List里。

然后这一天结束了,就把整个List里的客户全部取出来,就算平均等待时间,各种时间。。。。这个会统计的吧。

要求追分

java编程,有n个人围成一圈,顺序排号,从一号到n号,从第一个开始报数,(从1报到3)凡报到3的

这么经典的面向对象题目    以下代码仅供参考

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

int n;

Scanner scanner = new Scanner(System.in);

System.out.println("请输入一个正整数:");

n = scanner.nextInt();

scanner.close();

PersonQuan personQuan = new PersonQuan();

Person person;

for (int i = 1; i = n; i++) {

person = new Person(i);

personQuan.addPerson(person);

}

n = 0;

person = personQuan.first;

while (personQuan.first != personQuan.last) {

n++;

if (n % 3 == 0) {

//System.out.println("第" + n/3 + "次移除编号:" + person.id);

personQuan.removePerson(person);

}

person = person.right;

}

System.out.println("最后留下的是第" + personQuan.first.id + "号");

}

}

class Person {

int id;

Person left;

Person right;

public Person(int id) {

this.id = id;

}

}

class PersonQuan {

Person first;

Person last;

public void addPerson(Person person) {

if (first == null) {

first = person;

last = person;

person.left = person;

person.right = person;

} else {

last.right = person;

person.left = last;

person.right = first;

first.left = person;

last = person;

}

}

public int removePerson(Person person) {

if (first == last) {

return 0;

}

if (person == first) {

last.right = person.right;

person.right.left = last;

first = person.right;

} else if (person == last) {

first.left = person.left;

person.left.right = first;

last = person.left;

} else {

person.left.right = person.right;

person.right.left = person.left;

}

return 1;

}

}

用java实现银行排队程序,要求模拟银行的业务排队系统,要有界面,实现完成的排队和叫号

import java.awt.Color;

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银行排队系统怎么编写?

我觉得挺简单的因为不需要用到线程 定义一个变量一直++就可以了

100多个人排队,3人一组多1人,4人一组多两人,5人一组多3人.问有 多少人?java代码编程

package zhidao;

public class TestQueue {

public static void main(String[] args) {

// TODO Auto-generated method stub

for(int i = 100; i 200; i++) {

if(i%3 == 1 i%4 == 2 i%5 == 3) {

System.out.println(i);

}

}

}

118 或者178人

}


分享标题:排队系统java编程代码 排队系统java编程代码大全
分享URL:http://njwzjz.com/article/docphjc.html