Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Динамичаские структуры данных 
:(
    Опции темы
Angel_Kot
Дата 5.11.2006, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.11.2006

Репутация: нет
Всего: нет



Задание:
Составить программу, которая содержит текущую информацию о заявках на авиабилеты.
каждая заявка включает:
- пункт назначения;
- номер рейса;
- ФИО пассажира;
- желаемую дату вылета;
Программа должна обеспечмвать:
- хранение всех заявок в виде списка;
- добавление заявок в список;
- удаление заявок;
- вывод заявок по заданному номеру рейса и дате вылета;
- вывод всех заявок.
Помогите кто может!!!
Код




PM MAIL   Вверх
Oleg_Ci
Дата 7.11.2006, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Friend
**


Профиль
Группа: Участник
Сообщений: 485
Регистрация: 28.5.2006
Где: Новосиб.обл.

Репутация: 25
Всего: 30



Изобретательства...
Код

#include <iostream>
#include <locale>
#include <ctime>
#include <string>
using namespace std;

typedef struct zajfka{ //  информация о заявках на авиабилеты:
    char point[100];    //- пункт назначения;
    int number;        //- номер рейса;
    char name1[20];    //- фамилия пассажира;
    char name2[20];    //- имя
    char name3[20];    //- отчество
    time_t date;        //- желаемая дата вылета;
    struct zajfka * next;    // указатель на структуру заявка.
}Node;

void addNode( Node *& list ); // - добавление заявок в список;
void deleteNode( Node *& list, const int num ); // - удаление заявок по заданному номеру рейса
void outNodeNum( const Node * list, int num ); // - вывод заявок по заданному номеру рейса
//void outNodeDate( const Node * list ); // - вывод заявок по дате вылета
void outNode( const Node * list ); // - вывод всех заявок.
void out( const Node * list ); // вывод одной заявки
bool if_end( char * ch, wchar_t *str = L"" );
//_________ MAIN_________________
int main(int argc, char *argv[])

    Node * list = NULL;
    wcout.imbue(locale(".866"));
    addNode( list );
    outNode( list );
    int num;
    wcout << L"\n\nВведите номер рейса для просмотра заявок этого рейса > ";
    cin >> num;        getchar();
    wcout << L"\n\nЗаявки с номером рейса "; cout << num;
    outNodeNum( list, num );
    wcout << L"\n\nУдаление заявок по заданному номеру рейса > "; 
    cin >> num;        getchar();
    deleteNode( list, num );
    wcout << L"\n\nОставшиеся заявки:";
    outNode( list );
    wcout << L"\n\nНажмите клавишу Enter для выхода из программы";
    getchar(); // пауза
    return 0;
}
//________ END MAIN ______________
void addNode( Node *& list ){
    wcout << L"Введите данные о заявках:\n";
    wcout << L"Для выхода введите слово \"end\"\n\n";
    int num = 0;
    while(1){
        num++;
        wcout << L"\nДанные о заявке № " << num << endl;
        Node * n = new Node;
        if( if_end( n->point,L"Введите пункт назначения > " )) break;
        wcout << L"Введите номер рейса > ";
        cin >> n->number;
        getchar();
        if( if_end( n->name1, L"Введите фамилию пассажира > " )) break;
        if( if_end( n->name2, L"Введите имя пассажира > " )) break;
        if( if_end( n->name3, L"Введите отчество пассажира > " )) break;

        //wcout << L"Введите желаемую дату вылета > ";
        //cin >> n->date;   // с датами я неработал ещё...

        n->next = list; // "пристыковываемся" в список
        list = n;
    }
}
bool if_end( char * ch, wchar_t *str  ){
    wcout << str;
    gets( ch );
    if( strcmp( ch, "end" )) return false;
    return true;
}
void out( const Node * list, int num ){
    wcout << L"\n\nЗаявка № " << num;
    wcout << L"\nПункт назначения > " << list->point;
    wcout << L"\nНомер рейса > "; cout << list->number;
    wcout << L"\nФамилия пассажира > " << list->name1;
    wcout << L"\nИмя пассажира > " << list->name2;
    wcout << L"\nВведите отчество пассажира > " << list->name3;
    //wcout << L"\nЖелаемая датa вылета > " << list->;
}
void outNode( const Node * list ){
    int n = 1;
    for(; list ; list = list->next ){
        out( list, n );
        n++;
    }
}
void outNodeNum( const Node * list, int num ){
    int n = 1;
    for(; list ; list = list->next ){
        if( list->number == num )
            out( list, n++ );
    }
}
void deleteNode( Node *& list, const int num ){
    int n = 1;
    Node *x, *y = list, *begin = list;
    wcout << L"\n\n_____ Удаление: ________";
    while( list ){
        if( list->number == num ){
            x = list->next;
            out( list, n );
            n++;
            if( list != y ){
                delete list;
                y->next = list = x;
            }// end  if( list != y ){
            else{
                delete list;
                y = list = x;
            }// end if( list != y ){
        }// end if( list->number == num ){
        else{
            y = list;
            list = list->next;
        }// end else  if( list->number == num )
    }// end while()
    list = begin;
}// end deleteNode()

PM MAIL   Вверх
BONGO
Дата 19.4.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 19.4.2009

Репутация: нет
Всего: нет



Задали тоже в Visual Studio 2005 с использованием массива структур . Чтото похожее посмотреть неподскажите ?
PM MAIL   Вверх
mrbrooks
Дата 20.4.2009, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 16
Всего: 306



Цитата(BONGO @  19.4.2009,  16:39 Найти цитируемый пост)
Чтото похожее посмотреть неподскажите ? 

Гы. Что именно? Похожее есть прямо здесь.

ЗЫ. Сразу чувствуется - сессия на носу.
PM MAIL   Вверх
BONGO
Дата 21.4.2009, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 19.4.2009

Репутация: нет
Всего: нет



Правы ! До сессии время есть но гайки уже закручивают . smile  На примерах готовится .
PM MAIL   Вверх
BONGO
Дата 21.6.2009, 23:15 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 19.4.2009

Репутация: нет
Всего: нет



Цитата(mrbrooks @ 20.4.2009,  08:33)
Цитата(BONGO @  19.4.2009,  16:39 Найти цитируемый пост)
Чтото похожее посмотреть неподскажите ? 

Гы. Что именно? Похожее есть прямо здесь.

ЗЫ. Сразу чувствуется - сессия на носу.

mrbrooks нельзя былоб совета чтоб запустить под Visual Studio 2005 !!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0676 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.