OA远程维修网

打印机共享代码35

#include
#include
#include
#include

#define MAX_PRINTERS 5 // 最多支持5个打印机
#define ON 0
#define OFF 1

int lock[MAX_PRINTERS]; // 用于保护变量
int printers_queue[MAX_PRINTERS]; // 打印机队列
int queue_count; // 打印机队列中的任务数

// 开启一个打印机
void enable_printer(int printer_id)
{
lock[printer_id] = OFF; // 开启锁
printf(“Printer %d is enabled.\n”, printer_id);
}

// 关闭一个打印机
void disable_printer(int printer_id)
{
lock[printer_id] = ON; // 关闭锁
printf(“Printer %d is disabled.\n”, printer_id);
}

// 将一个新的打印机任务加入队列
void add_printer_task(int printer_id)
{
printers_queue[queue_count] = printer_id; // 将任务添加到队列
queue_count++; //将任务数量加1
printf(“Printer %d has been added to the queue.\n”, printer_id);
}

// 分配打印机任务
void assign_printer_task()
{
if (queue_count == 0) // 如果队列为空
{
printf(“No printers in the queue.\n”);
}
else
{
int printer_id = printers_queue[0]; // 取出队列中第一个任务

// 如果该任务已经启用
if (lock[printer_id] == OFF)
{
for (int i = 0; i < queue_count – 1; i++) // 将后面的任务前移
{
printers_queue[i] = printers_queue[i + 1];
}
queue_count–; // 将任务数量减1

printf("Printer %d has been assigned a task.\n", printer_id);
}
else
{
printf("Printer %d is disabled.\n", printer_id);
}
}
}

int main()
{
int i;
for (i = 0; i < MAX_PRINTERS; i++) // 初始化打印机锁
lock[i] = ON;
queue_count = 0; // 初始化队列任务数量

// 启用3号打印机
enable_printer(3);

// 将2号打印机加入队列
add_printer_task(2);

// 将4号打印机加入队列
add_printer_task(4);

// 分配打印任务
assign_printer_task();

return 0;
}

未经允许不得转载:远程打印机维修网 » 打印机共享代码35

置顶文章