Рассчитать требуемый диаметр поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора

Автор работы: Пользователь скрыл имя, 01 Декабря 2013 в 21:31, курсовая работа

Краткое описание

Задача курсовой работы – создание законченного программного приложения прикладного технического характера, выполненного по индивидуальному заданию.
В данной работе необходимо рассчитать требуемый диаметр поддерживающего катка, в зависимости от общего количества поддерживающих катков и базы трактора. Катки являются элементом ходовой части трактора, которая должна обеспечивать поддержку верхней ветви гусеницы трактора. При этом поддерживающий каток должен иметь достаточные запас прочности, высокую износостойкость и долговечность и малую массу, быть простым и удобным в обслуживании.

Содержание

ВВЕДЕНИЕ 5
1. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ 6
2. АЛГОРИТМИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ 8
3. ТАБЛИЦА ИДЕНТИФИКАТОРОВ 11
4. РАЗРАБОТКА ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ 13
5. СТРУКТУРА ПРОГРАММНОГО ПРИЛОЖЕНИЯ 16
5.1. Падающее и контекстное меню 16
5.2. Статусная строка 16
5.3. Обработка исключительных ситуаций 16
5.4. Построение графических зависимостей 17
5.5. Создание анимации 17
5.6. Вызов внешнего приложения 17
5.7. Динамически подключаемые библиотеки 18
6. РАЗРАБОТКА СПРАВОЧНОЙ СИСТЕМЫ 19
7. РАСЧЁТ КОНТРОЛЬНОГО ПРИМЕРА 21
ЗАКЛЮЧЕНИЕ 23
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ИНФОРМАЦИИ...24

Прикрепленные файлы: 1 файл

Пояснительная записка.docx

— 1.43 Мб (Скачать документ)

      Form1.LabeledEdit9.SetFocus;

      Exit;

end;

  end;

  try

  m:=StrToFloat(Form1.LabeledEdit9.Text);

  except

    on EConvertError Do

      begin

      MessageDlg('Некорректно введены данные',

      mtWarning,[mbOK],0);

      Form1.LabeledEdit9.SetFocus;

      Exit;

end;

  end;

  try

  f:=StrToFloat(Form1.LabeledEdit9.Text);

  except

    on EConvertError Do

      begin

      MessageDlg('Некорректно введены данные',

      mtWarning,[mbOK],0);

      Form1.LabeledEdit9.SetFocus;

      Exit;

end;

  end;

AssignFile(Fw, 'Данные.txt');

ReWrite(Fw);

WriteLn(Fw,StrToFloat(Form1.LabeledEdit1.Text));

WriteLn(Fw,StrToFloat(Form1.LabeledEdit2.Text));

WriteLn(Fw,StrToInt(Form1.LabeledEdit3.Text));

WriteLn(Fw,StrToFloat(Form1.LabeledEdit4.Text));

WriteLn(Fw,StrToFloat(Form1.LabeledEdit5.Text));

WriteLn(Fw,StrToInt(Form1.LabeledEdit6.Text));

WriteLn(Fw,StrToFloat(Form1.LabeledEdit7.Text));

WriteLn(Fw,StrToFloat(Form1.LabeledEdit8.Text));

WriteLn(Fw,StrToFloat(Form1.LabeledEdit9.Text));

WriteLn(Fw,StrToFloat(Form1.LabeledEdit10.Text));

WriteLn(Fw,StrToFloat(Form1.LabeledEdit11.Text));

CloseFile(Fw);

Close;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

Form1.BitBtn4.Click;

end;

procedure TForm1.N9Click(Sender: TObject);

begin

Form1.BitBtn1.Click;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

Form1.BitBtn1.Click;

end;

 

procedure TForm1.N13Click(Sender: TObject);

begin

Form1.N14.Click;

end;

procedure TForm1.N12Click(Sender: TObject);

begin

Form1.BitBtn4.Click;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

Form4.ShowModal;

end;

procedure TForm1.BitBtn5Click(Sender: TObject);

begin

Form4.ShowModal;

end;

procedure TForm1.N7Click(Sender: TObject);

begin

WinHelp(Handle,'Help.hlp',sw_restore,1);

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

WinHelp(Handle,'Help.hlp',sw_restore,2);

end;

end.

unit Unit2;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Buttons, Grids ,ComObj, Menus, ComCtrls, Math;

type

  TForm2 = class(TForm)

    GroupBox1: TGroupBox;

    StringGrid1: TStringGrid;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    BitBtn3: TBitBtn;

    BitBtn4: TBitBtn;

    BitBtn6: TBitBtn;

    SaveDialog1: TSaveDialog;

    PopupMenu1: TPopupMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    MSWord1: TMenuItem;

    MSExcel1: TMenuItem;

    N4: TMenuItem;

    PrintDialog1: TPrintDialog;

    Label1: TLabel;

    SaveDialog2: TSaveDialog;

    procedure BitBtn1Click(Sender: TObject);

    procedure BitBtn4Click(Sender: TObject);

    procedure N1Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure BitBtn3Click(Sender: TObject);

    procedure MSWord1Click(Sender: TObject);

    procedure MSExcel1Click(Sender: TObject);

    procedure BitBtn6Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form2: TForm2;

  zMin,zMax,LMin,LMax,My,tg,qg,m,f:Real;

  v,u:Integer;

  Fr,Fw,FrPY:TextFile;

implementation

uses Unit1, Unit3;

{$R *.dfm}

Type massive1=array[1..100] of real;

Type massive2=array[1..100,1..100] of real;

procedure Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f:real;v,u:integer;var Dp,DpZ,DpL:massive2;var DpVer,DpGor,zMass,LMass:massive1);  external

'DLL\Traktor.dll';

procedure TForm2.BitBtn1Click(Sender: TObject);

begin

Close;

end;

procedure TForm2.BitBtn4Click(Sender: TObject);

var i,j:integer;

    Dp,DpZ,DpL:massive2;

    DpVer,DpGor,LMass,zMass:massive1;

begin

  zMin:=StrToFloat(Form1.LabeledEdit1.Text);

  zMax:=StrToFloat(Form1.LabeledEdit2.Text);

  v:=50;

  LMin:=StrToFloat(Form1.LabeledEdit4.Text);

  LMax:=StrToFloat(Form1.LabeledEdit5.Text);

  u:=50;

  My:=StrToFloat(Form1.LabeledEdit7.Text);

  tg:=StrToFloat(Form1.LabeledEdit8.Text);

  qg:=StrToFloat(Form1.LabeledEdit9.Text);

  m:=StrToFloat(Form1.LabeledEdit10.Text);

  f:=StrToFloat(Form1.LabeledEdit11.Text);

Diametr(zMin,zMax,LMin,LMax,My,tg,qg,m,f,v,u,Dp,DpZ,DpL,DpVer,DpGor,zMass,LMass);

  for i:=1 to v do

  begin

  for j:=1 to u do

  begin

Form3.Series7.AddXYZ(DpVer[i],Dp[i,j],DpGor[j]);

  Form3.Series4.AddXY(DpVer[i],DpL[i,1]);

  Form3.Series5.AddXY(DpVer[i],DpL[i,2]);

  Form3.Series6.AddXY(DpVer[i],DpL[i,3]);

  Form3.Series1.AddXY(DpGor[j],DpZ[1,j]);

  Form3.Series2.AddXY(DpGor[j],DpZ[2,j]);

  Form3.Series3.AddXY(DpGor[j],DpZ[3,j]);

  end;

  end;

  Form3.Series1.Title:='Знач. кол-ва катков: '+FloatToStr(zMass[1]);

  Form3.Series2.Title:='Знач. кол-ва катков: '+FloatToStr(zMass[2]);

  Form3.Series3.Title:='Знач. кол-ва катков: '+FloatToStr(zMass[3]);

  Form3.Series4.Title:='Знач. базы трактора: '+FloatToStr(LMass[1])+' м';

  Form3.Series5.Title:='Знач. базы трактора: '+FloatToStr(LMass[2])+' м';

  Form3.Series6.Title:='Знач. базы трактора: '+FloatToStr(LMass[3])+' м';

Form3.ShowModal;

end;

procedure TForm2.N1Click(Sender: TObject);

begin

Form2.BitBtn1.Click;

end;

procedure TForm2.N2Click(Sender: TObject);

begin

Form2.BitBtn4.Click;

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

BorderIcons:=BorderIcons-

[biSystemMenu];

with StringGrid1 do

begin

Cells[0,0]:='L\z'

end;

end;

procedure TForm2.BitBtn2Click(Sender: TObject);

var WordApp,NewDoc,WordTable:OLEVariant;

    iRows,iCols,iGridRows,jGridCols:integer;

begin

if Form2.SaveDialog1.Execute=false then exit;

  try

WordApp:=CreateOleObject('Word.Application');

except

Exit

end;

NewDoc:=WordApp.Documents.Add;

iCols:=Stringgrid1.ColCount;

iRows:=Stringgrid1.RowCount;

WordTable:=NewDoc.Tables.Add(WordApp.Selection.Range,iRows,iCols);

WordTable.Range.Font.Size:=8;

  for iGridRows:=1 to iRows do

  for jGridCols:=1 to iCols do

WordTable.Cell(iGridRows,jGridCols).Range.Text:=Form2.Stringgrid1.Cells[jGridCols-1,iGridRows-1];

WordApp.ActiveDocument.SaveAs(Form2.SaveDialog1.FileName);

  WordApp.Quit;

  WordApp:=Unassigned;

  NewDoc:=Unassigned;

  WordTable:=Unassigned;

end;

procedure TForm2.BitBtn3Click(Sender: TObject);

var XLApp,sheet,colum:variant;

    i,j:integer;

begin

if Form2.SaveDialog2.Execute=false then exit;

  try

XLApp:=CreateOleObject('Excel.Application');

except

Exit

end;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Результат';

Colum:=XLApp.Workbooks[1].WorkSheets['Результат'].Columns;

v:=StrToInt(Form1.LabeledEdit3.Text);

u:=StrToInt(Form1.LabeledEdit6.Text);

for i:=1 to v+1 do

Colum:=XLApp.Workbooks[1].WorkSheets['Результат'].Rows;

Colum.columns[1].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.italic:=true;

Colum.Rows[2].Font.Bold:=true;

Sheet:=XLApp.Workbooks[1].WorkSheets['Результат'];

for i:=0 to v do

for j:=0 to u do

sheet.Cells[j+2,i+1]:=Form2.Stringgrid1.Cells[i,j];

sheet.Cells[1,2]:='Требуемый диаметр поддерживающего катка, м.';

XLApp.ActiveWorkbook.SaveAs(Form2.SaveDialog2.FileName);

XLApp.Quit;

end;

procedure TForm2.MSWord1Click(Sender: TObject);

begin

Form2.BitBtn2.Click;

end;

procedure TForm2.MSExcel1Click(Sender: TObject);

begin

Form2.BitBtn3.Click;

end;

procedure TForm2.BitBtn6Click(Sender: TObject);

begin

WinHelp(Handle,'Help.hlp',sw_restore,3);

end;

end.

unit Unit3;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Buttons, TeeSurfa, TeEngine, Series, ExtCtrls,

  TeeProcs, Chart, ComCtrls, Menus, ComObj, TeeTools, TeeComma;

type

  TForm3 = class(TForm)

    PageControl1: TPageControl;

    TabSheet1: TTabSheet;

    TabSheet2: TTabSheet;

    TabSheet3: TTabSheet;

    Chart3: TChart;

    Series7: TSurfaceSeries;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    PopupMenu1: TPopupMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    Chart1: TChart;

    Series1: TLineSeries;

    Series2: TLineSeries;

    Series3: TLineSeries;

    Chart2: TChart;

    Series4: TLineSeries;

    Series5: TLineSeries;

    Series6: TLineSeries;

    ChartTool1: TRotateTool;

    TeeCommander1: TTeeCommander;

    TeeCommander2: TTeeCommander;

    TeeCommander3: TTeeCommander;

    procedure BitBtn1Click(Sender: TObject);

    procedure N1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form3: TForm3;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm3.BitBtn1Click(Sender: TObject);

begin

Form3.Series1.Clear;

Form3.Series2.Clear;

Form3.Series3.Clear;

Form3.Series4.Clear;

Form3.Series5.Clear;

Form3.Series6.Clear;

Form3.Series7.Clear;

Close;

end;

procedure TForm3.N1Click(Sender: TObject);

begin

Form3.BitBtn1.Click;

end;

procedure TForm3.FormCreate(Sender: TObject);

begin

BorderIcons:=BorderIcons-

[biSystemMenu];

end;

procedure TForm3.BitBtn2Click(Sender: TObject);

begin

WinHelp(Handle,'Help.hlp',sw_restore,4);

end;

end.

unit Unit4;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, Buttons, ExtCtrls, Math, Menus;

type

  TForm4 = class(TForm)

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    Image1: TImage;

    Timer1: TTimer;

    GroupBox1: TGroupBox;

    GroupBox2: TGroupBox;

    PopupMenu1: TPopupMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    procedure BitBtn1Click(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure ShowHint(Sender: TObject);

    procedure BitBtn2Click(Sender: TObject);

    procedure N1Click(Sender: TObject);

    procedure N2Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form4: TForm4;

implementation

uses Unit1;

Const

  R1=40;

  R2=30;

  R3=6;

  VD=150;

  D=80;

  R=140;

  var a,XN,XN1,YN,YN1,f:variant;

  Procedure Koleso;

  begin

  with Form4.Image1.Canvas do

  Begin

  ellipse(f-2*R1-R,VD,f-R,VD-2*R1);

  ellipse(f+D-R,VD,2*R1+f+D-R,VD-2*R1);

  ellipse(f+30-R,VD-2*R1+20,f+50-R,VD-2*R1);

  rectangle(f-R1-R,VD+1,2*R1+f-R1+D-R,VD-1);

  rectangle(f-R1-R,VD-2*R1,2*R1+f-R1+D-R,VD+2-2*R1);

  end;

  end;

  Procedure clear;

  begin

  Form4.Image1.canvas.Rectangle(0,0,Form4.Image1.Width,Form4.Image1.Height);

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