Курсовая работа: Разработка программы обработки файлов

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1.4 Сложности при разработке программного обеспечения

Поначалу ЭВМ применялись для упрощения реализации вычислений, но с развитием вычислительной техники возросла сложность возлагаемых задач [1]. Вместе с этим более сложной стала и разработка программного обеспечения.

В результате этого возник целый ряд трудностей.

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

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

2.1 Анализ предметной области

В настоящее время наблюдается повсеместное использование компьютеров. Не являются исключением и различные предприятия. Очевидно, что на каждом предприятии имеется штат сотрудников, занимающих различные должности. Для отлаженной работы предприятия необходимо хранить определенную информацию о каждом из сотрудников. До появления вычислительной техники, документация организовывалась и хранилась в бумажном виде. Но на нынешнем этапе развития технологии рационально использовать для этой же цели электронные вычислительные машины, которые позволяют хранить и обрабатывать информацию о сотрудниках в виде более удобном для пользователя. Один из таких способов структурирования данных - это использование списков.

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

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

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

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

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

2.2 Разработка интерфейса программы

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

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

На первой форме (Form1) располагаются три окна компонента TMemo (Memo1, Memo2, Memo3), которые обеспечивают вывод списка отдела №1, отдела №2 и нового сформированного отдела соответственно (рисунок 2.1). Под каждым компонентом TMemo располагается кнопка «Вывести», в результате нажатия на которую список выводится в соответствующее окно. Кроме того, здесь расположена кнопка «Добавить сотрудников», после нажатия на которую на экране появляется второе окно, предоставляющее пользователю возможность записи новых сотрудников.

Рисунок 2.1 - Форма приложения (Form1)

Вторая форма, появляющаяся после нажатия на кнопку «Добавить сотрудников», представлена на рисунке 2.2. На ней находятся компоненты TEdit (Edit1, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, Edit8), позволяющие вводить фамилию, имя, отчество и должность нового сотрудника в отдел №1 и в отдел №2. Также имеются кнопки «Записать», размещающие сведения о сотруднике в соответствующий текстовый файл.

Рисунок 2.2 - Форма приложения (Form2)

2.3 Алгоритмизация

После запуска программы «Объединение списков сотрудников» на экране появляется основное окно программы (рисунок 2.1).

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

Для создания списков сотрудников двух отделов некоторого предприятия необходимо в появившемся окне ввести соответствующую информацию о сотруднике (фамилию, имя, отчество, должность) в предназначенные для этого поля ввода, а затем воспользоваться кнопкой «Записать». После нажатия на данную кнопку, автоматически создастся файл, в который будет записана информация о новом сотруднике. Ниже приведена блок-схема процедуры (рисунок 2.3), реализующая добавление сотрудника в Отдел №1, то есть запись в текстовый файл Otdel_1.txt.

Рисунок 2.3 - Блок-схема процедуры добавления нового сотрудника в текстовый файл Otdel_1.txt

Аналогичная процедура осуществляет добавление сотрудника в Отдел №2 (запись в текстовый файл Otdel_2.txt).

После создания списков двух отделов с информацией о сотрудниках, их можно вывести на экран. Для этого следует воспользоваться на основном окне программы (рисунок 2.1) кнопкой «Вывести», относящейся к соответствующему отделу. Блок-схема процедуры, реализующей выполнение работы данной кнопки приведена на рисунках 2.4 - 2.5.

Рисунок 2.4 - Блок-схема процедуры вывода списка сотрудников на экран (фрагмент №1)

Рисунок 2.5 - Блок-схема процедуры вывода списка сотрудников на экран (фрагмент №2)

Процедура вывода списка сотрудников Отдела №2 на экран является аналогичной.

Основная задача данной программы - это объединение списков сотрудников и запись нового списка в текстовый файл. Для реализации поставленной задачи необходимо воспользоваться кнопкой «Вывести», расположенной в основном окне программы и относящейся к новому отделу. На рисунках 2.6 - 2.8 представлена блок-схема выполняемой при нажатии на данную кнопку процедуры.

Рисунок 2.6 - Блок-схема процедуры объединения списков, их сортировки и записи в текстовый файл (фрагмент №1)

Рисунок 2.7 - Блок-схема процедуры объединения списков, их сортировки и записи в текстовый файл (фрагмент №2)

Рисунок 2.8 - Блок-схема процедуры объединения списков, их сортировки и записи в текстовый файл (фрагмент №3)

2.4 Кодирование

Создание данной программы осуществлено при помощи языка программирования Object Pascal и среды разработки программного обеспечения Lazarus.

Исходный код программы с комментариями приведен в приложении А.

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

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

//Добавление нового сотрудника в Отдел №1

procedure TForm2.Button1Click(Sender: TObject);

begin

{$I-}Append(f1); //Открытие файла

{$I+}if IOResult<>0 then

begin

Rewrite(f1);

writeln(f1,'');

end;

if (Edit1.Text<>'') and (Edit2.Text<>'') and (Edit3.Text<>'') and (Edit4.Text<>'') then //Проверка наличия текста в полях

begin

writeln(f1,Edit1.Text+' '+Edit2.Text+' '+Edit3.Text+' '+Edit4.Text); //Перенос данных из полей в текстовый файл

CloseFile(f1); //Закрытие текстового файла

showmessage('Сотрудник успешно добавлен в Отдел №1'); //Вывод сообщения на экран

Edit1.Clear; //Очищение полей ввода

Edit2.Clear;

Edit3.Clear;

Edit4.Clear;

end else

begin

showmessage('Все поля должны быть заполнены'); //Вывод сообщения на экран

end;

end;

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

При помощи аналогичной процедуры происходит запись данных о сотруднике в Отдел №2 при нажатии на соответствующую кнопку «Записать».

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

//Вывод данных из файла Otdel_1.txt в Mемо1

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

AssignFile(f1,'Otdel_1.txt'); //Открытие файла

Reset(f1);

while (not EOF(f1)) do //Пока не достигнут конец файла

begin

Readln(f1, s);

Memo1.Lines.Add(s); //Добавление строки в Memo1

end;

CloseFile(f1); //Закрытие файла

BitBtn1.Enabled:=false; // Кнопка записи сторудников в Отдел №1 становится неактивной

if (BitBtn1.Enabled=false) and (BitBtn2.Enabled=false) then

BitBtn3.Enabled:=true; //Кнопка вывода объединенного списка активна

i:=0;

while (i<Memo1.Lines.Count) do //Пока i меньше числа строк в Memo1

if Memo1.Lines[i]='' then Memo1.Lines.Delete(i) //Удаление строки с индексом i, если она пустая

else inc(i); //Увеличение i на единицу

end;

Таким образом, после нажатия на данную кнопку, процедура которой была приведена выше, данные о сотрудниках Отдела №1 отображаются на экране в компоненте Memo1 основного окна программы. Блок-схема процедуры вывода списка сотрудников изображена на рисунках 2.4 - 2.5.

Аналогичная процедура осуществляет вывод на экран в компоненту Memo2 сотрудников Отдела №2 после нажатия на кнопку «Вывести».

Для объединения и сортировки двух сформированных списков используется кнопка «Вывести», относящаяся к новому отделу сотрудников. Выполнение данной кнопки в программе реализуется следующим образом:

//Объединение Отдела №1 и Отдела №2, сортировка по алфавиту

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

for i:=0 to Memo1.Lines.Count-1 do //От i=0 до (кол-во строк в Memo1)-1

Memo3.Lines[i]:=Memo1.Lines[i]; //Перенос строки с индексом i в Memo3

for i:=0 to Memo2.Lines.Count-1 do //От i=0 до (кол-во строк в Memo2)-1

Memo3.lines[i+Memo1.Lines.Count]:=Memo2.Lines[i]; //Перенос строки с индексом i в Memo3

for i:=0 to Memo3.Lines.Count do //От i=0 до (кол-во строк в Memo3)

for j:=0 to Memo3.Lines.Count-i do //От j=0 до (кол-во строк в Memo3)-1

if (Memo3.Lines[j]>Memo3.Lines[j+1]) then //Сортировка

begin

P:=Memo3.Lines[j]; //Перестановка строк

Memo3.Lines[j]:=Memo3.Lines[j+1];

Memo3.Lines[j+1]:=P;

end;

i:=0;

while (i<Memo3.Lines.Count) do //Пока i меньше числа строк в Memo3

if Memo3.Lines[i]='' then Memo3.Lines.Delete(i) //Удаление строки с индексом i, если она пустая

else inc(i); //Увеличение i на единицу

AssignFile(f3,'New_Otdel.txt'); //Открытие файла

Rewrite(f3);

writeln(f3, 'НОВЫЙ ОТДЕЛ');

for i:=0 to Memo3.Lines.Count-1 do //Запись нового списка в файл New_Otdel.txt

Writeln(f3, Memo3.Lines[i]);

CloseFile(f3); //Закрытие файла

showmessage('Новый список сотрудников создан!'); //Вывод сообщения

BitBtn3.Enabled:=false; //Кнопка вывода объединенного списка неактивна

end;

В результате выполнения приведенной процедуры, блок-схема которой представлена на рисунках 2.6 - 2.8, на экран в компоненту Memo3 выводится объединенный и отсортированный список сотрудников нового отдела, который также записывается в текстовый файл New_Otdel.txt.

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

2.5 Тестирование программы

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

Поле запуска программы на экране появляется основное окно программы, на котором активными являются три кнопки (рисунок 2.9).

Проверим корректность работы кнопки «Добавить сотрудников».

Рисунок 2.9 - Проверка кнопки «Добавить сотрудников» (контрольный пример №1)

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

Рисунок 2.10 - Результат работы кнопки «Добавить сотрудников»

Далее проверим работоспособность кнопок записи сотрудников в текстовые файлы. Введем данные о сотруднике в соответствующие поля и воспользуемся кнопкой «Записать» (рисунки 2.11 - 2.14).

Рисунок 2.11 - Проверка кнопки записи сотрудников в Отдел №1 (контрольный пример №2)

Рисунок 2.12 - Результат работы кнопки записи сотрудников в Отдел №1

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

Рисунок 2.13 - Проверка кнопки записи сотрудников в Отдел №2 (контрольный пример №3)

Рисунок 2.14 - Результат работы кнопки записи сотрудников в Отдел №2

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

Источник: https://otherreferats.allbest.ru/download/1124327/