Форум программистов, компьютерный форум CyberForum.ru

ортогональная структура инвентарной ведомости - C++

Восстановить пароль Регистрация
 
septe-mber
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 123
12.02.2013, 21:58     ортогональная структура инвентарной ведомости #1
привет всем! вот пытаюcь решить задачу на тему односвязные списки из книги Абстракция данных и решение задач на C++. Стены и зеркала . и там нужно представить списки в таком виде ...
так же вод которые я написал..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Node
{
private:
    //Список очередности - люди, ожидающие
    //определенную кассету
    struct WaitNode
    {
        std::string who;
        WaitNode* next;
    };
    //Инвентарный список - список кассет, имеющих в магазине
    struct StockNode
    {
        std::string title; //Название
        int have, want; //Имеющиеся кассеты, ожидаещиеся кассеты
        WaitNode* waitHead, *tailHead;
        StockNode* next;
    };
    StockNode* pHead_Stock;
    WaitNode* pHead_Wait;
    int size_stock;
    int size_wait;
public:
    Node();
    void add_people(std::string people);
    void add_cassette(std::string title, int have, int want);
    void show_(StockNode*& pp);
    void show();
    virtual ~Node();
};

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
Node::Node(): pHead_Stock(NULL), pHead_Wait(NULL), size_stock(0), size_wait(0)
{ }
 
void Node::add_people(string people)
{
    ++size_wait;
    WaitNode* pItem = new WaitNode;
    pItem->who = people;
 
    if(pHead_Wait == NULL)
    {
        pItem->next = pHead_Wait;
        pHead_Wait = pItem;
    }
    else
    {
        WaitNode* pCur = pHead_Wait;
        for(int i = 1; i < size_wait && pCur->next != NULL; i++)
            pCur = pCur->next;
        pItem->next = pCur->next;
        pCur->next = pItem;
    }
}
 
void Node::add_cassette(string title, int have, int want)
{
    ++size_stock;
    StockNode* pItem = new StockNode;
    pItem->title = title;
    pItem->have = have;
    pItem->want = want;
 
    pItem->waitHead = pHead_Wait;
 
 
    if(pHead_Stock == NULL)
    {
        pItem->next = pHead_Stock;
        pHead_Stock = pItem;
    }
    else
    {
        StockNode* pCur = pHead_Stock;
        for(int i = 1; i < size_stock && pCur->next != NULL; i++)
            pCur = pCur->next;
        pItem->next = pCur->next;
        pCur->next = pItem;
    }
}
 
void Node::show_(StockNode*& pp)
{
    while(pp->waitHead)
    {
        cout<<pp->waitHead->who<<'\t';
        pp->waitHead = pp->waitHead->next;
    }
}
 
void Node::show()
{
    StockNode* _pCur = pHead_Stock;
    int count_stock(1);
    cout<<"Инвентарная ведомость:"<<endl;
 
    cout<<endl;
    while(_pCur)
    {
        cout<<count_stock++<<". "<<_pCur->title<<'\t'<<_pCur->have<<'\t'<<_pCur->want<<'\t';
        show_(_pCur);
        cout<<endl
            <<"--------"<<endl;
        _pCur = _pCur->next;
    }
    cout<<endl<<endl;
}
 
Node::~Node()
{
    StockNode* _pCur = pHead_Stock;
    while(_pCur)
    {
        _pCur = pHead_Stock->next;
        delete pHead_Stock;
        pHead_Stock = _pCur;
    }
    _pCur = NULL;
 
    WaitNode* pCur_ = pHead_Wait;
    while(pCur_)
    {
        pCur_ = pHead_Wait->next;
        delete pHead_Wait;
        pHead_Wait = pCur_;
    }
    pCur_ = NULL;
}
у меня получается что просто тупо указаваю на список pItem->waitHead = pHead_Wait; помогите представить список в таком виде...
Миниатюры
ортогональная структура инвентарной ведомости  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 21:58     ортогональная структура инвентарной ведомости
Посмотрите здесь:

C++ Написать программу, создающие ведомости для каждой группы по всем дисциплинам с указанием формы контроля (зачет, экзамен)
ЛАБА Обработка ведомости студенческой группы C++
Для данной журнальной ведомости определить процент успеваемости C++
C++ теоритеческие ведомости по с++
что дальше? (программа вводит информацию из ведомости и печатает фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими) C++
C++ Написать программу удаления из ведомости информации о студентах
Как формируются блочная и ортогональная матрицы? C++
Составить программу, которая выдает список работников и ведомости начисления зарплаты C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru