⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dianti.txt

📁 磁盘调度算法
💻 TXT
字号:
给你一个哈哈: 

输出: 

电梯在5层 
电梯将要下行 
您要去的层数是1 
请等8秒钟。 
门已打开,请进 


完整代码: 

C/C++ code#include <iostream> 
using  namespace std; 
#include <cmath> 
class Passenger//乘客类 
{ 
private: 
    bool signal;//上下楼的标志,值为1时表示上楼,反之下楼 
    int Patfloor;//所在楼层 
    int Ptofloor;//要去的楼层 
public: 
    static int countP;//记数,以防超载 
    Passenger(bool signal1=1,int Patfloor1=1,int Ptofloor=2);//有默认植的构造函数 
    Passenger(Passenger&); 
    ~Passenger(){countP--;} 
    friend class lift;//友元函数 
}; 
//成员函数的实现 
int Passenger::countP=0; 

Passenger::Passenger(bool signal1,int Patfloor1,int Ptofloor1) 
{ // bool signal1;int Patfloor1;int Ptofloor1; 
    signal=signal1; 
    Patfloor=Patfloor1; 
    Ptofloor=Ptofloor1; 
    countP++; 
} 
Passenger:: Passenger(Passenger&P) 
{ 
    signal=P.signal; 
    Patfloor=P.Patfloor; 
    Ptofloor=P.Ptofloor; 
    countP++; 
} 
//电梯类 
class lift 
{ 
private: 
    int limitPassenger;//最大限度 
    int liftc;//电梯层数 
    int latfloor;//电梯所在层数 
    int ltofloor;//电梯要去的层数 
    int speed;//电梯运行一层需要的时间.单位:s 
public: 
    lift(int limitPassenger1,int liftc1,int latfloor1,int ltofloor1,int speed1); 
    ~lift(){} 
    int Getlatfloor(){return this->latfloor;} 
    int wait_time(){return (int)(speed*fabs(double(latfloor-ltofloor)));}//乘客等待的时间 
    bool overload(Passenger&);//判断电梯是否超载 
    //void l_tofloor();//判断电梯要去的层数 
    lift(Passenger &,Passenger &);//判断电梯要去的层数 
    int getcengshu(){return ltofloor;} 
    void l_direction();//判断电梯将要运行的方向 
    friend class Passenger; 
}; 
//成员函数的实现 
lift::lift(int limitPassenger1,int liftc1,int latfloor1,int ltofloor1, int speed1) 
{ 
    limitPassenger=limitPassenger1; 
    liftc=liftc1; 
    latfloor=latfloor1; 
    ltofloor  = ltofloor1; 
    speed=speed1; 
} 
bool lift::overload(Passenger&p) 
{ 
    if(p.countP>=13) { 
        cout < <"电梯超载" < <"\t" < <endl;//响铃标志,ASCAll码? 
        return 1; 
    } 
    else 
        return 0; 
} 
/* void lift::l_tofloor() 
{ 
int L1,L2; 
L1=abs(P1.Patfloor-lift.latfloor); 
L2=abs(P2.Patfloor-lift.latfloor); 
if(L1 <=L2) 
lift.Ltofloor=P1.Ptofloor; 
else 
lift.Ltofloor=P2.Ptofloor; 

}*/ 
lift::lift(Passenger &P1,Passenger &P2) 
//lift::getcengshu(Passenger &P1,Passenger &P2) 
{ 
    int L1,L2; 
    L1=(int)fabs(double(P1.Patfloor-latfloor));//lift.latfloor); 
    L2=(int)fabs(double(P2.Patfloor-latfloor));//lift.latfloor); 
    if(L1 <=L2) 
        ltofloor=P1.Ptofloor; 
    else 
        ltofloor=P2.Ptofloor; 
    // cout < <"要去的层数" < <ltofloor < <endl; 
} 
void lift::l_direction() 
{ 
    int L3=ltofloor-latfloor; 
    if (latfloor==1){} 
    else 
    { 
        if(L3>0) 
            cout < <"电梯将要上行" < <endl; 
        else if(L3 <0) 
            cout < <"电梯将要下行" < <endl; 
        else//(L3=0) 
            cout < <"门正在打开" < <endl; 
    } 
} 
//主函数 
void main() 
{ 
    Passenger Ps1(1,3,7),Ps2(0,6,2),P3(1,2,9); 
    lift lift1(13,10,5,1,2); 
    cout < <"电梯在" < <lift1.Getlatfloor() < <"层" < <endl; 
    lift1.l_direction(); 
    cout < <"您要去的层数是" < <lift1.getcengshu() < <endl; 
    cout < <"请等" < <lift1.wait_time() < <"秒钟。" < <endl;  
    cout < <"门已打开,请进" < <endl; 
    lift1.overload(P3);//P为乘客中的最后一人 
} 

[/code]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -