久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

      <small id="aebxz"><menu id="aebxz"></menu></small>
    1. 北郵數(shù)據(jù)結(jié)構(gòu)實驗報告線性表

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

      北郵數(shù)據(jù)結(jié)構(gòu)實驗報告線性表

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

      北郵數(shù)據(jù)結(jié)構(gòu)實驗報告線性表

      實 驗 報 告

      課程名稱:數(shù)據(jù)結(jié)構(gòu) 班級:軟件工程實驗成績:

      1206

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

      程序的設(shè)計

      實驗編號:實驗一 姓名: 實驗日期:2014年5 月 24 日

      一、實驗?zāi)康?/strong>

      對隊列的理解

      對STL中的queue的使用

      實驗仿真一個網(wǎng)絡(luò)打印過程

      二、實驗內(nèi)容與實驗步驟流程圖

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

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

      Win8,Visual C++ 6.0

      四、實驗過程與分析

      (1)實驗主要函數(shù)及存儲結(jié)構(gòu)

      main.cpp 包括主函數(shù)和主要的功能

      simulator.h 仿真類的聲明

      simulator.cpp 仿真類的定義

      event.h 事件類的聲明

      event.cpp - 事件類的定義

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

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

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

      arbitrary.out 輸出 arbitrary.run

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

      bigfirst.out 輸出 bigfirst.run

      (2)實驗代碼

      #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();

      }

      五、實驗結(jié)果總結(jié)

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

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

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

      六、附錄

      -《數(shù)據(jù)結(jié)構(gòu)與算法分析》以及網(wǎng)上資料


      相關(guān)文章:

      1.北郵數(shù)據(jù)結(jié)構(gòu)實驗報告線性表

      2.北郵數(shù)據(jù)結(jié)構(gòu)實驗報告 圖

      【北郵數(shù)據(jù)結(jié)構(gòu)實驗報告線性表】相關(guān)文章:

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

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

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

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

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

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

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

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

      京東包郵嗎?07-11

      科技實驗報告05-26