青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

DraculaW

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  19 隨筆 :: 0 文章 :: 7 評論 :: 0 Trackbacks

Calculating "The Sum of Its Parts"


Background

"The whole is greater than the sum of its parts" is a central theme of Gestalt psychology, and for humans it may be a true observation. Computers are much more literal-minded.

Description

In this assessment, you will construct a representation of a complex structure, a hospital that is composed of many parts. There are too many parts for a human to keep track of, which is why we want the computer to do it for us. The description of the hospital is contained in the file definitions.txt.


picture of a top-level view of a hospital floor
Figure 1 Layout of a floor in the hospital

The building has ten floors. Each floor has four wings emanating from a central core.

Each wing contains two long corridors joined at the end by a short connecting corridor.

Each long corridor contains twenty-one patient rooms. Each connecting corridor contains five supply rooms.

The hospital is described by a labeled tree, whose nodes are of type Part. A node contains children nodes corresponding to its subparts, as shown in the figure below. Each edge is labeled by the number of subparts the node contains. For example, the label 10 on the edge from hospital to floor indicates that the hospital has ten floors. You can assume there are no duplicate edges, that is, there is at most one edge between any two nodes.


tree representation of the parts in a hospital
Figure 2 Tree representation of the hospital

The driver program main.cpp first loads the file definitions.txt, which contains the subpart relationships that define the hospital. It then processes queries from the file queries.txt, which contains two kinds of queries about the hospital. The whatis query requests the description of a Part. The howmany query is the heart of the exercise. It asks how many instances of a Part are contained in another Part.

You are provided with main.cpp and a skeleton version of parts.h as a starting point. Your job is to complete the parts.h file (and write parts.cpp, if you deem necessary). The steps below point the way toward a solution, but they do not cover every detail, so if you find you need to create additional functions or member items, feel free to do so.





#ifndef _PARTS_H_
#define _PARTS_H_

#include <vector>
#include <map>
#include <string>

using namespace std;

//**************** Part ****************
class Part {
   
public:
    string name;

    map<Part*, int> subparts;
   
    Part(string const &n) : name(n) {};
    void describe(void);
    int count_howmany(Part const *p);
};


//**************** NameContainer ****************
class NameContainer {

private:
    map<string,Part*> name_map;

public:

    NameContainer(void) {};

    Part* lookup(string const &name) {

        for( map<string, Part*>::iterator it = name_map.begin();
             it != name_map.end(); it++ )
        {
            if( it->first == name )
                return it->second;
        }
        Part *new_part = new Part( name );
        name_map[name] = new_part;
        return name_map[name];
    }
};

NameContainer partContainer;

//**************** Part Member Functions ****************
void Part::describe(void) {
   
    cout << "Part " << name << "subparts are" << endl;

    if( subparts.empty())
    {
        cout << " There no subparts" << endl;
        return;
    }
       

    for( map<Part*, int>::iterator it = subparts.begin();
         it != subparts.end(); it++ )
    {
        cout << " " << it->second << " " << it->first->name << endl;
    }

    cout << endl;
}

int Part::count_howmany(Part const *p) {
       
    if( this->name == p->name ) return 1;

    if( this->subparts.empty() )return 0;

    int sum = 0;

    for( map<Part*, int>::iterator it = subparts.begin();
         it != subparts.end(); it++ )
    {
        sum += ( ( it->second ) * ( it->first->count_howmany( p )) );
    }

    return sum;
}

//**************** Miscellaneous Functions ****************
void add_part(string const &x, int q, string const &y) {

    // TODO: Finish implementation
    Part *parent = partContainer.lookup(x);
    Part *child = partContainer.lookup(y);

    parent->subparts.insert( make_pair( child, q ) );
}

#endif

posted on 2007-11-15 20:39 DraculaW 閱讀(460) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲午夜久久久久久尤物| 伊甸园精品99久久久久久| 亚洲香蕉成视频在线观看| 亚洲福利国产精品| 欧美色精品天天在线观看视频| 亚洲综合精品四区| 亚洲深夜福利| 午夜视频在线观看一区二区三区| 亚洲欧美日本精品| 久久精品日产第一区二区| 久久久最新网址| 欧美日韩国语| 国产欧美一区二区精品忘忧草| 亚洲二区免费| 亚洲国产精品高清久久久| 亚洲黄色影片| 在线视频亚洲一区| 久久精品视频免费| 亚洲高清不卡| 亚洲欧美成aⅴ人在线观看| 久久香蕉国产线看观看av| 欧美三级在线播放| 激情综合网激情| 99国产精品一区| 久久乐国产精品| 亚洲美女在线看| 久久夜色精品国产噜噜av| 国产精品成人免费| 在线日韩中文字幕| 亚洲欧美国产不卡| 亚洲成人资源网| 欧美在线啊v| 欧美四级在线| 最新国产精品拍自在线播放| 久久久久久夜精品精品免费| 一本色道久久综合亚洲精品高清| 欧美尤物一区| 国产精品你懂的在线欣赏| 亚洲激情校园春色| 久久久噜噜噜| 免费精品99久久国产综合精品| 久久精品国产免费观看| 亚洲永久视频| 亚洲国产精品高清久久久| 新67194成人永久网站| 欧美日韩日本国产亚洲在线| 亚洲国产欧美在线人成| 久久视频一区| 午夜久久99| 国产精品一区久久久久| 在线中文字幕不卡| 91久久夜色精品国产网站| 久久久久久久久久久一区| 国产日韩精品一区二区| 性欧美18~19sex高清播放| 亚洲精品久久久久中文字幕欢迎你 | 亚洲精品资源美女情侣酒店| 国产亚洲精品一区二区| 欧美久久九九| 亚洲日本成人| 亚洲第一网站| 欧美电影免费观看大全| 亚洲黄色大片| 亚洲精品国产视频| 欧美日韩午夜视频在线观看| 夜久久久久久| 日韩一级在线观看| 国产精品h在线观看| 亚洲欧美日韩成人| 亚洲在线观看免费视频| 国产视频一区在线观看| 久久久av水蜜桃| 久久久www成人免费精品| 伊人久久大香线蕉综合热线| 亚洲大胆人体视频| 欧美激情网友自拍| 亚洲一区在线视频| 亚洲综合精品自拍| 国内伊人久久久久久网站视频| 久久一二三国产| 欧美成人综合在线| 亚洲一级电影| 欧美在线三级| 亚洲免费观看视频| 亚洲一区在线看| 在线观看亚洲视频| 日韩视频永久免费观看| 国产三级欧美三级| 亚洲国产婷婷香蕉久久久久久99| 欧美看片网站| 久久久久九九视频| 欧美久久电影| 久久午夜精品一区二区| 欧美电影免费观看大全| 久久精品国产99| 欧美激情中文字幕乱码免费| 欧美一级在线视频| 欧美第一黄网免费网站| 欧美一区二区三区在线观看视频| 久久免费的精品国产v∧| 亚洲一级高清| 免费在线国产精品| 欧美中文日韩| 欧美日韩亚洲综合一区| 久久影视三级福利片| 欧美性色视频在线| 亚洲福利国产| 在线看日韩欧美| 亚洲欧美日韩综合aⅴ视频| 一本到高清视频免费精品| 久久成人免费日本黄色| 在线一区二区三区做爰视频网站 | 久久免费偷拍视频| 亚洲一区久久久| 欧美日韩成人一区| 免费视频一区| 国产一区二区无遮挡| 亚洲精品免费电影| 欧美~级网站不卡| 国产精品久久午夜夜伦鲁鲁| 欧美大片第1页| 国产一区二区中文| 亚洲性视频网址| 中文日韩电影网站| 欧美日韩国产区| 亚洲欧洲三级| 亚洲免费高清视频| 欧美极品影院| 亚洲日本成人| 一区二区三区 在线观看视频| 欧美69wwwcom| 亚洲国产精品一区制服丝袜| 亚洲激情影视| 欧美精品国产精品日韩精品| 亚洲高清久久| 日韩视频一区二区在线观看| 欧美成人四级电影| 亚洲高清二区| 一区二区高清| 欧美系列电影免费观看| 国产精品99久久久久久宅男| 亚洲国产精品va在看黑人| 久久久青草婷婷精品综合日韩| 久久久久在线| 亚洲福利一区| 欧美精品一区二区蜜臀亚洲 | 欧美资源在线观看| 国产精品乱码一区二区三区| 一本久道久久综合婷婷鲸鱼| 亚洲午夜电影网| 国产精品免费网站在线观看| 91久久精品日日躁夜夜躁国产| 亚洲激情在线| 欧美日韩美女一区二区| 宅男在线国产精品| 久久久久久日产精品| 亚洲国产日韩一级| 欧美高清视频一区二区三区在线观看| 亚洲激情网址| 亚洲综合99| 国产视频久久久久| 榴莲视频成人在线观看| 亚洲精品一区二区三区四区高清 | 亚洲欧洲日本在线| 欧美日韩精品免费观看视一区二区 | 国产精品每日更新在线播放网址| 国产精品99久久久久久宅男| 久久久精品一区| 最近中文字幕日韩精品| 欧美色大人视频| 久久天堂精品| 亚洲小说欧美另类婷婷| 美国十次了思思久久精品导航| 亚洲精品国产拍免费91在线| 国产精品美女久久久久久2018| 久久国产视频网站| 日韩一级精品| 免费日韩视频| 欧美一级淫片aaaaaaa视频| 最近看过的日韩成人| 国产农村妇女精品一二区| 欧美午夜不卡| 欧美主播一区二区三区| 亚洲国产网站| 久久天天狠狠| 欧美一区二区三区在线视频 | 欧美久久影院| 久久婷婷亚洲| 午夜精品www| 亚洲精品一区二| 亚洲国产成人精品久久| 久久精品动漫| 午夜精品在线| 亚洲天堂男人| 亚洲美女视频网| 在线不卡亚洲| 韩日在线一区| 国产午夜精品全部视频在线播放 | 亚洲精品久久视频| 黄色工厂这里只有精品|