±àд²¢µ÷ÊÔÒ»¸ö¶àµÀ³ÌÐòϵͳµÄ×÷Òµµ÷¶ÈÄ£Äâ ÏÂÔØ±¾ÎÄ

±àд²¢µ÷ÊÔÒ»¸ö¶àµÀ³ÌÐòϵͳµÄ×÷Òµµ÷¶ÈÄ£Äâ³ÌÐòÎå

±àд²¢µ÷ÊÔÒ»¸ö¶àµÀ³ÌÐòϵͳµÄ×÷Òµµ÷¶ÈÄ£Äâ³ÌÐò¡£ ×÷Òµµ÷¶ÈËã·¨£º²ÉÓûùÓÚÓÅÏȼ¶µÄ×÷Òµµ÷¶È¡£ ¿ÉÒԲο¼¿Î±¾ÖеÄÀý×Ó×ÔÐÐÉè¼Æ¡£

#include <stdio.h> #include <stdlib.h>

#define getjch(type) (type*)malloc(sizeof(type)) #define N 10

struct jcb { /* ¶¨Òå×÷Òµ¿ØÖÆ¿éPCB */ char name[10];

float needtime; /*ÔËÐÐʱ¼ä*/ float arrivetime;/*Ìύʱ¿Ì*/ float storage[N];/*ϵͳ×ÊÔ´*/ struct jcb* link;

}*ready=NULL,*pb=NULL,*p;

typedef struct jcb JCB;

float Tc,Ti,Wi,T=0;/*Íê³Éʱ¿Ì,ÖÜתʱ¼ä,´øÈ¨ÖÜתʱ¼ä,ʱ¼äÁ¿*/ float TiSum=0,WiSum=0;/*ƽ¾ùÖÜתʱ¼ä,´øÈ¨aƽ¾ùÖÜתʱ¼ä*/ float source[N]; int n;

void input(); /*ÊäÈë×÷ÒµÐÅÏ¢*/

int space(); /* ·µ»Ø¾ÍÐ÷¶ÓÁÐÖÐ×÷ÒµµÄÊýÄ¿*/ void fcfs(); /*ÏÈÀ´ÏÈ·þÎñËã·¨*/ void disp(JCB *pr); /* ÏÔʾÏàÓ¦µÄ×÷Òµ*/ void running(); /*ÔËÐÐ×÷Òµ×é*/ void destroy(); /* ³·Ïú×÷Òµ*/

void input() /* ½¨Á¢×÷Òµ¿ØÖƿ麯Êý*/ {

int i,k,num;

printf("ÇëÊäÈëËùÓµÓеÄ×ÊÔ´ÖÖÀà:"); scanf("%d",&n);

printf("ÊäÈëϵͳËùÓµÓÐ×ÊÔ´Êý:\\n"); for(i=0;i<n;i++) {

printf("×ÊÔ´[%d]:",i);

scanf("%f",&source[i]); }

printf("\\n ÊäÈë×÷ÒµÊýÁ¿:"); scanf("%d",&num); for(i=0;i<num;i++) {

printf("\\n ×÷ÒµºÅ[%d]:\\n",i); p=getjch(JCB);

printf("ÊäÈë×÷ÒµÃû:");

scanf("%s",p->name); printf("ÊäÈëÌύʱ¼ä:");

scanf("%f",&p->arrivetime); printf("ÊäÈëÔËÐÐʱ¼ä:");

scanf("%f",&p->needtime); printf("ÊäÈëËùÐè×ÊÔ´Êý:\\n"); for(k=0;k<n;k++) {

printf("×ÊÔ´[%d]:",i);

scanf("%f",&p->storage[k]); }

printf("\\n"); p->link=NULL;

fcfs(); } }

int space() { int l=0; JCB* pr=ready; while(pr!=NULL) { l++;

pr=pr->link; } return(l); }

void disp(JCB * pr) /*½¨Á¢×÷ÒµÏÔʾº¯Êý,ÓÃÓÚÏÔʾµ±Ç°×÷Òµ*/ { int i;

printf("\\n%6s\\t%6s\\t%6s\\t","

×÷

Òµ

","ÔËÐÐʱ¼ä","Ìύʱ¿Ì");

Ãû