java排队

java排队,第1张

排序就排序呗。

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

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

给你说个思路

1. 按行读文件, 每猛李者一行split('\\s'扰逗),然后只要id 这个String

2. 然后取id后的十六进制数

3. 将枝薯此行和这一整行(value)和它对应的十六进制数(key)写入一个map

4. 对十六进制树进行排序

5. get by key

6. 输出

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()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8236722.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存