Автоматизация инженерных расчетов в путевом хозяйстве

Создание автоматизированных приложений по расчету пути на прочность и устойчивость и затрат труда по техническим нормам. Разработка программного обеспечения, базы данных. Расчет тестового задания старой и новой версиями программы и оценка его результатов.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.