Автор работы: Пользователь скрыл имя, 10 Ноября 2012 в 10:46, реферат
Целью выполненной курсовой работы является разработка программного продукта. Приложение должно в заданном множестве точек найти три треугольника с вершинами на плоскости, так чтобы второй треугольник лежал строго внутри первого, а третий внутри второго.
Введение
1 Общая часть
1.1 Постановка задачи
1.2 Описание математического метода решения задачи
1.3 Описание решения поставленной задачи
2 Специальная часть
2.1 Алгоритм работы программы
2.1.1 Процедура создания главной формы
2.1.2 Процедура ввода значений с клавиатуры
2.1.3 Процедура выбора случайных значений
2.1.4 Процедура открытия из текстового файла
2.1.5 Процедура сохранения в текстовый файл
2.1.6 Процедура вычисления
2.1.6.1 Процедура вывод
2.1.6.2 Процедура повтор
2.1.7 Процедура очистки окна вывода информации
2.1.8 Процедура выхода из программы
2.2 Системно – технические требования программы
2.3 Руководство пользователя
Заключение
Литература
Приложение А Листинг программы
Приложение Б Таблица спецификации глобальных переменных
cnt :=1;
cnt1:=1;
end; end.
Форма ввода
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm3 = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
Button2: TButton;
Button3: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
ListBox1: TListBox;
Button5: TButton;
Button4: TButton;
SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit1;
{$R *.dfm}
procedure TForm3.Button1Click(Sender: TObject);
var
x,y: integer;
r: real;
begin
If ((Edit1.Text='') or (Edit2.Text='')) then
begin
r:= MessageDlg( 'Неверно введены координаты', mtError, [mbOK], 0);
edit1.Text:='';
edit2.Text:='';
end
else
begin
if Form1.Cnt>50 then r:= MessageDlg( 'Невозможно ввести больше точек', mtError, [mbOK], 0);
x:=StrToInt(Edit1.Text);
y:=StrToInt(Edit2.Text);
if ((x>20 )or (x<-20) or (y>20) or (y<-20)) then
begin
r:= MessageDlg( 'Неверно введены координаты', mtError, [mbOK], 0);
edit1.Text:='';
edit2.Text:='';
end
else
begin
Form1.Point[form1.cnt].X:=x;
Form1.Point[form1.cnt].Y:=y;
ListBox1.Items.Add('('+Edit1.
Edit1.Text:='';
Edit2.Text:='';
inc(Form1.cnt);
end;
end;
end;
procedure TForm3.Button5Click(Sender: TObject);
var
i,n,x1,y1,d: integer;
begin
ListBox1.Clear;
Edit1.Text:='';
Edit2.Text:='';
n:=10+random(40);
for i:=0 to (n-1) do
begin
d:=random(2);
case d of
0: begin x1:=random(20); y1:=random(20); end;
1: begin x1:=-random(20); y1:=-random(20); end;
end;
ListBox1.Items.Add('('+
intToStr(x1)+';'+intToStr(y1)+
Form1.Point[Form1.Cnt].X:=x1;
Form1.Point[Form1.Cnt].Y:=y1;
Inc(Form1.Cnt);
end;
end;
procedure TForm3.Button4Click(Sender: TObject);
var
s: integer;
begin
listbox1.Clear;
edit1.Text:='';
edit2.Text:='';
for s:=1 to Form1.cnt1-1 do
begin
Form1.mas[s].X:=0;
Form1.mas[s].Y:=0;
end;
form1.image1.Canvas.FillRect(
Form1.cnt:=1;
Form1.cnt1:=1;
Form1.setka;
OkBtn.Caption:='вывести';
end;
procedure TForm3.Button2Click(Sender: TObject);
var
i, n,j,l, len: integer;
s,s1,s2: string;
begin
if OpenDialog1.Execute then ListBox1.Items.LoadFromFile(
for i:=0 to ListBox1.Items.Count-1 do
begin
s:=ListBox1.Items[i];
len:=length(s);
n:=pos(';',s);
s1:=copy(s,2,n-2);
s2:=copy(s,n+1,len-n-1);
Form1.Point[Form1.Cnt].X:=
form1.Point[Form1.Cnt].Y:=
Inc(Form1.Cnt);
end;
end;
procedure TForm3.Button3Click(Sender: TObject);
begin
if SaveDialog1.Execute then ListBox1.Items.SaveToFile(
end;
procedure TForm3.OKBtnClick(Sender: TObject);
var
r: real;
begin
if Form1.cnt<9 then begin r:= MessageDlg( 'Недостаточно точек', mtError, [mbOK], 0); end
else
begin
if OkBtn.Caption='вывести' then begin Form1.vivod; Form1.Show; exit; end;
if OkBtn.Caption='повторить' then
begin
Form1.image1.Canvas.FillRect(
Form1.setka;
Form1.povtor;
Form1.Show;
end
end;
end;
procedure TForm3.FormShow(Sender: TObject);
begin
Form1.cnt:=1;
Form1.cnt1:=1;
end;
procedure TForm3.CancelBtnClick(Sender: TObject);
begin
close;
end;
end.
Приложение Б
Таблица спецификаций глобальных переменных
Название |
тип |
назначение |
cnt |
Integer |
Количество точек множества |
Point |
Array[] of TPoint |
Массив точек множества |
dx, dy |
integer |
Масштабы по осям Ох,Оу |
A,B,C,D,E,F |
TPoint |
Вершины треугольников |
x0,y0 |
Integer |
Точка начала координат |
t,q,w,z,u1,v1 |
integer |
Индексы точек – вершин треугольников |
Таблица спецификации процедур и функций
Название |
Формальные переменные |
Типы переменных |
назначение | ||
N7Click |
Sender |
TObject |
Приход на вторую форму | ||
N2Click |
Sender |
TObject |
Очистка canvas | ||
Button2Click |
Sender |
TObject |
Загрузка исходных данных из файла | ||
Button3Click |
Sender |
TObject |
Сохранение координат в файл | ||
FormCreate |
Sender |
TObject |
Процедура создания главной формы прграммы | ||
Button5Click |
Sender |
TObject |
Генерирует случайные значения | ||
Button4Click |
Sender |
TObject |
Очищает окно вывода | ||
Button1Click |
Sender |
TObject |
Добавление данных в массив | ||
vivod |
- |
- |
Ищет и выводит треугольники | ||
povtor |
- |
- |
Ищет и выводит треугольники | ||
setka |
- |
- |
Рисует сетку координат |
Приложение В
Функциональная модель
(контекстная диаграмма)
Функциональная модель
(декомпозиция контекстной диаграммы)
Блок-схема
Информация о работе Математическое решение задач с графической иллюстрацией результатов