Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Краткая характеристика проектируемой системы).pdf
Добавлен: 28.06.2023
Просмотров: 68
Скачиваний: 2
СОДЕРЖАНИЕ
Глава 1. Краткая характеристика проектируемой системы
1.1 Постановка задачи и краткое описание системы
1.4 Описание и разработка классов входящих в систему
Глава 2. Разработка UML модели
2.1 Краткое описание, назначение и предметы UML языка
2.4 Формирование UML диаграммы классов
2.6 Дополнительные диаграммы, отображающие особенности программы
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
float x1,x2,y1,y2;
x1=navigator.car.x;
y1=navigator.car.y;
x2=navigator.car.point[navigator.car.target].get_x();
y2=navigator.car.point[navigator.car.target].get_y();
Edit3->Text=FloatToStrF( pow ( pow(x1-x2,2) + pow(y1-y2,2),0.5) ,ffFixed,4,2);
Edit2->Text=IntToStr(navigator.car.chislo);
Edit4->Text=FloatToStr(x1);
Edit5->Text=FloatToStr(y1);
Edit6->Text=FloatToStr(x2);
Edit7->Text=FloatToStr(y2);
if (navigator.car.move()==0) {
allow_move(0);
Timer1->Enabled=false;
}
if (navigator.car.move()==-1) {
navigator.car.stop();
allow_move(0);
navigator.show();
show_trees();
Timer1->Enabled=false;
ShowMessage("У вас закончилось топливо.Поездка остановлена!!");
}
navigator.show();
show_trees();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
if (!strcmp(ComboBox1->Text.c_str(),"A")) navigator.car.target=0;
else if(!strcmp(ComboBox1->Text.c_str(),"B")) navigator.car.target=1;
else if(!strcmp(ComboBox1->Text.c_str(),"C")) navigator.car.target=2;
else if(!strcmp(ComboBox1->Text.c_str(),"D")) navigator.car.target=3;
else if (!strcmp(ComboBox1->Text.c_str(),"E")) navigator.car.target=4;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
navigator.car.fuel=1000;
navigator.show();
show_trees();
}
Приложение В
Unit2.срр
#pragma hdrstop
#include "Unit2.h"
//---------------------------------------------------------------------------
CPoint::CPoint() {
x=y=0;
}
CPoint::CPoint(int x1,int y1) {
x=x1;
y=y1;
}
int CPoint::get_x() {
return x;
}
int CPoint::get_y() {
return y;
}
void CPoint::set(int x1,int y1) {
x=x1;
y=y1;
}
void CPoint::set_x(int x1){
x=x1;
}
void CPoint::set_y(int y1){
y=y1;
}
void CNavigator::operator<<(TImage *im) {
map<<im;
car<<im;
}
void CNavigator::show() {
map.show_map();
car.show();
}
Ccar::Ccar() {
vertical=false;
point = new CPoint[5];
point[0].set(3*10,3*10);
point[1].set(3*(100-10),3*10);
point[2].set(3*10,3*(100-10));
point[3].set(3*(100-10),3*(100-10));
point[4].set(3*50,3*50);
b=false;
x=3*(50-10);
y=3*(100-10);
fuel=250;
target=0;
v=0;
chislo=0;
}
Ccar::~Ccar() {
delete[] point;
}
void Ccar::stop() {
v=0;
b=0;
show();
}
int Ccar::move() {
if (fuel<1) {v=0;return -1;};
/////////
if (x==point[target].get_x())
if (y==point[target].get_y())
{
b=false;
v=0;
chislo=0;
return 0;
}
/////////
if (vertical==false)
/////////////========///////////
if (x<point[target].get_x())
x++;
else if (x>point[target].get_x())
x--;
else if (y>point[target].get_y())
{y--;vertical=true;}
else {vertical=true;y++;}
} else {
if (y>point[target].get_y()) y--;
else if (y<point[target].get_y()) y++;
else if (x<point[target].get_x())
{x++;vertical=false;}
else {x--;vertical=false;}
}
/////////////========///////////
b=true;
fuel--;
v=40+random(10);
chislo=200+random(100);
return 1;
}
void Ccar::show() {
if (!b) Image->Canvas->Brush->Color=clGreen;
else Image->Canvas->Brush->Color=clRed;
Image->Canvas->Ellipse(x-5,y-5,x+5,y+5);
Edit->Text=IntToStr(v);
ProgressBar->Position=fuel;
if (!b) {
Shape->Brush->Color=clLime;
Label->Caption="Машина стоит";