void Building::Running(int OrderTime)//在限定的时间内
{
int i,iLater1,iLater2,Spent,int Number[2],key=0;
for(i=1;i<=OrderTime;i+=Spent)
{
iLater1=0,iLater2=0;
Spent=0;
srand( (unsigned)time( NULL ) );
for(int j=1;j<3;j++)
{
Number[j]=0+rand()%50;
}
if(Number[1]%2==0)//偶数表示一楼有人上
{
cout<<"一楼有人上"<<endl;
iLater1=1;
}
if(Number[2]%2==0)//偶数表示二楼有人下
{
cout<<"二楼有人下"<<endl;
iLater2=1;
}
if(iLater1==1&&iLater2==0) key=1;
if(iLater1==1&&iLater2==1) key=2;
if(iLater1==0&&iLater2==1) key=3;
if(iLater1==0&&iLater2==0) key=4;
switch(key)
{
case 1:
{
if(Eleva.GetFloor()==1)
{
Floor1.GetInside();
Floor2.CreatePeople ();
Eleva.ChangeFloor(2);
WorkTime++;//表示电梯载人上一次
Spent=5;
Print(i-1+Spent);
continue;
}
else if(Eleva.GetFloor()==2)
{
Eleva.ChangeFloor(1);
Floor1.GetInside();
Floor2.CreatePeople ();
Eleva.ChangeFloor(2);
WorkTime++;//表示电梯从二楼到一楼,再载人到二楼
Spent=10;
Print(i-1+Spent);
continue;
}
}
case 2:
{
if(Eleva.GetFloor()==1)
{Eleva.ChangeFloor(2);
Eleva.ChangeFloor(1);
WorkTime=WorkTime+2;
Spent=10;
Print(i-1+Spent);
continue;
}
else if(Eleva.GetFloor()==2)
{
Eleva.ChangeFloor(1);
Eleva.ChangeFloor(2);
WorkTime=WorkTime+2;
Spent=10;
Print(i-1+Spent);
continue;
}
}
case 3:
{
if(Eleva.GetFloor()==1)
{
Eleva.ChangeFloor(2);
Floor2.GetInside();
Floor1.CreatePeople ();
Eleva.ChangeFloor(1);
WorkTime=WorkTime+1;
Spent=10;
Print(i-1+Spent);
continue;
}
else if(Eleva.GetFloor()==2)
{
Eleva.ChangeFloor(1);
Floor2.GetInside();
Floor1.CreatePeople ();
WorkTime=WorkTime+1;
Spent=5;
Print(i-1+Spent);
continue;
}
}
case 4:
{
cout<<"没有人上下电梯"<<endl;
continue;
}
}
}
}
程序一共运行10次
为什么每次结果都是一样的?如连续10次都是“一楼有人上”
我是想让程序连续产生若干个随机数,这些随机数之间都没有联系,现在我的问题就是每次产生的随机数都是没有关系的,从而key也不相同,但是输出却都是相同的,如都是“有人上”或“有人下”或“没人上下”,我的目的就是想这三种情况随机出现(我这个程序是简单模拟电梯),希望高手帮一下忙