Форум программистов, компьютерный форум 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
05.05.2011, 22:23     Динамические структуры данных.Стек.
Доброго времени суток. Нужна помощь в выполнении лабораторной работы
Необходимо создать простую базу данных, которая хранит анкеты для бюро по трудоустройству. Реализовать используя стек, т.е. там 4 поля: имя, специальность, номер анкетки и дата рождения.
Операции, которые выполняет программа:
-вывод на экран;
-добавление в вершину стека;
-удаление из вершины;
-очистка памяти;
-проверка на заполненность/пустоту;
-добавление в конец;
-удаление по ключу(ключ-номер анкеты т.е. вбиваешь номер и удаляется анкета только с тем номером)

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

надеюсь код правильно вставил
Код
#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();

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