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

Классы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определение максимальной площади http://www.cyberforum.ru/cpp-beginners/thread376542.html
Доброго все времени суток! Есть 2 луча исходящие из одной точки, угол между ними 90. Есть также 2 отрезка a и b. Необходимо найти такое расположение этих отрезков, чтобы получился четырехугольник максимальной площади... причем положения находить необязательно достаточно вычислить площадь... Задача взята отсюда Если кто знает какие-нибудь теоремы на эту тему подскажите пожалста. #include...
C++ Перегрузка операторов Мне нужно определить тип name_and_adress. Потом перегрузить для него операторы << и >> и скопировать поток объектов name_and_adress. У меня есть перегрузка операторов и пример ее использования, но мне нужно переделать для моего типа #include"stdafx.h"; #include<iostream> using namespace std; struct info { char *name; double val; char *units; http://www.cyberforum.ru/cpp-beginners/thread376540.html
Вывести на экран информацию о самом высоком мосте. C++
Условие: Сделать структуру в виде функции, Мосты. Название, высота, длинна. Вывести на экран информацию о самом высоком, мосте. Вод код что сам сделал. #include<iostream> #include<string> using namespace std; const int n=3; void InArray(); void OutArray();
C++ Вычисление стоимости телефонного разговора
Ребят, всем привет. C++. помогите пожалуйста написать программу, это задача на цикличность: Написать программу, которая вычисляет стоимость междугороднего телефонного разговора. Исходными данными для программы являются код города и длительность разговора. Ниже приведены коды некоторых городов и стоимость 1 мин. разговора. Город - Код -Цена 1 мин. (руб.) Владивосток - 423 - 5,85 ...
C++ считывание английского текста с клавиатуры в си++ Borland http://www.cyberforum.ru/cpp-beginners/thread376510.html
написать программу которая считывает английский текст с клавиатуры и выводит его на экран изменив регистр символов на противоположный
C++ Среди цифр введенной строки распечатать ту, которая появлялась чаще других. Если таких цифр было несколько, распечатать ту, что встречалась первой Среди цифр введенной строки распечатать ту, которая появлялась чаще других. Если таких цифр было несколько, распечатать ту, что встречалась первой На Cи подробнее

Показать сообщение отдельно
Нать
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 5
02.11.2011, 16:27  [ТС]     Классы
А не удачно,это как???))

Добавлено через 2 часа 27 минут
прокомментируйте,пожалуйста,код задачи,очень сложно разобраться в программе:
Код
# include <iostream>
using namespace std;
class node 
{
public:
	int a;
	node * next;
	node (int _a)
{
	a=_a;
	next=NULL;
}
};
class stack
{
	node * top;
public:
	stack() {top=NULL;}
	~stack ()
{
	while (top)
	delete top;
	top=top->next;
}

void print_stack()
{
	node * temp = new node (0);
	temp=top;
	while (temp) {cout<<temp->a<<" "; temp=temp->next;} 
}
void add_stack (int a)
{
	node * temp = new node (a);
	if (!top) top=temp;
	else {temp->next=top; top=temp;} 
}
void del_node (int a)
{
	node * temp = new node (a);
	node * t = new node (a);
	t=top;
	temp=top->next;
	if (top->a==a) {top=top->next; return;}
		while (temp)
		{
			if (temp->a==a)
			{			
				t->next=temp->next;
				delete temp;
				return;
			}
		temp=temp->next;
		t=t->next;
		}
}
bool poisk (int a)
{
	bool f=false;
	node * temp = new node (0);
	temp=top;
while (temp) 
{ 
	if (temp->a==a) f=true;
	temp=temp->next;
}
return f;
}
stack * peresechenie_stack (stack * S)
{
	stack *result = new stack ();
	node * temp = new node (0);
	temp=top;
while (temp)
{
	if (S->poisk(temp->a)) result->add_stack(temp->a);
	temp=temp->next;
}
return result;
}
stack * obedinenie_stack (stack * S)
{
	stack *result = new stack ();
	result=this;
	node * temp = new node (0);
	temp=S->top;
while (temp)
{
	if (!this->poisk(temp->a)) result->add_stack(temp->a);
	temp=temp->next;
}
	return result;
}
stack * dopolnenie_stack (stack * S) //из первого стека удаляем второй
{
	stack *result = new stack ();
	result=this;
	stack *p = new stack ();
	p=this->peresechenie_stack(S);
	node * temp = new node (0);
	temp=p->top;
while (temp)
{
	this->del_node(temp->a);
	temp=temp->next;
}
	return result;

}

};
void main ()
{
	setlocale(LC_ALL, "Russian");
	int a=1;
	stack * A= new stack ();
while (a)
{ 
	cin>>a; 
	if (!a)break;
	A->add_stack(a);
}
cout<<"стек"<<endl;
A->print_stack();
stack * B= new stack ();
a=1;
while (a)
{ 
	cin>>a; 
	if (!a) break;
	B->add_stack(a);}
	cout<<"\nстек"<<endl;
	B->print_stack();
	cout<<"\nпересечение"<<endl;
	(A->peresechenie_stack(B))->print_stack();
	cout<<"\nобъединение"<<endl;
	(A->obedinenie_stack(B))->print_stack();
	cout<<"\nдополнение"<<endl;
	(A->dopolnenie_stack(B))->print_stack();
	system ("pause");

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