• 北郵數據結構實驗報告線性表

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

    北郵數據結構實驗報告線性表

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

    北郵數據結構實驗報告線性表

    實 驗 報 告

    課程名稱:數據結構 班級:軟件工程實驗成績:

    1206

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

    程序的設計

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

    一、實驗目的

    對隊列的理解

    對STL中的queue的使用

    實驗仿真一個網絡打印過程

    二、實驗內容與實驗步驟流程圖

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

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

    Win8,Visual C++ 6.0

    四、實驗過程與分析

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

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

    simulator.h 仿真類的聲明

    simulator.cpp 仿真類的定義

    event.h 事件類的聲明

    event.cpp - 事件類的定義

    job.h 作業類的聲明

    job.cpp 作業類的定義

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

    arbitrary.out 輸出 arbitrary.run

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

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

    }

    五、實驗結果總結

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

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

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

    六、附錄

    -《數據結構與算法分析》以及網上資料


    相關文章:

    1.北郵數據結構實驗報告線性表

    2.北郵數據結構實驗報告 圖

    【北郵數據結構實驗報告線性表】相關文章:

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

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

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

    北郵網絡工程專業和通信工程就業前景誰更好?07-14

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

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

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

    調劑到北郵軟院讀通信工程專業怎么樣?就業前景好嗎?07-14

    京東包郵嗎?07-11

    科技實驗報告05-26

    黄频国产免费高清视频_富二代精品短视频在线_免费一级无码婬片aa_精品9E精品视频在线观看