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

обработка файлов данных - C++

Восстановить пароль Регистрация
 
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
28.05.2012, 14:57     обработка файлов данных #1
На диске имеется файл данных STUDENT.DAT. Распечатать фамилии, имена и оценки студентов, не получивших ни одной оценки 3.
P.S. В задаче используется файл STUDENT.DAT, в котором записана информация о студентах в следующем формате: фамилия (строка до 12 символов), имя (строка до 10 символов), год рождения (целое число), месяц рождения (целое в диапазоне 1-12), день рождения(целое число в диапазоне 1-31), четыре оценки за последнюю экзаменационную сессию (целые числа в диапазоне 2-5). Написать программу заполнения файла STUDENT.DAT.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2012, 14:57     обработка файлов данных
Посмотрите здесь:

обработка файлов C++
C++ обработка файлов
C++ c++ обработка файлов
C++ Обработка звуковых файлов
C++ обработка файлов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6469 / 2244 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
28.05.2012, 15:04     обработка файлов данных #2
В чем вопрос?
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
28.05.2012, 15:12  [ТС]     обработка файлов данных #3
программу написать надо по этим условиям.. я не понимаю как это сделать..
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
28.05.2012, 15:31     обработка файлов данных #4
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
#include <stdio.h>
#define FILENAME "student.dat"
#define SEC_NAME_LENGTH 12
#define NAME_LENGTH 10
#define MARK_COUNT 4
#define MIN_MARK '4'
 
int main() {
    FILE* f = fopen(FILENAME, "r");
    short c;
    char surname[SEC_NAME_LENGTH + 1], name[NAME_LENGTH + 1];
    char mark[MARK_COUNT], i;
    while (!feof(f)) {
        for (i = 0; (c = getc(f)) != ' '; i++)
            surname[i] = c;
        surname[i] = '\0';
        for (i = 0; (c = getc(f)) != ' '; i++)
            name[i] = c;
        name[i] = '\0';
        /*Пропускаем день рождения*/
        i = 0;
        do
            if (getc(f) == ' ')
                i++;
        while (i < 3);
        for (i = 0; i < MARK_COUNT; ) {
            mark[i] = getc(f);
            getc(f);
            if (mark[i++] < MIN_MARK)
                break;
        }
        while (c != '\n' && c != EOF)
            c = getc(f);
        if (mark[i - 1] >= MIN_MARK) {
            printf("%s %s", surname, name);
            for (i = 0; i < MARK_COUNT; i++) {
                putchar(' ');
                putchar(mark[i]);
            }
            putchar('\n');
        }
    }
    fclose(f);
}
Yandex
Объявления
28.05.2012, 15:31     обработка файлов данных
Ответ Создать тему
Опции темы

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