Разработка программного продукта на языке высокого уровня (работа 1)

КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ЗАДАНИЕ

на курсовое проектирование

Студенту 4 п Хвостику Алексею Александровичу

Тема работы: “Разработка программного продукта на языке высокого уровня”.

Содержание задания:

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

Если С – температура в градусах Цельсия, а F – в градусах Фаренгейта, то имеет место соотношение:

Объем работы:

а) пояснительная записка к проекту –19стр.

б) приложения

Срок выполнения работы: г.

Срок защиты: г.

Дата выдачи задания: _ г.

Дата сдачи работы: _ г.

Руководитель работы_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ С.В. Гончаров

Задание принял студент_ _ _ _ _ _ _ _ _ _ _ _ _ __ А.А. Хвостик

Павловская 2009 г.

Задание

на курсовую работу студента группы 4П СПО

Вариант №29.

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

Если С – температура в градусах Цельсия, а F – в градусах Фаренгейта, то имеет место соотношение:

Принял: _________________________

“____” “___________________” 2008г.

Подпись _________________

Содержание

1)Введение

2)Основная часть:

а) Постановка задачи

б) Разработка программного продукта

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

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

3) Заключение

4) Список литературы

5) Приложение (листинг программы, дискета)

Введение

Среда Delphi - это сложный механизм, обеспечивающий высокоэффективную работу программиста. Визуально она реализуется несколькими одновременно раскрытыми на экране окнами. Окна могут перемещаться по экрану, частично или полностью перекрывая друг друга, что обычно вызывает у пользователя, привыкшего к относительной “строгости” среды текстового процессора Word или табличного процессора Excel, ощущение некоторого дискомфорта. После приобретения опыта работы с Delphi это ощущение пройдет, и вы научитесь быстро отыскивать нужное окно, чтобы изменить те или иные функциональные свойства создаваемой вами программы, ибо каждое окно несет в себе некоторую функциональность, т. е. предназначено для решения определенных задач.

Запустите Delphi - и вы увидите нечто, похожее на рис. 2.1 (на рисунке показаны окна Delphi версии 6; для других версий окна могут иметь незначительные отличия). На нем изображены шесть наиболее важных окон Delphi: главное окно 1, окно Дерева объектов (Object Tree View) 2, окно Инспектора объектов 3, окно браузера 4, окно формы 5 и окно кода программы 6.

Чтобы упорядочить окна так, как они показаны на рисунке, вам придется вручную изменять их положение и размеры, т. к. обычно окно кода программы почти полностью перекрыто окном формы. Впрочем, добиваться максимального сходства того, что вы видите на экране вашего ПК, с изображением, показанным на рис. 2.1, вовсе не обязательно: расположение и размеры окон никак не влияют на их функциональность; если вы не видите на экране окна кода, но хотите его увидеть, просто нажмите клавишу F12 [Если к этому моменту активным было окно Инспектора Объектов, вам придется нажать на F12 еще раз.]. Повторное нажатие F12 вновь активизирует окно формы и т. д. - эта клавиша работает как двоичный переключатель, попеременно показывая окно формы или окно кода программы.

Замечу, что при первом запуске Delphi поверх всех окон появится окно, показанное на рис. 2.2.

 

Рис. 2.1. Наиболее важные окна Delphi:

Рис. 2.2. Окно связи с Inprise (Borland)

С помощью этого окна вы сможете получить доступ к Web-страницам корпорации Inprise для просмотра самой свежей информации о корпорации и ее программных продуктах, копирования дополни тельных файлов, чтения ответов на наиболее часто задаваемые вопросы и т. д. При повторных запусках Delphi это окно появляется автоматически с некоторой периодичностью, определяемой настройками на странице окна Tolls | Environment Options, связанной с закладкой Delphi Direct. Вы также сможете его вызвать в любой момент с помощью опции Help | Delphi Direct главного меню.

Основная часть

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

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

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

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

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

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

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

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

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

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

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

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

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

Разработка программного продукта

Блок схема программы

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

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


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


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


Блок схема










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

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

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

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

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

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

Я выбрал язык программирования, знания о котором достаточны для решения поставленной задачи. Это язык 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 и построению блок-схемы алгоритма работы программы.

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

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

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

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

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

    В.Озеров «Советы по 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.