⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 file.cpp

📁 操作系统中的多级反馈队列调度算法
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
#define SIZE 10
#define OVERFLOW 0
#define OK 1
struct data{
  int ID;
  int hour;
  int minute;
  int Alltime;
}data[SIZE];
typedef struct QNode{
  int ID;
  int Hour;
  int Minute;
  int Alltime;
  struct QNode * next;
}QNode,*QueuePtr;
typedef struct{
  QueuePtr front;
  QueuePtr rear;
}LinkQueue;
LinkQueue Q;
QueuePtr p,q,s;
int size;
change(int &i){
  int l;
  int n;
  l=data[i].hour;
  n=data[i].minute;
  n=l*60+n;
  return n;
}
void bubble_sort();
EnQueue(LinkQueue &Q,int i);
void  file(){
  int i=0;
  printf("Please input the processes's informations:ID,Hour,Minute,Alltime\n\n");
  printf("Attention!   ID(number)    Hour(0---12)    Minute(0---60)\n");
  printf("\n             If you input the ID=0,you can't input anything!\n\n");
  scanf("%d%d%d%d",&data[i].ID,&data[i].hour,&data[i].minute,&data[i].Alltime);
  while(data[i].ID!=0)
    { i++;
       scanf("%d%d%d%d",&data[i].ID,&data[i].hour,&data[i].minute,&data[i].Alltime);
    }
  size=i;
  bubble_sort();
  for(i=0;i<size;i++)
    EnQueue(Q,i);
}
void bubble_sort()
{
  int swap1,swap2,swap3,swap4;
  int i,j;
  for(i=size-1;i>0;i--)
     for(j=0;j<i;++j)
      if(change(j)>change(j+1))
	 {swap1=data[j].ID;
	  data[j].ID=data[j+1].ID;
	  data[j+1].ID=swap1;

	  swap2=data[j].hour;
	  data[j].hour=data[j+1].hour;
	  data[j+1].hour=swap2;

	  swap3=data[j].minute;
	  data[j].minute=data[j+1].minute;
	  data[j+1].minute=swap3;

	  swap4=data[j].Alltime;
	  data[j].Alltime=data[j+1].Alltime;
	  data[j+1].Alltime=swap4;
	}
}
LinkQueue InitQueue(LinkQueue &Q){
  Q.front=Q.rear=(QueuePtr)malloc(sizeof (QNode));
  if(!Q.front)
    exit(OVERFLOW);
  Q.front->next=NULL;
  return Q;
}
EnQueue(LinkQueue &Q,int i){
  p=(QueuePtr)malloc(sizeof (QNode));
  if(!p)
    exit(OVERFLOW);
  p->ID=data[i].ID; p->Hour=data[i].hour; p->Minute=data[i].minute; p->Alltime=data[i].Alltime;
  p->next=NULL;
  Q.rear->next=p;
  Q.rear=p;
  return OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -