Следующим действием после формирования списков сотрудников является вывод образованных списков на экран, осуществляемый кнопкой «Вывести» в основном окне программы. Проверим работу кнопок вывода списков сотрудников Отдела №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).