Сведения о расходе горючего на автобазах города
Рефераты >> Программирование и компьютеры >> Сведения о расходе горючего на автобазах города

В данном случае мы выбрали работу с двоичными файлами, так как информация у нас в основном не текстовая, и за счет этого мы можем увеличить быстродействие, избежанием преобразований файлов текстовые <--> двоичные и обратно.

Головной модуль будет состоять из функций:

- работа с файлом (функция fail( ));

- работа с односвязным списком (spisok( ));

Также в головном модуле будут подключаются заголовочные модули при помощи директивы #include, с указанием пути к этим файлам.

В файле f1.h будет реализовано решение задачи путем работы с файлами, т.е. функция fail( ).

Так как нам предстоит работа с файловым вводом выводом мы будем использовать понятие потока, глобальной переменной мы укажем переменную потока nab типа fstream. Класс fstream мы выбрали так при работе с этим классом возможны как чтение, так и запись с диска.

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

Модуль состоит следующих функций, которые вызываются из функции fail( ):

1. Создание файла и ввод информации по автобазам с клавиатуры (функция sozd())

-функция типа void передает указатель на поток (fstream *q);

2. Дополнение записей в уже созданный файл (функция dopolnen())

- функция типа void передает указатель на поток (fstream *q);

3. Корректировка уже созданных записей (функция korr())

- функция типа void передает указатель на поток (fstream *q);

4. Удаление записей из файла (функция iskl());

- функция типа void передает указатель на поток (fstream *q);

5. Ввывод информации о автобазах из файла на экран в форме таблицы (функция pech())

- функция типа void передает указатель на поток (fstream *q);

Также отдельной функцией оформлено:

6. Ввод данных по автобазам и расчет производительности по введенным данным (функция vvod()).

-функция типа void передает указатель на переменную (predpr *p).

Эта функция вызывается в таких функциях как :

-создание файла;

-дополнение записей в файл;

-корректировка записей.

В функции записывается переменная типа predpr, в которой содержится информация по одной автобазе. Далее она анализируется, и с ней производятся действия указанные в конкретной функции.

В файле s1.h будет реализовано решение задачи путем работы с односвязным списком т.е. функция spisok ( ).

Однонаправленным (односвязным) списком называется структура данных, в которой каждый элемент содержит ссылку лишь на одного "соседа". Поэтому в структуру predpr, которую мы описали ранее нам надо добавить еще одно поле, которое будет содержать указатель на соседнюю запись. Получим новую структуру predpry.

Модуль состоит следующих функций, которые вызываются из функции spisok ( ):

1. Создание списка и ввод информации по автобазам с клавиатуры (функция sozd())

- функция типа void передает указатель на переменную (predpry *p);

2. Дополнение записей в уже созданный список (функция vstavka( ())

- функция типа void передает указатель на переменную (predpry *p);

3. Корректировка уже созданных записей (функция korekt())

- функция типа void передает указатель на переменную (predpry *p);

4. Удаление записей из списка (функция udalen ())

- функция типа void передает указатель на переменную (predpry *p);

5. Вывод информации по автобазам из списка на экран в форме таблицы (функция prints ())

- функция типа void передает указатель на переменную (predpry *p);

6. Сохранение созданного списка в файле на диске (функция soxran())

- функция типа void передает указатель на переменную (predpry *p);

7. Очистка списка (функция ochistka())

- функция типа void передает указатель на переменную (predpry *p);

8. Восстановление списка из ранее сохраненного файла на диске (функция vossosdanie())

- функция типа void передает указатель на переменную (predpry *p);

В головном модуле нам потребуется подключить такие стандартные библиотеки:

-fstream.h

В этой библиотеке находятся описания потоковых классов. Ее подключение необходимо для использованияя в программе тех или иных средств ввода – вывода при работе с файлами.

-stdlib.h

Стандартная библиотека

-ctype.h

В данной библиотеке описан ряд функций, которые удобно использовать при организации ввода - вывода с целью контроля вводимых значений;

-conio.h

-stdio.h

-new.h

В данной библиотеке описаны функции для работы с динамической памятью и динамическими переменными, для выделения и освобождения памяти;

-string.h

В данной библиотеке находятся cтандартные функции работы со строками;

-iomanip.h

В данной библиотеке находятся описания манипуляторов, которые используются для форматирования ввода-вывода.

2.3 Разработка программы решения задачи

Итак наша программа состоит из 3-х модулей:

- cursovoi.cpp,

- f1.h,

- s1.h.

Главная функция main(), находится в модуле cursovoi.cpp. В главной функции, выводится сначала шапка курсового проекта. Затем в конструкции do{}while() выводится основное меню в котором предлагаются следующие возможности:

1. Работа с файлами

2. Работа со списками

3. Выход из программы

Первые два пункта реализуются в конструкции switch()case: если выбран пункт 1, то вызывается функция fail(); если выбран пункт 2 , то вызывается функция spisok(). При выборе пункта 3 происходит выход из конструкции do{}while(), и завершается работа программы.

Переменные в функции main() не объявляются: все глобальные переменные объявлены в функциях fail() и spisok().

Опишем глобальные переменные, используемые в программе в таблице 2.3.1.

Таблица 2.3.1

Принятое имя

Наименование

ved

Переменная типа predpr (структура определен­ная пользователем), используется для проме­жу­точного хранения информации по одной автобазе при работе с файлами.

otv

Переменная тип char, используется для считывания запрашиваемых ответов в функциях fail() и spisok().

vibor

Переменная тип char, используется для выбора пунктов меню, как главного, так и меню в функциях fail() и spisok().

nab

Переменная типа fsrteam, используется в качестве параметра для передачи ссылки на поток в функциях работы с файлами.

buf

Переменная типа predpry (структура определен­ная пользователем), используется для проме­жу­точного хранения информации по одной автобазе при сохранении списка в файл, и считывания списка из файла.

nach

Переменная содержащая указатель на начало списка

tek

Переменная содержащая указатель на текущую позицию списка


Страница: