Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6 Курсач.doc
Скачиваний:
5
Добавлен:
09.09.2019
Размер:
81.92 Кб
Скачать

Московский Авиационный Институт

(государственный технический университет) Факультет прикладной математики

Кафедра вычислительной математики и программирования


Курсовой проект

по теме

«Обработка последовательной файловой структуры»

2 семестр

Задание VI

Студентка: Смирнова С.И.

Группа: 08-105, 12 вар.

Руководитель: Титов В.К.

Оценка

Дата

Москва

2012 год

Постановка задачи

Разработать последовательную структуру данных для представления простейшей базы данных на файлах СП Си в соответствие с заданным вариантом.

Составить программу генерацию нетекстового файла заданной структуры, содержащего представительный набор записей (15-20).

Распечатать содержимое генерируемого файла в виде таблицы и выполнить над ним заданное действие для 2-3 значений параметров запроса p и распечатать результат.

Действие по выборе данных из файла оформить с параметрами запроса, вводимыми из стандартного входного текстового файла, или получаемых из стандартной строки ввода UNIX. Получение параметров из командной строки производится с помощью стандартных библиотечных функций argc и argv.

Число наборов текстов должно быть не менее трех.

Задание(34 вариант):

Найти пассажиров, имеющих более p вещей.

Общий метод решения

  1. Создаем тестовые файлы. Содержимое и структура файла включает:

а) фамилию, инициалы пассажира

б) количество вещей

в) общий вес вещей

г) пункт назначения

д)время вылета

е)наличие пересадки ж)сведения о детях

Используем команды обработки текстовых файлов OC UNIX и переадресацию ввода-вывода.

  1. Составляем программу генерацию внешнего нетекстового файла.

Перенапрявляем всё содержимое нетекстового представления в файл out.dat. Туда происходит постоянная дозапись. Следовательно, необходимо при повторной работе с ним в дальнейшем удалять его.

  1. Распечатываем содержимое файла в виде таблицы.

4) При помощи функций printf(…) и scanf(…) задаем значение параметра p.

5) Сравниваем при помощи условия if{…} значение параметра p и число вещей каждого из пассажиров. Если число вещей данного пассажира больше p, то выводим всю информацию об этом пассажире (имя, кол-во вещей, вес вещей и т.д.)

Общие сведения о программе

Операционная система: Ubuntu 10.04 LTS Lucid Lynx

Язык программирования: C++

Полное имя программы: /home/ kp6

Компиляция и запуск программы:

g++ 6kp.cpp –o 6kp.exe

./ 6kp.exe list1

Функциональное назначение

Данная программа, преобразующая текстовой файл в нетекстовой, генерирующая внешний нетекстовой файл, распечатывающая таблицу, доказывает, что представление в нетекстовом виде очень удобна. Во-первых, в памяти компьютера хранить бинарные коды намного проще, памяти меньше занимается. Во-вторых, всевозможные операции производить с файлом в нетекстовом представлении быстрее и удобнее. К тому же нетекстовой файл хранится в оперативной памяти в таком же изначальном виде, в каком был создан файл. Таким образом, нетекстовое представление обладает большими преимуществами.

Описание логической структуры

  1. Структура struct {….}; в которую мы помещаем информацию о студенте:

Имя

Тип

Назначение

name

char

Массив для хранения имени

numberofthings

int

Кол-во вещей

weightofthing

float

Нецелое значение веса вещей

destination

char

Массив для хранения пункта назначения

time

float

Время вылета(час.мин)

transplantation

char

Массив для хранения наличия пересадки

children

char

Массив для хранения сведений о детях

  1. файл generation.c:

Прочитывает файл value.h и работает на основе этих данных:

Используемые функции:

void write_student(FILE* out, student s) – функция, преобразующая данные из файла (08-105, 08-106, 08-108) в нетекстовое представление текстового файла. Направляет запись в файл out.

int information_about_student(FILE* list, student* s) – функция, возвращающая указатели на фамилию, имя, отчество, пол, номер группы, оценки по предмету.

int main() – функция, печатающая содержимое файла в виде таблицы.

  1. файл rabota.c:

int TR(student s) – функция, подсчитающая количество студентов, имеющих больше двух трое. Создаем счетчик q, увеличиваем его на 1, если находим студента, имеющего больше двух троек.

int read_student(FILE* list, student* s) - функция, читающая данные, записанные в нетекстовом представлении.

int main(int a, char b*[c]) - функция, печатающая таблицу. Если мы направили туда все группы, то они сольются в одну для удобной сортировки. Также тут выполняется печать второй таблицы, где представлены студенты, имеющие больше двух троек.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]