Работа с записями и файлами в Delphi
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Факультет _____инженерный_______________
Кафедра__информационные системы и технологии_________
Дата регистрации работы в деканате _________
Дата регистрации работы на кафедре _________
Отметка
о допуске к защите
Оценка
за защиту
КУРСОВАЯ РАБОТА
по дисциплине «Основы алгоритмизации и программирования»______
Тема: _«Работа с записями и файлами в Delphi»_
Исполнитель:
студент 1 курса, группы ИСТ-12_
студент (факультет, курс, группа)
__Франчук Вероники Генриховны_
фамилия, имя, отчество
Руководитель:
_____преподаватель-стажер_____
Тимовец Анна Николаевна_____
фамилия, имя, отчество
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
«БАРАНОВИЧСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
РЕЦЕНЗИЯ
на курсовую работу (проект)
(регистрационный №_____)
Студента______________________
(фамилия, имя, отчество)
Факультет ______________________________
Курс _____________________
Дисциплина____________________
Рецензент_____________________
(фамилия, имя, отчество)
Дата получения
к/р для рецензирования ______________________________
Дата возвращения к/р после рецензирования ___________________________
Оценка________ Подпись преподавателя-рецензента ____________________
Текст рецензии:_____________________
______________________________
______________________________
Р Е Ф Е Р А Т
Курсовая работа: 25 с. + приложение, 3 табл., 10 иллюстр., 4 источника., 1 приложение.
DELPHI, ДИАЛОГОВАЯ ПРОГРАММА, ФАЙЛ, СОРТИРОВКА, ПОИСК.
Объект исследования – возможности среды объектно-ориентированного программирования Delphi для сортировки, отбора данных и создания файлов.
Цель работы – разработка программы, которая сортирует данные и отбирает элементы по введенным критериям.
При выполнении работы использованы методы исследования: изучение литературы, методы синтеза и анализа.
Практическая значимость этой работы заключается в сортировке данных об абитуриентах, сдавших вступительные экзамены в университет.
Автор подтверждает, что приведенный в работе расчетно-аналитический материал правильно и объективно отражает состояние исследуемого процесса, а все заимствованные из литературных и других источников теоретические, методологические и методические положения и концепции сопровождаются ссылками на их авторов.
________________________
(подпись студента)
СОДЕРЖАНИЕ
Введение…………………………………………………………
1. Теоретическая часть……………………………………………………..8
1.1 Постановка задачи…………………………………………………..8
1.2 Алгоритм решения задачи………………………………………….8
1.3 Блок-схема алгоритма………………………………………………9
2. Практическая часть…………………………………………………….10
2.1 Описание объектов, свойств и методов……………………….....10
2.2 Формы и основные модули текста программы в среде Delphi...13
2.3 Результат тестирования программного продукта……………….17
2.4 Графическое представление результатов………………………..18
2.5 Анализ полученных результатов……………………………….. 21
Заключение……………………………………………………
Список использованных
источников………………………………………………….
Приложение
ВВЕДЕНИЕ
Данная курсовая работа была разработана в среде Delphi. Среди множества языков Pascal является наиболее универсальным и легко изучаемым языком. При этом его удобно использовать для создания сложных приложений, баз данных, приложений масштаба предприятия. Delphi так же прост в обучении, как и VisualBasic, но при этом средства языка программирования Pascal позволяет использовать все современные возможности объектно-ориентированного программирования[4].
Delphi – это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi – строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам ObjectPascal.
Delphi прост и логичен. Основные конструкции языка четко выделяются в программе, что способствует хорошему восприятию написанного кода. Графический интерфейс Delphi отлично продуман, среда разработки предоставляет доступ только к тем участкам кода, с которыми необходимо работать, скрывая основную часть программы, которая создается автоматически самой средой Delphi [3].
Предмет исследования – применение среды BorlandDelphi для программирования с использованием массивов, работы с файлами и программирования с использованием средств для отображения визуальной информации.
Цель исследования – реализация программы на BorlandDelphi для чтения информации из файла и последующей ее обработки по заданным критериям
Для достижения названной цели в исследовании необходимо решить следующие задачи:
- осуществить постановку задач;
- создать блок-схемы алгоритмов;
- осуществить описание объектов, свойств, методов;
- разработать формы и представить текст программ;
- привести результаты тестирования программного продукта.
Основой
для выполнения работы стала справочная,
научная и учебная литература
и материалы периодической
Основными методами исследования были выбраны общенаучные методы анализа и синтеза.
Структурно
изложение материала
К работе
прилагается электронный
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1 Постановка задачи
Задачей курсовой работы является создание диалоговой программы. 1. 1.Создать файл, содержащий сведения о свободных местах в поездах дальнего следования на ближайшую неделю. Структура записи: дата выезда, пункт назначения, время отправления, число свободных мест. Количество записей произвольное.
2. Написать программу, которая позволяет:
-вывести
информацию о наличии
- зарезервировать m мест до города N на k-й день недели с временем отправления поезда не позднее t часов вечера. Вывести время отправления или сообщение о невозможности выполнить заказ в полном объеме.
1.2 Алгоритм решения задачи
При вводе данных (ФИО, адреса,оценок по трем предметам) и нажатии кнопки «Добавить» программа вводит данные в массив.
При нажатии кнопки «Сортировка» происходит сортировка по фамилии в алфавитном порядке.
1.3 Блок-схема алгоритма
На рисунке 1.1 приведена блок – схема алгоритма созданной программы.
Рисунок 1.1 - Блок-схема программы
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Описание объектов, свойств и методов
Компонент Edit
Компонент Edit представляет собой поле ввода-редактирования строки символов[1]. Свойства компонента приведены втаблице 2.1.
Таблица 2.1. Свойства компонента Edit
Свойство |
Описание |
Name |
Имя компонента. Используется в программе для доступа к компоненту и его свойствам, в частности — для доступа к тексту, введенному в поле |
Text |
Текст, находящийся в поле ввода и редактирования |
Left |
Расстояние от левой границы компонента до левой границы формы |
Top |
Расстояние от верхней границы компонента до верхней границы формы |
Height |
Высотаполя |
Width |
Ширинаполя |
Font |
Шрифт, используемый для отображения вводимого текста |
ParentFont |
Признак наследования компонентом характеристик шрифта формы, на которой находится компонент. Если значение свойства равно True, то при изменении свойства Font формы автоматически меняется значение свойства Font компонента |
Enabled |
Используется для ограничения возможности изменить текст в поле редактирования. Если значение равно False, то текст в поле изменить нельзя |
Visible |
Позволяет скрыть компонентили сделать его видимым |
Компонент Button
Компонент Button представляет собой командную кнопку [1]. Свойства компонента приведены в таблице 2.2.
Таблица 2.2. Свойства компонента Button (командная кнопка)
Name |
Имя компонента. Используется в программе для доступа к компоненту и его свойствам |
Caption |
Текстнакнопке |
Left |
Расстояние от левой границы кнопки до левой границы формы |
Top |
Расстояние от верхней границы кнопки до верхней границы формы |
Height |
Высотакнопки |
Width |
Ширинакнопки |
Enabled |
Признак доступности кнопки. Если значение свойства равно True, то кнопка доступна. Если значение свойства равно False, то кнопка не доступна, например, в результате щелчка на кнопке событие Click не возникает |
Visible |
Позволяет скрыть кнопку (False) или сделать ее видимой (True) |
Hint |
Подсказка — текст, который появляется рядом с указателем мыши при позиционировании указателя на командной кнопке |
ShowHint |
Разрешает (True) или запрещает (False) отображение подсказки при позиционировании указателя на кнопке |
Компонент Memo
Компонент Memo представляет собой элемент редактирования текста, который может состоять из нескольких строк [2]. Свойства компонента приведены в таблице 2.3.
Таблица 2.3. Свойства компонента Memo
Name |
Имя компонента. Используется в для доступа к свойствам компонента |
Text |
Текст, находящийся в поле Memo. Рассматриваетсякакединоецелое |
Lines |
Массив строк, соответствующий содержимому поля.Доступ к строке осуществляется по номеру. Строкинумеруются с нуля |
Lines.Count |
Количество строк текста в поле Memo |
Left |
Расстояние от левой границы поля до левой границы формы |
Top |
Расстояние от верхней границы поля до верхней границы формы |
Height |
Высотаполя |
Width |
Ширинаполя |
Font |
Шрифт, используемый для отображения вводимого текста |
2.2 Формы и основные модули
текста программы в среде Delphi
При решении поставленной задачи будут использованы следующие объекты (рисунок 2.1)
Рисунок 2.1 – Объекты программы
- Button - командная кнопка;
- Edit– поля ввода значений;
- Label – информационные метки;
- Mainmenu- главное меню формы;
- Memo- многострочный текстовый редактор;
- Savedialog – сохранение данных.
Данные объекты размещены нами на главной форме пользовательского интерфейса, которая представлена на рисунке 2.2.
Рисунок 2.2 – Форма пользовательского интерфейса в режиме разработки
В программе есть основная кнопка: «Сортировать» и «Добавить»
Кнопке «Сортировать» сопоставим следующий программный код:
procedure TForm1.Button2Click(Sender: TObject);
var a:char; b:array [1..31] of string; c:array[1..31] of string; d:array [1..100000] of string;
v,x:integer;
begin
memo1.Lines.Add('результат сортировки по фамилии таковы :');
i:=1; //b - большие буквы , с- маленькие
for a:= #192 to #223 do begin
b[i]:=a; i:=i+1;end; i:=1;
for a:= #224 to #255 do begin
c[i]:=a; i:=i+1;end; // сортировка
for v:= 1 to 31 do begin
for x:= 1 to 31 do begin
for i:= 1 to n do begin
if (gruppa[i].fam[1]=b[v]) and (gruppa[i].fam[2]=c[x]) then
memo1.Lines.Add(gruppa[i].fam+
end; end; end;
end;
Кнопке «Игроки с данными критериями» сопоставим следующий программный код:
procedure TForm1.Button1Click(Sender: TObject);
begin
// добавление в список студентов
gruppa[i].fam:=Edit1.text;
gruppa[i].im:=Edit2.text;
gruppa[i].otch:=Edit3.text;
gruppa[i].adr:=Edit4.text;
gruppa[i].mark1:=strtoint(
gruppa[i].mark2:=strtoint(
gruppa[i].mark3:=strtoint(
if (gruppa[i].mark3>10) or (gruppa[i].mark2>10) or (gruppa[i].mark1>10) then
MessageDlg('
gruppa[i].marksr:=(gruppa[i].
memo1.Lines.Add(inttostr(i)+')
;edit1.clear; edit2.clear; edit3.clear; edit4.clear;
edit5.clear; edit6.clear; edit7.clear; end;
i:=i+1;n:=n+1;
end;
После создания приложения приступим к его тестированию.
2.3 Результат тестирования программного
продукта
Для решения задачи нами были введены следующие данные, представленные на рисунке 2.6
Рисунок 2.6 – Введенные данные
Запустим сортировку введенных данных.
Рисунок 2.7 – Вид программы после сортировки абитуриентов по фамилии
Найдем абитуриента проживающего в городе Брест.
Рисунок 2.8 – Информация об абитуриентахнайденных по критериям
Результаты отбора отображают информацию,
соответствующую выбранным
2.4 Графическое представление результатов
Результаты работы выводятся в информационное окно в правой части формы. Выводимая информация зависит от пользовательского запроса. Приведем примеры запросов и их обработка на рисунках 2.9 – 2.13.
Рисунок 2.9 – Начальное окно программы
Рисунок 2.10 – Заполненная программа
Рисунок 2.11 – Отсортированные данные
Рисунок 2.12 – Найденные данные
Рисунок 2.13 – Сохранение файла с информацией об абитуриентах
2.5 Анализ полученных результатов
Анализируя полученные при выполнении
программы результаты, приходим к
выводу, что они точно и полностью
соответствуют указанным
ЗАКЛЮЧЕНИЕ
В результате выполнения данной курсовой работы была изучена работа с формами и окнами в приложении Delphi.
Созданы формы для ввода данных и вывода полученных результатов для поставленного задания.
При выполнении
заданий данной курсовой работы были
получены представления о возможностях
интегрированной среды
Для работы с программами созданы формы, на которых размещены поля для ввода и вывода информации, кнопки для расчета выходных данных программы.
При выполнении курсовой работы:
- была изучена теория и технология работы с средой программирования BorlandDelphi;
- была изучена и проанализирована соответствующая литература;
- была составлена программа соответствующая заданию.
Полученная нами программа способна сортировать данные о игроках, выводить их по указанным параметрам и сохранять в файл.
Знания, полученные в результате работы над курсовым проектом, позволят в дальнейшем использовать Delphi для решения технических задач.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Бобровский, С.И. Delphi 7. Учебный курс / С. И. Бобровский – СПб.: Питер, 2004. – 736 с.
- Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования Учеб.пособие. / О. Л. Голицына – М.: ФОРУМ, 2004. – 400 с
- Банкел, Дж. Фундаментальные алгоритмы и структура данных в Deplhi / Дж. Банкел; пер. С. Ю. Смирнова. — 4-е изд. — М.: Юнити, 2008. — 691 с.
- Архангельский, А.Я. 100 компонентов общего назначения библиотеки Delphi / А. Я. Архангельский. — Москва : Бином, 2002. – 272 с.
ПРИЛОЖЕНИЕ
Листингпрограммы
unitUnit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Dialogs, StdCtrls,
Controls, Classes;
type
students=record
fam:string[20];
im:string[20];
otch:string[20];
adr:string[25];
mark1:1..10;
mark2:1..10;
mark3:1..10;
marksr:real;
end;
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Button4: TButton;
Button3: TButton;
SaveDialog1: TSaveDialog;
Button5: TButton;
Edit8: TEdit;
procedure Button4Click(Sender: TObject);
procedureFormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; gruppa:array [1..1000] of students; n,i,k:integer; b:boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
// добавление в список студентов
gruppa[i].fam:=Edit1.text;
gruppa[i].im:=Edit2.text;
gruppa[i].otch:=Edit3.text;
gruppa[i].adr:=Edit4.text;
gruppa[i].mark1:=strtoint(
gruppa[i].mark2:=strtoint(
gruppa[i].mark3:=strtoint(
if (gruppa[i].mark3>10) or (gruppa[i].mark2>10) or (gruppa[i].mark1>10) then
MessageDlg('
gruppa[i].marksr:=(gruppa[i].
memo1.Lines.Add(inttostr(i)+')
;edit1.clear; edit2.clear; edit3.clear; edit4.clear;
edit5.clear; edit6.clear; edit7.clear; end;
i:=i+1;n:=n+1;
end;
procedure TForm1.Button2Click(Sender: TObject);
var a:char; b:array [1..31] of string; c:array[1..31] of string; d:array [1..100000] of string;
v,x:integer;
begin
memo1.Lines.Add('результат сортировки по фамилии таковы :');
i:=1; //b - большие буквы , с- маленькие
for a:= #192 to #223 do begin
b[i]:=a; i:=i+1;end; i:=1;
for a:= #224 to #255 do begin
c[i]:=a; i:=i+1;end; // сортировка
for v:= 1 to 31 do begin
for x:= 1 to 31 do begin
for i:= 1 to n do begin
if (gruppa[i].fam[1]=b[v]) and (gruppa[i].fam[2]=c[x]) then
memo1.Lines.Add(gruppa[i].fam+
end; end; end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
// сохранение
if SaveDialog1.Execute then
memo1.Lines.SaveToFile(
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.Button5Click(Sender: TObject);
var x:string;
begin
// в городе X
x:=edit8.Text;
fori := 1 to n do
ifgruppa[i].adr=x then
memo1.Lines.Add(gruppa[i].fam+
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// создание формы
memo1.Clear;
memo1.Lines.Add('список студентов таков :');
i:=1; n:=0;
end;
end.