Õâ¸öʱ¼ä±È½Ïº¯ÊýÓдíÎóô£¿
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)
----------------½â¾ö·½°¸--------------------------------------------------------