91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9.27MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-05
  • 語言: C/C++
  • 標簽: 多線程??C++11??電梯??

資源簡介

該工程為多線程實現的電梯運行,可能有些情況沒有考慮處理好,歡迎道友留言指正

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?“Elevator.h“
#include?“Person.h“

//創建電梯運行線程,維護兩個列表,一個維護樓層的請求列表,一個維護用戶到達樓層的列表
Elevator::Elevator(int?inElevatorID?int?inCurrentLevel)
{
elevatorID?=?inElevatorID;
currentLevel?=?inCurrentLevel;
elevatorStatus?=?STOP;
runThread?=?true;
elevatorRun?=?new?thread(&Elevator::runthis);
elevatorRun->detach();
}

Elevator::~Elevator()
{
}
bool?Elevator::addArriveList(char?*name?int?src?int?det)
{
Person?*client?=?new?Person(name?src?det);
if?(arriveList.size()?==?0)
{
arriveList.push_back(client);
}else?{
for?(vector::iterator?i?=?arriveList.begin();?i?!=?arriveList.end();?i++)
{
if?((*i)->detlevel?>=?client->detlevel)
{
arriveList.insert(i?client);
break;
}
}
}
return?true;
}

bool?Elevator::addRequest(char?*name?int?src?int?det)????
{
Person?*client?=?new?Person(name?src?det);
if?(requestList.size()?==?0)
{
requestList.push_back(client);
}else?{
for?(vector::iterator?i?=?requestList.begin();?i?!=?requestList.end();?i++)
{
if?((*i)->srclevel?>=?client->srclevel)
{
requestList.insert(i?client);
break;
}
}
}
//打印測試用
for?(vector::iterator?i?=?requestList.begin();?i?!=?requestList.end();?i++)
{
cout?<elevatorID?< cout?<name?< }
return?true;
}

void?Elevator::openDoor()
{
cout?<elevatorID?<}

void?Elevator::clientArrive() //每到一層均檢測是否有到達的用戶
{
for?(vector::iterator?i?=?arriveList.begin();?i?!=?arriveList.end();)
{
if?((*i)->detlevel?==?currentLevel)
{
openDoor();
std::cout?<name?< delete((*i));
i?=?arriveList.erase(i);
continue;
}
if?(arriveList.size()?==?0)?{
this->elevatorStatus?=?STOP;
}
i++;
}
}

void?Elevator::setElevatorStatus(int?state)
{
this->elevatorStatus?=?state;
}
void?Elevator::run()
{
while?(this->runThread)
{
while?(!this->requestList.empty()?||?!arriveList.empty())
{
locker.lock();

move();

locker.unlock();
std::this_thread::sleep_for(std::chrono::milliseconds(3000));??//ms,模擬電梯的運行時間
}
elevatorStatus?=?STOP;
}
}
/*
電梯移動的過程中進行進入用戶的管理,以及到達用戶遷出的處理
每個樓層均檢測是否有用戶要進入電梯,有則將用戶信息從requestList列表刪除,添加入arriveList列表
*/
void?Elevator::move()????//修改電梯移動的樓層,移動打印電梯所處的樓層
{
//顯示進入電梯的client
for?(vector::iterator?i?=?requestList.begin();?i?!=?requestList.end();?)
{
if?((*i)->srclevel?==?currentLevel)
{
//用戶進入電梯,顯示出來
cout?<elevatorID<<“號電梯門打開,“<<(*i)->name?<srclevel?<
if?(arriveList.empty())?{
this->elevatorStatus?=?(((*i)->detlevel?-?(*i)->srclevel)?>?0???UP?:?DOWN);
}
addArriveList((*i)->name?(*i)->srclevel?(*i)->detlevel);
delete((*i));

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

????..A..H.?????50176??2016-11-19?22:38??elevator\elevator\.vs\elevator\v14\.suo

?????文件?????137216??2016-11-19?22:17??elevator\elevator\Debug\elevator.exe

?????文件?????660996??2016-11-19?22:17??elevator\elevator\Debug\elevator.ilk

?????文件????1380352??2016-11-19?22:17??elevator\elevator\Debug\elevator.pdb

?????文件???????2640??2016-11-19?22:17??elevator\elevator\elevator\Debug\elevator.log

?????文件?????377274??2016-11-19?22:17??elevator\elevator\elevator\Debug\Elevator.obj

?????文件????3407872??2016-11-19?22:17??elevator\elevator\elevator\Debug\elevator.pch

?????文件???????3910??2016-11-19?22:17??elevator\elevator\elevator\Debug\elevator.tlog\CL.command.1.tlog

?????文件?????115730??2016-11-19?22:17??elevator\elevator\elevator\Debug\elevator.tlog\CL.read.1.tlog

?????文件???????3436??2016-11-19?22:17??elevator\elevator\elevator\Debug\elevator.tlog\CL.write.1.tlog

?????文件????????182??2016-11-19?22:17??elevator\elevator\elevator\Debug\elevator.tlog\elevator.lastbuildstate

?????文件???????2018??2016-11-19?22:17??elevator\elevator\elevator\Debug\elevator.tlog\link.command.1.tlog

?????文件???????4480??2016-11-19?22:17??elevator\elevator\elevator\Debug\elevator.tlog\link.read.1.tlog

?????文件???????1182??2016-11-19?22:17??elevator\elevator\elevator\Debug\elevator.tlog\link.write.1.tlog

?????文件?????361033??2016-11-19?22:17??elevator\elevator\elevator\Debug\ElevatorBank.obj

?????文件??????48423??2016-11-19?22:17??elevator\elevator\elevator\Debug\main.obj

?????文件??????34195??2016-11-19?22:17??elevator\elevator\elevator\Debug\Person.obj

?????文件??????12047??2016-11-19?22:17??elevator\elevator\elevator\Debug\stdafx.obj

?????文件????1174528??2016-11-19?22:17??elevator\elevator\elevator\Debug\vc140.idb

?????文件?????667648??2016-11-19?22:17??elevator\elevator\elevator\Debug\vc140.pdb

?????文件???????3899??2016-11-19?22:17??elevator\elevator\elevator\Elevator.cpp

?????文件????????929??2016-11-19?22:16??elevator\elevator\elevator\Elevator.h

?????文件???????8413??2016-11-18?15:43??elevator\elevator\elevator\elevator.vcxproj

?????文件???????1861??2016-11-18?15:41??elevator\elevator\elevator\elevator.vcxproj.filters

?????文件???????5625??2016-11-19?22:38??elevator\elevator\elevator\ElevatorBank.cpp

?????文件????????683??2016-11-19?21:49??elevator\elevator\elevator\ElevatorBank.h

?????文件????????236??2016-11-19?21:49??elevator\elevator\elevator\main.cpp

?????文件????????239??2016-11-18?16:21??elevator\elevator\elevator\Person.cpp

?????文件????????203??2016-11-18?16:21??elevator\elevator\elevator\Person.h

?????文件???????1517??2016-11-16?14:24??elevator\elevator\elevator\ReadMe.txt

............此處省略20個文件信息

評論

共有 條評論