全文预览

作业调度算法模拟

上传者:随心@流浪 |  格式:doc  |  页数:10 |  大小:161KB

文档介绍
开始时间,结束时间,周转时间等等),Р下面就是转换的方法。Рp[i].subtime=(p[i].subtime)/100*60+p[i].subtime%100;Рp[i].runtime=(p[i].runtime)/100*60+p[i].runtime%100;Р然后最后输出的时候再转换过来就行了!但是我写的时候还是遇到了很多问题,比如第一个算法运行完了之后很多时间都变了,然后第二,三个算法的时候就错了!少了初始化工作等!Р写代码的时候没考虑到下一个作业开始的时间可能大于上一个作业结束时间的情况。直接算出Рp[i].ftime=p[i-1].ftime+p[i].runtime;Р但是这是错误的,因为可能第一个结束的时候第二个还没开始的!这是可能的!最后运行很多例子后发现错误了,然后改成Рif(p[i-1].ftime>p[i].subtime)Р {Р p[i].stime=p[i-1].ftime;Р p[i].ftime=p[i-1].ftime+p[i].runtime; Р }Р elseР {Р p[i].stime=p[i].subtime;Р p[i].ftime=p[i].subtime+p[i].runtime;Р }Р所以写代码之前必须要考虑好各种情况。Р 最后说的是浮点数和整型数之间的问题!比如计算带权周转时间的时候必须要(p[j].dtime =p[j].ztime*1.0 /p[j].runtime*1.0)乘于1.0!因为runtime,ztime是整型数!其他的就没什么说的了!代码加了一些注释的!完完整整的写完这个代码后自己觉得还是蛮高兴地!收获蛮多!Р下面是代码的一些运行情况:Р(1)把书本是例子(80页)的运行结果,跟书本上的一样!Р(2)如果自己输入的顺序不是按时间顺序来输入的情况和第一个作业结束的时候第二个作业还没开始的情况!

收藏

分享

举报
下载此文档