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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Описание структуры 
V
    Опции темы
Alex31kv
Дата 7.4.2007, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите пожалуйста решить задачку на Turbo C++:

Описать структуру с именем NOTE, содержащую следующие поля:
- фамилия, имя;
- номер телефона;
- дата рождения (массив из трех элементов).
Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив, состоящий из 8 элементов типа NOTE;
- записи должны быть упорядочениы по трем первым цифрам номера телефона;
- вывод на экран информации о человеке, чья фамилия введена с клавиатуры, если такого нет, выдать на дисплей соответствующее сообщение.

Заранее всем кто принял участие в решении этой задачки огромное спасибо!
PM MAIL   Вверх
apook
Дата 7.4.2007, 04:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Поищи поисковиком я такую задачу недавно решал


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Alex31kv
Дата 7.4.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



искал, но не нашел на турбо Си++, нашел решение только на Pascal и на Delphi.
помогите решить или подскажи ссылку если не сложно на Си.
PM MAIL   Вверх
apook
Дата 7.4.2007, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я ошибся там данные вводились из файла и в массив а не в структуру
и результат выводился по фамилии а не по телефону надо-же так
 smile 


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Alex31kv
Дата 7.4.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну так кто нибудь поможет с задачей? пожалуйста
PM MAIL   Вверх
apook
Дата 7.4.2007, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
#include<fstream.h>
#include<string.h>
#include<stdlib.h>

#define N 8


int sort_function( const void *a, const void *b )
{
    return( strcmp((char *)a, (char *)b) );
}

struct NOTE
{
    char FIO[ 100 ];
    char phone[ 50 ];
    int date[ 3 ];
} info[ 8 ];


void sorts()
{
int i, j, p;
char dt[ N ][ 4 ];

fstream file;
file.open( ".\\data.dat", ios::out | ios::in | ios::binary | ios::trunc );

for( i=0; i<N; ++i )
{
    strncpy( dt[ i ], info[ i ].phone, 3 );
    dt[ i ][ 3 ]='\0';
    }
qsort( (void *)&dt, N, sizeof(dt[ 0 ]), sort_function );

file.clear();
file.seekg( 0, ios::beg );

for( i=0; i<N; ++i )
    for( j=0; j<N; j++ )
        if( strncmp( info[ i ].phone, dt[ j ], strlen(dt[ j ]) )==0 )
        { 
            file.write( (char*)&info[ j ], sizeof(NOTE) );
            break;
            }

file.clear();
file.seekg( 0, ios::beg );
for( i=0; i<N; ++i )
    file.read( (char *)&info[ i ], sizeof(NOTE) );

file.close();
return;
}


void main()
{
int i, j;
char phone[ 50 ];

for( i=0; i<N; ++i )
{
    clrscr();

    cout << "\n\t---- " << i+1 << " ---\nФамилия и инициалы :";
    cin.ignore();
    cin.get( info[ i ].FIO, 100 );
    cout << "Номер телефона :";
    cin.ignore();
    cin.get( info[ i ].phone, 50 );

    cout << "Дата :\nЧисло >> ";
    cin >> info[ i ].date[ 0 ];

    cout << "Месяц >> ";
    cin >> info[ i ].date[ 1 ];

    cout << "Год >> ";
    cin >> info[ i ].date[ 2 ];
    }

sorts();

cout << "Введите номер телефона :";
cin.ignore();
cin.get( phone, 50 );


for( i=0, j=0; i<N; ++i )
    if( strcmp( info[ i ].phone, phone )==0 )
        ++j;

if( j>0 )
{
    cout << "\nНомер " << phone << "  " << j << " в данном списке" 
         << "\n----------------------------------------------\n";
    for( i=0; i<N; ++i )
    {
        if( strcmp( info[ i ].phone, phone )==0 )
        {
            cout << "Фамилия и Инициалы " << setw( 20 ) << info[ i ].FIO << endl
                 << "Дата рождения :" << endl
                 << setw( 30 ) << "День  >> " << info[ i ].date[ 0 ] << endl
                 << setw( 30 ) << "Месяц >> " << info[ i ].date[ 1 ] << endl
                 << setw( 30 ) << "Год   >> " << info[ i ].date[ 2 ] << endl;
            } 
        else continue;
        cout << endl;
        }
    }    
else
    cout << "Номер " << phone << " отсутствуют в данном списке\n";

cout << "Нажмите Интер\n";
getch();
return;
}


Не знаю будет ли корректно работать Tutbo C++ шоито подгдлючивает
 smile 





--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

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


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

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

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

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


 




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


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

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