
4 Разработка программного проекта
Для решения нашей задачи создадим проект, в котором будет четыре файла исходного кода.
4.1 В файле main.cpp будет лежать наша главная функция main, программный код которой содержит только вызов разработанной функции CalcY. Перед определением главной функции main в файл включен прототип вызываемой в ней функции CalcY.
#include
<iostream> using
namespace
std;
void
CalcY(void);
int
main() { CalcY(); system("PAUSE"); return
0; }
4.2 В файле CalcY.cpp лежит функция CalcY, программный код которой содержит вызов функций GetT, GetY0, GetV0 – отвечающие за ввод значений и PutY – для вывода полученного у. Внутри функции происходит присваивание значение константе g, а также считается значение y по формуле 1. Перед определением функции CalcY в файл включены прототипы вызываемых в ней функций GetT, GetY0, GetV, PutY.
#include
<iostream> using
namespace
std; void
GetT(double&); void
GetY0(double&); void
GetV0(double&); void
PutY(double); void
CalcY() { double
g, t, v0, y0, y; g
= 9.8;
GetT(t); GetY0(y0); GetV0(v0);
y
= y0 + v0 * t - g * t * t / 2;
PutY(y); }
4.3 В файле GetPut.cpp лежат функции GetT, GetY0, GetV, PutY. Программный код процедуры GetT содержит вызов функции numb, предназначенной для ввода и проверки корректности введённых данных. Также внутри функции проверяется принадлежность введённого значения заданному диапазону. В противном случае программа просит ввести значение заново.
void
GetT(double&t)
{ cout
<<
"Введите
время
t = "; cin
>>
t; while
(true) { numb(t); if
(t
< 0) { cout
<<
"Ошибка!
Время не может быть отрицательным!\n"; cout
<<
"Введите
время t = "; cin
>>
t; } else { break; }
} } void
GetY0(double&y0) { cout
<<
"Введите
начальную координату y0 = "; cin
>>
y0; numb(y0); } void
GetV0(double&v0) { cout
<<
"Введите
скорость (м/с), v0 = "; cin
>>
v0; while
(true) { numb(v0); if
(v0
< 0) { cout
<<
"Ошибка!
Скорость не может быть отрицательной!\n"; cout
<<
"Введите
значение начальной скорости (м/с), v0 =
"; cin
>>
v0;
} else { break; }
}
}void
PutY(double
y) { cout
<<
"Высота
в данный момент времени y = "; cout
<<
y
<<
endl;
}
#include
<iostream> using
namespace
std; void
numb(double&nu) { while
(true) { if
(cin.fail()) { cin.clear(); cin.ignore(1000,
'\n'); cout
<<
"Ошибка!
Введенные
данные не являются числом\n"; cout
<<
"Введите
t = "; cin
>>
nu; }
else { break;
} } }