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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа со структурами 
:(
    Опции темы
Musja
  Дата 2.5.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем привет!
Совсем запуталась и не могу понять как сделать  smile 
подскажите кому не жалко, пожалуйста...

-------------------------------------------------------
cЧитая данные из файла и используя массив структур решить следующую задачу. Файл содержит информацию вида : 

Номер телефона    Дата разговора   Продолжительность  Код города

Разработать программу корректировки отдельных элементов файла и вывода информации по запросу. 
 
PM MAIL   Вверх
adonin
Дата 3.5.2006, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Musja, Приветствуем на форуме такую симпатичную девушку smile 
Цитата(Musja @  2.5.2006,  20:37 Найти цитируемый пост)
Разработать программу корректировки отдельных элементов файла и вывода информации по запросу

Запрос в каком виде должен быть? не уж то SQL? Или предварительно нужно предусмотреть несколько типов запросов? 
--------------------
Тот, кто слизывает мед с крапивы, платит за него слишком дорого. (Томас ФУЛЛЕР)
PM MAIL   Вверх
bsa
Дата 3.5.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



Musja, приведи пример работы программы (файл на входе, запрос, результат). А то условие очень расплывчатое. И не понятно, в каком 

формате дата. Да и язык программирования узнать бы не помешало бы (C или C++).
Кстати, в любом случае программа простейшая.
Данный пример загружает записи и выводит их на экран. Записи должны быть в файле file.txt. Пример:
Код

1234567 01.02.2006 00:02:43 495

Код

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

struct record {
    unsigned long phone;
    struct {
          int day;
          int mon;
          int year;
    } date;
    struct {
          int hour;
          int min;
          int sec;
    } duration;
    unsigned    town;
};

int read_file(FILE * f, struct record ** records) {
    int n = 0;
    struct record * cur;
    while( !feof(f) ) {
         ++n;
         *records = (struct record *)realloc( *records, n * sizeof(**records) );
         cur = *records + n - 1;
         fscanf(f, "%lu %d.%d.%d %d:%d:%d %u",
                           &cur->phone, 
                           &cur->date.day, &cur->date.mon, &cur->date.year,
                           &cur->duration.hour, &cur->duration.min, &cur->duration.sec,
                           &cur->town);
    }
    return n;
}

int main() {
    struct record * records = NULL, *cur;
    int i, n;
    FILE *f;
/* Открываем текстовый файл для чтения */
    f = fopen( "file.txt", "rt" );
    if ( !f ) {
        perror("Unable to open file");
        return 1;
    }
/*Загружаем записи*/
    n = read_file(f, &records);
/* Закрываем файл */
    fclose(f);
/* Печатаем общее количество записей */
    printf("Total records %d:\n", n );
/* Выводим их все на экран */
    for( i = 0, cur = records; i < n; ++i, ++cur ) {
        printf("%lu\t%02d.%02d.%02d\t%02d:%02d:%02d\t%03u\n",
            cur->phone,
            cur->date.day, cur->date.mon, cur->date.year,
            cur->duration.hour, cur->duration.min, cur->duration.sec,
            cur->town);
    }
/* Освобождаем память */
    free(records);
/* Успешное завершение программы */
    return 0;
}

  

Это сообщение отредактировал(а) bsa - 3.5.2006, 15:16
PM   Вверх
MAKCim
Дата 4.5.2006, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Код

void read_s(const char* path, date_t* strc)
{
    FILE* fs=fopen(path,"r");
    if (!fs) return;
    unsigned int bytes=1
    while (bytes)
    {
        bytes=fread(strc,sizeof(date_t),1,fs);
        ++strc;
    }
    close(fs);
}

буфер strc должен быть достаточен для хранения всех записей 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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