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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
septe-mber
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 123
#1

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

12.02.2013, 21:58. Просмотров 342. Ответов 0
Метки нет (Все метки)

привет всем! вот пытаю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++
Подскажите, пожалуйста, как связан максимальное значение типа переменной с размером типа в с++(например, тип int).

ЛАБА Обработка ведомости студенческой группы - C++
Очень нужна помощь,прошу! Нам надо сделать лаб.работу по информатике,у меня есть заготовка которую дал учитель,но она почему то тоже с...

Написать программу удаления из ведомости информации о студентах - C++
В сведения хранится информация по задолженностям студентов: ФИО., Группа, курс, предмет. Написать программу удаления из ведомости...

Для данной журнальной ведомости определить процент успеваемости - C++
Здравствуйте, помогите пожалуйста решить задачу: В журнале группы ежедневно на каждом занятии против фамилии делаются следующие пометки: ...

Составить программу, которая выдает список работников и ведомости начисления зарплаты - C++
Створити файл, який містить відомості про місячну зарплату робітників заводу. Кожний запис містить такі поля: прізвище робітника, назва...

Вычисление общей суммы по ведомости и печать фамилии тех, кому деньги не начислены - C++
ведомость на получение зарплаты(обеспечить вычисление общей суммы по ведомости и печать фамилии тех, кому деньги не начислены)

Написать программу, создающие ведомости для каждой группы по всем дисциплинам с указанием формы контроля (зачет, экзамен) - C++
Помогите решить пожалуйста В деканате факультета журналистики имеются списки студентов разных групп. В сессию сотрудники деканата...

что дальше? (программа вводит информацию из ведомости и печатает фамилии студентов, учащихся на "4". "5" и их процентное соотношение с другими) - C++
Ведомость о результатах зимней сессии содержит информацию: фамилия и инициалы студента, номер группы, оценки с 3-х предметов: а)...

структура - C++
Структура CandyBar содержит три члена.Первый член хранит название коробки конфет.Второй - ее вес (который может иметь дробную часть), а...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru