Создание программы на языке Delphi 70 Написание программы

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

СЄВЄРОДОНЕЦЬКЕ ВИЩЕ ПРОФЕСІЙНЕ УЧИЛИЩЕ

ЗАТВЕРДЖУЮ:

Заступник директора з УВР

_____________ О.П. Лимар

"_______________" 2010 р.











КАЛЕНДАРНИЙ ПЛАН

НА КУРСОВУ РОБОТУ СТУДЕНТА ГРУПИ № Т-09-4

Козирєв Артем Миколайович

Спеціальність: 5.091504 "Обслуговування комп’ютерних та інтелектуальних систем та мереж"



№ п/п

Найменування етапів дипломної кваліфікаційної роботи

Термін виконання етапів роботи

Примітка

1

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





2

Математичний опис задачі





3

Розробка алгоритму програми





4

Структура програми, опис її структурних компонентів





5

Описання початкових даних, на які розрахована програма





6

Розробка інструкції оператору





7

Тестування програми та її оптимізація





8

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







Випускник

Керівник роботи




МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

СЄВЄРОДОНЕЦЬКЕ ВИЩЕ ПРОФЕСІЙНЕ УЧИЛИЩЕ

















ВІДГУК

НА КУРСОВУ РОБОТУ СТУДЕНТА ГРУПИ № Т-09-4

Козирєв Артем Миколайович

Спеціальність: 5.091504 "Обслуговування комп’ютерних та інтелектуальних систем та мереж"

		Тема роботи "Розробка програми за допомогою мови програмування Delphi"

		Керівник роботи Руднєв Максим Миколайович

		Загальна характеристика курсової роботи: 

		Попередня оцінка:

		Робота захищена з оцінкою:

Керівник роботи   М. М. Руднєв

"____"___________2010 р.




СОДЕРЖАНИЕ



РЕФЕРАТ

ВВЕДЕНИЕ

1. Анализ технического задания и постановка задачи проектирования

2. Разработка алгоритма программы

3. ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ

4. ОПИСАНИЕ ВХОДНЫХ ДАННЫХ

5. ОПИСАНИЕ ВЫХОДНЫХ ДАННЫХ

6. ИНСТРУКЦИЯ ОПЕРАТОРУ

ВЫВОДЫ

Перечень ссылок

ПРИЛОЖЕНИЕ А

ПРИЛОЖЕНИЕ Б

	


РЕФЕРАТ 



Пояснительная записка к курсовой работе содержит:

страниц - 24;

рисунков - 7;

таблиц – 1 ;

приложений – 2.

Цель работы: разработать программу, на языке Delphi, работы с клиентами, с данными: номер по порядку, наименование клиента, вид услуги, дата начала работы с клиентом и срок абонентской платы, предусмотреть ввод, редактирование и удаление данных

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

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

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

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

Алгоритмы процедур приведены в приложении А.

Листинг программы содержится в приложении Б.

Результат тестового запуска приведен в приложении В.

Программа разработана с использованием языка Delphi.

ТЕКСТОВЫЙ ФАЙЛ, РАБОТА С КЛИЕНТОМ, ДИАЛОГОВОЕ ОКНО, ЦИКЛИЧЕСКИЕ КОНСТРУКЦИИ




ВВЕДЕНИЕ



Данный курсовой проект был разработан в среде Delphi 7 с базовым языком программирования Delphi. Среди множества языков Delphi является наиболее универсальным и легко изучаемым языком. На сегодня Delphi поддерживает все современные возможности объектно-ориентированного программирования в такой мощной системе проектирования как Delphi 7. 

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

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

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

- анализ технического задания и постановка задачи проектирования;

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

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

- составление программы согласно разработанным алгоритмам на языке Delphi;

- отладка программы на тестовых наборах;

- составление и оформление пояснительной записки.

Теоретическая и практическая значимость заключается в закреплении навыков составления алгоритмов поставленных задач и программирования на языке Delphi.






1. Анализ технического задания и постановка задачи проектирования



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

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

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

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

- вывод на экран информации о задании и назначении программы;

- чтение из файла данных и вывод их на экран;

- ввод, редактирование, удаление данных.

- сохранение изменений в текстовый файл.

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



2. Разработка алгоритма программы



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

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

Далее необходимо считать информацию из текстового файла и занести ее в таблицу в соответствующие столбцы, для этого необходимо выполнение следующего условия: отделить вид данных (например, номер по порядку, от даты абонентской платы);

Для выполнения этого условия необходимо первоначально открыть файл для чтения. Затем прочитать строку из файла и разделить вид данных при помощи разделителя.

Составим следующий алгоритм:

Привязать файл, к конкретной файловой переменной.

Открыть файл для чтения.

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

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

Проверить символ на сходство с символом разделителя - "|", который задан, пока не наступит конец считанной строки. Если наступил конец строки, то перейдем к пункту 3.

Если символ – разделитель то запишем предыдущие символы в строку 1 столбца 1, и вернемся на пункт 5 с уже с этого места.

Если по окончании цикла не найден разделитель "|", то запишем его и создадим новую строку.

Конец считывания из файла, и занесение данных в таблицу.

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

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

Детальное описание разработанной программы, алгоритмов и их программной реализации приведено в последующих разделах.



3. ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ



Описание переменных

В разделе описаний переменных описаны переменные, назначение которых приведено в таблице 3.1.



Таблица 3.1– Описание переменных программы 

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

Тип

Назначение

f

TextFile

Переменная текстового файла, из которого производится считывание, а так же заносятся изменения, базы данных

str, t

String

Строковые переменные для чтения из файла 

k, i, j, g

integer

Переменные счетчики для циклов

t

string

Переменная, в которую считываются данные из файла

str1,str2,str3,str4,str5

string

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

Fname

String

Строка, в которой хранится путь к исходному файлу



Описание вспомогательной процедуры

В программе приведено описание одной вспомогательной процедуры.

Процедура FormCreate отвечает за открытие и заполнение компоненты stringgrid.

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

Алгоритм основной программы

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

Затем производится чтение информации из файла построчно.

Затем в каждой строке выделяются слова.

Затем осуществляется поиск в выделенных словах разделителя.

Далее, если найден разделитель, происходит запись данных из файла в таблицу программы.

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



AssignFile (<Имя файловой переменной>,<Имя файла>);



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



Reset (<Имя файловой переменной>);



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

После работы с файлом он, как правило, должен быть закрыт процедурой CloseFile (<Имя файловой переменной>). Чтение информации производит оператор Readln(f,str). После его выполнения строка из файла заносится f в переменную строкового типа данных str.




4. ОПИСАНИЕ ВХОДНЫХ ДАННЫХ



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



5. ОПИСАНИЕ ВЫХОДНЫХ ДАННЫХ



Выходными данными являются:

- изменение данного текстового файла;

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



6. ИНСТРУКЦИЯ ОПЕРАТОРУ



Разработанная программа представляет собой исполняемый файл Kozirev.exe размером 430 Кбайт. В программе реализован алгоритм программы для работы с клиентами, которая содержит следующие пункты: номер по порядку, наименование клиента, вид услуги, дата начала работы с клиентом, срок абонентской платы. Предусмотрено ввод, редактирование и удаление данных. После запуска программы появляется окно, изображенное на рисунке 4.1.

После этого пользователь должен заполнить таблицу. На рисунке 4.2 показан пример диалогового окна с заполненной таблицей.






Рисунок 4.1 – Главное окно программы





Рисунок 4.2 – Пример заполненной таблицы



После заполнения таблицы необходимо сохранить внесенные изменения в текстовый файл. Что осуществляется по нажатию кнопки "Записать". Пример этого действия показан на рисунке 4.3.и 4.4.

Пример сообщения о нахождении заглавного символа приведен на рисунке 4.3.






Рисунок 4.3– Пример текстового фала до нажатия кнопки "Записать"





Рисунок 4.4- Пример текстового фала после нажатия кнопки "Записать".



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

Функционирование программы полностью соответствует заданию.




ВЫВОДЫ



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

В ходе выполнения курсового проекта были проведен - анализ технического задания и постановка задачи проектирования.

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

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

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

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

В ходе разработки программы были закреплены навыки работы:

- командами ввода-вывода как на экран, так и в текстовые файлы,

- использования процедур,

- команды обработки массивов,

- команды для реализации циклов с заданным числом повторений;

- команды проверки условий и реализации ветвлений.

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


Перечень ссылок



		Зуев Е.А. Программирование на языке Delphi 6.0,7.0. – М.: Радио и связь, Веста, 1993.

	Фаронов В.В. Delphi 7.0. Начальный курс. - М.: Нолидж, 2000.




П

РИЛОЖЕНИЕ А



Алгоритм программы





Процедура FormCreate

Процедура Button1Click

Конец

 Начало

Рисунок А.1 – Алгоритм программы






Rewrite (f)

нет

t:=t+str[k];

Начало

Fname:= 'd:/text.txt';

AssignFile (f,fname);

{$I-}

reset(f);

{$I+}

       

if IOResult <> 0 then

да

нет

t:='';

j:=1;

StringGrid1.Cells[0,0]:='№ п/п';

StringGrid1.Cells[1,0]:='Клиент';

StringGrid1.Cells[2,0]:='Операция';

StringGrid1.Cells[3,0]:='Дата начала работы с клиентом';

StringGrid1.Cells[4,0]:='Срок абон. платы';



Readln(f,str);

i:=0;

while not EOF(f) do begin



for k:=1 to Length(str) do begin

for k:=1 to Length(str) do begin

да

StringGrid1.Cells[i,j]:=t;

i:=i+1;

t:=''; 

end

end;

j:=j+1;

end;

 CloseFile(f);

Конец

Рисунок А.2 – Алгоритм основной процедуры программы




Начало

Fname:= 'd:/text.txt';

AssignFile (f,fname);

Rewrite (f);

i:=0;

j:=1

for g:=1 to 1000 do begin

begin

str1:='';

str2:='';

str3:='';

str4:='';

str5:='';

end;

if StringGrid1.Cells[0,j] <> '' then begin

нет

да

str1:=StringGrid1.Cells[0,j];

str2:=StringGrid1.Cells[1,j];

str3:=StringGrid1.Cells[2,j];

str4:=StringGrid1.Cells[3,j];

str5:=StringGrid1.Cells[4,j];

end;

j:=j+1;

write(f,str1+'|');

write(f,str2+'|');

write(f,str3+'|');

write(f,str4+'|');

write(f,str5+'|');

writeln(f,'');

end;

CloseFile(f);

Конец

Рисунок А.3 – Алгоритм вторичной процедуры программы




ПРИЛОЖЕНИЕ Б



Листинг программы



unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids;

type

TForm1 = class(TForm)

Button1: TButton;

StringGrid1: TStringGrid;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

f:TextFile;

i,j,g:integer;

Fname,str1,str2,str3,str4,str5: string;

begin

Fname:= 'd:/text.txt';

AssignFile (f,fname);

Rewrite (f);

i:=0;

j:=1;

for g:=1 to 1000 do begin

begin

str1:='';

str2:='';

 str3:='';

str4:='';

str5:='';

end;

if StringGrid1.Cells[0,j] <> '' then begin

str1:=StringGrid1.Cells[0,j];

str2:=StringGrid1.Cells[1,j];

str3:=StringGrid1.Cells[2,j];

str4:=StringGrid1.Cells[3,j];

str5:=StringGrid1.Cells[4,j];

end;

j:=j+1;

write(f,str1+'|');

write(f,str2+'|');

write(f,str3+'|');

write(f,str4+'|');

write(f,str5+'|');

writeln(f,'');



end;

CloseFile(f);

end;



procedure TForm1.FormCreate(Sender: TObject);

//Открытие и заполнение компоненты stringgrid

var

f: TextFile;

str,t,Fname: string;

k,i,j:integer;

begin

Fname:= 'd:/text.txt';

AssignFile (f,fname);

{$I-}

reset(f);

{$I+}

if IOResult <> 0 then

Rewrite (f);

 t:='';

j:=1;

StringGrid1.Cells[0,0]:='№ п/п';

StringGrid1.Cells[1,0]:='Клиент';

StringGrid1.Cells[2,0]:='Операция';

StringGrid1.Cells[3,0]:='Дата начала работы с клиентом';

StringGrid1.Cells[4,0]:='Срок абон. платы';

while not EOF(f) do begin

Readln(f,str);

i:=0;

for k:=1 to Length(str) do begin

if str[k] = '|' then begin

StringGrid1.Cells[i,j]:=t;

i:=i+1;

t:='';

end

else

t:=t+str[k];

end;

j:=j+1;

end;

CloseFile(f);

end;

end.

нт