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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 18.02.2019
Размер файла 4,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Введение

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

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

Существует ряд причин, по которым язык программирования Pascal приобрел такую широкую популярность:

а) простота для обучения, благодаря удачному первоначальному описанию и компактности;

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

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

г) использование простых и гибких структур управления: ветвлений, циклов;

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

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

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

1. Некоторые сведения о разработке программного обеспечения (ПО)

интерфейс программный алгоритм

1.1 Технология программирования и ее развитие

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

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

Совокупность всех используемых в процессе разработки программного обеспечения средств и методов называют технологией программирования [1], которая включает в себя следующие технологические инструкции:

а) порядок выполнения технологических операций;

б) условия к выполнению какой-либо операции;

в) подробное описание операций.

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

Этап первый носит название «стихийного» программирования.

Он имел место с момента возникновения первых ЭВМ до середины 60-х годов XX века. Как таковые технологии программирования в этот период отсутствовали, а само программирование воспринималось как некоторое подобие искусства.

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

Благодаря появлению языков программирования Fortran и Algol, стало возможным осуществление написания программ, имеющих более сложную структуру [1].

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

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

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

Второй этап (60-70-е годы XX века) получил название структурного подхода.

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

Стали появляться языки программирования, получившие называние процедурных, основанные на структурном подходе. К таким языкам программирования относятся: PL/1, ALGOL-68, Pascal, С.

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

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

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

Этап третий - объектный подход к программированию

Данный этап имел место с середины 80-х до конца 90-х годов XX века.

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

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

Объектно-ориентированное программирование (ООП) обладает следующими достоинствами:

а) объектная декомпозиция;

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

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

Инкапсуляцией называется объединение данных и обрабатывающих их функций и процедур в отдельные объекты с целью их обработки [11]. Основная задача инкапсуляции - это обеспечение согласованности внутреннего состояния объекта.

Одно из важнейших свойств ООП - это наследование. Ключевым его принципом является создание нового класса на основе другого уже существующего, что позволяет значительно снизить вероятность ошибок и сделать код программы более простым для понимания. При этом все поля, методы и свойства порожденного класса наследуются от класса родителя [11].

Следующим свойством ООП является полиморфизм, под которым понимается возможность использования одинаковых имен для методов, входящих в разные классы [11].

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

Несмотря на наличие ряда достоинств, объектно-ориентированный подход обладает тем не менее и недостатками. Одним из них при создании программы на основе объектных языков программирования (Pascal, C++) является существование взаимодействия модулей между собой, в результате которого проявляется их зависимость друг от друга.

Четвертый этап - компонентный подход и CASE технологии

Середина 90-х годов XX века является началом данного этапа. Он продолжается и в наши дни.

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

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

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

1.2 Жизненный цикл программного обеспечения

Жизненный цикл ПО (ЖЦ ПО) - это одно из основных определений, используемых при создании программных продуктов.

Существует международный стандарт ISO/1EC 12207: 1995 «Information Technology - Software Life Cycle Processes», что означает: «Информационные технологии - Процессы жизненного цикла программного обеспечения». Он представляет собой документ, регламентирующий следующие основные параметры: жизненный цикл ПО и реализуемые при разработке ПО действия и задачи [6].

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

Все модели ЖЦ ПО основываются на пяти базовых этапах.

Название и краткая характеристика данных этапов в соответствии с ГОСТ 19.102-77 представлены в таблице 1.

Таблица 1 - Этапы жизненного цикла программного обеспечения

Название этапа

Краткое содержание

1 Техническое задание

Постановка задачи; отбор критериев эффективности; выполнение предварительных научно-исследовательских работ; создание технического задания.

2 Эскизный проект

Формирование структуры входных и выходных данных; конкретизация методов решения; составление общего алгоритма; создание документации эскизного проекта.

3 Технический проект

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

4 Рабочий проект

Программирование и отладка; создание документов; разработка и осуществление испытаний; исправление программы и документов в результате испытаний.

5 Внедрение

Передача программы и документов для сопровождения; составление акта; передача в Фонд алгоритмов и программ (ФАП)

1.3 Требования к программному обеспечению

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

Требования к программным продуктам делятся на две группы: функциональные и эксплуатационные.

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

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

Формируется функциональная спецификация, в которой подробно указываются действия продукта [6]:

а) Описывается внешняя информационная среда, используемая создаваемым программным продуктом. Определяются взаимодействия информационных объектов и необходимые каналы ввода/вывода;

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

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

Следующая разновидность требований - это эксплуатационные требования. Они представляют собой совокупность параметров программного продукта [5], приведенных ниже в таблице 2.

Таблица 2 - Параметры эксплуатационных требований

Требование

Пояснение

Правильность

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

Универсальность

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

Надежность

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

Проверяемость

Убеждение в правильности полученных результатов.

Точность результатов

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

Защищенность

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

Программная совместимость

Способность функционировать совместно с другим программным обеспечением.

Аппаратная совместимость

Способность функционировать совместно с некоторым оборудованием.

Эффективность

Применение минимального количества ресурсов технических средств.

Адаптируемость

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

Реентерабельность

«Параллельное» использование одновременно несколькими процессами.

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

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

Следующим действием после формирования списков сотрудников является вывод образованных списков на экран, осуществляемый кнопкой «Вывести» в основном окне программы. Проверим работу кнопок вывода списков сотрудников Отдела №1 и Отдела №2 (рисунки 2.15 - 2.18).

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

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

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

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

Полученные в результате проверки результаты означают, что работа кнопок вывода списков сотрудников на экран выполняется корректно.

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

Проверим правильность выполнения данной кнопки (рисунки 2.19 - 2.21).

Рисунок 2.19 - Проверка кнопки вывода объединенного списка сотрудников (контрольный пример №6)

Рисунок 2.20 - Результат работы кнопки вывода объединенного списка сотрудников

Рисунок 2.21 - Результат работы кнопки вывода объединенного списка сотрудников

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

Заключение

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

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

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

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

Кроме того, были закреплены и применены на практике знания, полученные в результате изучения дисциплины «Языки программирования».

Литература

1. Технология программирования: учебное пособие / Ю. Ю. Громов, О. Г. Иванова, М. П. Беляев, Ю. В. Минин. Тамбов: Изд-во ФГБОУ ВПО «ТГТУ», 2013. 172 с.

2. Свободное программное обеспечение. FREE PASCAL для студентов и школьников / Ю. Л. Кетков, А. Ю. Кетков. СПб.: БХВ-Петербург, 2011. 384 с.

3. Теория и практика языков программирования: Учебник для вузов. Стандарт 3-го поколения. / С. А. Орлов. СПб.: Питер, 2013. 688 с.

4. Объектно-ориентированное мышление. / М. Вайсфельд. СПб.: Питер, 2014. 304 с.

5. Технология разработки программного обеспечения: учебное пособие / под реакцией Л. Г. Гагариной. М.: ИД «ФОРУМ»: ИНФРА-М, 2013. 400 с.

6. Технология разработки программного обеспечения: конспект лекций / сост. И. И. Савенко; Томский политехнический университет. Томск: Изд-во Томского политехнического университета, 2014. 67 с.

7. Программирование на языке Pascal в среде Lazarus: учебное пособие для студентов и преподавателей вузов / сост.: В. Б. Ефлов, Ю. В. Никонова. Петрозаводск: Изд-во ПетрГУ, 2013. 53 с.

8. Объектно-ориентированное программирование. Хорошая книга для хороших людей. М.: СОЛОН-Пресс, 2014. 298 с.

9. Free Pascal и Lazarus. Учебник по программированию. / Е. Р. Алексеев, О. В. Чеснокова, Т. В. Кучер. М.: ALT Linux; Издательский дом ДМК-пресс, 2010. 440 с.

10. Технология разработки программного обеспечения: учеб. пособие / В. В. Бахтизин, Л. А. Глухова. Минск: БГУИР, 2010. 267 с.

11. Основы программирования в среде Lazarus. / Мансуров К.Т. М.: Нобель Пресс, 2010. 772 с.

12. Язык программирования Pascal [Электронный ресурс] - Режим доступа: http://progopedia.ru/language/pascal/

13. ГОСТ 19.102-77. Единая система программной документации. Стадии разработки. М.: Стандартинформ, 2010. 2 с.

14. Лекция 5. Модели жизненного цикла ПО, проектирование как конструирование [Электронный ресурс] - Режим доступа: http://it-claim.ru/Education/Course/ISDevelopment/Lecture_5.pdf

15. Требования к программному обеспечению [Электронный ресурс] - Режим доступа: http://studopedia.org/6-68969.html

16. Правила разработки и создания программ [Электронный ресурс] - Режим доступа: http://avk-tv.ru/Linux1U_avk.php

17. Оптимизация процесса разработки программного обеспечения [Электронный ресурс] - Режим доступа: http://software-testing.ru/files/library/Software_Delivery_Optimization_Exec.pdf

18. Программирование. ООП в Pascal-Паскаль [Электронный ресурс] - Режим доступа: http://www.pascal.helpov.net/index/object-oriented_programming_pascal_programming

19. Объектно-ориентированные средства языка Turbo Pascal [Электронный ресурс] - Режим доступа: http://vtit.kuzstu.ru/books/shelf/162/doc/p2.html

20. Сортировка методом пузырька [Электронный ресурс] - Режим доступа: http://pas1.ru/bubbles

Приложение А

Исходный код

Модуль Unit 1:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,

Buttons, ExtCtrls, Unit2;

type

{ TForm1 }

TForm1 = class(TForm)

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

Button1: TButton;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Memo1: TMemo;

Memo2: TMemo;

Memo3: TMemo;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ private declarations }

public

{ public declarations }

end;

var

Form1: TForm1;

f1,f2,f3:text;

s,P: string;

i,j:integer;

implementation

{$R *.lfm}

{ TForm1 }

//Вывод данных из файла 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;

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

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

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

Reset(f2);

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

begin

Readln(f2, s);

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

end;

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

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

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

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

i:=0;

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

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

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

end;

//Объединение Отдела №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;

//Делает видимой форму для добавления новых сотрудников в файлы

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.Visible:=true; //Форма Form2 станоится видимой

end;

end.

Модуль Unit 2:

unit Unit2;

{$mode objfpc}{$H+}

interface

uses

Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,

Buttons, ExtCtrls;

type

{ TForm2 }

TForm2 = class(TForm)

Button1: TButton;

Button2: TButton;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Edit1KeyPress(Sender: TObject; var Key: char);

private

{ private declarations }

public

{ public declarations }

end;

var

f1,f2:text;

Form2: TForm2;

implementation

{$R *.lfm}

{ TForm2 }

procedure TForm2.FormCreate(Sender: TObject);

begin

AssignFile(f1,'Otdel_1.txt');

AssignFile(f2,'Otdel_2.txt');

end;

//Добавление нового сотрудника в Отдел №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

procedure TForm2.Button2Click(Sender: TObject);

begin

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

{$I+}if IOResult<>0 then

begin

Rewrite(f2);

writeln(f2,'');

end;

if (Edit5.Text<>'') and (Edit6.Text<>'') and (Edit7.Text<>'') and (Edit8.Text<>'') then //Проверка наличия текста в полях

begin

writeln(f2,Edit5.Text+' '+Edit6.Text+' '+Edit7.Text+' '+Edit8.Text); //Перенос данных из полей в текстовый файл

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

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

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

Edit6.Clear;

Edit7.Clear;

Edit8.Clear;

end else

begin

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

end;

end;

//Проверка правильности введенных символов при добавлении новых сотрудников

procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: char);

begin

if (not(key in [#192..#255,#8])) then //192-255 кодировка русских букв в ASCII, 8-backspace

begin

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

key:=#0; //

end;

end;

end.

Приложение Б

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

1 Общие сведения о программном продукте

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

2 Запуск программного продукта

Для запуска программы обработки файлов двойным щелчком левой кнопки мыши откройте на диске папку «Исполняемый файл» (рисунок 1).

Рисунок 1 - Запуск программы обработки файлов

В появившемся окне дважды кликните по файлу «Объединение списков.exe» (рисунок 2).

Рисунок 2 - Запуск программы обработки файлов

В результате на экране появится основное окно программы обработки файлов (рисунок 3).

Рисунок 3 - Основное окно программы обработки файлов

Для переноса программы на компьютер следует скопировать папку «Исполняемый файл» на рабочий стол.

3 Работа с программным продуктом

3.1 Создание списка сотрудников

В появившемся окне программы обработки файлов (рисунок 3) для добавления новых сотрудников нажмите на кнопку «Добавить сотрудников» (рисунок 4).

Рисунок 4 - Добавление сотрудников

В результате на экране появится окно программы для добавления сотрудников (рисунок 5).

Рисунок 5 - Окно добавления сотрудников

В соответствующие поля введите фамилию, имя, отчество и должность сотрудника Отдела №1 или Отдела №2 и нажмите на кнопку «Записать» (рисунок 6).

Рисунок 6 - Пример добавления сотрудника в Отдел №1

На экране появится сообщение, уведомляющее об успешном добавлении сотрудника (рисунок 7).

Рисунок 7 - Сообщение на экране

В результате в папке с исполняемым файлом создастся текстовый файл Otdel_1.txt, в который будет добавлен новый сотрудник (рисунок 8).

Рисунок 8 - Текстовый файл со списком сотрудников Отдела №1

В результате последовательного ввода информации о сотрудниках в поля ввода и нажатия на кнопку «Записать» формируется список сотрудников Отдела №1 (рисунок 9).

Рисунок 9 - Список сотрудников Отдела №1

Аналогичным образом осуществляется формирование списка сотрудников Отдела №2 (рисунки 10-13).

Рисунок 10 - Пример добавления сотрудника в Отдел №2

Рисунок 11 - Сообщение на экране

Рисунок 12 - Текстовый файл со списком сотрудников Отдела №2

Рисунок 13 - Список сотрудников Отдела №2

3.2 Вывод списка сотрудников на экран

Для вывода списка сотрудников Отдела №1 на экран нажмите на кнопку «Вывести» в основном окне программы (рисунки 14-15).

Рисунок 14 - Вывод списка сотрудников Отдела №1 на экран

Рисунок 15 - Вывод списка сотрудников Отдела №1 на экран

Аналогичным образом осуществляется вывод списка сотрудников Отдела №2 на экран (рисунки 16-17).

Рисунок 16 - Вывод списка сотрудников Отдела №2 на экран

Рисунок 17 - Вывод списка сотрудников Отдела №2 на экран

3.3 Объединение и сортировка списков

Для объединения и сортировки списков сотрудников Отдела №1 и Отдела №2 нажмите на кнопку «Вывести» в основном окне программы (рисунки 18-19).

Рисунок 18 - Объединение и сортировка списков сотрудников Отдела №1 и Отдела №2

Рисунок 19 - Объединение и сортировка списков сотрудников Отдела №1 и Отдела №2

На экране появится сообщение, уведомляющее о создании нового списка сотрудников (рисунок 20).

Рисунок 20 - Сообщение на экране

В результате в папке с исполняемым файлом создастся текстовый файл New_Otdel.txt, в который будет добавлен новый список сотрудников (рисунки 21 - 22).

Рисунок 21 - Текстовый файл с новым списком сотрудников

Рисунок 22 - Список сотрудников нового Отдела

Размещено на Allbest.ru


Подобные документы

  • Язык программирования Pascal и его турбооболочка. Аналитический обзор игрового программного обеспечения. Функции модуля Crt. Постановка задачи создания несложной игровой программы "Турбозмей", алгоритм реализации и описание пользовательского интерфейса.

    курсовая работа [100,4 K], добавлен 15.05.2014

  • Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.

    курсовая работа [1,5 M], добавлен 08.02.2011

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

    отчет по практике [700,5 K], добавлен 24.11.2014

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

    дипломная работа [1,3 M], добавлен 18.06.2015

  • Исследование теоретических аспектов разработки программы посредством использования Visual Basic. Анализ достоинств и недостатков данного языка программирования. Изучение особенностей создания интерфейса приложения. Основные этапы реализации программы.

    практическая работа [460,6 K], добавлен 22.01.2013

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

    курсовая работа [1,5 M], добавлен 06.12.2012

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

    дипломная работа [1,7 M], добавлен 13.06.2017

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

    курсовая работа [37,7 K], добавлен 03.05.2012

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

    курсовая работа [501,4 K], добавлен 07.12.2016

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

    курсовая работа [449,8 K], добавлен 14.01.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.