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

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

Войти
Регистрация
Восстановить пароль
 
dfrisk
0 / 0 / 0
Регистрация: 15.11.2010
Сообщений: 8
#1

Преобразовать программу с массивом в двусвязный список - C++

05.06.2011, 15:51. Просмотров 318. Ответов 0
Метки нет (Все метки)

Собственно необходимо решить данную задачу с помощью двусвязаного списка( полностью ну или просто дописать)

Описать структуру NOTE, содержащую следующие поля:
NAME - фамилия, имя;
PHONE - номер телефона;
BDAY - день рождения (массив из трех чисел);
Написать программу, выполняющую следующие действия:
Создать массив blocknote, состоящий из 5 структур типа NOTE; записи
должны быть упорядочены по датам рождения;
Вывод на дисплей информации о человеке,
номер телефона которого введен с клаиватуры;
Если такого нет, то вывести соответствующие сообщение.


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
#include <cstdlib>
#include <iostream>
#include <stdio.h>
 
 
using namespace std;
 
 
int main() {int i; int j; int bd[2]; long long int ph;
    struct note {
        char name[15]; 
        long long int phone; 
        int bday[2];
 
    };
    struct note blocknote[5]; // Основной массив структур
    struct note tmp; // Временная структура необх. для сортировки
    
 
    
    for (i=0;i<3;i++)
    {cout << "\nImya i familia:\n";
        cin.ignore();
        cin.getline(blocknote[i].name, 15);
        cout << "\nTelefon:\n";
        cin >> blocknote[i].phone;
        cout << "\nBirthday(YYYY):\n";
        cin >> blocknote[i].bday[0];
        cout << "\nBirthday(MM):\n";
        cin >> blocknote[i].bday[1];
        cout << "\nBirthday(DD):\n";
        cin >> blocknote[i].bday[2];
        }
    
    for (i=0;i<3;i++)
        bd[i]=(blocknote[i].bday[0]*10000)+(blocknote[i].bday[1]*100)+(blocknote[i].bday[2]);
    //воводи особую переменную для сортировки
    for(i = 0 ; i < 3 ; i++) { 
       // сравниваем два соседних элемента
       for(j = 0 ; j < 3 - i - 1 ; j++) {  
           if(bd[j] < bd[j+1]) {           
              // если они идут в неправильном порядке, то  
              //  меняем их местами 
              tmp = blocknote[j]; blocknote[j] = blocknote[j+1]; blocknote[j+1] = tmp;}}}
    
    
    
    cout << "\nSortirovka vipolnena...n";
    cout << "\n Samii molodoi:"<< blocknote[0].name <<"\n"; //проверка правильности сортировки
    cout <<"Vvedite nomer teleofona iskomogo 4eloveka:";
    cin >> ph; j=0; //Телефон для сравнения
    for (i=0;i<3;i++) {if (ph==blocknote[i].phone) {cout << "Etot 4elovek:" << blocknote[i].name <<"\n"; j=1;}} // Вывод совпадений
    if (j!=1) cout<< "\nNe naideno!\n"; // Если совпадений не было, то вывод соответствующего сообщения
    
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 15:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразовать программу с массивом в двусвязный список (C++):

Преобразовать односвязный список в двусвязный - C++
Привет всем!) У меня проблема такого плана: есть односвязный список: //------вспомогательный класс-------// class elemspiska ...

Преобразовать односвязный список в двусвязный - C++
Нужна помощь в написании следующей программы: Дана односвязная цепочка и указатель на ее первый элемент, нужно преобразовать данную цепочку...

Переделать программу с односвязного на двусвязный список - C++
Помогите переделать програмку с односв'язного на двосв'язний список. Условие задачи было такое: реализовать двосв'язный список, считать...

Переделать двусвязный список в двусвязный кольцевой - C++
Здравствуйте, у меня єсть двусвязный список однако он не кольцевой! как это запрограммировать? и второй вопрос как обеспечить вставку...

Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список - C++
спасайте Сформировать список из 10 работников, используя динамическую структуру данных двусвязный список. Информация о работнике...

Двусвязный список (в конец двусвязного списка добавить другой список) - C++
здравствуйте, подскажите пожалуйста, как в конец двусвязного списка добавить другой список?

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2011, 15:51
Привет! Вот еще темы с ответами:

Составить двусвязный список на основе класса, объекты которого будут формировать этот список - C++
Составить двусвязный список на основе класса, объекты которого будут формировать этот список. В описание класса должны входить данные для...

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов - C++
Задание: создайте двусвязный список групп факультета. Каждая группа представляет собой односвязный список студентов. Помогите пожалуйста,...

Двусвязный список - C++
Подскажите в чем ошибка, почему не выводит элементы списка в обратном порядке (выводит только один элемент) #include &lt;fstream&gt; ...

Двусвязный список - C++
Здравствуйте, никак не могу разобраться с двусвязным списком, нашел код для разбора в интернете, но не могу понять, что необходимо писать...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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