Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 13.10.2013
Сообщений: 99

Вывести в ListBox элементы списка

07.12.2015, 18:53. Показов 1098. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть шаблон класса список. Нужно вывести на форму результат. Например: нажать на кнопку и в листбоксе должны появиться элементы списка. И не знаю как это сделать
Шаблон:
Кликните здесь для просмотра всего текста
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
134
template <typename T> class list
{
private:
    class node //Класс node содержит данные списка
    {
        friend class list<T>;
    private:
        node *next; //Указатель на следующий элемент в списке
        T val; //Данные списка
 
        node(): next(NULL){}
        node(T data): next(NULL), val(data){}
        ~node(){}
    };
 
    node *head; //Указатель на начало списка
    int count; //Количество элементов в списке
public:
    list(): head(NULL), count(0){}
    ~list()
    {
        clear(); //Функция освобождает память, используемую для хранения списка
    }
    int getCount() const //Возвращает количесвто элементов в списке
    {
        return count;
    }
 
    int add(T data)//Добавление элемента в конец списка. Возвращает количество элементов в списке
    {
        node *to_add = new node(data);
        if(head==NULL) //Если в списке нет элементов
            head=to_add;
        else
        {
            node *current;
            for(current=head;current->next!=0;current=current->next);
            current->next=to_add;
        }
        count++;
        return count;
    }
 
    int del(int x) //Удаление элемента из списка. Возвращает количество элементов в списке.
    {              //Возвращает -1, если произошла ошибка
        if (x>count) return -1;
        node *to_del=head;
        if (x==1) //Если нужно удалить первый элемент
        {
            head=head->next;
            delete to_del;
        }
        else
        {
            node *current=head;
            for(int i=1;i<x-1;i++)
                current=current->next;
            to_del=current->next;
            current->next=current->next->next;
            delete to_del;
        }
        count--;
        return count;
    }
 
    void clear() //Очистка списка
    {
        node *current = head;
        node *to_del = head;
        while(to_del!=NULL)
        {
            current=current->next;
            delete to_del;
            to_del=current;
        }
        head=NULL;
        count=0;
    }
 
    T getData(int x) const //Возвращает данные из списка
    {
        node *current;
        for(current=head;x>1;x--)
            current=current->next;
        return current->val;
    }
 
    bool saveFile(char *fileName) const//Сохраняет список в файл. Возвращает 1, если произошла ошибка
    {
        ofstream out; //Поток для вывода
        out.open(fileName, ios::out|ios::binary); //Открытие файла
        if(!out)
            return 1;
 
        out.write((char *)&count, sizeof(int));
        node *current=head;
        for(int i=1;i<=count;i++)
        {
            out.write((char *)&current->val, sizeof(current->val));
            current=current->next;
        }
        out.close();
        return 0;
    }
 
    bool loadFile(char *fileName) //Загружает список из файла. Вовращает 1, если произошла ошибка
    {
        clear();
        ifstream in; //Поток для ввода
        in.open(fileName, ios::in|ios::binary);
        if(!in)
            return 1;
 
        in.read((char *)&count, sizeof(int));
        node *current;
        for(int i=1;i<=count;i++)
        {
            node *to_add = new node;
            in.read((char *)&to_add->val, sizeof(to_add->val));
            if(i==1)
            {
                head=to_add;
                current=to_add;
            }
            else
            {
                current->next=to_add;
                current=current->next;
            }
        }
        in.close();
        return 0;
    }
};


Код формы:
Кликните здесь для просмотра всего текста
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
#include <vcl.h>
#pragma hdrstop
 
#include "Listay.h"
#include "Mylist.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
struct my_type
{
    int x;
    double y;
    char *str;
};
list<my_type> my_list;
//void print_struct();
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
for(int i=1;i<=15;i++)
    {
        my_type *point = new my_type;
        point->x=i;
        point->y=i+0.7;
        point->str = "test";
        my_list.add(*point);
    }
   //   print_struct();
 
    my_list.del(1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ListBox1->Items->Add("");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2015, 18:53
Ответы с готовыми решениями:

Сравнить два ListBox-а, совпадающие элементы вывести в третий ListBox
Друзья, есть два Listbox, в которых храниться значения = папка и путь( пример &quot;D:\папка) И во втором listbox папки как сравнить эти...

Удалить из списка нечетные элементы. Вывести оставшиеся элементы списка
Дано неотрицательное N и набор из N чисел. Создать линейно-связанный список, содержащий исходные числа, добавляя новый элемент в середину...

Удалить из списка все элементы с нечётными значениями и вывести указатель p2 на начало преобразованного списка.
Здравствуйте. Не получается решить задачу. Условие. Дан непустой двусвязный список. Удалить из списка все элементы с нечётными ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2015, 18:53
Помогаю со студенческими работами здесь

Как вывести на форму данные из списка (listbox)?
Дана БД слушатели. На форме есть три списка 1 - специальность, 2-группа, 3-слушатели. заполняються последовательно. После того как...

Составьте программу, удаляющую те элементы списка ListBox, что стоят на нечетных местах
Составьте программу, удаляющую те элементы списка ListBox, что стоят на нечетных местах

Вывести на экран элементы списка по 3 в строке, отделяя элементы запятыми (Turbo Prolog)
Вывести на экран элементы списка по 3 в строке отделяя элементы запятыми , после последнего элементы поставить точку. Помогите написать...

Создать список из десяти элементов и вывести его на экран. Затем вывести только четные элементы списка
1. Создать список из десяти элементов и вывести его на экран. Затем вывести только четные элементы списка.

Найти и вывести в ListBox те элементы, которые при делении на 7 дают остаток 1,2 или 5
Дан массив натуральных чисел. Найти и вывести те элементы, которые при делении на 7 дают остаток 1,2 или 5(Массив и его результаты...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru