close

Вход

Забыли?

вход по аккаунту

?

20 (2)

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ "БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ" Факультет: Инженерный
Кафедра: Информационные системы и технологии
Дата регистрации работы в деканате _________ Дата регистрации работы на кафедре _________ Отметка о допуске к защите _________ Оценка за защиту _________ КУРСОВАЯ РАБОТА
по дисциплине "Основы алгоритмизации и программирования"
Тема: "Работа с записями и файлами в Delphi"
Исполнитель: студент 4-го курса, группы ИСТзс-41
студент (факультет, курс, группа)
.
фамилия, имя, отчество
Руководитель: Преподаватель .
ученое звание, ученая степень, должность,
Тимовец Анна Николаевна .
фамилия, имя, отчество
Барановичи 2013
РЕФЕРАТ
Курсовая работа: 25 с., 3 табл., 10 иллюстр., 4 источника., 1 приложение.
DELPHI, ДИАЛОГОВАЯ ПРОГРАММА, ФАЙЛ, СОРТИРОВКА, ПОИСК.
Объект исследования - возможности среды объектно-ориентированного программирования Delphi для сортировки, отбора данных и создания файлов. Цель работы - разработка программы, которая сортирует данные и отбирает элементы по введенным критериям.
При выполнении работы использованы методы исследования: изучение литературы, методы синтеза и анализа.
Практическая значимость этой работы заключается в сортировке данных о книгах, хранящихся в иблиотеке.
Автор подтверждает, что приведенный в работе расчетно-аналитический материал правильно и объективно отражает состояние исследуемого процесса, а все заимствованные из литературных и других источников теоретические, методологические и методические положения и концепции сопровождаются ссылками на их авторов. CОДЕРЖАНИЕ
ВВЕДЕНИЕ6
1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 8
1.1 Постановка задачи8
1.2 Математическая модель объекта или процесса8
1.3 Алгоритм решения задачи9
1.4 Блок-схема алгоритма решения задачи10
2 ПРАКТИЧЕСКАЯ ЧАСТЬ11
2.1 Описание объектов, свойств и методов11
2.2 Формы и основные модули текста программы в среде Delphi9
2.3 Результат тестирования программного продукта10
2.4 Графическое представление результатов9
2.5 Анализ полученных результатов10
ЗАКЛЮЧЕНИЕ30
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ31
ПРИЛОЖЕНИЕ
ВВЕДЕНИЕ
Курсовая работа была разработана в среде Delphi. Среди множества языков, Pascal является наиболее универсальным и легко изучаемым языком. При этом его можно использовать для создания сложных приложений, баз данных, приложений масштаба предприятия.
Среде Delphi присущи:
- быстрота разработки приложения (В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы.);
- высокая производительность разработанного приложения;
- низкие требования разработанного приложения к ресурсам компьютера;
- наращиваемость за счет встраивания новых компонент и инструментов в среду Delphi;
- возможность разработки новых компонент и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходниках);
- удачная проработка иерархии объектов;
- возможность создавать распределенные приложения на базе СОМ и CORBA, Интернет и intranet-приложения
- доступно огромное количество визуальных компонентов третьих фирм, часть из которых freeware, часть shareware, часть - коммерческих.
- мощные средства отладки (вплоть до пошагового выполнения команд процессора)
- встроенные компоненты доступа к данным: BDE, ODBC или ADO
- язык поддерживает все требования, предъявляемые к объектно-ориентированному языку программирования.
- язык поддерживает обработки исключительных ситуаций, а также перегрузку методов и подпрограмм (overload) в стиле C++. Предмет исследования - применение среды Delphi для программирования с использованием массивов, записей работы с файлами и программирования с использованием библиотеки VCL для графического вывода.
Цель исследования - согласно выданного варианта задания и основываясь на методических указаниях реализовать программы на Delphi для чтения информации из файла и последующей ее обработки по заданным критериям.
Для достижения названной цели в исследовании необходимо решить следующие задачи:
- осуществить постановку задач;
- создать блок-схемы алгоритмов;
- осуществить описание объектов, свойств, методов;
- разработать формы и представить текст программ;
- привести результаты тестирования программного продукта.
Основой для выполнения работы стала справочная, научная и учебная литература и материалы периодической печати.
Основными методами исследования были выбраны общенаучные методы анализа и синтеза.
Структурно изложение материала представлено в виде содержания, введения, основной части, заключения и списка использованных источников.
К работе прилагается электронный носитель информации.
1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1 Постановка задачи
Задачей курсовой работы является создание приложения в среде программирования Delphi. Поставленная задача должна быть выполнена с использованием записей и файлов. Задание состоит из двух частей:
1. Создать файл, содержащий сведения о книгах, хранящихся в библиотеке. Структура записи: регистрационный номер книги, автор, название, год издания, издательство, количество страниц. Количество записей произвольное.
2. Написать программу, которая выводит:
- список книг данного автора Х;
- список книг с фамилиями авторов в алфавитном порядке, изданных после заданного года.
Результатом выполнения задания является программа, которая создает файл, а при необходимости открывает заранее созданный файл, сортирует данные, исходя из выбранного параметра сортировки, и выполняет его обработку по заданным критериям.
1.2 Математическая модель объекта или процесса
В поставленной задаче необходимо выполнить простейшие операции и вычисления. Математический аппарат представлен в виде вычисления одной неизвестной по заранее заданной формуле:
1) из созданного файла, при помощи типа данных запись, выделить только те, в которых дата публикации больше введенного пользователем числа, запоминая в массив с типом данных запись;
2) осуществить сортировку массива по полю фамилия автора, в алфавитном порядке;
3) вывести полученный порядок записей в поле Memo.
Также в программе осуществляется выборка книг, введенного пользователем автора X, но эта часть программы не требует математических вычислений.
1.3 Алгоритм решения задачи
Для решения поставленной задачи применяется алгоритм, который имеет такие составные части как цикл и ветвление. Он помогает детализировать программу на отдельные блоки, что гораздо удобнее и практичнее для разработки программного продукта, а в настоящее время является ее неотъемлемой частью. Полученные блоки подвергаются следующей стадии разработки программного продукта.
Алгоритм состоит из выполнения следующей последовательность действий.
1. Создается файл, которые содержит поля: регистрационный номер книги, автор, название, год издания, издательство, количество страниц, или открывается заранее созданный файл, содержащий эти же поля.
2. Выполняется сортировка данных по заданному параметру сортировки.
3. Путем перебора всех записей из файла определяются книги: * автора X;
* изданных после года Х, в алфавитном порядке по полю автор.
Полученный алгоритм при помощи объектно-ориентированного языка программирования Object Pascal реализуется в среде Delphi.
1.4 Блок-схема алгоритма решения На рисунке 1.1 приведена блок - схема алгоритма созданной программы.
Рисунок 1.1 - Блок-схема программы
2 ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Описание объектов, свойств и методов
В программе используются такие объекты как: Edit, BitBtn, Memo, Label, PageControl. Рассмотрим основные объекты программы. Компонент Edit
Компонент Edit представляет собой поле ввода-редактирования строки символов. Свойства компонента приведены в таблице 2.1.
Таблица 2.1. Свойства компонента Edit
Свойство ОписаниеName Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности - для доступа к тексту, введенному в полеText Текст, находящийся в поле ввода и редактированияLeft Расстояние от левой границы компонента до левой границы формыTop Расстояние от верхней границы компонента до верхней границы формыHeight Высота поляWidth Ширина поляFont Шрифт, используемый для отображения вводимого текстаParentFont Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, то при изменении свойства Font формы автоматически меняется значение свойства Font компонентаEnabled Используется для ограничения возможности изменить текст в поле редактированияVisible Позволяет скрыть компонент или сделать его видимым Компонент BitBtn
Компонент BitBtn представляет собой командную кнопку, Свойства компонента приведены в таблице 2.2.
Таблица 2.2. Свойства компонента BitBtn (командная кнопка)
Свойство ОписаниеName Имя компонента. Используется в программе для доступа к компоненту и его свойствамCaption Текст на кнопкеLeft Расстояние от левой границы кнопки до левой границы формыTop Расстояние от верхней границы кнопки до верхней границы формыHeight Высота кнопкиWidth Ширина кнопкиEnabled Признак доступности кнопки. Если значение свойства равно True, то кнопка доступна. Если значение свойства равно False, то кнопка не доступна, например, в результате щелчка на кнопке событие Click не возникаетVisible Позволяет скрыть кнопку (False) или сделать ее видимой (True)Hint Подсказка - текст, который появляется рядом с указателем мыши при позиционировании указателя на командной кнопкеShowHint Разрешает (True) или запрещает (False) отображение подсказки при позиционировании указателя на кнопкеGlyph Определяет рисунок, который может содержать от одного до четырёх изображений, связанных с состояниями, которые может принимать кнопкаKind Определяет одну из разновидностей кнопки BitBtn Style Определяет как выглядит кнопка в зависимости от стиля предпочтительной операционной системы. Значение bsNew соответствует современным вариантам Windows. Стиль bsAutoDetect приводит оформление кнопки к стилю операционной системы, управляющей работой программы в настоящий момент Label -(метка для отображения текста) предназначена для отображения текстовой информации. Текст, отображаемый в компоненте, определяются значением свойства Caption. Его можно устанавливать в процессе проектирования или задавать и изменять программно во время выполнения приложения. Единственно доступные элементы оформления надписи - это цвет и шрифт. Также имеется свойство Wordwrap - допустимость переноса словдлинной надписи, превышающей длину компонента, на новую строчку. Чтобы такой перенос мог осуществляться, надо установить свойство WordWrap в true, свойство AutoSize в false.
2.2 Формы и основные модули текста программы в среде Delphi
Данная курсовая работа реализована в виде одного приложения, представленного в виде формы с компонентами управления, разделенного на вкладки, каждая со своим функционалом. Задание 1.
Выполнить на компьютере программу создания файла, содержащего сведения о книгах, хранящихся в библиотеке. Структура записи содержит поля: регистрационный номер книги, автор, название, год издания, издательство, количество страниц. Количество записей в файле произвольное.
Алгоритм работы
Так как по условию задания 2, предусматривается ввод года издания, то тип для этого поля лучше определить как целочисленный, это позволит сэкономить ресурсы компьютера, так как не потребуется лишних преобразований. Все остальные поля записей файла целесообразно определить как поля символьного типа. Идентификаторы и длины полей приведены в таблице 1.
Таблица1 - Описание идентификаторов и длины полей
Описание поляИмя переменнойТип данныхПримерАвторBookAuthorString[30]ПушкинНазваниеNameBookString[30]Сон в летнюю ночьИздательствоBookPublishersString[30] РУП "Издательство "Беларусь"Рег. НомерNumberString[10]14Дата публикацииYearPublishInteger2008Количество страницCountPagesString[4]96 Программа разработана в среде Delphi 7, поэтому разбита на события.
После объявления необходимых переменных( переменная типа файла должна быть типизированной и указывать на тип нашей записи) и самой структуры записи, начать следует с события создания формы. Здесь мы должны связать файл с переменной. Если в текущей категории не существует файла, то создать, если существует, то открыть функцией reset(f). Далее пользователю предоставить возможность добавления и просмотра записей.
Добавление:
Через пользовательский интерфейс заполняем поля, и по событию кнопки, заполняем введенными данными нашу запись, переводим текущую позицию в файле на конец функцией Seek(F, FileSize(F)) и записываем в файл при помощи функции write();
Просмотр:
При просмотре устанавливаем указатель файла в самое начало и цикле до конца файла считываем записи, которые затем выводим в интерфейсе программы. По событию закрытия формы мы закрываем файл функцией close(F).
Программа создания файла в Delphi с именем database.dat имеют вид:
type
Tplayer = record
BookAuthor: string[100];
NameBook: string[30];
BookPublishers: string[30];
Number: Integer;
YearPublish: Integer;
CountPages: Integer; //рост
end;
var
Form1: TForm1;
F:file of Tplayer;
ArrayBook : array[0..countRecord] of Tplayer;
countI:Integer;
procedure TForm1.FormCreate(Sender: TObject);
begin
AssignFile(F,'database.dat');
{$I-}
if FileExists('database.dat') then
Reset(F)
else Rewrite(f);
Seek(F, FileSize(F));
{$I+}
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(F);
end;
procedure TForm1.btn1Click(Sender: TObject);
var
AddBook: Tplayer;
i:integer;
begin
AddBook.NameBook:= edt1.Text;
AddBook.BookPublishers:= edt2.Text;
AddBook.BookAuthor:= edt3.Text;
AddBook.Number:= StrToInt(edt4.Text);
AddBook.YearPublish:= StrToInt(edt5.Text);
AddBook.CountPages:= StrToInt(edt6.Text);
write(F, AddBook);
end; procedure TForm1.pgc1Change(Sender: TObject);
var
ViewBook:Tplayer;
i,j:Integer;
begin
mmo1.Lines.Clear();
Seek(F, 0);
i:=0;
while not (Eof(F)) do
begin
Read(F,ArrayBook[i]);
//ArrayBook[i]:= ViewBook;
mmo1.Lines.Add(lbl3.Caption+': '+ArrayBook[i].BookAuthor);
mmo1.Lines.Add(lbl2.Caption+': '+ArrayBook[i].BookPublishers);
mmo1.Lines.Add(lbl1.Caption+': '+ArrayBook[i].NameBook);
mmo1.Lines.Add(lbl4.Caption+': '+IntToStr(ArrayBook[i].Number));
mmo1.Lines.Add(lbl5.Caption+': '+IntToStr(ArrayBook[i].YearPublish));
mmo1.Lines.Add(lbl6.Caption+': '+IntToStr(ArrayBook[i].CountPages));
mmo1.Lines.Add('--------');
i:=i+1;
end;
countI := i;
end;
Тестовый вариант исходных данных для создания файла
Пушкин. "Дантэ" Мск. 12 1806 199
Лермонтов. "Ни дать ни взять" Спб. 32 1855 343
Некрасов. "Лесорубка" Спб. 45 1899 454
Толстов "Горе от ума" Птр. 55 1906 345
Грибоедов. "Охотчичьи записки" ПТК. 56 1950 453
Задание 2.
3. Написать программу которая выводит список книг автора Х.
4. Написать программу, которая выводит список книг с фамилиями авторов в алфавитном порядке, изданных после заданного года.
Алгоритм
Для выполнения задания 2 необходима корректно работающая программа с задания 1 и :
1) ввести в специальное поле автора X, для которого выводится список книг , для этого нужно организовать в цикле чтение текущей записи файла, проверять совпадение значения поля "автор" со значением переменной X. Если значения не совпадают, то переходить к чтению следующей записи файла. Если значения совпадают, то в текстовую область выводим название книги. Обработка происходит по событию нажатию на кнопку.
2) ввести в другое специальное поле год Y, после значения которого выводится список книг с фамилиями авторов в алфавитном порядке, изданных после заданного года, для этого нужно организовать в цикле чтение текущей записи файла, проверять совпадение значения поля "год" со значением переменной Y. Если введенное значение не больше чем в записи, то переходить к чтению следующей записи файла. Если нужное нам условие выполняется, то выводим соответствующую информацию о книге. Обработка происходит по событию нажатию на кнопку.
Программа берется из задания 1, лишь дополняется событиями:
procedure TForm1.btn2Click(Sender: TObject);
var
ViewBook:Tplayer;
i,j:Integer;
t: TStringList;
begin
mmo2.Lines.Clear();
for i:=0 to countI-2 do
for j:=i+1 to countI-1 do
if (ArrayBook[i].BookAuthor>ArrayBook[j].BookAuthor) then
begin
ViewBook:=ArrayBook[i];
ArrayBook[i]:=ArrayBook[j];
ArrayBook[j]:=ViewBook;
end;
t:=TStringList.Create;
t.Sort();
// ShowMessage(edt8.Text);
for i:=0 to countI-1 do begin
// ShowMessage(ArrayBook[i].BookPublishers);
if ArrayBook[i].YearPublish>StrToInt(edt8.Text) then begin
mmo2.Lines.Add(ArrayBook[i].BookAuthor+';'+ArrayBook[i].NameBook+';'+IntToStr(ArrayBook[i].CountPages)+'стр.');
end;
end;
t.AddStrings(mmo2.lines);
mmo2.Clear;
mmo2.Lines.AddStrings(t);
end;
procedure TForm1.btn3Click(Sender: TObject);
var
ViewBook:Tplayer;
i,j:Integer;
begin
mmo3.Lines.Clear();
for i:=0 to countI-1 do begin
if ArrayBook[i].BookAuthor=edt7.Text then begin
mmo3.Lines.Add(ArrayBook[i].NameBook+';'+IntToStr(ArrayBook[i].CountPages)+'стр.');
end;
end;
end;
Рисунок 2.1 - Главная форма , вкладка "Ввод данных"
Рисунок 2.2 - Главная форма , вкладка "Выборка"
Рисунок 2.3 - Главная форма , вкладка "Содержимое файла"
2.3 Результат тестирования программного продукта
Процесс проверки работоспособности программы называется тестированием созданного продукта и является важным фактором успешного создания программы.
Тестирование является основным методом измерения качества, определения корректности, надежности и безопасности функционирования программ на всех этапах жизненного цикла программного средства. Тестирование программы позволяет исправить ошибки и повысить ее работоспособность.
При тестировании проводилась валидация входных данных на пустые значения. В результате ввода пустого значения хотя бы одного из полей пользователю предоставляется следующее модальное окно:
Рисунок 2.4 - Модальное окно при вводе некорректных данных
На этапе тестирования в приложении были выявлены некоторые проблемы с работой обработчика ошибок в ситуациях ввода некорректных данных, которые были устранены. И поэтому данное приложение считается полностью работоспособный и может быть передано в эксплуатацию.
2.4 Графическое представление результатов
Рисунок 2.5 - Главная форма , вкладка "Ввод данных"
Рисунок 2.6 - Главная форма , вкладка "Выборка"
Рисунок 2.7 - Главная форма , вкладка "Содержимое файла"
Рисунок 2.7 - Добавление новой записи в файл
Рисунок 2.8 - Фильтр книг, издавшихся после 1996 года
Рисунок 2.9 - Фильтр книг, автора Пардонского Андрея
2.5 Анализ результатов
Результатом курсовой работы является создание приложения позволяющего создать файл, содержащий сведения о книгах, хранящихся в библиотеке с определенной структурой записи: регистрационный номер книги, автор, название, год издания, издательство, количество страниц. И с произвольным количеством записей, которая также выводит список книг данного автора Х и книг с фамилиями авторов в алфавитном порядке, изданных после заданного года. Был также организован обработчик ошибок. Приложение реализовано в виде одного приложения, представленного в виде формы с компонентами управления, разделенного на вкладки, каждая со своим функционалом.
На этапе тестирования была выявлена ошибка ввода данных, которая в дальнейшем была устранена. Функционал программы полностью отвечает установленным требованиям. ЗАКЛЮЧЕНИЕ
Общим итогом выполнения курсовой работы является закрепление и пополнение знаний и навыков программирования в объектно-ориентированной среде Delphi, с большим уклоном проработки в работе с записями, массивами записей и файлами.
На основании поставленных целей и задач было реализовано приложение, направленное на создание, занесение и чтение из файла данных типа записи, содержащее информацию о книгах, а также с возможностью фильтрации данных на основе приложенного задания. На основании результатов тестирования, и выявленных исключительных ситуациях, был разработан анализатор ошибок.
Приложение имеет достаточный функционал, простой и удобный в использовании пользователю интерфейс.
Были пройдены все стадии создания приложений, от этапа начальной разработки до конечного этапа тестирования. Поставленные на начальном этапе разработки цели и задачи были полностью воплощены. СПИСОК ИСПОЛЬЗУЕМОЙЛИТЕРАТУРЫ
1 Архангельский, А.Я. Программирование Delphi7./А.Я. Архангельский. - М.: ООО Бином - пресс, 2003. - 1152 с.
2 Культин, Н. Б. Основы программирования в Delphi7./ Н.Б. Культин. - СПб.: БХВ - Петербург, 2003. - 608с.: ил.
3 Прищепов, М.А. Программирование на языкахBasic, Pascalи ObjectPascalв среде Delphi./ М.А. Прищепов. - Мн.: ТетраСистем, 2006. - 320 с.
4 Ревич, Ю. В. Нестандартные приемы программирования на Delphi./ Ю.В. Ревич. - СПб.: БХВ-Петербург, 2005. - 560 с.: ил.
5 Трашкова, И.А. 16 уроков по Delphi./И.А.Трашкова, А.В. Маркова. - Витебск.: издательство УО "ВГУ им. П.М. Машерова", 2001. - 84 с.
6 Фленов, М. Е.БиблияDelphi./ М.Е. Фленов. - СПб.: БХВ-Петербург, 2004. - 880 с.: ил.
7 Хомоненко, А.Д. Самоучитель Delphi. NET./А.Д. Хомоненко. - СПб.: БХВ - Петербург, 2006.-462 с.: ил.
27
Документ
Категория
Рефераты
Просмотров
110
Размер файла
488 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа