xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

VC6.0編譯! 利用的算法類似于買票排隊(duì),你總會(huì)到隊(duì)列最短的窗口去排隊(duì),但往往會(huì)有其他隊(duì)列辦事速度快,隊(duì)列長度很快變得比你所在隊(duì)列的還短,但你改變自己的隊(duì)列去當(dāng)前較短的隊(duì)列時(shí),可能沒過多久剛剛你在的隊(duì)列又比你現(xiàn)在所處的隊(duì)列短了,因?yàn)殛?duì)短不代表等待時(shí)間短,你無法預(yù)測每個(gè)隊(duì)列你需要等待的時(shí)間。所以在該種制度下,不同于買票排隊(duì)的這種可以隨便更換隊(duì)列的隨意性,我們在第一種算法中設(shè)定:每到達(dá)一個(gè)客戶將其排在隊(duì)列最短的隊(duì)尾,且不管其它隊(duì)列是否變的更短,甚至已經(jīng)空閑,該客戶也只能在已隊(duì)列中等待前面的客戶辦理完業(yè)務(wù)自己才能辦理業(yè)務(wù),很明顯這種算法效率不是最好的。一是時(shí)間利用率不高,而是無法保證先到達(dá)的客戶的辦理業(yè)務(wù)時(shí)間一定比后到達(dá)的客戶早。

資源截圖

代碼片段和文件信息

#include
#include?
#include“l(fā)inklist.h“
#include“l(fā)inkqueue.h“



Event ?en;??????????//事件
QElemType ?customer;???//客戶記錄
int TotalTime;??//累計(jì)客戶逗留時(shí)間
int WaitTime;??//累計(jì)客戶等待時(shí)間
int CustomerNum?;?//累計(jì)客戶數(shù)
int?CloseTime;
int?StartTime;
linkList ?*ev;??????????//事件表
linkQueue ?*q[5];??????//4個(gè)客戶隊(duì)列,q[i]指向第i號窗口的隊(duì)列
int?leave_num?=?0;???//第leave_num個(gè)離開銀行的客戶

void?Random(?int?*duration?int?*intertime?);??//產(chǎn)生隨機(jī)數(shù),第一個(gè)參數(shù)代表當(dāng)前客戶的辦理業(yè)務(wù)所需的時(shí)間,第二個(gè)參數(shù)代表下一個(gè)客戶與當(dāng)前客戶的到達(dá)時(shí)間差
void?OrderInsert(?linkList?*eventlist?Event?cur_en?);??//將產(chǎn)生的事件按事件發(fā)生時(shí)間順序排列
void?OpenForDay();???//初始化
void?CustomerArrived(??);??//對客戶到達(dá)事件進(jìn)行處理
void?CustomerDepature(??);??//對客戶離開事件進(jìn)行處理
void?Bank_Simulation(?int?CloseTime?);??//排隊(duì)系統(tǒng)模擬函數(shù)
int?Minium(?int?num1?int?num2?int?num3?int?num4?);//比較四個(gè)數(shù)中的最小值,若第i個(gè)參數(shù)最小,則返回i,參數(shù)相等的情況下返回序號較小的參數(shù)的序號

void?main()
{



printf(?“輸入銀行的24小時(shí)制營業(yè)時(shí)間:如營業(yè)時(shí)間為9:00--17:00,則應(yīng)輸入:917\n“?);
scanf(?“%d%d“?&StartTime?&CloseTime?);

CloseTime?=?(?CloseTime?-?StartTime?)?*?60;
printf(“離開客戶序列??業(yè)務(wù)窗口??到達(dá)時(shí)間??辦理業(yè)務(wù)時(shí)長??離開時(shí)間??停留時(shí)長??等待時(shí)長\n“);
Bank_Simulation(?CloseTime?);
}



//產(chǎn)生客戶辦理業(yè)務(wù)所需時(shí)間時(shí)間和兩個(gè)客戶到達(dá)時(shí)間的時(shí)間間隔的隨機(jī)數(shù)
void?Random(?int?*duration?int?*intertime?)
{


srand(?(unsigned)time(?NULL?)?);??//用時(shí)間作為種子對隨機(jī)數(shù)進(jìn)行操作

*duration?=?rand()%30?+?1;??//任何一個(gè)客戶的辦理業(yè)務(wù)時(shí)間在1-30之間
*intertime?=?rand()%5+1;???//任何兩個(gè)客戶到達(dá)的時(shí)間間隔不超過5分鐘,1-5
Sleep(1000);??//由于隨機(jī)函數(shù)的產(chǎn)生機(jī)制導(dǎo)致在一秒以內(nèi)產(chǎn)生的隨機(jī)數(shù)都是相同的,因此在一次使用Random時(shí)需要進(jìn)行延時(shí)

}

//將事件cur_en按照發(fā)生時(shí)間的先后順序有序的插入事件鏈表eventlist中
void?OrderInsert(?linkList?*eventlist?Event?cur_en?)??
{

if(?ListEmpty(?eventlist)?){???????//當(dāng)事件鏈表為空時(shí),將第一個(gè)事件直接插入到第一個(gè)位置
ListInsert_L(?eventlist?1?cur_en?);
}
else{ //當(dāng)事件鏈表不為空時(shí),先將事件插入到事件表的第一個(gè)位置然后將事件表按非遞減的順序排序

ListInsert_L(?eventlist?1?cur_en?);??//將事件cur_en插入到eventlist的第1項(xiàng)
Increse(?eventlist?);??
}
}
//初始化操作
void?OpenForDay()
{

int?i;

TotalTime?=?0;?????//初始化累計(jì)時(shí)間為0
CustomerNum?=?0;???//初始化客戶總數(shù)為0
WaitTime?=?0;
ev?=?InitList_L(?);??//初始化事件鏈表為空
en.OccurTime?=?0;????//設(shè)定第一個(gè)客戶到達(dá)事件
en.NType??=?0;
OrderInsert(?ev?en?);?//將第一個(gè)客戶到達(dá)事件插入事件表
for(?i?=?1;?i?<=?4;?i++?)????//初始化窗口隊(duì)列
q[?i?]?=?InitQueue();
}



void?CustomerArrived(??)
{
int?duration;??//當(dāng)前到達(dá)的客戶辦理事務(wù)所需的時(shí)間
int?intertime;?//下一個(gè)客戶與當(dāng)前客戶到達(dá)時(shí)間的時(shí)間間隔
Event?next;????//下一個(gè)客戶項(xiàng)
Event?first_leave;????//當(dāng)前客戶的離開事件
int?i;

++CustomerNum;
Random(?&duration?&intertime?);??//對duration和intertime取隨機(jī)數(shù)
next.OccurTime?=?en.OccurTime?+?intertime;????//下一個(gè)客戶的到達(dá)時(shí)間
next.NType?=?0;????????????????????????????????//下一個(gè)客戶的事件類型,0表示到達(dá)
if(?next.OccurTime? OrderInsert(?ev?next?);????????????//按順序?qū)⑾乱粋€(gè)客戶的到達(dá)時(shí)間插入到事件隊(duì)列中???
customer.ArriveTime?=?en.OccurTime;?????//計(jì)算當(dāng)前客戶的隊(duì)列項(xiàng)并為其分配隊(duì)列
customer.Duration?=?duration;

i?=?Minium(?QueueLength(?q[1]?)?QueueLength(?q[2]?)?QueueLength(?q[3]?)?QueueLength(?q[4]?)?);??//獲得最短隊(duì)列的隊(duì)列號
InsertQueue(?q[i]?customer?);?//將當(dāng)前客戶對應(yīng)的隊(duì)列項(xiàng)插入到最短隊(duì)列中

//若隊(duì)列長度不為1,說明有其他用戶在排隊(duì),則后續(xù)客戶的離開事件均與它之前的所有客戶的離開事件相關(guān),
//在此無法

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件??????36235??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\Debug\main.obj

?????文件??????50176??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\Debug\vc60.idb

?????文件??????69632??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\Debug\vc60.pdb

?????文件?????221314??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\Debug\離散時(shí)間模擬銀行排隊(duì)問題.exe

?????文件?????630540??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\Debug\離散時(shí)間模擬銀行排隊(duì)問題.ilk

?????文件??????43520??2014-06-02?09:40??3離散時(shí)間模擬銀行排隊(duì)問題\Debug\離散時(shí)間模擬銀行排隊(duì)問題.opt

?????文件????2804956??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\Debug\離散時(shí)間模擬銀行排隊(duì)問題.pch

?????文件?????558080??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\Debug\離散時(shí)間模擬銀行排隊(duì)問題.pdb

?????文件???????5459??2014-06-02?09:44??3離散時(shí)間模擬銀行排隊(duì)問題\linklist.h

?????文件???????3782??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\linkqueue.h

?????文件???????7999??2014-06-02?12:56??3離散時(shí)間模擬銀行排隊(duì)問題\main.c

?????文件???????4605??2014-05-31?20:01??3離散時(shí)間模擬銀行排隊(duì)問題\離散時(shí)間模擬銀行排隊(duì)問題.dsp

?????文件????????573??2014-05-31?15:03??3離散時(shí)間模擬銀行排隊(duì)問題\離散時(shí)間模擬銀行排隊(duì)問題.dsw

?????文件??????66560??2014-06-02?12:56??3離散時(shí)間模擬銀行排隊(duì)問題\離散時(shí)間模擬銀行排隊(duì)問題.ncb

?????文件??????49664??2014-06-02?12:56??3離散時(shí)間模擬銀行排隊(duì)問題\離散時(shí)間模擬銀行排隊(duì)問題.opt

?????文件????????955??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\離散時(shí)間模擬銀行排隊(duì)問題.plg

?????文件?????444339??2014-06-02?14:33??3離散時(shí)間模擬銀行排隊(duì)問題\銀行排隊(duì)問題總結(jié).docx

?????目錄??????????0??2014-06-02?11:52??3離散時(shí)間模擬銀行排隊(duì)問題\Debug

?????目錄??????????0??2014-06-03?15:32??3離散時(shí)間模擬銀行排隊(duì)問題

-----------?---------??----------?-----??----

??????????????4998389????????????????????19


評論

共有 條評論

相關(guān)資源