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

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

Войти
Регистрация
Восстановить пароль
 
kondusov
2 / 2 / 0
Регистрация: 01.06.2013
Сообщений: 153
#1

Подскажите, как правильно описать структуру и методы - C++

28.11.2013, 18:36. Просмотров 226. Ответов 0
Метки нет (Все метки)

Мне нужно описать структуру ОЧЕРЕДИ, в инфополе которой будет строка максимум 20 символов, и методы к ней. Проверьте, что не так ?:

Добавлено через 12 минут
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
#include <iostream>
#include <cstdlib>
using namespace std;
//СТРУКТУРА БУДЕТ ЭЛЕМЕНТОМ СПИСКА
#define MAX_LEN 20
  struct Node //или просто Звено списка
    {
       char str[MAX_LEN];//инфо данные структуры
       Node *Next; //Указатель не следующее звено
    };
 
//КЛАСС СПИСОК
 
class List
{
    Node *Head,*Tail; //Указатели на начало списка и на конец
public:
     List():Head(NULL),Tail(NULL){}; //Инициализация указателей как пустых
     ~List(); //Деструктор для освобождения памяти от всего что будет
     void Add(char str[MAX_LEN]); //Функция заполнения структуры Node и добавления её в список как элемента
     void Show(); //Функция отображения списка List 
     void del(); //Функция изъятия элемента
 
 };
 
void List::Show()
{
    Node *temp=Head; //Временный указатель на начало списка
     while (temp!=NULL) //Пока в списке что-то встречается
     {
         cout<<temp->str[MAX_LEN]<<" "; //Выводим значения из списка на экран
         temp=temp->Next; //Сдвигаем указатель на начало на адрес следующего элемента
     }
    cout<<endl;
} 
 
List::~List() //ДЕСТРУКТОР ДЛЯ ОЧИСТКИ ПАМЯТИ
{
 Node *temp=Head; //Временный указатель на начало списка
 while (temp!=NULL) //Пока в списке что-то есть
 
   {
     temp=Head->Next; //Резерв адреса на следующий элемент списка
 
     delete Head;  //Освобождение памяти от первой структуры как элемента списка
 
     Head=temp;  //Сдвиг начала на следующий адрес, который берем из резерва
 
   } 
}
 
 
//ФУНКЦИЯ ЗАПОЛНЕНИЯ ИНФОРМАЦИОННЫХ ПОЛЕЙ СТРУКТУРЫ NODE И ДОБАВЛЕНИЯ ЭТОЙ СТРУКТУРЫ В СПИСОК
 
void List::Add(char str[MAX_LEN])
{
    Node *temp=new Node; //Выделение памяти для нового звена списка
    temp->str[MAX_LEN]=str[MAX_LEN]; //Временное запоминание принятого параметра x
    temp->Next=NULL; //Указание, что следующее звено новосозданной структуры пока пустое
 
    if (Head!=NULL) //Если список не пуст 
    {
        Tail->Next=temp; //Указание, что следующее звено списка это новосозданная структура
        Tail=temp;      
    }     else Head=Tail=temp; //Если список не пуст, добавление первого элемента
}
 
//ФУНКЦИЯ ОТОБРАЖЕНИЯ СПИСКА НА ЭКРАНЕ 
 
 
 
 
//ФУНКЦИЯ ИЗЪЯТИЯ ЭЛЕМЕНТА ИЗ ОЧЕРЕДИ 
void List::del()
{
    if (Head!=NULL)  //Если список не пустой
    {
        Node *temp=Head; //Обращаемся к началу списка с помощью вспомогательного указателя
        cout<<"ЭЛЕМЕНТ "<<Head->str[MAX_LEN]<<" ВЫШЕЛ"<<endl;
        Head=Head->Next; //Сдвиг начала списка
        delete temp; //Освобождение памяти от предыдущего звена списка
    }
}
 
 
 
void main(){
    char stroka[MAX_LEN], stroka2[MAX_LEN];
   List lst;
  cin>>stroka;
  cin>>stroka2;
lst.Add(stroka);
lst.Add(stroka2);
lst.Show();
 
   system("PAUSE");
}
Добавлено через 18 минут
как сделать это без использования классов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 18:36     Подскажите, как правильно описать структуру и методы
Посмотрите здесь:

Подскажите Описать структуру с именем STUDENT, содержащую следующие поля: - C++
1.Описать структуру с именем STUDENT, содержащую следующие поля: •фамилия и инициалы; • номер группы; • успеваемость (массив из пяти...

Классы С++ (как описать методы и свойства к массиву) - C++
Есть Класс Массив. помогите описать для него простой метод и свойство. Метод: Сумма или Среднее арифметическое элементов массива....

Консольное приложение.Описать как структуру переменную время - C++
Описать как структуру переменную время (с полями часы, минуты, секунды). Составить и протестировать функцию СЕКУНД(t, t1, d), которая...

Как правильно объявить структуру - C++
Всем доброго времени суток.Есть задача:Составить программу формирования данных об успеваемости студентов по дисциплине: фамилия И.О., 5...

Как правильно задать структуру - C++
Как в &quot;trade tovar1&quot; правильно задать значения с массивов? #include &lt;iostream&gt; #include &lt;ctime&gt; //содержит time #include...

Как правильно вынести функции в методы? - C++
Программа работает с двумя текстовыми файлами, создает массив объектов из двух объектов(в первом- строчки из первого файла, во втором-...

Как правильно выделить память под структуру? - C++
имеются структуры struct ship { struct point first; struct point last; }; struct point { int x;

Как правильно объявить структуру в файле (модуле)? - C++
Возникла проблема такая проблема в файле Queue.h объявлена структура и указатели на нее #pragma once #ifndef QUEUE_H #define...

Как правильно обнулить структуру хранящию класс - C++
struct test{ int a; int b; wstring str; } test as; as.a = 2;

Подскажите, как считать из файла структуру - C++
Только начали работу с файлами на С. Поэтому пока что не совсем разобралась, что и куда. Struct notebook { char...


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

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

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