Автоматизация инженерных расчетов в путевом хозяйстве
Создание автоматизированных приложений по расчету пути на прочность и устойчивость и затрат труда по техническим нормам. Разработка программного обеспечения, базы данных. Расчет тестового задания старой и новой версиями программы и оценка его результатов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 28.08.2017 |
Размер файла | 2,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Query6->ParamByName("TYPE_PODKL")->AsString = (ComboBox5->Text);
Query6->ParamByName("KOL_SHP_KM")->AsFloat = kol_sh;
Query6->Active = true;
Edit13->Text = Query6->FieldByName("UPRUG_U")->Value;
U = Query6->FieldByName("UPRUG_U")->Value;
Query7->Active = false;
Query7->ParamByName("TYPE_RELS")->AsString = (ComboBox3->Text);
Query7->ParamByName("IZNOS")->AsInteger = StrToInt(ComboBox4->Text);
Query7->Active = true;
Wr = Query7->FieldByName("WR")->Value;
Wp = Query7->FieldByName("WP")->Value;
Query10->Active = false;
Query10->ParamByName("TIP_PODKL")->AsString = (ComboBox6->Text);
Query10->ParamByName("TIP_RELS")->AsString = (ComboBox3->Text);
Query10->Active = true;
w = Query10->FieldByName("OP_PL_PODK")->Value;
Query11->Active = false;
Query11->ParamByName("TIP_SHPAL")->AsString = (ComboBox2->Text);
Query11->ParamByName("DLINA_SHP")->AsInteger = dlin_sh;
Query11->ParamByName("TYPE_BAL")->AsString = (ComboBox5->Text);
Query11->Active = true;
A_sh = Query11->FieldByName("DLINA_SHP")->Value;
B_sh = Query11->FieldByName("SHIR_SHP")->Value;
a_sh = Query11->FieldByName("KOF_A")->Value;
}
else
ShowMessage("НЕ все данные введены!");
for (int i = 0; i < 2; i++) {
u = u1;
k1 = U / (4.0 * 2.1 * pow(10.0,
6.0) * (Query7->FieldByName("IV")->AsFloat));
k = pow(k1, 1.0 / 4.0);
Edit14->Text = k;
while (u <= u2) {
Gp = StrToFloat(Edit3->Text);
Ap = StrToFloat(Edit7->Text);
Bp = StrToFloat(Edit8->Text);
qk = StrToFloat(Edit2->Text);
Pst = StrToFloat(Edit1->Text);
e0 = StrToFloat(Edit9->Text);
d = StrToFloat(Edit4->Text);
l = StrToFloat(Edit5->Text);
l2 = StrToFloat(Edit6->Text);
l3 = StrToFloat(Edit20->Text);
Pp = Gp * (Ap + Bp * (pow(u, 2))); // рассчитали Pp
PPp = 0.75 * Pp;
PP = Pst + PPp;
Sp = 0.08 * Pp;
Snp = 0.565 * (pow(10.0, -8)) * a * e * B * Y * L * sqrt
((U * qk) / k) * PP * u;
Sink = 0.5 * a0 * 1.47 * e0 * (U / k);
Snnk = (0.052 * a0 * U * pow(u, 2) * sqrt(qk)) /
(pow(d, 2) * sqrt(k * U - 3.26 * pow(k, 2) * qk));
S = sqrt(pow(Sp, 2) + pow(Snp, 2) + 0.05 * pow(Sink, 2) +
(1 - 0.05) * pow(Snnk, 2));
Prach = PP + 2.5 * S;
if (k*l > 5.5)
uu = 0;
else
uu = (exp(-(StrToFloat(FormatFloat("0.00", k * l)))) *
(cos(StrToFloat(FormatFloat("0.00", k * l))) -
sin(StrToFloat(FormatFloat("0.00", k * l)))));
if (k*(l + l2) > 5.5)
uu1 = 0;
else
uu1 = (exp(-(StrToFloat(FormatFloat("0.00", k * (l + l2)))))
* (cos(StrToFloat(FormatFloat("0.00", k * (l + l2)))) -
sin(StrToFloat(FormatFloat("0.00", k * (l + l2))))));
if (k*l2 > 5.5)
uu2 = 0;
else
uu2 = (exp(-(StrToFloat(FormatFloat("0.00", k * l2)))) *
(cos(StrToFloat(FormatFloat("0.00", k * l2))) -
sin(StrToFloat(FormatFloat("0.00", k * l2)))));
if (k*(l + l2 + l3) > 5.5)
uu3 = 0;
else
uu3 = (exp(-(StrToFloat(FormatFloat("0.00",
k * (l + l2 + l3))))) * (cos(StrToFloat(FormatFloat("0.00",
k * (l + l2 + l3)))) - sin(StrToFloat(FormatFloat("0.00",
k * (l + l2 + l3))))));
if (l3 == 0 && l2 == 0) {
M = (1 / (4 * k)) * (Prach + PP * uu);
}
else if (l3 == 0 || l + l2 + l3 < 350) {
M1 = (1 / (4 * k)) * (Prach + PP * uu + PP * uu1);
M2 = (1 / (4 * k)) * (Prach + PP * uu + PP * uu2);
M3 = (1 / (4 * k)) * (Prach + PP * uu1 + PP * uu2);
if (M1 >= M2 && M1 >= M3)
M = M1;
if (M2 >= M1 && M2 >= M3)
M = M2;
if (M3 >= M2 && M3 >= M1)
M = M3;
}
else {
M1 = (1 / (4 * k)) * (Prach + PP * uu + PP * uu1 +
PP * uu3);
M2 = (1 / (4 * k)) * (Prach + PP * uu + PP * uu2 +
PP * uu1);
if (M1 >= M2)
M = M1;
else
M = M2;
}
if (l >= l2 && l >= l3)
lmin = l;
if (l2 >= l && l2 >= l3)
lmin = l2;
if (l3 >= l && l3 >= l2)
lmin = l3;
if (k*l > 5.5)
nn = 0;
else
nn = (exp(-(StrToFloat(FormatFloat("0.00", k * l)))) *
(cos(StrToFloat(FormatFloat("0.00", k * l))) +
sin(StrToFloat(FormatFloat("0.00", k * l)))));
if (k*(l + l2) > 5.5)
nn1 = 0;
else
nn1 = (exp(-(StrToFloat(FormatFloat("0.00", k * l + l2)))) *
(cos(StrToFloat(FormatFloat("0.00", k * l + l2))) +
sin(StrToFloat(FormatFloat("0.00", k * l + l2)))));
if (k*l2)
nn2 = 0;
else
nn2 = (exp(-(StrToFloat(FormatFloat("0.00", k * l2)))) *
(cos(StrToFloat(FormatFloat("0.00", k * l2))) +
sin(StrToFloat(FormatFloat("0.00", k * l2)))));
if (k*(l + l2 + l3) > 5.5)
nn3 = 0;
else
nn3 = (exp(-(StrToFloat(FormatFloat("0.00",
k * l + l2 + l3)))) * (cos(StrToFloat(FormatFloat("0.00",
k * l + l2 + l3))) + sin(StrToFloat(FormatFloat("0.00",
k * l + l2 + l3)))));
if (l3 == 0 && l2 == 0) {
Q = ((k * L) / 2) * (Prach + PP * nn);
}
else if (l3 == 0) {
if ((3 * 3.14) / (4 * k) > lmin) {
Q1 = ((k * L) / 2) * (Prach + PP * nn + PP * nn1);
Q3 = ((k * L) / 2) * (Prach + PP * nn1 + PP * nn2);
if (Q1 >= Q3)
Q = Q1;
if (Q3 >= Q1)
Q = Q3;
}
else {
Q2 = ((k * L) / 2) * (Prach + PP * nn + PP * nn2);
Q = Q2;
}
}
else {
Q1 = ((k * L) / 2) * (Prach + PP * nn + PP + nn1 +
PP * nn3);
Q1 = ((k * L) / 2) * (Prach + PP * nn + PP + nn2 +
PP * nn1);
if (Q1 >= Q2)
Q = Q1;
else
Q = Q2;
}
y = (k / (2 * U)) * (Prach + PP * nn);
Qp_o = M / Wp;
Qg_o = M / Wr;
Qp_k = f * Qp_o;
Qg_k = mg_k * Qg_o;
Qsh = Q / w;
Qb = Q / (0.5 * a_sh * A_sh * B_sh);
Q_ = ((k * L) / 2) * (Prach + PP * nn);
q_b = Q_ / (0.5 * a_sh * A_sh * B_sh);
nn1_c = (exp(-(StrToFloat(FormatFloat("0.00", k * L)))) *
(cos(StrToFloat(FormatFloat("0.00", k * L))) +
sin(StrToFloat(FormatFloat("0.00", k * L)))));
nn2_c = (exp(-(StrToFloat(FormatFloat("0.00", k * (l + L))))) *
(cos(StrToFloat(FormatFloat("0.00", k * (l + L)))) +
sin(StrToFloat(FormatFloat("0.00", k * (l + L))))));
Q_c = ((k * L) / 2) * (Prach * nn1_c + PP * nn2_c);
q_bc = Q_c / (0.5 * a_sh * A_sh * B_sh);
nn1_cc =
(exp(-(StrToFloat(FormatFloat("0.00", k * L)))) *
(cos(StrToFloat(FormatFloat("0.00", k * L))) +
sin(StrToFloat(FormatFloat("0.00", k * L)))));
nn2_cc =
(exp(-(StrToFloat(FormatFloat("0.00", k * (l - L))))) *
(cos(StrToFloat(FormatFloat("0.00", k * (l - L)))) +
sin(StrToFloat(FormatFloat("0.00", k * (l - L))))));
Q_cc = ((k * L) / 2) * (Prach * nn1_cc + PP * nn2_cc);
q_bcc = Q_cc / (0.5 * a_sh * A_sh * B_sh);
h = h1;
Memo1->Lines->Add(sezon);
Memo1->Lines->Add("Cкорость движения равна" +
FormatFloat("0.00", u));
Memo1->Lines->Add("_____________________");
Memo1->Lines->Add("|Глубина h | Напр qh |");
while (h <= h2) {
C1 = (B_sh / (2.0 * h)) -
(pow(B_sh, 3) / (24.0 * (pow(h, 3))));
C2 = (B_sh * h) / (pow(B_sh, 2) + pow(h, 2) * 4.0);
q_hh = r1 * q_b *
(0.635 * 1 * C1 + 1.275 * (2.0 - 1.0) * C2);
A = atan((L + 0.5 * B_sh) / h) +
0.5 * sin(2 * (atan((L + 0.5 * B_sh) / h))) -
atan((L - 0.5 * B_sh) / h) -
0.5 * sin(2 * (atan((L - 0.5 * B_sh) / h)));
q_hc = (r1 / 3.14) * A * q_bc;
q_hcc = (r1 / 3.14) * A * q_bcc;
q_h = q_hh + q_hc + q_hcc;
Memo1->Lines->Add(" " + FormatFloat("0.00", h) +
" | " + FormatFloat("0.00", q_h) + " |");
h = h + h3;
}
Memo1->Lines->Add("_____________________");
Memo1->Lines->Add("Pp = " + FormatFloat("0.00", Pp));
Memo1->Lines->Add("PPp = " + FormatFloat("0.00", PPp));
Memo1->Lines->Add("PP = " + FormatFloat("0.00", PP));
Memo1->Lines->Add("Sп = " + FormatFloat("0.00", Sp));
Memo1->Lines->Add("Sнп = " + FormatFloat("0.00", Snp));
Memo1->Lines->Add("Sинк = " + FormatFloat("0.00", Sink));
Memo1->Lines->Add("Sннк = " + FormatFloat("0.00", Snnk));
Memo1->Lines->Add("S = " + FormatFloat("0.00", S));
Memo1->Lines->Add("Pрасч = " + FormatFloat("0.00", Prach));
Memo1->Lines->Add("----------------");
Memo1->Lines->Add("M = " + FormatFloat("0.00", M));
Memo1->Lines->Add("Q = " + FormatFloat("0.00", Q));
Memo1->Lines->Add("y = " + FormatFloat("0.00", y));
Memo1->Lines->Add("Qп-о = " + FormatFloat("0.00", Qp_o));
Memo1->Lines->Add("Qг-о = " + FormatFloat("0.00", Qg_o));
Memo1->Lines->Add("Qп-к = " + FormatFloat("0.00", Qp_k));
Memo1->Lines->Add("Qг-к = " + FormatFloat("0.00", Qg_k));
Memo1->Lines->Add("Qш = " + FormatFloat("0.00", Qsh));
Memo1->Lines->Add("Qб = " + FormatFloat("0.00", Qb));
if (ComboBox7->ItemIndex == 1) {
Qszh = 3500.0 + 1.3 * Qg_k;
Qras = 3500.0 - 1.3 * Qp_k;
Memo1->Lines->Add("Qрас = " + FormatFloat("0.00", Qras));
Memo1->Lines->Add("Qсж = " + FormatFloat("0.00", Qszh));
}
Memo1->Lines->Add("");
Memo1->Lines->Add("");
u = u + u3;
}
sezon = "Зимний период :";
U = U * 2;
}
}
catch (...) {
ShowMessage("Возможно произошла ошибка! Проверьте выбранные данные!");
}
}
Приложение 5
Фрагмент листнинга программы «Расчет пути на прочность и устойчивость»
#include <vcl.h>
#pragma hdrstop
#include "UnitT.h"
#include "Unit10.h"
#include "Unit11.h"
#include <math.h>
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormT *FormT;
__fastcall TFormT::TFormT(TComponent* Owner) : TForm(Owner) {
}
void __fastcall TFormT::Button1Click(TObject *Sender) {
double FF = Edit6->Text.ToDouble();
double q;
double qq;
double p;
if (Form11->RadioButton4->Checked == true) {
q = 8.5;
p = 13;
if (Form11->ComboBox3->Text == "P50") { // 1840
if (Form11->ComboBox2->Text == "Железобетонные") {
qq = 5.89;
}
else {
qq = 3.35;
}
}
if (Form11->ComboBox3->Text == "P65") {
if (Form11->ComboBox2->Text == "Железобетонные") {
qq = 6.15;
}
else {
qq = 3.61;
}
}
}
if (Form11->RadioButton5->Checked == true) { // 2000
q = 9;
p = 14;
if (Form11->ComboBox3->Text == "P50") {
if (Form11->ComboBox2->Text == "Железобетонные") {
qq = 6.41;
}
else {
qq = 3.58;
}
}
if (Form11->ComboBox3->Text == "P65") {
if (Form11->ComboBox2->Text == "Железобетонные") {
qq = 6.68;
}
else {
qq = 3.92;
}
}
}
double I;
double In = Edit18->Text.ToDouble();
Edit19->Text = Form11->ComboBox6->Text;
if (Edit19->Text == "ДО") {
I = 4 * In;
}
else {
I = 5 * In;
}
FormT->Edit19->Text = I;
double Iv = Edit17->Text.ToDouble();
double R;
if (Form11->Edit11->Text == "Прямой участок") {
R = 1;
}
else {
R = Form11->Edit11->Text.ToDouble();
}
double E = 2100000;
double pk1 = 1;
double pk2 = 1;
double pk3 = 1;
double levstor1;
double levstor2;
double levstor3;
double pravstor1;
double pravstor3;
double r1;
double r2;
double r3;
double lk1;
double lk2;
double lk3;
do {
pk1 = pk1 + 1;
lk1 = 19.18 * (pow(((E * I) / pk1), 0.5));
levstor1 = pk1 * (pow((1 + (pk1 / (4 * p * lk1))), 0.25));
pravstor1 = 2.416 * (pow((I * 2 * FF * E * E * q * q), 0.25));
r1 = pravstor1 - levstor1;
}
while (r1 > 0.001);
do {
pk2 = pk2 + 1;
lk2 = 13.92 * ((pow((E * I / pk2), 0.5)));
levstor2 = ((pk2 * pk2 * (pow((1 + (pk2 / (4 * p * lk2))), 0.25))) /
(7.18 * E * pow((I * 2 * FF), 0.5))) + (pk2 / (R * 100));
r2 = q - levstor2;
}
while (r2 > 0.000000001);
do {
pk3 = pk3 + 1;
lk3 = 13.92 * (pow(((E * 2 * Iv) / pk3), 0.5));
levstor3 = pk3 * (pow((1 + (pk3 / (4 * p * lk3))), 0.25));
pravstor3 = 2.68 * (pow((2 * Iv * 2 * FF * E * E * qq * qq), 0.25));
r3 = pravstor3 - levstor3;
}
while (r3 > 0.001);
if (Form11->RadioButton1->Checked == true) {
if (pk1 < pk3) {
Edit7->Text = pk1;
}
else {
Edit7->Text = pk3;
}
}
if (Form11->RadioButton1->Checked == false) {
if (pk2 < pk3) {
Edit7->Text = pk2;
}
else {
Edit7->Text = pk3;
}
}
FormT->Edit3->Text = Form11->Edit21->Text;
Double Ch = FormT->Edit3->Text.ToDouble(); // с приложения
Double qzpk = FormT->Edit4->Text.ToDouble();
Double qlgk = FormT->Edit5->Text.ToDouble();
Double tras1 = int((Ch - (1.3 * qzpk)) / 25);
Double tcj1 = int((Ch - (1.3 * qlgk)) / 25);
Double F = FormT->Edit6->Text.ToDouble(); // с приложения
Double Ncj1 = int(2 * 25 * F * tcj1);
Double Nrast1 = int(2 * 25 * F * tras1);
Double Pkr = FormT->Edit7->Text.ToDouble();
Double Nyst1 = int(Pkr / 1.1);
Double tmax1 = FormT->Edit10->Text.ToDouble();
Double tmin1 = FormT->Edit9->Text.ToDouble();
Double Ta = tmax1 - tmin1;
Double Ngod1 = 2 * 25 * F * Ta;
FormT->Edit8->Text = Ta;
FormT->Edit11->Text = tras1;
FormT->Edit12->Text = Nrast1;
FormT->Edit13->Text = tcj1;
FormT->Edit14->Text = Ncj1;
FormT->Edit15->Text = Nyst1;
FormT->Edit16->Text = Ngod1;
Double Tmx = tmax1; // maximalnaya tempiratura
Double Tmn = tmin1; // minimalnaya tempiratura
Double Ncj = Ncj1 / 1000; // N cjaiya
Double Nyst = Nyst1 / 1000; // N yst
Double Nrast = Nrast1 / 1000; // N rast
Double Ngod = Ngod1 / 1000; // N godovoe
Double XA = Tmn;
Double YA = Nyst;
Double XA1 = Tmx;
Double YA1 = Nyst;
Double XB = Tmn;
Double YB = Nyst - Ngod;
Double XC = Tmn;
Double YC = -Nrast;
Double XD = Tmx;
Double YD = -Nrast;
Double XF = Tmx;
Double YF = -Nrast + Ngod;
Chart1->BottomAxis->Maximum = Tmx;
Chart1->BottomAxis->Minimum = Tmn;
Chart1->BottomAxis->Increment = 10;
Chart1->LeftAxis->Maximum = Ncj + 20;
Chart1->LeftAxis->Minimum = -Nrast - 5;
Chart1->LeftAxis->Increment = 10;
Chart1->LeftAxis->PositionPercent =
(-tmin1 / (fabs(tmin1) + fabs(tmax1)) * 100);
Chart1->BottomAxis->PositionPercent =
(-(-Nrast - 5) / (fabs(-Nrast - 5) + fabs(Ncj + 20)) * 100);
Double X = XC;
Double Y = YC;
Series1->AddXY(X, Y, ' ', clGreen);
Double X3 = XF;
Double Y3 = YF;
Series1->AddXY(X3, Y3, ' ', clGreen);
Double Tmax;
Double b = (X3 * Y - X * Y3) / (X3 - X);
Double k = (Y3 - Y) / (X3 - X);
Tmax = (0 - b) / k;
Double X1 = XB;
Double Y1 = YB;
Series2->AddXY(X1, Y1, ' ', clGreen);
Double X2 = XA1;
Double Y2 = YA1;
Series2->AddXY(X2, Y2, ' ', clGreen);
Double Tmin;
Double b1 = (X2 * Y1 - X1 * Y2) / (X2 - X1);
Double k2 = (Y2 - Y1) / (X2 - X1);
Tmin = (0 - b1) / k2;
Series11->AddXY(Tmn, Ncj, clBlue);
Series11->AddXY(Tmx, Ncj, clBlue);
Double X_3 = XA;
Double Y_3 = YA;
Series3->AddXY(X_3, Y_3, ' ', clBlue);
Double X4 = XA1;
Double Y4 = YA1;
Series3->AddXY(X4, Y4, ' ', clBlue);
Double X5 = XD;
Double Y5 = YD;
Series5->AddXY(X3, Y3, ' ', clBlue);
Series5->AddXY(X5, Y5, ' ', clBlue);
Series7->AddXY(X5, Y5, ' ', clBlue);
Series7->AddXY(X, Y, ' ', clBlue);
Series6->AddXY(X1, Y1, ' ', clBlue);
Series6->AddXY(X_3, Y_3, ' ', clBlue);
Double Smesh;
Smesh = (k2 * 25) + b1;
Double Yminmin;
Double Yminmax;
Yminmin = (k2 * X1) + (b1 - Smesh);
Yminmax = (k2 * X5) + (b1 - Smesh);
Series8->AddXY(X1, Yminmin, ' ', clRed);
Series8->AddXY(X5, Yminmax, ' ', clRed);
Double Smesh1;
Smesh1 = (k * 35) + b;
Double Ymaxmin;
Double Ymaxmax;
Ymaxmin = (k * X1) + (b - Smesh1);
Ymaxmax = (k * X5) + (b - Smesh1);
Series9->AddXY(X1, Ymaxmin, ' ', clRed);
Series9->AddXY(X5, Ymaxmax, ' ', clRed);
double delT;
Series4->AddXY(X, Y, "C(" + AnsiString(X) + ";" + AnsiString(Y) + ")",
clBlue);
Series4->AddXY(X1, Y1, "B(" + AnsiString(X1) + ";" + AnsiString(Y1) + ")",
clBlue);
Series4->AddXY(X2, Y2, "A1(" + AnsiString(X2) + ";" + AnsiString(Y2) + ")",
clBlue);
Series4->AddXY(X3, Y3, "F(" + AnsiString(X3) + ";" + AnsiString(int(Y3)) +
")", clBlue);
Series4->AddXY(X_3, Y_3, "A(" + AnsiString(X_3) + ";" + AnsiString(Y_3) +
")", clBlue);
Series4->AddXY(X5, Y5, "D(" + AnsiString(X5) + ";" + AnsiString(Y5) + ")",
clBlue);
Series4->AddXY(Tmin, 0, "minTз(" + AnsiString(int(Tmin)) + ";" +
AnsiString(0) + ")", clBlue);
if (Tmax > tmax1) {
Chart1->LeftAxis->PositionPercent =
(-tmin1 / (fabs(tmin1) + fabs(Tmax)) * 100);
}
Series4->AddXY(Tmax, 0, "maxTз(" + AnsiString(int(Tmax)) + ";" +
AnsiString(0) + ")", clBlue);
delT = Tmax - Tmin;
Series4->AddXY(((Tmax + Tmin) / 2), -50,
"дельта T =" + AnsiString(int(delT)), clBlack);
Double Nraszap25;
Double Nraszap35;
Double Ncjzap25;
Double Ncjzap35;
Nraszap25 = 2 * 25 * F * (Tmax - 25);
Ncjzap25 = 2 * 25 * F * (25 - Tmin);
Nraszap35 = 2 * 25 * F * (Tmax - 35);
Ncjzap35 = 2 * 25 * F * (35 - Tmin);
Series10->AddXY(Tmx, (Y2 - ((Y2 - Y3) / 2) - 15),
"Nсж= " + AnsiString(int(Ncjzap35)) + "кгс", clBlue);
Series10->AddXY(Tmx, (Y2 - ((Y2 - Y3) / 2) + 15),
"Nсж= " + AnsiString(int(Ncjzap25)) + "кгс", clBlue);
Series10->AddXY(Tmn, (Y1 - ((Y1 - Y) / 2) + 15),
"Nрас= " + AnsiString(int(Nraszap25)) + "кгс", clBlue);
Series10->AddXY(Tmn, (Y1 - ((Y1 - Y) / 2) - 15),
"Nрас= " + AnsiString(int(Nraszap35)) + "кгс", clBlue);
Series12->Marks->ArrowLength = 25;
Series12->AddXY(25, 0, "(25;0)", clBlue);
Series12->AddXY(35, 0, "(35;0)", clBlue);
FormT->Edit1->Text = (int(Tmin));
FormT->Edit2->Text = (int(Tmax));
Series10->AddXY(0, -Nrast, "Nрас=" + Edit12->Text + "кгс", clBlue);
Series10->AddXY(0, Nyst, "Nуст=" + Edit15->Text + "кгс", clBlue);
Series10->AddXY(0, Ncj, "Nсж=" + Edit14->Text + "кгс", clBlue);
Series10->AddXY(Tmn, ((YA + YB) / 2), "Nгод=" + Edit16->Text + "кгс",
clBlue);
Series10->AddXY(Tmx, ((YF + YD) / 2), "Nгод=" + Edit16->Text + "кгс",
clBlue);
FormT->Label3->Caption = "";
if (25 >= Tmin) {
FormT->Label3->Caption = "Не заданных пределах";
if (35 <= Tmax) {
FormT->Label3->Caption = "В заданных пределах";
}
else {
FormT->Label3->Caption = "Не в заданных пределах";
}
}
else {
FormT->Label3->Caption = "Не заданных пределах";
}
}
Приложение 6
Листнинг программы «Расчет затрат труда по техническим нормам»
// ---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#include <cstring.h>
#include <windows.h>
#include <ComObj.hpp>
#include <utilcls.h>
#pragma hdrstop
#include "Unit1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int skr;
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
}
// ---------------------------------------------------------------------------
Double nbolt;
void __fastcall TForm1::N3Click(TObject *Sender) {
ScrollBox1->VertScrollBar->Position = 0;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender) {
ScrollBox1->VertScrollBar->Position = 400;
}
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender) {
ScrollBox1->VertScrollBar->Position = 2140;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender) {
ScrollBox1->VertScrollBar->Position = 3075;
}
void __fastcall TForm1::N7Click(TObject *Sender) {
ScrollBox1->VertScrollBar->Position = 6255;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::N8Click(TObject *Sender) {
ScrollBox1->VertScrollBar->Position = 5292;
}
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) {
try{
Double Wkm=Edit120->Text.ToDouble();
Double Lfr = Edit1->Text.ToDouble()/1000;
Double Lzv = ComboBox1->Text.ToDouble();
Double nkm = Edit2->Text.ToDouble();
Double nper = Edit3->Text.ToDouble();
Double Sper = nper * 6;
Double npopr = Edit4->Text.ToDouble()/100;
Double npr = Edit5->Text.ToDouble();
Double nkr = Edit6->Text.ToDouble();
Double Epr = ComboBox3->Text.ToDouble();
Double Ekr = ComboBox4->Text.ToDouble();
Double nwp = (npr * Epr / 1000) + (nkr * Ekr / 1000);
Edit7->Text = nwp;
nwp = Edit7->Text.ToDouble();
Double nrixt = Edit8->Text.ToDouble()/100;
Double nizo = Edit9->Text.ToDouble();
Double lvpo = Edit10->Text.ToDouble();
Double lotv = Edit11->Text.ToDouble();
Double nvpo = (lvpo + lotv);
Double lRM1 = Edit13->Text.ToDouble()/1000;
Double lRM2 = Edit111->Text.ToDouble()/1000;
Double lRM3 = Edit114->Text.ToDouble()/1000;
Double lRM4= Edit117->Text.ToDouble()/1000;
// Double lRM5 = Edit121->Text.ToDouble()/1000;
//Double lRM6= Edit124->Text.ToDouble()/1000;
Double n1k=Edit109->Text.ToDouble();
Double n2k=Edit112->Text.ToDouble();
Double n3k=Edit115->Text.ToDouble();
Double n4k=Edit118->Text.ToDouble();
Double W1=Edit110->Text.ToDouble()/100;
Double W2=Edit113->Text.ToDouble()/100;
Double W3=Edit116->Text.ToDouble()/100;
Double W4=Edit119->Text.ToDouble()/100;
Double W5=Edit122->Text.ToDouble()/100;
Double W6=Edit123->Text.ToDouble()/100;
Double lnas = Edit14->Text.ToDouble();
Double llotk = Edit15->Text.ToDouble();
Double lviem = Edit16->Text.ToDouble();
Double nvix = Edit17->Text.ToDouble();
Double Uvix = nvix * 8;
Double n = Edit18->Text.ToDouble();
Double Lpk = n * 50;
Double Urem = nper * 0.2;
Double Upr = npr * 0.15;
Double nstel = Edit19->Text.ToDouble();
Double wosn1=W1*Wkm*Lfr;
Double wosn2=W2*Wkm*Lfr;
Double wosn3=W3*Wkm*Lfr;
Double wosn4=W4*Wkm*Lfr;
Double wosnq=W5*Wkm*Lfr;
Double wosnw=W6*Wkm*Lfr;
Double SUMM1 = 0;
Double SUMM2 = 0;
Double SUMM3 = 0;
Double SUMM4 = 0;
Double SUMM11 = 0;
Double SUMM21 = 0;
Double SUMM31 = 0;
Double SUMM41 = 0;
Double n1 = lnas * 0.05;
Double n2 = Lfr * 0.16;
Double n3 = Lfr * 0.016;
Double n4 = llotk * 0.1;
Double Lq=Edit12->Text.ToDouble();
Double U1 = Lq * 0.6; // lviem заменить на дополнительное окно Lq Очистка кюветов в местах препятствия м3
Double Lob=Edit99->Text.ToDouble();
Double U2 = Lob * 0.5; // lviem заменить на дополнительное окно Lобощины срезка обочины в местах препятствия м3
Double Lkr = nkr * 0.25;
Edit20->Text = 0;
Edit100->Text = 0;
Edit101->Text = 0;
Edit102->Text = 0;
Edit103->Text = 0;
AnsiString adr;
AnsiString adr_file;
char buffer[MAX_PATH];
GetCurrentDirectory(sizeof(buffer),buffer);
adr=buffer;
adr_file=buffer;
adr = adr+"\\шаблон.docx";
Variant vVarApp, vVarDoc, vVarParagraphs, vVarParagraph, v;
//Формирование отчета
vVarApp=CreateOleObject("Word.Application");
//Сделаем приложение видимым
vVarApp.OlePropertySet("Visible",true);
//Переменной vVarDoc присваивается значение Documents - свойство объекта Word.Application, содержащее набор рабочих документов
vVarDoc=vVarApp.OlePropertyGet("Documents");
//загружаем в Word шаблон документа
vVarDoc.OleProcedure("Open", adr.c_str());
//работать будем с последним созданным нами документом (Item = 1)
vVarDoc=vVarDoc.OleFunction("Item",1);
//Смотреть будем тоже на последний созданный нами документ - т.е. активируем его
vVarDoc.OleProcedure("Activate");
vVarParagraphs=vVarDoc.OlePropertyGet("Paragraphs");
Double c1 = 0;
Double c11 = 0;
Double c11k = 0;
if (CheckBox1->Checked == true) {
c11k=ceil(((Lfr*1000 / 100) - nkm));
c1 = ceil(16.6 * ceil(((Lfr*1000 / 100) - nkm)));
c11 =ceil( ceil(16.6 * ceil(((Lfr*1000 / 100) - nkm))) * Edit21->Text.ToDouble());
SUMM1 += c1;
SUMM11 += c11;
}
Edit20->Text = SUMM1; vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sumk1",false,false,false,false,false,true,1,false,SUMM1,2);
vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sum2",false,false,false,false,false,true,1,false,SUMM11,2);
vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sum3",false,false,false,false,false,true,1,false,SUMM2,2);
vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sum4",false,false,false,false,false,true,1,false,SUMM21,2);
vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sum5",false,false,false,false,false,true,1,false,SUMM3,2);
vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sum6",false,false,false,false,false,true,1,false,SUMM31,2);
vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sum7",false,false,false,false,false,true,1,false,SUMM4,2);
vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sum8",false,false,false,false,false,true,1,false,SUMM41,2);
vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sum9",false,false,false,false,false,true,1,false,SUMM1+SUMM2+SUMM3+SUMM4,2);
vVarApp.OlePropertyGet("Selection").OlePropertyGet("Find").OleProcedure("Execute","*Sum1k",false,false,false,false,false,true,1,false,SUMM11+SUMM21+SUMM31+SUMM41,2);
TDateTime CurrTime = Time().CurrentTime();
int hour = CurrTime.FormatString("h").ToInt();
int minute = CurrTime.FormatString("n").ToInt();
int second = CurrTime.FormatString("s").ToInt();
AnsiString time = IntToStr(hour) + "H " + IntToStr(minute) + "M " +
IntToStr(second) + "s";
// -- Cохранение отчетов
Sleep(100);
adr_file = adr_file + "\\Отчёты\\" + Date() + time +
"Расчет.docx";
vVarDoc.OleProcedure("SaveAs", adr_file.c_str());
}
catch (...)
{
ShowMessage("Не все данные введены!!!");
}
}
Размещено на Allbest.ru
Подобные документы
Автоматизация расчетов выполнения весенне-полевых работ в сельском хозяйстве средствами Системы управления базы данных. Структура входной и выходной информации. Блок-схема алгоритма решения задачи. Краткое описание программного средства обработки данных.
контрольная работа [58,8 K], добавлен 07.04.2014Разработка программного обеспечения, предназначенного для автоматизации деятельности туристической фирмы. Анализ и проектирование базы данных предметной области. Создание концептуальной, логической и физической моделей данных и программы их обработки.
курсовая работа [816,5 K], добавлен 05.02.2018Анализ средств визуализации. Разработка программы-расширения для визуализатора инженерных и научных расчетов Compaq Array Visualizer на языке Фортран. Оценка экономической эффективности и конкурентоспособности созданного программного обеспечения на рынке.
дипломная работа [335,4 K], добавлен 10.09.2010База данных как основа автоматизации. Разработка, описание и реализация программного обеспечения "Точность и правильность методов и результатов измерений для центральной заводской лаборатории ОАО "Акрилат". Листинг, исходные коды программы и базы данных.
дипломная работа [1,0 M], добавлен 23.06.2012Задачи учета расчетов с поставщиками. Выбор логической и концептуальной модели базы данных. Проектирование алгоритмов расчёта задолженности по оплате поставок и определения оптимальной заявки. Расчет экономической эффективности внедрения программы.
дипломная работа [478,5 K], добавлен 27.01.2014Разработка программного обеспечения для управления базой данных. Место задачи в системе автоматизации. Семантическое моделирование данных. Разработка программного обеспечения и базы данных. Расчет трудоемкости и себестоимости этапов проектирования.
дипломная работа [2,9 M], добавлен 04.02.2016Разработка процесса автоматизации взаимодействия преподавателя и студента через сайт и ведение централизованного процесса обработки данных. Создание графического интерфейса программы и физической модели базы данных. Расчет цены программного продукта.
дипломная работа [6,1 M], добавлен 27.06.2011Создание программного обеспечения для автоматизации процесса администрирования сеансов кинотеатра и продажи билетов. Разработка приложений базы данных по учету управления продажи билетов в кинотеатре средствами Microsoft Access. Программный листинг.
курсовая работа [572,9 K], добавлен 15.04.2014Порядок проектирования и разработки базы данных и программного обеспечения. Информация о структуре базы данных, созданных таблицах, формах, отчетах, запросах, хранимой информации. Логическая и концептуальная модели данных; выбор программного обеспечения.
курсовая работа [906,6 K], добавлен 20.01.2010Сравнительный анализ автоматизированных систем для предприятий. Проектирование концептуальной базы данных для учёта автозапчастей и предоставляемых услуг автосервиса. Разработка прикладного программного обеспечения, пользовательского интерфейса.
дипломная работа [1,5 M], добавлен 19.07.2014