Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт(печать с 5 стр).docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.17 Mб
Скачать

3. Разработка программного средства

Для разработки программного средства использовалась среда программирования Delphi - Embarcadero RAD studio XE2, предоставляющая возможность визуального создания программ.

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

4. Технические приемы программирования

1) При разработке интерфейса программы были использованы следующие компоненты Delphi:

  • TLabel для установки поясняющих текстовых меток;

  • TEdit для ввода данных;

  • TCombobox для выбора неисправности при регистрации а также при выборе интервала времени на графике;

  • TButton для выполнения определённого действия по нажатию кнопки;

  • TRadioGroup для выбора типа сортировки;

  • TStringGrid для отображения списков;

  • TPanel для удобства размещения операций;

  • TChart для отображения графика.

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

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

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

5) С целью экономии памяти определена процедура для физического удаления списков.

Пример:

procedure TFrmServiceAddresses.BtnDeleteAddressClick(Sender: TObject);

var

H, Temp: PServiceAdds;

begin

if SgAdds.Row <> 0 then

begin

if (HeadAdds^.Street = SgAdds.Cells[0, SgAdds.Row]) and

(HeadAdds^.Number = SgAdds.Cells[1, SgAdds.Row]) then

begin

Temp := HeadAdds;

HeadAdds := HeadAdds^.Next;

Dispose(Temp);

end

else

begin

H := HeadAdds;

while (H^.Next^.Street <> SgAdds.Cells[0, SgAdds.Row]) and (H^.Next^.Number <> SgAdds.Cells[1, SgAdds.Row]) do

H := H^.Next;

Temp := H^.Next;

H^.Next := H^.Next^.Next;

Dispose(Temp);

end;

GridDeleteRow(SgAdds.Row);

end;

end;

5. Тестирование, экспериментальные исследования и анализ полученных данных

Таблица 5.1 - Результаты тестов подпрограмм

Название подпрограммы

Входные данные

Ожидаемые результаты

Пример вызова

Полученные результаты

AddReply

Принимает введенные пользователем в поля ввода данные о жителе.

Чтение данных, проверка и занесение в список новой заявки.

Содержимое полей ввода:

Пушкин А.С.; ул. Строителей; 42; 54; 758493; лифт; не готово

Данные из полей ввода прочитаны, проверены на корректность, в список занесена новая заявка, содержащая введенные данные.

Содержимое полей ввода: Михалков Р.Н.; ул. Гикало; 34; 26; 758493; техобслуживание; не готово

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

Change

Reply

Принимает введенные пользователем в поля ввода данные о жителе.

Чтение данных, проверка и изменение в списке данных о заявке.

Содержимое полей ввода: Пушкин А.С.; ул. Строителей; 42; 54; 907356; лифт; готово

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

Содержимое полей ввода: Крестов А.И.; ул. Строителей; 42; 54; 643648; водоснабжение; не готово

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

DeleteReply

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

Поиск и удаление из списка заявки с заданными данными.

Содержимое полей строки таблицы: Пушкин А.С.; ул. Строителей; 42; 54; 907356; лифт; готово

Был найден и удален из списка диск с заданными данными.

SearchBy

Number

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

Чтение введенных данных, вывод на экран найденной по данному запросу заявки.

Содержимое поля ввода: 2

Данные прочитаны, поиск заявки с введённым номером, на экран была выведена заявка .

Содержимое поля ввода:

7

Данные прочитаны, поиск заявки с введённым номером, на экран не была выведена заявка , т.к. заявки с заданным номером не существует, выдано соответствующее сообщение.

SortByName

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

Список успешно отсортировался.

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