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

Динамические структуры данных.Стек. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести каждые 4 строки через 1 пустую. http://www.cyberforum.ru/cpp-beginners/thread289643.html
Здравствуйте, Уважаемые форумчане :) Вот есть собственно код: de "stdafx.h" #include <iostream> #include <fstream> #include <locale.h> using namespace std; using namespace System;
C++ Вернуть массив из функции Допустим есть класс Test: class Test { private: float point; }; http://www.cyberforum.ru/cpp-beginners/thread289639.html
Функция из string.h C++
Доброго времени суток. Вопрос: с помощью какой функции блиблиотеки string.h в Си можно определить, что все символы одной строки входят в другую?
C++ Скажите в чем разница?? (Ассемблеровские вставки C++)
здравствуйте! написал программу на C++ с помощью ассемблеровских вставок: "Подсчитать, сколько раз в данной строке встречается буква Ch, вводимая с клавиатуры. " и получилось так, что в одном случае она работает, во втором нет=) первый случай: #include <iostream> #include <string> using namespace std;
C++ Слияние 2-х одномерных массивов http://www.cyberforum.ru/cpp-beginners/thread289626.html
всем привет Даны два одномерных массива с произвольными НО упорядоченными по возрастанию элементами написать функцию для слияния этих двух массивов в один, в данном случае функция union_mas проблема заключается в следующем: в конце нового массива функция почему то забивает левые цифры, не подскажите в чем ошибка вот и сам собственно весь код #include <stdio.h> #include <stdlib.h> #include...
C++ Найти среднее арифметическое в масиве. При решении использовать функции В общем задание такое: Дан масив A. Определить среднее арифметическое элементов масива. При решении использовать ф-ции. Все нечего, но эти функции! =( Студенты моей групы будут очень благодарны за помощь =) подробнее

Показать сообщение отдельно
FinKeRosiN
3 / 2 / 0
Регистрация: 27.12.2010
Сообщений: 31

Динамические структуры данных.Стек. - C++

05.05.2011, 22:23. Просмотров 2670. Ответов 3
Метки (Все метки)

Доброго времени суток. Нужна помощь в выполнении лабораторной работы
Необходимо создать простую базу данных, которая хранит анкеты для бюро по трудоустройству. Реализовать используя стек, т.е. там 4 поля: имя, специальность, номер анкетки и дата рождения.
Операции, которые выполняет программа:
-вывод на экран;
-добавление в вершину стека;
-удаление из вершины;
-очистка памяти;
-проверка на заполненность/пустоту;
-добавление в конец;
-удаление по ключу(ключ-номер анкеты т.е. вбиваешь номер и удаляется анкета только с тем номером)

у меня проблема с последними 2-мя операциями-не могу написать написать функцию поиска для удаления по ключу. прошу помощи, заранее спасибо

надеюсь код правильно вставил
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
 
using namespace std;
const int N=100;
struct worker {
    char name[N];
    char spec[N];
    int numb;
    char date[N];
};
 
struct STACK {
    worker info;
    STACK *next;
};
 
 
 
int Empty(STACK *stack)
{
    if (stack==NULL)
        return 0;
    else 
        return 1;
}
void Add(STACK **stack, worker d)
{
    STACK *tmp = new STACK;
    tmp->info=d;
    tmp->next=*stack;
    *stack=tmp;
 
}
void Del(STACK **stack)
{
    STACK *tmp=*stack;
    *stack=(*stack)->next;
    delete tmp;
}
 
void Show(STACK *stack)
{
    STACK *tmp=stack;
    while(tmp!=NULL)
    {
        cout << "Имя: "<< tmp->info.name << endl;
        cout << "Специальность: "<< tmp->info.spec << endl;
        cout << "Номер анкеты: "<< tmp->info.numb << endl;
        cout << "Дата заполнения: "<< tmp->info.date << endl << endl;
        tmp=tmp->next;
    }
}
 
void ClearAll(STACK **stack)
{
    STACK *tmp;
    while(*stack!=NULL)
    {
        tmp=*stack;
        *stack=(*stack)->next;
        delete tmp;
    }
}
 
int main()
{
    setlocale(LC_ALL,"Russian");
    STACK *stack=NULL;
    int num,Key;
    STACK info;
    worker d;
    char otv;
 
    do
    {
        cout << endl <<"1. Добавление элементов в вершину стека" << endl 
            << "2. Удаление элемента из вершины стека" << endl
            << "3. Вывод элементов" << endl 
            << "4. Удаление по ключу" << endl
            << "0. Выход" << endl;
        cout << "Ваш выбор: ";
        cin >> otv;
        switch(otv)
        {
        case '1':
            cout << "Введите имя" << endl;
            cin >> d.name;
            cout << "Введите специальность" << endl;
            cin >> d.spec;
            cout << "Введите номер анкеты" << endl;
            cin >> d.numb;
            cout << "Введите дату заполнения" << endl;
            cin >> d.date;
            Add(&stack,d);
            cout << endl << "Элементы добавлены" << endl;
            cout << endl << "Элементы стека:" << endl << endl;
            Show(stack);
            break;
        case '2':
            if (Empty(stack)==0)
                cout << endl << "Стек пуст" << endl;
            else
            {
                Del(&stack);
                cout << endl << "Элемент удален из вершины стека" << endl;
                cout << endl << "Элементы стека:" << endl << endl;
                Show(stack);
            }
            break;
        case '3':
            if (Empty(stack)==0)
                cout << endl << "Стек пуст" << endl;
            else
            {
                cout << endl << "Элементы стека:" << endl;
                Show(stack);
                cout << endl;
            }
            break;
        case '0':
            ClearAll(&stack);
            break;
        default:
            cout << endl << "Ошибка" << endl;
            break;
        }
 
    }while(otv!='0');
    cin.get();
 
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru