Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример на содержание.doc
Скачиваний:
1
Добавлен:
26.08.2019
Размер:
133.12 Кб
Скачать

Основная часть Постановка задачи

Составить программу, которая для выбираемой единицы измерения (градусы Фаренгейта или градусы Цельсия) и для задаваемого значения температуры в этой единице измерения, выводит значение температуры в другой единице измерения.

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

Событие OnClick используется для выполнения расчетов и OnKeyPress – событие нажатия клавиш на клавиатуре.

Системные требования

Программный продукт помещается на дискету. Его размер 395Kb.

Производим системный анализ, который даёт возможность:

1. Определить функции и характеристики программного продукта.

2. Обозначить интерфейс продукта с другими системными элементами.

3. Определить проектные ограничения программного продукта.

4. Построить модели: процесса, данных, режимов функционирования продукта.

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

Данный программный продукт работает с операционными системами такими как: Windows 98/2000/ME/XP. Этот программный продукт может работать как на слабых машинах, так и на сильных так как у него слабые системные требования. Программный продукт оперирует строковыми и числовыми вычислениями. Интерфейс программного продукта выполнен только под операционную систему Windows и будет работать в ней и в других операционных системах, совместимых с ней. При загрузке его на другой платформе или несовместимой с Windows он не будет работать.

Разработка программного продукта Блок схема программы

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

  1. Операция начала и конца алгоритма

  1. Оператор ввода и вывода данных

  1. Оператор действия

Блок схема

Структура данных

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

Проектирование

Основные задачи

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

Выбранный язык программирования

Я выбрал язык программирования, знания о котором достаточны для решения поставленной задачи. Это язык Pascal, а среда программирования, в которой это делалось – Borland Delphi v7.0.

Интерфейс

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

Рис.1. Интерфейс программы

Написание программы

unit FuntToKg1_;

interface

uses

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

StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Button1: TButton;

Label2: TLabel;

Label1: TLabel;

Label3: TLabel;

Edit2: TEdit;

Label4: TLabel;

Button2: TButton;

Label5: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

// щелчок на кнопке Пересчет

procedure TForm1.Button1Click(Sender: TObject);

var

f: real; // в цельсиях

k: real; // ответ в фаренгейтах

begin

form1.Label2.Caption:='';

try // возможна ошибка, если в поле

// Edit1 будет не число

f:=StrToFloat(Edit1.Text);

k:=18*f/10+32;

label2.caption:=Edit1.text+' C - это ' +

FloatToStrF(k,ffGeneral,4,2)+' F';

except

on EConvertError do // ошибка преобразования

begin

ShowMessage('Ошибка! Градусы следует ввести числом.');

form1.Edit1.SetFocus; // курсор в поле ввода

end;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

m: real; // в цельсиях

n: real; // ответ в фаренгейтах

begin

form1.Label5.Caption:='';

try // возможна ошибка, если в поле

// Edit1 будет не число

m:=StrToFloat(Edit2.Text);

n:=((m-32)*10)/18;

label5.caption:=Edit2.text+' F - это ' +

FloatToStrF(n,ffGeneral,4,2)+' C';

except

on EConvertError do // ошибка преобразования

begin

ShowMessage('Ошибка! Градусы следует ввести числом.');

form1.Edit2.SetFocus; // курсор в поле ввода

end;

end;

end;

end.

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

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

Сопровождение

Работа в созданной мною программе не требует каких либо специфических навыков от пользователя. Достаточно запустить исполняемый файл Project1.exe. На экране монитора появится окно программы представленное на рисунке.№1. По нажатию на кнопку «Найти 1-й член последовательности» появится результат.

Заключение

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

Список использованной литературы

  1. Кэнту М. «Delphi7: Для профессионалов»:- Санкт-Питербург:2004

  2. А.Я.Архангельский. «100 компонентов общего назначения Delphi»-М.: 2001

  3. Курс лекций по предмету «Основы алгоритмизации и программирования»

  4. Курс лекций по предмету «Технология разработки программных продуктов»

  5. В.Озеров «Советы по Delphi»

Приложение

ЛИСТИНГ ПРОГРАММЫ

unit Unit1;

interface

uses

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

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Label3: TLabel;

procedure Button1Click(Sender: TObject);

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

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

a,b,s,n:Real;

i:Word;

c:Integer;

begin

a:=(StrToFloat(Edit1.Text));

b:=(StrToFloat(Edit2.Text));

n:=1;

c:=-1;

i:=1;

repeat

i:=i+1;

n:=n+1/i;

c:=-c;

s:=c*n;

until (s<a) or (s>b);

Label3.Caption:=(FloatTostr(s));

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

if not (Key in ['0'..'9', ',',Chr(VK_BACK)]) then Key := #0;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if not (Key in ['0'..'9', ',',Chr(VK_BACK)]) then Key := #0;

end;

end.