µ±Ç°Î»Ö㺠´úÂëÃÔ >> CÓïÑÔ >> Õâ¸öʱ¼ä±È½Ïº¯ÊýÓдíÎóô£¿
  Ïêϸ½â¾ö·½°¸

Õâ¸öʱ¼ä±È½Ïº¯ÊýÓдíÎóô£¿

Èȶȣº523   ·¢²¼Ê±¼ä£º2008-06-23 20:14:44.0
Õâ¸öʱ¼ä±È½Ïº¯ÊýÓдíÎóô£¿
struct TIME
{
    int h;
    int m; //h´ú±íСʱ£¬m´ú±í·ÖÖÓ
};

//IFÓï¾ä²»ÖªµÀÓÐûÓÐÓôí
bool CompareTime (struct TIME time1,struct TIME time2)   //¶¨Òåʱ¼ä±È½Ïº¯Êý   Èç¹ûtime1<time2,·µ»Øture
             {
              if(time1.h<time2.h)
                 return true;
              else if(time1.h=time2.h)
                  {if(time1.m<=time2.m)
                    return true;
                   else return false;
                   }
              else return false;
             }
ËÑË÷¸ü¶àÏà¹ØµÄ½â¾ö·½°¸: º¯Êý  Ê±¼ä  

----------------½â¾ö·½°¸--------------------------------------------------------
»Ø¸´ 2# ¤«¤ï¤¤ µÄÌû×Ó
°ïÎÒ¿´¿´³ÌÐòºÃ²»ºÃ°¡ ..
¿ìËÀÈËÁË...
----------------½â¾ö·½°¸--------------------------------------------------------
#include<iostream.h>
#include<stdio.h>
using namespace std;

struct TIME
{
    int h;
    int m; //h´ú±íСʱ£¬m´ú±í·ÖÖÓ
};
struct JOB        //½¨ÀàJOB
{
   TIME R,RU,F,E;   //µ½´ïʱ¼ä£¬¿ªÊ¼ÔËÐÐʱ¼ä£¬Íê³Éʱ¼ä ; ¹À¼ÆÔËÐÐʱ¼ä
   float zt;       //ÖÜתʱ¼ä
   float dzt;      //´øȨÖÜתʱ¼ä
   int number;
   float r; //ÏìÓ¦±È
};
bool CompareTime (struct TIME time1,struct TIME time2)   //¶¨Òåʱ¼ä±È½Ïº¯Êý   Èç¹ûtime1<time2,·µ»Øture
             {
              if(time1.h<time2.h)
                 return true;
              if(time1.h=time2.h)
                  {if(time1.m<=time2.m)
                    return true;
                   else return false;
                   }
              else return false;
             }
TIME AddTime (TIME time1,TIME time2)     //¶¨Òåʱ¼äµÄ¼Ó·¨
             {

               time1.m=time1.m+time2.m;
               time1.h=time1.h+time2.h;
              if(time1.m>=60)
              {do
                {
                  time1.h+=1;
                  time1.m-=60;
                 }while(time1.m>=60);
              }
              return time1;
             }
int SubTime (struct TIME time1,struct TIME time2) //¶¨Òåʱ¼äµÄ¼õ·¨
         {
          return((time1.h-time2.h)*60+(time1.m-time2.m));
         }

void out1(JOB job[],int n)   //¶¨ÒåÊä³öº¯Êýout1
{
int i;
cout<<"ÄãµÄÊäÈëÈçÏ£º\n\n";
cout<< "×÷ÒµÃû³Æ     µ½´ïʱ¼ä(hh:mm)       ¹À¼ÆÔËÐÐʱ¼ä(M)"<<"\n\n";
for(i=1;i<=n;i++)
    {
     cout<<"JOB"<<job[i].number;
     printf("             %-d:%-d\t                %-d\t ",job[i].R.h,job[i].R.m,job[i].E.m);
     putchar('\n');}
}

void out2(struct JOB job[],int n)    //¶¨ÒåÊä³öº¯Êýout2
{
int i;
cout<<"ÏÂÃæΪ½á¹û£º\n\n";
cout<< "˳Ðò    reach time   estimate    run time   finish time    ÖÜתʱ¼ä ´øȨÖÜתʱ¼ä\n";
for(i=1;i<=n;i++)
    {
    cout<<"JOB"<<job[i].number;
    printf("      %-d:%-d\t      %d       %-d:%-d\t      %-d:%-d\t     %-.1f\t %-.3f\t\n",job[i].R.h,job[i].R.m,job[i].E.m,job[i].RU.h,job[i].RU.m,job[i].F.h,job[i].F.m,job[i].zt,job[i].dzt);
    }
putchar('\n');
}

int main(void)
{
int num;//×÷Òµ¸öÊý
int N;
int i,j;
int c=0;//ÓÃÓÚSJFËã·¨ÖУ¬¾ÍÐ÷״̬×÷ÒµµÄ¼ÆÊý
int k;
struct JOB job[7];
cout<<"ÇëÑ¡Ôñµ÷¶ÈËã·¨£º1.FIFO  2.JSF  3.HRN\n";
cin>>N;
cout<<"ÇëÊäÈë×÷Òµ¸öÊý£º";
cin>>num;
cout<<"Çë°´Ìáʾ·Ö±ðÊäÈë¸ö×÷Òµµ½´ïʱ¼ä£¬ÒÔ¼°¹À¼ÆÔËÐÐʱ¼ä\n\n";
for(int i=1;i<=num;i++)
    {
      do
      {
       cout<<"ÇëÊäÈëµÚ"<<i<<"¸ö×÷ÒµµÄµ½´ïʱ¼ä(ÏÈСʱ£¬ºó·ÖÖÓ)£º\n";
       cin>>job[i].R.h;
       cin>>job[i].R.m;
      }
      while((job[i].R.h<=0||job[i].R.h>23||job[i].R.m>=60||job[i].R.m<0)); //
      cout<<"ÇëÊäÈëµÚ"<<i<<"¸ö×÷ÒµµÄ¹À¼ÆÔËÐÐʱ¼ä£¨Min£©\n";
      cin>>job[i].E.m;
      job[i].E.h=0;
      job[i].number=i;
      job[i].r=0;
    }
    putchar('\n');
out1(job,num);//Êä³öÓû§ÊäÈëÊý¾Ý
for(i=1;i<num;i++)    //°´Ê±¼äÅÅÐò
  { for(j=i+1;j<=num;j++)
        if(CompareTime(job[j].R,job[i].R))
                 {
                  job[0]=job[j];
                  job[j]=job[i];
                  job[i]=job[0];
                  }
   }


    job[1].F=AddTime(job[1].R,job[1].E);
          job[1].RU=job[1].R;
          job[1].zt=job[1].E.m;
          job[1].dzt=job[1].zt/job[1].E.m;

switch(N)

  {
   case 1:     //FIFO
       for(i=2;i<=num;i++)
       {
        {if(CompareTime(job[i-1].F,job[i].R))  //µ½´ïʱ¼äÔÚÇ°¸ö×÷ÒµµÄÍê³Éʱ¼ä֮ǰ
             job[i].RU=job[i].R;
         else job[i].RU=job[i-1].F;
         }
             job[i].F=AddTime(job[i].RU,job[i].E);
             job[i].zt=SubTime(job[i].F,job[i].R);
             job[i].dzt=job[i].zt/job[i].E.m;
       }
        break;
  
   ......
  }
out2(job,num);   //µ÷ÓÃÊä³öº¯Êý
return 1;
}
µ±×÷Òµ³¬¹ý3¸öʱÓÐʱ½á¹û¶ÔÓÐʱ´í...ÓôÃÆ£¬ÎÒ¹À¼ÆÊÇÔÚ¡°ÅÅÐò¡±»òÕß¡°Ê±¼ä±È½Ï¡±ÕâÀï³ö´í£¬¾ÍÊÇÕÒ²»³öÀ´¡£¿ìÕÒÒ»ÌìÁË...

[[it] ±¾Ìû×îºóÓÉ linsq ÓÚ 2008-6-23 20:33 ±à¼­ [/it]]
----------------½â¾ö·½°¸--------------------------------------------------------
»Ø¸´ 5# ¤«¤ï¤¤ µÄÌû×Ó
¸ÄÁË£¬½á¹û»¹Êdzö´í
----------------½â¾ö·½°¸--------------------------------------------------------
¼ÌÐø¸Ä..
----------------½â¾ö·½°¸--------------------------------------------------------
LZÒªÖªµÀ£¬µ÷ÊÔÕⶫÎ÷ÊǺܷÑʱºÍÉñµÄ..
----------------½â¾ö·½°¸--------------------------------------------------------
»Ø¸´ 8# ¤«¤ï¤¤ µÄÌû×Ó
¸ÄÁËIFÓï¾ä
----------------½â¾ö·½°¸--------------------------------------------------------
»Ø¸´ 9# ÖÐѧÕß µÄÌû×Ó
°¦£¬Ê±¼äºÍ¾«Á¦...
----------------½â¾ö·½°¸--------------------------------------------------------
[bo][un]¤«¤ï¤¤[/un] ÔÚ 2008-6-23 20:40 µÄ·¢ÑÔ£º[/bo]

Äãµ½µ×¸ÄÁËʲô



°ÑÄã¸Õ²Å¸úÎÒ½²µÄÄǸöIFÓï¾äÖÐ if else ¸Ä³É if °¡
----------------½â¾ö·½°¸--------------------------------------------------------
ÎÒÔΣ¬2Â¥¶¼ËµÁË£¬if(time1.h=time2.h)
----------------½â¾ö·½°¸--------------------------------------------------------
  Ïà¹Ø½â¾ö·½°¸