Приложение «Возведение чисел в квадрат»




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

1. Анализ требований и уточнение спецификаций

1.1 Разработка начинается с анализа задачи в целях определения основных состояний интерфейса. •

Для данной задачи можно использовать интерфейс с тремя состояниями:

а) исходное состояние, в котором приложение ожидает ввода числа, возводимого в квадрат;

б) состояние вывода результата;

в) возможное состояние вывода сообщения об ошибочном вводе исходного числа.

 

1.2. Для каждого состояния разрабатывается внешнее представление (экранная форма), т. е. вид окна приложения в каждом случае (рис. 1а, б, в).

 

1.3. Выполняется объектная декомпозиция интерфейсной и предметной частей приложения. Интерфейсная часть включает два объекта: Главное окно приложения и Окно сообщения об ошибке. Добавим еще один объект - Приложение. Этот объект при программировании в Windows играет роль основной программы. Предметная часть очень проста и может быть реализована без выделения объектов. Результат объектной декомпозиции может быть представлен графически (рис. 2).

 

2. Проектирование приложения

2. 1. Логическое проектированиеинтерфейса илиразработка структуры классов выполняется с использованием среды разработки Delphi:

а) вначале организуется новый проект и, используя визуальную технологию, создается окно главной формы (рис. 3). При этом среда автоматически строит описание класса TForm1, наследуемого от библиотечного класса TForm, и включает в него объектные поля визуальных компонент, руководствуясь эскизом экранной формы;

 

 

Рис. 1. Вид главного окна приложения в разных состояниях:

а — состоянии ввода; б — состоянии вывода результата; в — состоянии вывода сообщения об ошибке

 

Рис. 2. Объектная декомпозиция приложения

б) с помощью Инспектора Объектов настраиваются параметры формы и компонент следующим образом:

 

 

Form1: Edit2:

Name:=MainForm; Name:=OutPutEdit;

Caption:='Возведение числа в квадрат'; Enable:=false;

Label1: ReadOnly:=true;

Name:=InputLabel; Button1

Caption:='Введите число’; Name: =NextButton;

Label2: Caption:=’Следующее';

Name:=OutPutLabel; Button2:

Caption:='Квадрат числа равен:'; Name:=ExitButton;

Edit1 Caption:='Выход'.

Name:=InputEdit;

 

Рис. 3. Проектирование главного окна приложения

 

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

  1. Событие С1 - «активация формы». Обработчик этого события OnFormActivate должен выполнять настройку интерфейса в соответствии с экранной формой, изображенной на рис. 1, а:прятать метку результата и поле его вывода, запрещать нажатие кнопки «Следующее», чистить поле ввода и устанавливать на него курсор.
  2. Событие С2 - «нажатие клавиши Enter при вводе числа». Соответствующий обработчик OnKeyPressed (для Редактора ввода InputEdit) - должен проверять правильность ввода. При правильном вводе далее он должен вычислять квадрат введенного числа и выводить результат в экранную форму, изображенную на рис. 1, б, соответственно, запрещая ввод значений, разрешая нажатие кнопки «Следующее» и показывая метку результата и результат. При неправильном вводе он должен выводить сообщение об ошибке, используя экранную форму, изображенную на рис. 1, в.
  3. Событие СЗ - «нажатие кнопки Выход». Его обработчик OnClick для кнопки «Выход» должен закрывать окно приложения.
  4. Событие С4 - «нажатие кнопки Следующее». Обработчик этого события OnClick для кнопки «Следующее» должен вновь настраивать интерфейс в соответствии с экранной формой, изображенной на рис. 1, а.

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

г) окно сообщения об ошибке отдельно проектировать не обязательно. Для его отображения можно использовать специальную функцию MessageDlg.

2.2. Физическое проектирование(разбивку программного продукта на модули) среда Delphi выполнит автоматически, поместив класс формы в отдельный модуль.

 

3. Программная реализация приложения

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

 

Unit MainUnit; {Модуль формы}

Interface

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

Dialogs, StdCtrls, ExtCtrls;

Type

TMainForm = class(TForm) {Класс Главная форма}

Bevel1: TBevel; {рамка}

NextButton, ExitButton: TButton; {кнопки «Следующее» и «Выход»}

InputLabel, OutPutLabel: TLabel; {метки ввода и вывода}

InPutEdit, OutPutEdit: TEdit; {редакторы ввода и вывода}

procedure FormActivate(Sender: TObject); {обработчик события

"активация формы"}

procedure InPutEditKeyPress(Sender: TObject; var Key: Char);

{обработчик события "нажатие клавиши Enter при вводе"}

procedure NextButtonClick(Sender: TObject); {обработчик

события "нажатие кнопки “Следующее"}

procedure ExitButtonClick(Sender: TObject); {обработчик события

"нажатие кнопки “Выход"}

end;

Var MainForm: TMainForm; {объявить объект класса TMainForm}

Implementation

{$R *.DFM}

{обработчик события "активация формы"}

Procedure TMainForm.FormActivate(Sender: TObject);

Begin

NextButton.Enabled: =false; {дезактивировать кнопку «Следующее»}

InPutEdit.ReadOnly: =false; {разрешить ввод в Редактор ввода}

InPutEdit.Clear; {очистить Редактор ввода}

InPutEdit. Enabled: =true; {активировать Редактор ввода}

InPutEdit.SetFocus; {установить фокус ввода}

OutPutLabel Visible:=false; {скрыть Редактор вывода}

OutPutEdit. Visible:=false; {скрыть Метку редактора вывода}

End;

{обработчик события "нажатие клавиши Enter при вводе числа"}

Procedure TMainForm.InPutEditKeyPress(Sender: TObject; var Key: Char);

Var x:real;Code:integer;

Begin

If Key=#13 then {если нажата клавиша Enter, то}

Begin

Key:=#0; {предотвратить звуковой сигнал при вводе символа

перехода на следующую строку в однострочном редакторе}

Val(InPutEdit.Text,x,Code); {преобразовать строку в число}

if Code = 0 then {если преобразование прошло успешно, то}

Begin

InputEdit.ReadOnly:=true; {запретить ввод в Редактор ввода}

InputEdit.Enabled:=false; {дезактивировать Редактор ввода}

OutPutLabel. Visible: = true; {показать Метку вывода}

OutPutEdit. Visible: =true; {показать Редактор вывода}

OutPutEdit. Text: =floattostr(sqr(x)); {вывести результат в

Редактор вывода}

NextButton.Enabled:=true; {активировать кнопку

«Следующее»}

NextButton.SetFocus; {установить фокус на кнопку

«Следующее»}

End

else {иначе, если введено не число, то}

MessageDlg("Число содержит недопустимые символы.",

mtError, [mbOk], 0); {показать окно Сообщение об ошибке}

End

End;

{обработчик события "нажатие кнопки Следующее"}

Procedure TMainForm.NextButtonClick(Sender: TObject);

Begin

FormActivate(NextButton); {вернуть исходные настройки интерфейса}

End;

{обработчик события "нажатие кнопки Выход"}

Procedure TMainForm.ExitButtonClick(Sender: TObject);

Begin

Close; {закрыть окно приложения и завершить его}

End

End.

Основная программа (проект) в процессе разработки с использованием среды Delphi создается автоматически и выглядит следующим образом:

Program Example1;

Uses Forms, MainUnit in "MainUnit.pas" {MainForm};

{$R *.RES}

Begin

Application.Initialize; {инициализация приложения}

Application.CreateForm(TMainForm, MainForm); {создание формы}

Application.Run; {запуск цикла обработки сообщений}

End.

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

*.dpr - файл проекта программы - исходный текст на Object Pascal (создается автоматически);

*.pas - файлы, содержащие исходные модули программы (в том числе модули форм);

*.dfm - текстовые файлы описания форм

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

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

Записка должка быть оформлена как программный документ по ГОСТам ЕСПД, и содержать следующие разделы:

1. Введение

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

2.1. Основания для разработки программы

2.2. Назначение разработки

2.3. Требования к программе

2.4. Требования к надежности

2.5. Требования к программной документации

2.6. Текст задания на разработку по варианту

3. Описание разработанной программы

3.1. Общие сведения

3.2. Функциональное назначение

3.3. Описание логической структуры

3.4. Используемые технические средства

3.5. Вызов и загрузка

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

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

4. Программа и методика испытаний

4.1. Объект испытаний

4.2. Цель испытаний

4.3. Требования к программе

4.4. Требования к программной документации

4.5. Средства и порядок испытаний

4.6. Методы испытаний

5. Эксплуатационные документы

5.1. Руководство программиста

5.2.1. Общие сведения о программе

5.2.2. Структура программы

5.2.3. Настройка программы

5.2.4. Проверка программы

5.2.5. Дополнительные возможности программы

5.2.6. Сообщения системному программисту

5.2. Руководство оператора (пользователя)

5.3.1. Назначение и условия применения программы

5.3.2. Обращение к программе для запуска

5.3.4. Входные и выходные данные

5.3.5. Сообщения оператору

6. Приложение

7. Список литературы

 

ПРИМЕЧАНИЕ.

«Техническое задание» оформляется по ГОСТ 19.201-78.

«Описание разработанной программы» подготавливается согласно ГОСТ 19.402-78.

Подраздел 3.3 записки должен содержать блок-схемы алгоритмов всех обработчиков программы с подробными текстовыми описаниями.

Раздел 4 должен соответствовать ГОСТу 19.301-79. В подразделе 4.6 должны быть приведены описания используемых методов отладки, все подготовленные контрольные примеры, а также результаты их выполнения с соответствующими выводами.

Раздел «Руководство программиста» оформляется в соответствии с ГОСТом 19.504-79, а «Руководство оператора» – по ГОСТ 19.505-79.

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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-07 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: