- •Кубанский государственный университет
- •Задание
- •На курсовое проектирование
- •Студенту 4 п Хвостику Алексею Александровичу
- •Тема работы: “Разработка программного продукта на языке высокого уровня”.
- •Содержание задания:
- •Срок выполнения работы: г.
- •Задание на курсовую работу студента группы 4п спо Вариант №29.
- •Содержание
- •Введение
- •Основная часть Постановка задачи
- •Системные требования
- •Разработка программного продукта Блок схема программы
- •Блок схема
- •Структура данных
- •Написание программы
Основная часть Постановка задачи
Составить программу, которая для выбираемой единицы измерения (градусы Фаренгейта или градусы Цельсия) и для задаваемого значения температуры в этой единице измерения, выводит значение температуры в другой единице измерения.
Программа будет написана на 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.