标题:单道作业调度FIFO算法
只看楼主
linsq
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2006-11-20
 问题点数:0 回复次数:1 
单道作业调度FIFO算法
大哥,救命啊,为什么重载一直都出错,还有,是不是结构体里面不能包含类?能否帮小弟看下,感激不尽:
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<string>
using namespace std;

class TIME
{
 public:
    int h;
    int m; //到达时间  h代表小时,m代表分钟
    bool operator > (TIME time1,TIME time2);
    TIME operator + (TIME time1,TIME time2);
    TIME operator + (TIME time1,int e);
    int  operator - (TIME time1,TIME time2);
};
bool TIME::operator >(JOB.TIME time1,JOB.TIME time2)   //重载“>”
             {
              if(time1.h>=time2.h)

                 if(time1.h=time2.h)
                    if(time1.m>=time2.m) return 1;
                    else return 0;
                 else return 1;
              else return 0;
             }
TIME TIME::operator +(TIME time1,&int e)
        {
              time1.m=time1.m+e;
              if(time1.m>=60)
                 {
                  time1.h+=1;
                  time2.h-=60;
                 }
              return time1;
        }

TIME TIME::operator +(&JOB.TIME time1,&JOB.TIME time2)      //重载“+”
             {
              time1.m=time1.m+time2.m;
              time1.h= time1.h+time2.h;
              if(time1.m>=60)
                 {
                  time1.h+=1;
                  time2.h-=60;
                 }
              return time1;
             }
int TIME:: operator -(&TIME time1,&TIME time2)
         {

          return((time1.h-time2.h)*60+(time1.m-time2.m));
         }

struct JOB        //建类JOB
{
   string name;
   int etime;       //估计运行时间
   TIME R,RU,F;   //到达时间,开始运行时间,完成时间
   float zt;       //周转时间
   float dzt;      //带权周转时间
};
void main()
{
 int num;//作业个数
 int N;
 cout<<"请选择调度算法:1.FIFO  2.SJF  3.HRN\n";
 cin>>N;
 cout<<"请输入作业个数:";
 cin>>num;
 JOB job[num+1];
 cout<<"请按提示分别输入个作业的名称,到达时间,以及估计运行时间\n\n";
 for(int i=1;i<=num+1;i++)
    {
      cout<<"请输入第"<<i<<"个作业的名称:(按回车键将自动生成 job【N】格式)\n";
      cin>>job[i].name;
        if(job[i].name=="\n")
           job[i].name="job"+char(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].etime;
    }
    putchar('\n');
    void out1(JOB[num]);//输出用户输入数据
switch(N)
   case 1:     //FIFO
         for(i=1;i<=num;i++)
           { for(int j=i+1;j<=n,j++)
               if(!job[i].R>job[j].R)
                 {
                  job1[0]=job[i];
                  job[i]=job[j];
                  job[j]=job[0];
                  }
           }
          job[1].F=job[1].R+job[1].etime;
          job[1].RU=job[1].R;
          job[1].zt=job[1].F-job[1].R;
          job[1].dzt=job[1].zt/job[1].etime;

         for(i=2;i<=num;i++)
         {
          if(job[i].R>job[i-1].F)
             job[i].RU=job[i].R;
          else
             job[i].RU=job[i-1].F;
             job[i].F=job[i]+job[i].etime;
             job[i].zt=job[i].F-job[i].R;
             job[i].dzt=job[i].zt/job[i].etime;
          }
          break;
   case 2://  SJF
          break;
   case 3://HRN
          break;

void out2(JOB[num]); //调用输出函数
}
//两个输出函数的定义
  void out1(&JOB[num])
{cout<<"你的输入如下:\n\n"
 cout<< "作业名称"           "到达时间"          "估计运行时间(M)";
 for(i=1;i<=num;i++)
    cout<<job[i].name<<"         "<<job[i].TIME.h<<":"<<job[i].TIME.m<<"        "<<job[i].etime;
 putchar('\n')
}
void out2(&JOB[num])
{
cout<<"下面为结果:\n\n";
cout<< "作业名称     到达时间(hh:mm)    估计运行时间(m)    开始运行时间     结束时间      周转时间      带权周转时间\n";
 for(i=1;i<=num;i++)
    cout<<job[i].name<<"   "<<job[i].TIME.h<<":"<<job[i].TIME.m<<"    "<<job[i].etime<<"    "<<job[i].RU<<"     "<<job[i].F<<"     "<<job[i].zt<<"     "<<job[i].dzt;
 putchar('\n')
}
搜索更多相关主题的帖子: FIFO 算法 作业 
2008-06-02 22:53
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
得分:0 
你的重载函数错的严重。。。。。成员函数方式不能这样重载的


" border="0" />[color=white]
2008-06-02 23:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-217278-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016876 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved