北郵數據結構實(shí)驗報告線(xiàn)性表

時(shí)間:2022-07-01 22:42:43 報告范文 我要投稿
  • 相關(guān)推薦

北郵數據結構實(shí)驗報告線(xiàn)性表

實(shí)驗報告;課程名稱(chēng):數據結構班級:軟件工程實(shí)驗成績(jì):;1206;實(shí)驗名稱(chēng):打印機隊列模擬學(xué)號:20124848批;程序的設計;實(shí)驗編號:實(shí)驗一姓名:實(shí)驗日期:2014年5月2;一、實(shí)驗目的;對隊列的理解;對STL中的queue的使用;實(shí)驗仿真一個(gè)網(wǎng)絡(luò )打印過(guò)程;二、實(shí)驗內容與實(shí)驗步驟流程圖;這個(gè)任務(wù)隊列的測試使用STL隊列適配器;具體地說(shuō),每一行中包含的信息是

北郵數據結構實(shí)驗報告線(xiàn)性表

實(shí) 驗 報 告

課程名稱(chēng):數據結構 班級:軟件工程實(shí)驗成績(jì):

1206

實(shí)驗名稱(chēng):打印機隊列模擬學(xué)號:20124848 批閱教師簽字:

程序的設計

實(shí)驗編號:實(shí)驗一 姓名: 實(shí)驗日期:2014年5 月 24 日

一、實(shí)驗目的

對隊列的理解

對STL中的queue的使用

實(shí)驗仿真一個(gè)網(wǎng)絡(luò )打印過(guò)程

二、實(shí)驗內容與實(shí)驗步驟流程圖

這個(gè)任務(wù)隊列的測試使用STL隊列適配器。程序要求完成模擬的實(shí)現共享打印機。這個(gè)打印機使用先進(jìn)先出隊列。仿真是通過(guò)讀取和處理事件數據文件的列表。一個(gè)有效的數據文件中的每一行包含信息打印作業(yè)和提交這份工作的時(shí)間。

具體地說(shuō),每一行中包含的信息是提交工作的時(shí)間(以秒為單位),和在頁(yè)面的工作長(cháng)及工作的計算機的名稱(chēng)。在模擬的開(kāi)始,每個(gè)這些事件的每一個(gè)應該被程序所讀,存儲在繼承工作負載隊列。程序應該通過(guò)循環(huán)遞增計數器或while-loop模擬時(shí)間的流逝。程序應該將計數器初始化為零,然后依次增加1秒。當模擬等于當前時(shí)間的打印作業(yè)的提交時(shí)間在工作隊列的前面,一個(gè)打印作業(yè)完成。當這一切發(fā)生的時(shí)候,從工作隊列取出這個(gè)事件,然后把它放在另一個(gè)隊列對象。這個(gè)隊列對象存儲已完成的打印作業(yè)。當程序仿真其他的打印工作的時(shí)候,這些工作在隊列等待。

Win8,Visual C++ 6.0

四、實(shí)驗過(guò)程與分析

(1)實(shí)驗主要函數及存儲結構

main.cpp 包括主函數和主要的功能

simulator.h 仿真類(lèi)的聲明

simulator.cpp 仿真類(lèi)的定義

event.h 事件類(lèi)的聲明

event.cpp - 事件類(lèi)的定義

job.h 作業(yè)類(lèi)的聲明

job.cpp 作業(yè)類(lèi)的定義

arbitrary.run 包括任意打印作業(yè)數的數據文件

arbitrary.out 輸出 arbitrary.run

bigfirst.run 包括打印較大作業(yè)的數據文件

bigfirst.out 輸出 bigfirst.run

(2)實(shí)驗代碼

#ifndef FIFO_H //fifo.h

#define FIFO_H

#include "simulator.h"

class fifo:public simulator{

protected:

queue waiting;

priority_queue priority_waiting;

public:

fifo(int seconds_per_page);

void simulate(string file);

};

bool operator < (event evtleft,event evtright);

#endif

#include "fifo.h" //fifo.cpp

#include

using namespace std;

fifo::fifo(int seconds_per_page):simulator(seconds_per_page){ }

void fifo::simulate(string file){

int finish_time = 0;

float agg_latency = 0;

int totaljob =0;

event evt;

if(file.find("arbitrary")!= string::npos){

string outfile ="arbitrary.out";

ofstream osf(outfile.c_str());

loadworkload(file);

osf<<"FIFO Simulation "<

for(int time =1;!waiting.empty()||!workload.empty();time++){ while(!workload.empty() && time ==

workload.front().arrival_time()){

evt= workload.front();

osf<<" Arriving: "<

workload.pop();

}

if(!waiting.empty() && time >= finish_time){

totaljob ++;

evt = waiting.front();

agg_latency += time - evt.arrival_time();

osf<<" Servicing: "<

finish_time = time + evt.getjob().getnumpages() * seconds_per_page;

}

}

osf<<" total job "<

osf<<" aggregate latency: "<

osf<<" mean latency : "<

return;

}

if(file.find("bigfirst") != string::npos){

string outfile = "bigfirst.out";

ofstream osf(outfile.c_str());

loadworkload(file);

osf<<"FIFO Simulation "<

for(int time

=1;!priority_waiting.empty()||!workload.empty();time++){

while(!workload.empty() && time ==

workload.front().arrival_time()){

evt= workload.front();

osf<<" Arriving: "<

workload.pop();

}

if(!priority_waiting.empty() && time >= finish_time){

totaljob ++;

evt = priority_waiting.top();

agg_latency += time - evt.arrival_time();

osf<<" Servicing: "<

finish_time = time + evt.getjob().getnumpages() * seconds_per_page; }

}

osf<<" total job "<

osf<<" aggregate latency: "<

osf<<" mean latency : "<

return;

}

cerr<<"The program don't know what algorithm to use"<

cerr<<"You should specify the file name with arbitrary or bigfirst"<

bool operator < (event evtleft,event evtright){

return evtleft.getjob().getnumpages() <

evtright.getjob().getnumpages();

}

五、實(shí)驗結果總結

經(jīng)測試,功能較為完整。代碼流程簡(jiǎn)圖如下:

通過(guò)這次實(shí)驗,我了解了有關(guān)隊列方面的知識。掌握了隊列的邏輯結構,抽象數據類(lèi)型,隊列的存儲方式等。運用先進(jìn)先出表,仿真了網(wǎng)絡(luò )打印隊列。這都使我對數據結構的學(xué)習有了新的認識與幫助。在實(shí)驗過(guò)程中,我也遇到了許多困難,從開(kāi)始時(shí)對隊列運算的不熟悉,到逐漸查找資料,從而完成了實(shí)驗;六、附錄;-《數據結構與算法分析》以及網(wǎng)上資料;

逐漸查找資料,從而完成了實(shí)驗。在今后的學(xué)習中,我將繼續努力,加強對堆棧,隊列等知識的學(xué)習,以達到精益求精。

六、附錄

-《數據結構與算法分析》以及網(wǎng)上資料


相關(guān)文章:

1.北郵數據結構實(shí)驗報告線(xiàn)性表

2.北郵數據結構實(shí)驗報告 圖

【北郵數據結構實(shí)驗報告線(xiàn)性表】相關(guān)文章:

北郵研究生在京就業(yè)前景如何07-14

北郵的通信工程就業(yè)前景怎么樣07-14

北郵的工程管理專(zhuān)業(yè)好嗎?以后就業(yè)前景咋樣?07-11

北郵網(wǎng)絡(luò )工程專(zhuān)業(yè)和通信工程就業(yè)前景誰(shuí)更好?07-14

北郵考研考哪個(gè)院的研究生就業(yè)前景好一些07-14

北郵通信,華科電氣工程及其自動(dòng)哪個(gè)好?哪個(gè)就業(yè)前景好?07-11

同濟大學(xué)的土木工程和北郵的通信工程哪個(gè)就業(yè)前景更好07-14

調劑到北郵軟院讀通信工程專(zhuān)業(yè)怎么樣?就業(yè)前景好嗎?07-14

京東包郵嗎?07-11

科技實(shí)驗報告05-26

99久久精品免费看国产一区二区三区|baoyu135国产精品t|40分钟97精品国产最大网站|久久综合丝袜日本网|欧美videosdesexo肥婆