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

Поиск элемента списка Студентов с идеальной массой тела - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 43, средняя оценка - 4.81
ArniLand
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
05.07.2010, 20:53     Поиск элемента списка Студентов с идеальной массой тела #1
Нужно написать программу связанную с двусвязным списком и атд, помогите пожалуйста решить данную задачу, не могу найти теорию и примеры по списками, поэтому прошу вашей помощи. Заранее спасибо.
Суть задания:
1. Описания элемента двунаправленного списка из компонентов согласно варианту задания (табл.1).
2. Описания абстрактного типа данных (АТД) на объектно-ориентированном уровне инкапсуляции, в состав которого входят:
- Область значения: указательные на первый элемент двунаправленного списка;
- Область действия:
а) метод добавления элемента на n-на позицию списка (для инициирования компонент элемента списка необходимо использовать стандартные средства ввода данных);
б) метод удаления элемента n-ной позиции списка;
в) метод вывода всего списка (для этого необходимо использовать стандартные средства вывода данных);
г) метод вывода списка из n-элементов, начиная с первого;
д) метод сортировки списка по одной из действительных или целых компонент значений элементов списка по возрастанию.
3. Реализации АТД:
- Добавление нескольких элементов в список;
- Вывод элементов списка на экран в виде таблицы;
- Поиск элементов списка согласно варианту задания (табл.1) и вывод значений элементов на экран;
- Вывод обновленного списка на экран после каждого изменения состояния списка.

Вариант
1. Компоненты элемента списка -
1-я компонента: Имя - значение перечислительного типа;
2-я компонента: Рост - целое значение;
3-я компонента: Вес - действительное значение

2. Критерий для поиска элемента списка
Студентов с идеальной массой тела (формула: Рост-110 = Вес)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Qwerty_coder
29 / 29 / 2
Регистрация: 14.12.2009
Сообщений: 79
05.07.2010, 21:47     Поиск элемента списка Студентов с идеальной массой тела #2
ArniLand, если воспользуетесь поиском по форуму, то, возможно, найдете готовые примеры. По их аналогии и делайте свое задание
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
05.07.2010, 22:53     Поиск элемента списка Студентов с идеальной массой тела #3
Цитата Сообщение от ArniLand Посмотреть сообщение
Имя - значение перечислительного типа
это как?
C++
1
enum { VASYA = 1, KOLYA = 2, PETYA = 3 };
так, не?

Добавлено через 54 секунды
а, не, это перечислимый тип, а надо "перечислительный"...
ArniLand
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
05.07.2010, 23:35  [ТС]     Поиск элемента списка Студентов с идеальной массой тела #4
подскажите хотя бы где терию с примерами можно почитать, а то темы с форума не сильно понятно и хочется вникнуть в процесс то оно да как
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
06.07.2010, 02:08     Поиск элемента списка Студентов с идеальной массой тела #5
что сложно создать 2 класса?
1й это объект списка
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Human
{
char FIO;
int height;
double waight;
Human *next;//указатель на следующий элемент, если последний то NULL
Human *prev;//указатель на предыдущий элемент, если первый то NULL
public:
....
};
class List//сам список
int size;//кол-во элементов
Human *first;//первый элемент 
Human *last;//последний элемент
public:
...
и элементарные методы...
ArniLand
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
06.07.2010, 12:39  [ТС]     Поиск элемента списка Студентов с идеальной массой тела #6
классы описывать и создавать методы я у мею, я к примеру не знаю и не догадываюсь зачем создавать указатели на предыдущий и следующий элементы и не понимаю по какому принципу добавлять, удалять, осуществлять поиск нужного элемента и т.д.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
06.07.2010, 16:39     Поиск элемента списка Студентов с идеальной массой тела #7
Цитата Сообщение от ArniLand Посмотреть сообщение
я к примеру не знаю и не догадываюсь зачем создавать указатели на предыдущий и следующий элементы
чтобы знать какой за каким идет элемент, и чтобы с текущего можно было сдвинуться вперед или назад.
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
List::~List()//деструктор
    {
        Human *tmp;//временный указатель
        while(count>0)//пока есть элементы списка
        {
            tmp=first->get_next();// берем у первого элемента ссылку на следующий элемент и присваиваем его tmp
            delete first;//удаляем первый
            first=tmp;//первым становится следующий
            count--;//уменьшаем количество элементов на 1, и так по кругу :)
        }
    }
    List::List()
    {
        first=NULL;//нет ни первого ни последнего, элементов 0
        last=NULL;
        count=0;
    }
    void List::add(char* fio, int height, double weight)//добавление
    {
        Human *el= new Human(fio,height,weight);//создаем элемент который добавим в список
        if(!first)//если это первый элемент
            {first=el;}//назначаем его первым
        else//иначе
            {
                last->set_next(el);//последнему элементу устанавливаем что следующий будет el - который добавляем
                el->set_prev(last);//для элемента добавления устанавливаем, что текущий последний элемент наш предыдущий
            }
            last=el;//теперь последним является добавленный элемент
            count++;//+1 элемент.
    }
    void List::del(int pos, int num)//удаление, принимает позицию и количество элементов
    {
        if(pos+num<=count)
        {
        Human *tmp, *tmp2, *kill;
        int cpos=0;
        if(pos==0)
        {
        while(cpos<num)
        {
            tmp=first->get_next();
            delete first;
            first=tmp;
            first->set_prev(NULL);
            count--;
            cpos++;
        }
        }
        else
        {
        tmp=first;
        while(cpos<=pos)
        {
            cpos++;
            if(cpos==pos)
            {
                tmp2=tmp;
                for(int i=0;i<=num;i++)
                {
                    kill=tmp2;
                    tmp2=tmp2->get_next();
                    tmp2->set_prev(tmp);
                    if(i)delete kill;
                }
                tmp->set_next(tmp2);
                break;
            }
            tmp=tmp->get_next();
        }
        count-=num;
        }
        }
    }
ArniLand
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
06.07.2010, 18:55  [ТС]     Поиск элемента списка Студентов с идеальной массой тела #8
как классы List и HUMAN связанные между собой, через класс контейнер? И для делатьреализацию деструктора? Что можно почитать про двусвязный список и реализацию выше описанных задач, раз вы написали, значит не сами придумали
ArniLand
4 / 4 / 0
Регистрация: 07.09.2009
Сообщений: 190
06.07.2010, 22:50  [ТС]     Поиск элемента списка Студентов с идеальной массой тела #9
подскажите, получиться ли реализовать данную программу с помощью стандартного <list>?
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
06.07.2010, 23:10     Поиск элемента списка Студентов с идеальной массой тела #10
ArniLand, стандартный список и есть реализацией списка, там уже написаны почти все методы что ты описал, однако если тебе дали такое задание, то значит тебе нужно написать свою собственную реализацию.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2010, 23:11     Поиск элемента списка Студентов с идеальной массой тела
Еще ссылки по теме:

Выдать самую распространенную фамилию девушки из списка студентов C++
Сортировка списка студентов по среднему баллу C++
C++ Выбрать из списка студентов удовлетворяющих заданным условиям

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

Или воспользуйтесь поиском по форуму:
Хохол
Эксперт C++
 Аватар для Хохол
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
06.07.2010, 23:11     Поиск элемента списка Студентов с идеальной массой тела #11
Цитата Сообщение от ArniLand Посмотреть сообщение
1. Описания элемента двунаправленного списка из компонентов согласно варианту задания
Ну, первый же пункт задания вроде как намекает, что не получится.
Yandex
Объявления
06.07.2010, 23:11     Поиск элемента списка Студентов с идеальной массой тела
Ответ Создать тему
Опции темы

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