У вас вопросы?
У нас ответы:) SamZan.net

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО КУРСОВОМУ ПРОЕКТИРОВАНИЮ для студентов специальности 050100

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

«ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ И СОЦИАЛЬНЫХ ТЕХНОЛОГИЙ

КАФЕДРА ИНФОРМАТИКИ И МАТЕМАТИЧЕСКОГО

МДЕЛИРОВАНИЯ В ЭКОНОМИКЕ

ПРОГРАММИРОВАНИЕ В СРЕДЕ DELPHI

МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ

ПО КУРСОВОМУ ПРОЕКТИРОВАНИЮ

для студентов специальности

050100.62 «Информатика» заочное

Липецк – 2013

1. Описание структуры курсового проекта

Титульный лист (образец в приложение 1)

Задание на курсовую работу (текст задания)

Оглавление

Введение

Глава 1.  Теоретическая часть

1.1. Обзор методов и алгоритмов решения поставленной задачи

1.2. Обоснование выбора языка программирования

Глава 2.  Практическая часть

2.1. Проектирование информационной системы

2.2. Руководство пользователя

Заключение

Библиографический список литературы

Приложение (листинг исходного кода)

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

 

Раздел «Обзор методов и алгоритмов решения поставленной задачи» должен описывать максимально возможное число методов и алгоритмов решения поставленной задачи или отдельных ее частей с указанием их особенностей, достоинств и недостатков с точки зрения применимости для решения рассматриваемой задачи. В данном разделе в обязательном порядке должны присутствовать ссылки на используемую литературу.

Раздел «Обоснование выбора языка программирования» должен содержать сравнительный анализ существующих языков программирования, их достоинств и недостатков для решения поставленной задачи.  В качестве среды разработки особое внимание необходимо уделить Delphi.

В разделе  «Проектирование информационной системы» описываются этапы разработки ИС, общая концепция построения программы, описываются используемые структуры, требования к функционированию системы.

В разделе «Руководство пользователя» приводятся перечень и назначение всех форм приложения, последовательность действий по работе с программой (с рисунками).

2. Оформление курсового проекта

  1.  Нумерация страниц сквозная, начиная с титульного листа, включая листы задания (номер страницы, начиная с листа оглавления – страница 3); страницы нумеруют арабскими цифрами. На титульном листе не ставится, на последующих страницах номер проставляют в правом верхнем углу.
  2.  Текст должен быть оформлен с четким разделением на абзацы. Все приведенные в работе цитаты, а также цифры и факты, заимствованные из литературных источников, необходимо выделить четко (со ссылкой на источник), чтобы их можно было отличать от результатов исследования (см. п. 12).
  3.  Шрифт Times new Roman, 14 пт, межстрочный интервал – полуторный.
  4.  Поля: слева не менее 30 мм, справа – 10 мм, снизу и сверху – 20 мм.
  5.  Текст делится на разделы (главы), подразделы, пункты. Заголовки разделов пишут симметрично тексту прописными буквами, начиная с нового листа; заголовки подразделов (пунктов) строчными буквами (кроме первой прописной). Переносы слов в заголовках не допускаются. Точку в конце заголовка не ставят. Расстояния между заголовками и текстом должны быть равны 6 пунктов. Заголовки не подчеркивать, жирное и курсивное выделение не допускается. Разделы, подразделы и пункты нумеруют арабскими цифрами; введение и заключение не нумеруются. Заголовки параграфов (знак § не ставится) печатаются с абзаца (отступ 1 см) строчными буквами, первая прописная, без точки в конце.

Иллюстрации, таблицы, расположенные на отдельных листах, включаются в общую нумерацию страниц.

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

Таблица 1.1.

Выборка исследования

Код области

Код
населенного пункта

Наименование
населенного пункта

Количество анкет
по выборке

Номера анкет

Примечание

001

001

Липецк

123

10-132

Обработаны

  •  заголовки таблиц и граф должны начинаться с прописных букв, подзаголовки – со строчных, если они составляют одно предложение с заголовком, и с прописных – если они самостоятельны. Делить заголовки таблицы по диагонали не допускается.
  •  при переносе таблицы на другой лист заголовок помещают только над ее первой частью, а на остальных страницах ставится подзаголовок, например: Продолжение табл.1.1. Таблицу с большим количеством граф допускается делить на части и помещать одну часть под другой в пределах одной страницы;
  •  если цифровые или иные данные в какой-либо строке таблиц не приводятся, то в ней ставят прочерк.
  1.  Рисунки оформляют в таком порядке:
  •  иллюстрации (кроме таблиц) обозначаются словом «Рис.» и нумеруются арабскими цифрами в пределах раздела, например: Рис.1.2 – второй рисунок первой главы;
  •  иллюстрации должны быть расположены так, чтобы их было удобно рассматривать без поворота пояснительной записки проекта или с поворотом только по часовой стрелке;
  •  иллюстрации располагаются после первой ссылки на них;
  •  номер и наименование иллюстрации указывается под рисунком симметрично.
  1.  Листинг исходного кода программы: шрифт Times new Roman, 10 пт, межстрочный интервал – полуторный, в две колонки.

ПРИЛОЖЕНИЕ 1

Образец оформления титульного листа курсового проекта

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

«ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ»

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ И СОЦИАЛЬНЫХ ТЕХНОЛОГИЙ

КАФЕДРА ИНФОРМАТИКИ И МАТЕМАТИЧЕСКОГО

МДЕЛИРОВАНИЯ В ЭКОНОМИКЕ

КУРСОВОЙ ПРОЕКТ

по дисциплине «Программирование в среде Delphi»

на тему: «Разработка информационной системы “              ”»

Выполнил: студент 3 курса

группы И-11-1з

Иванов Илья Игоревич ______________

Проверил: к.п.н., доцент

Алтухова С.О. _____________________

Оценка ___________________________

Липецк 2013


ПРИЛОЖЕНИЕ 2

Примеры оформления библиографического списка литературы

1. Описание однотомников:

а) под фамилией одного автора

Семенов В.В. Философия: итог тысячелетий. Философская психология / В.В. Семенов. – Пущино : ПНЦ РАН, 2000. – 64 с.

б) под фамилией нескольких авторов

Бахвалов Н.С. Численные методы: учеб. пособие для физ.-мат. специальностей вузов / Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков; под общ. ред. Н.И. Тихонова. – 2-е изд. – М.: Физматлит: Лаб. базовых знаний; СПб.: Нев. диалект, 2002. – 630 с.

в) под заглавием

под заглавием описывают книги, изданные без указания автора или имеющие четырех и более авторов.

История России: учеб. пособие для студентов всех специальностей / В.Н. Быков [и др.]; отв. ред В.Н. Сухов; – 2-е изд., перераб. и доп. – СПб.: СПбЛТА, 2001. – 231 с.

2. Описание многотомников:

Гиппиус З.Н. Сочинения: в 2 т. / Зинаида Гиппиус. – М.: Лаком-книга : Габестро, 2001. – 2 т.

Отдельный том:

Казьмин В.Д. Справочник домашнего врача: в 3 ч. / Владимир Казьмин. – М.: АСТ : Астрель, 2001. Ч. 2 : Детские болезни. – 2002. – 503 с.

3. Стандарт:

ГОСТ Р 517721–2001. Аппаратура радиоэлектронная бытовая. Входные и выходные параметры и типы соединений. Технические требования. – Введ. 2002–01–01. – М.: Изд-во стандартов, 2001. – IV, 27 с.  

4. Патентные документы:

Пат. 2187888 Российская Федерация, МПК7 H 04 В 1/38, Н 04 J 13/00. Приемопередающее устройство/ Чугаева В.И.; заявитель и патентообладатель Воронеж. науч.-ислед. ин-т связи. – № 2000131736/09; заявл. 18.12.00; опубл. 20.08.02, Бюл. № 23 (II ч.). – 3 с.

5. Статья из газеты:

Почивалов Л.В. Югославия сегодня: Заметки писателя // Лит. газ. – 1994. – 2 окт. – с. 15.

6. Статья из журнала:

Михнюк В.И. Путем обновления // Поиск. – 1994. – №12. – С. 5-21.

7. Официальные документы:

Российская Федерация. Конституция (1993). Конституция Российской Федерации: офиц. текст. – М.: Маркетинг, 2001. – 39 с.

Российская Федерация. Законы. Семейный кодекс Российской Федерации: [федер. Закон : принят Гос. Думой 8 дек. 1995 г.: по состоянию на 3 янв. 2001 г.]. – СПб.: Victory : Стаун-кантри, 2001. – 94 с.

8. Составные части документов:

а) Статья из книги или другого разового издания:

Двинянинова Г.С. Комплимент: Коммуникативный статус или стратегия в дискурсе / Г.С. Двинянинова // Социальная власть языка: сб. науч. тр. – Воронеж, 2001. – С. 101-106.

б) глава или раздел из книги:

Глазырин Б.Э. Автоматизация выполнения отдельных операций в Word 2000 / Б.Э. Глазырин // Office 2000: 5 кн. в 1: самоучитель / Э.М. Берлинер, И.Б. Глазырина, Б.Э. Глазырин. – 2-е изд., перераб. – М., 2002. – Гл. 14. – С. 281-298.

9. Технико-экономические нормативы, прейскуранты, инструкции:

Правила учета электрической энергии: (сб. основных норматив.-техн. док., действующих в обл. учета электроэнергии). – М.: Госэнергонадзор России: Энергосервис, 2002. – 366 с.

10. Электронные ресурсы:

Информационный сервер АГУ. Информационный сервер экон. факультета АГУ. Электр. ресурс I: Полнотекстовая база /АГУ, ЭФ – Электрон. дан. – Режим доступа: http: // www.dcnasu.ru, http: //www.econ.dcnasu.ru

ВАРИАНТЫ ЗАДАНИЙ НА КУРСОВУЮ РАБОТУ

Всем вариантам! Создать один или несколько файлов любого типа (в зависимости от задания). Программа должна иметь интуитивно понятный пользовательский интерфейс с необходимыми пунктами меню. Должны быть реализованы функции добавления, удаления и корректировки имеющейся информации.   

1. Картотека видеофильмов. Создать программу-картотеку видеофильмов. Информация должна храниться в файле и включать: название фильма, описание фильма (жанр: боевик, триллер, комедия и т.д.), характеристику фильма (по 10-бальной системе), год выпуска, основных героев (дополнительную информацию можно добавить по желанию). Необходимо реализовать функции добавления новых поступлений новых поступлений, исключения старых фильмов, выдачи информации о фильмах по героям, жанру, году выпуску и т.д.

2. Личная библиотека. Картотека домашней библиотеки: выходные данные книги (авторы, название, издательство и т.д.), раздел библиотеки (специальная литература, хобби, домашнее хозяйство, беллетристика и т.п.), происхождение и наличие книги в данный момент, субъективная оценка книги. Реализовать выбор книг по произвольному запросу; инвентаризация библиотеки.

3. Записная книжка. Анкетные данные, адреса, телефоны, место работы или учебы, должность знакомых, коллег и родственников, характер знакомства, деловые качества и т.д. Реализовать автоматическое формирование поздравления с днем рождения (по текущей дате), сортировку по датам рождения, поиск по произвольному шаблону.

4. Касса аэрофлота. Расписание: номер рейса, маршрут, пункты промежуточной посадки, время отправления, время полета, количество свободных мест на каждом рейсе. Реализовать выбор ближайшего рейса до заданного пункта (при наличии свободных мест), оформление заданного числа билетов по согласованию с пассажиром (с уменьшением числа свободных мест).

5. Справочник потребителя (служба быта). База предприятий бытового обслуживания города: название, адрес и телефоны, специализация, перечень оказываемых услуг, форма собственности, часы и дни работы. Реализовать поиск предприятий по заданной услуге и другим признакам.

6. Продовольственный магазин. Информация о товаре в магазине: наименование, единица измерения, цена единицы, количество, дата последнего завоза. Реализовать поиск товаров по различным критериям, оформление покупки с вычислением суммарной стоимости и  уменьшением количества товара в магазине.

7. Автопарк. Написать программу учета наличия транспортных средств (автобусы) в автопарке. Информация хранится в файле. Структура файла содержит следующие поля: марка автобуса, тип автобуса (мягкий/жесткий), состояние (на базе, в рейсе, в ремонте, списан), количество мест, государственный номер, водители. По запросу выдавать информацию о свободных автобусах, об автобусах в рейсе, ремонтируемых, списанных. Выдаваемая информация должна быть отсортирована по разным признакам. Необходимо реализовать функции редактирования, добавления и удаления данных.

8. Отдел кадров. База данных о сотрудниках фирмы: ФИО, паспортные данные, дата рождения, образование, специальность, подразделение, должность, оклад, дата поступления на работу и т.д. Реализовать выбор по произвольным параметрам, организовать сокращение штатов лиц пенсионного возраста.

9. Касса кинотеатра. Разработать информационную систему кинотеатра. Информация должна храниться в нескольких файлах. При описании фильма должна вноситься информация о жанре фильма, об исполнителях главных ролей, режиссерах и т.д. Необходимо вести статистику о просмотренных фильмах. По запросу необходимо выдавать статистическую информацию по заданным фильмам.

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

11. Склад. База товаров, хранящихся на складе: наименование, единица измерения, цена единицы, количество, дата последнего завоза. Реализовать регистрацию поступления товара (формирование приходной накладной) и отгрузки (расходная накладная). Вывод инвентарной ведомости.

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

13. Справочник лекаря. Информация хранится в двух файлах. Первый –база болезней: название, симптомы, перечень рекомендуемых лекарств с указанием рекомендуемого количества. Второй – база медикаментов на складе: название, количество. Реализовать проверку наличия лекарств и корректировку запасов.

14. Зачисление абитуриентов. База абитуриентов: анкетные данные, совокупность баллов по 3-м экзаменам, готовность учиться на договорной основе. Реализовать выбор для зачисления заданного количества абитуриентов в порядке уменьшения баллов, формирование для собеседования списка тех, кто набрал предельный проходной балл, но не может платить за обучение.

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

16. Справочник абитуриента. База вузов: наименование, адрес, перечень специальностей, перечень вступительных испытаний, размер оплаты при договорном обучении. Реализовать поиск информации по разным критериям.

17. Банковские операции. Сведения о вкладчиках банка: номер лицевого счета, категория вклада, паспортные данные, текущая сумма вклада, дата последней операции. Реализовать операции приема и выдачи сумм денег (но не более имеющейся на счете), автоматическое начисление процентов.

18. Ломбард. База хранимых товаров: анкетные данные клиента, наименование товара, оценочная стоимость, сумма, выданная под залог, дата сдачи, срок хранения. Реализовать операции приема товара, возврата, продажи по истечении срока хранения.

19. Справочник селекционера. Наименование сорта какой-либо культуры, автор, родительские сорта, урожайность, характеристики плодов, морозоустойчивость, устойчивость к вредителям и болезням и т.д. Реализовать выбор сортов, обладающих заданными свойствами.

20. Справочник технического осмотра транспортных средств. Марка, цвет, заводской и бортовой номер, дата выпуска, паспортные данные владельца, дата последнего технического осмотра и др. Реализовать выбор транспортных средств по произвольным критериям, формировать приглашение на техосмотр в соответствии со сроком.

21. Справочник владельца видеотеки. База видеофильмов: название, студия, жанр, год выпуска, режиссер, исполнители главных ролей, краткое содержание, субъективная оценка фильма. Реализовать проверку наличия фильма в видеотеке, оформление выдачи и возврата.

22. Справочник фаната. База спортсменов: анкетные и антропологические данные, гражданство, происхождение, вид спорта, клуб или команда, данные о личном рекорде или победах и т.д. Реализовать выбор по произвольному признаку, поиск рекордсмена в заданном виде спорта.

23. Справочник астронома. Для каждой из зарегистрированных звезд известны: название, созвездие, видимая звездная величина, расстояние, координаты на небосклоне. Реализовать поиск звезд заданного созвездия, поиск ближайшей звезды к указанным координатам, видимых звезд и созвездий.

24. Телефонный справочник. База телефонных номеров: анкетные данные абонента, номер телефона, тарифный план, задолженность по оплате. Реализовать поиск по произвольному критерию, выборку всех абонентов, сумма задолженности которых превышает N рублей.

25. Результаты соревнований. Известны результаты по фигурному катанию в трех видах многоборья (обязательная, короткая и произвольная программы). База содержит: анкетные данные спортсмена и результаты (в баллах от 1 до 6). Определить тройку победителей и среднее количество баллов, полученных по каждому виду программы в мужской и женкой сборных.

  

ТЕОРЕТИЧЕСКАЯ ИНФОРМАЦИЯ К КУРСОВОЙ РАБОТЕ

ЗАПИСИ

Запись – структура данных, состоящая из фиксированного числа компонентов, которые называются полями записи. В отличие от массивов, компоненты-поля могут быть разного типа. Каждое поле записи именуется. Описание структуры записи происходит в разделе type.

type

    <имя>=Record

           <список полей>

end;

<Список полей> представляет собой последовательность записей следующего вида:

<Имя1>: <Тип1>;

<Имя2>: <Тип2>;

..

<ИмяN>: <ТипN>;

Пример:

type

    Student=Record

         fio: string;

         gr: word;

         pol: Boolean;

         rost, ves: real;

        gruppa=record

               spec: string[3];

              god: byte;

              n: byte;

       end;

end;

Доступ к каждому из компонентов записи осуществляется с использованием спецификатора. Структура записи спецификатора:

<Спецификатор1>[.<спецификатор2>. … . <спецификаторN>].<идентификатор>.

В данном случае спецификатором будут являться переменная типа «студент», а идентификатором – имя поля.

var

    a:student;

begin

    a.fio:=’Иван Помидоров’;

    a.gr:=1987;

    a.pol:=true;

    a.gruppa.spec:=’pie‘;

Для упрощения доступа к полям записи используется оператор доступа:

with <переменная> do <оператор>

Пример:

with a do begin

    rost:=180.5;

    ves:=98.2;

end;

ФАЙЛЫ

Под файлом поднимается либо поименованная область внешней памяти ПЭВМ, либо логическое устройство, которое является потенциальным источником или приёмником информации (например, адаптер интерфейса). Любой файл имеет 3 характерные особенности:

  •  обладает именем (это даёт возможность работать одновременно с несколькими файлами в программе);
  •  содержит компоненты одного и того же типа (типом компонента может быть любой тип Object Pascal, кроме файла);
  •  длина файла в Object Pascal не регламентируется, ограничение накладывает только ёмкость внешнего устройства.

По способу организации файлы делятся на:

  •  файлы прямого доступа;
  •  файлы последовательного доступа.

При работе с файлами существует понятие указателя. Указатель – это виртуальный элемент, который указывает на текущую позицию в файле (то место, с которого будет считана информация при последующем обращении к файлу). При открытии файла указатель устанавливается в начало файла.

З1

указатель файла

З2

З3

З4

З5

ЗN

EOF

конец файла

У файла прямого доступа можно установить указатель на любую запись и прочитать её. У файлов последовательного доступа каждая следующая запись может быть прочитана только после того, как прочитана предыдущая, т.е. чтобы получить запись с номером N, надо предварительно прочитать N-1 записей.

В Object Pascal существует 3 типа файлов:

  •  текстовые
  •  типизированные
  •  нетипизированные.

Типизированные файлы являются файлами прямого доступа; нетипизированные и текстовые – файлы последовательного доступа.

Доступ к файлам

Любые файлы и логические устройства становятся доступны в модуле после выполнения процедуры открытия. Эта процедура заключается в:

  1.  связывании ранее объявленной файловой переменной с именем файла;
  2.  открытии файла для чтения и/или записи.

Файловая переменная называется дескриптором файла.

Пример объявлений файловой переменной

Var

  f: textfile;    {текстовый файл}

  f1: file of integer;  {типизированный файл}

  f2: file of string[20];  {типизированный файл}

  f3: file;    {нетипизированный файл}

Процедура связывания файловой переменной с именем файла:

assignfile(<файловая переменная>,<имя файла или логического устройства>);

Пример.

assignfile(f, ‘c:\alpha.txt’);

assignfile(f, ‘PRN’);

Именем файла может быть любое выражение строкового типа, которое строится по правилам определения имени в ОС Windows.

Инициализация (инициация) файла.

Инициализировать файл означает указать для этого файла направление передачи данных. Для этого существуют специальные процедуры:

Формат процедуры

Описание

Reset(<ф.п.>);

Чтение

Rewrite(<ф.п.>);

Запись (файл создаётся заново)

Append(<ф.п.>);

Запись (добавление к существующему)

- только для текстовых файлов

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

Закрытие файла.

Осуществляется с помощью процедуры

Closefile(<ф.п.>);

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

Замечание: при нормальном завершении работы приложения все действия, выполняемые этой процедурой, производятся автоматически для всех открытых файлов.

Процедуры и функции для работы с файлами

Формат

Описание

eof(<ф.п.>);

Логическая функция, тестирующая конец файла; возвращает истину, если достигнут конец файла.

eoln(<ф.п.>);

Возвращает истину, если достигнут конец строки.

seekeof(<ф.п.>);

Возвращает истину, если до конца файла остались только символы-разделители.

seekeoln(<ф.п.>);

То же для строки.

assignprn(<ф.п.>);

Процедура присваивает дескриптор текстового файла принтеру.

erase(<ф.п.>);

Стирает файл, перед удалением файл надо закрыть.

flush(<ф.п.>);

Очищает внутренний буфер файла, при этом все изменения сохраняются на диске.

rename(<ф.п.>,<нов.имя>);

Переименовывает файл.

read(<ф.п.>,<список ввода>);

Читают информацию из файла.

readln(<ф.п.>,<список ввода>);

write(<ф.п.>,<список вывода>);

Записывают информацию в файл, ln – с переводом «курсора» на следующую строку.

writeln(<ф.п.>,<список вывода>);

Текстовые файлы

Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу textfile. Используются для хранения текстовой информации. В файлах такого типа также могут храниться целые и вещественные числа. Запись текстового файла имеет переменную длину, поэтому файлы такого типа относятся к файлам последовательного доступа. При создании текстового файла в конце каждой строки автоматически ставится специальный символ – eoln, который состоит из двух байтов #13 (cr) и #10 (lf). cr – возврат каретки, lf – перевод строки. В конце файла ставится специальный признак eof (#27). Текстовые файлы открываются с помощью трёх процедур: reset – для чтения, rewrite – для записи, append – для добавления. Чтение осуществляется с помощью процедур read и readln, запись – с помощью write и writeln.

Пример.

Writeln (f, ‘ABC’, 12, ‘X’, 0.5); // ABC 12 X 5E-1

При переводе переменных типа string, количество считанных процедурой и помещённых в строки символов равно максимальной длине строки, если раньше не встретится признак eoln. Этот признак в строку не помещается. Если количество символов во входном потоке данных больше максимальной длины строки, то лишние символы отбрасываются. При вводе числовых переменных, процедура read работает следующим образом: все ведущие пробелы, признаки конца строк, табуляции пропускаются до появления первого значащего символа и, наоборот, любой из перечисленных символов, а также признак конца файла, считается концом подстроки. Выделенная таким образом подстрока рассматривается как строковое выражение числовой переменной. Затем она конвертируется во внутреннее представление числа, и результат присваивается переменной.

Пример 1.

Содержимое файла c:\FEI\alpha.txt:

                     -abceoln

                     ---203eoln

                     2-3-a52,5eof

var

  f: textfile;

  s: string;

  s2: string[2];

  a, b, c: integer;

  x: real;

begin

  assignfile(f, ‘c:\FEI\alpha.txt’);

  reset(f);     Открываем файл для чтения

  readln(f, s);  {s=’-abc’}  Считываем информацию из файла с переводом курсора

  readln(f, a);  {a=203}  на новую строку

  read(f, b, c);  {b=2, c=3}

  read(f, x);   //ОШИБКА!!!

end;

Пример 2 (вывод текстового файла на экран: текстовый файл - тот же).

Procedure TForm1.Button1Click(Sender: TObject);

Var

  f: textfile;

  s: string;

begin

  assignfile(f,’c:\fei\alpha.txt’);

  reset(f);     Открываем файл для чтения

  while not eof(f) do    Пока не достигнут конец файла выполняем

  begin

     readln(f,s);    Считываем информацию из файла

     Memo1.Lines.Add(s);   Записываем в Memo1

  end;

end;

Если в конвертируемой строке был нарушен требуемый формат, возникает ошибка ввода-вывода.

Процедура write/writeln обеспечивает вывод информации в текстовый файл. Список вывода аналогичен процедуре read, за исключением числовых значений, для которых существует специальный формат: элемент [:m[:n]], m – указывает минимальную ширину поля, в которую будет помещён элемент, n – указывает максимальное количество знаков после запятой.

Процедура writeln аналогична процедуре write, но в конце добавляется признак конца строки.

Пример 3 (слияние двух файлов в третий).

Procedure TForm1.Button1Click(Sender: TObject);

Var

  f1,f2,f3: textfile;

  s:string;

begin

  assignfile(f1, ‘alpha.txt’);

  assignfile(f2, ‘beta.txt’);

  assignfile(f3, ‘omega.txt’);

  reset(f1);  Открываем для чтения

  reset(f2);  Открываем для чтения

  rewrite(f3);  Открываем для записи

  while not eof(f1) do

  begin

     readln(f1, s); Считываем из файла

     writeln(f3, s); Записываем в файл

  end;

  while not eof(f2) do

  begin

     readln(f2, s); Считываем из файла

     writeln(f3, s); Записываем в файл

  end;

  ShowMessage(‘Ok!’);

end;

Пример 4 (определение количества строк и символов в файле).

Procedure TForm1.Button1Click(Sender: TObject);

Var

  f: textfile;

  s: string;

  i,k: int64;

Begin

  assignfile(f, ‘alpha.txt’);

  reset(f);   Открываем для чтения

  k:=0;

  i:=0;

  while not eof(f) do

  begin

     readln(f, s);  Считываем из файла

     inc(i);

     k:=k+length(s);

  end;

  showmessage(‘alpha.txt содержит’ + inttostr(i) + ‘строк и, ’ + inttostr(k) + ‘символов’);

End;

Обработка ошибок при работе с файлами

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

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

Директивы заключаются в фигурные скобки {}, внутри ставится обозначение соответствующей директивы и “+” или “-”:

{<обозначение директивы><>}

{I-} – отключает контроль ошибок ввода/вывода;

{I+} – включает контроль ошибок I/O.

Если делается попытка чтения несуществующего файла или логического устройства, то возникает ошибка времени выполнения, тип ошибки можно определить с помощью встроенной функции IOResult:word. Эта функция возвращает результат последней операции ввода/вывода. Если операция прошла успешно, функция возвращает 0, иначе возвращает код ошибки ввода/вывода. Для использования этой функции необходимо отключить контроль ошибок I/O.

Procedure TForm1.Button1Click(Sender: TObject);

var f1: textfile;

  s: string;

Begin

  assignfile(f1, Edit1.text);

  {I-}

  reset(f1);   Открываем для чтения

  if IOResult<>0 then

  begin

     ShowMessage(‘Неверное имя файла!’);

     Exit;

  End;

  {I+}

  while not eof(f1) do

  begin

     readln(f1, s);  Считываем из файла

     Memo1.Lines.Add(s);

  end;

End;

Использование объектов TOpenDialog и TSaveDialog

В Delphi существуют объекты для работы с файлами, в частности: TOpenDialog, TSaveDialog.

Эти объекты позволяют открывать и использовать стандартные диалоговые окна открытия, сохранения файла. Вызов диалогового окна осуществляется с помощью метода Execute: boolean, который возвращает истину, если окно отрылось успешно, и ложь в противном случае.

Пример.

If OpenDialog1.Execute then

begin

  assignfile(f, OpenDialog1.filename);

  reset(f);

  …

end;

                                  или

Procedure TForm1.Button1Click(Sender:TObject);

var fName: string;

begin

  if OpenDialog1.Execute then

  begin

     fName:=OpenDialog1.FileName;

     Panel1.Caption:=fName;

  end;

Типизированные файлы

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

Переменные в списках ввода/вывода процедур read, write должны иметь тот же тип, что и компоненты файла (работает правило приведения типов). Если переменных в списках I/O несколько, то указатель будет смещаться после каждой операции обмена данными между переменными и файлом.

Пример объявления типизированного файла.

Var

  f: file of integer;

  t: file of string[20];

  a: integer;

  b: byte;

  i: int64;

  x: string[20];

Procedure TForm1.Button1Click (Sender: TObject);

Begin

  assignfile(f, ‘c:\FEI\int.dat’);

  assignfile(t, ‘c:\FEI\string.dat’);

  rewrite(f);   //Файл открыт для записи

  rewrite(t);   //Файл открыт для записи

  write(f, a, b);  //Запись в файл

  write(t, x, ‘abcdef’);  //Запись в файл

  reset(f);   //Файл открыт для записи и чтения

  reset(t);   //Файл открыт для записи и чтения

  read(f, c);   //Читаем из файла

  read(t, x);

  write(t, ‘stuwn’);  //Запись в файл

End;

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

Seek(<ф.п.>,<N записи>); – процедура смещает указатель файла к требуемой записи.

Здесь <ф.п.> - дескриптор файла, <N записи> – выражение типа int64, указывающее номер записи файла. Первая запись имеет номер 0.

seek(f, 5);

read(f, x);

FileSize(<ф.п.>):int64; – функция возвращает количество записей в файле.

SizeOf(<экземпляр структуры>); – возвращает занимаемый размер в байтах.

Var

  z: word;

SizeOf(z); //2

FilePos(<ф.п.>):int64; – функция возвращает порядковый номер записи файла, которая будет обработана следующей операцией ввода/вывода.

0

1

2

FilePos вернет 2

3

4

Пример.

Создадим базу данных, содержащей информацию о погоде. База данных состоит из одной таблицы:

Поле

Месяц

День

t0C

V ветра

Направление ветра

Тип

byte

byte

real

real

string[3]

Type

pogoda = record

  m: byte;

  d: byte;

  t: real;

  sv: real;

  nv: string[3];

end;

Var

  f: file of pogoda;

  a,b: pogoda;

  i: int64;

Procedure TForm1.Button1Click (Sender: TObject);

{Заполнение файла}

begin

  assignfile(f, ‘c:\FEI\pogoda.dat’);

  rewrite(f);

  a.m:=2;

  a.d:=20;

  a.t:=-4;

  a.sv:=3.5;

  a.nv:=’СЗ’;

  write(f, a);

end;

Procedure TForm1.Button2Click (Sender: TObject);

{просмотр файла}

begin

  reset(f);

  i:=0;

  while not eof(f) do

  begin

     read(f,b);

     i:=i+1;

     with StringGrid1 do

     begin

        Cells[1,i]:= inttostr(b.m);

        Cells[2,i]:= inttostr(b.d);

        

     end;

  end;

end;


file 1

file 2

ile 3




1. суретте к~рсетілген 1сурет Енді ~зімізді~ білігімізді саламыз ол ~шін цилиндр деген команданы басы
2. Реферат- Палеоантропологічнi дослідження
3. Реферат Жорж Санд
4. Реферат- Категория амбивалентности в теории воспитания человека
5. по теме 13- Внутрифирменное планирование и логистика предприятия Задача 1- Фирма производит и реализует у
6. Планирование жилого образования
7. печать газеты журналы афишы проспекты и др
8. на тему- Финансовый кризис 2008 года
9. Виробничозбутове зонування.html
10. Лекция 12. НЕОРИЕНТИРОВАННЫЕ ГРАФЫ Основные определения Граф ~ это совокупность двух множест
11. СанктПетербургский государственный технологический институт технический университет УГС код н
12. Документация сущность значение виды документов и требования по их оформлению
13.  Сопоставьте слово с его определением 10x1- djcent ~ ner or next to mplifier ~ n electricl device or piece of equipment tht mkes sounds or rdio signls louder
14. Битва экстрасенсов.
15. реферат дисертації на здобуття наукового ступеня кандидата технічних наук Київ ~ 1999 Дисертац
16. тема ценообразования в экономике Неоклассический подход А
17. Время 1861 No 1 Январь
18. Бухучёт
19.  ПОЗИТИВИЗМот лат
20. Логика