Автор работы: Пользователь скрыл имя, 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
Form1.LabeledEdit9.SetFocus;
Exit;
end;
end;
try
m:=StrToFloat(Form1.
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit9.SetFocus;
Exit;
end;
end;
try
f:=StrToFloat(Form1.
except
on EConvertError Do
begin
MessageDlg('Некорректно введены данные',
mtWarning,[mbOK],0);
Form1.LabeledEdit9.SetFocus;
Exit;
end;
end;
AssignFile(Fw, 'Данные.txt');
ReWrite(Fw);
WriteLn(Fw,StrToFloat(Form1.
WriteLn(Fw,StrToFloat(Form1.
WriteLn(Fw,StrToInt(Form1.
WriteLn(Fw,StrToFloat(Form1.
WriteLn(Fw,StrToFloat(Form1.
WriteLn(Fw,StrToInt(Form1.
WriteLn(Fw,StrToFloat(Form1.
WriteLn(Fw,StrToFloat(Form1.
WriteLn(Fw,StrToFloat(Form1.
WriteLn(Fw,StrToFloat(Form1.
WriteLn(Fw,StrToFloat(Form1.
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_
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
WinHelp(Handle,'Help.hlp',sw_
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,
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,
'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:
begin
zMin:=StrToFloat(Form1.
zMax:=StrToFloat(Form1.
v:=50;
LMin:=StrToFloat(Form1.
LMax:=StrToFloat(Form1.
u:=50;
My:=StrToFloat(Form1.
tg:=StrToFloat(Form1.
qg:=StrToFloat(Form1.
m:=StrToFloat(Form1.
f:=StrToFloat(Form1.
Diametr(zMin,zMax,LMin,LMax,
for i:=1 to v do
begin
for j:=1 to u do
begin
Form3.Series7.AddXYZ(DpVer[i],
Form3.Series4.AddXY(DpVer[i],
Form3.Series5.AddXY(DpVer[i],
Form3.Series6.AddXY(DpVer[i],
Form3.Series1.AddXY(DpGor[j],
Form3.Series2.AddXY(DpGor[j],
Form3.Series3.AddXY(DpGor[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:
iRows,iCols,iGridRows,
begin
if Form2.SaveDialog1.Execute=
try
WordApp:=CreateOleObject('
except
Exit
end;
NewDoc:=WordApp.Documents.Add;
iCols:=Stringgrid1.ColCount;
iRows:=Stringgrid1.RowCount;
WordTable:=NewDoc.Tables.Add(
WordTable.Range.Font.Size:=8;
for iGridRows:=1 to iRows do
for jGridCols:=1 to iCols do
WordTable.Cell(iGridRows,
WordApp.ActiveDocument.SaveAs(
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=
try
XLApp:=CreateOleObject('Excel.
except
Exit
end;
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[
Colum:=XLApp.Workbooks[1].
v:=StrToInt(Form1.
u:=StrToInt(Form1.
for i:=1 to v+1 do
Colum:=XLApp.Workbooks[1].
Colum.columns[1].Font.Bold:=
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.italic:=
Colum.Rows[2].Font.Bold:=true;
Sheet:=XLApp.Workbooks[1].
for i:=0 to v do
for j:=0 to u do
sheet.Cells[j+2,i+1]:=Form2.
sheet.Cells[1,2]:='Требуемый диаметр поддерживающего катка, м.';
XLApp.ActiveWorkbook.SaveAs(
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_
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_
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*
ellipse(f+D-R,VD,2*R1+f+D-R,
ellipse(f+30-R,VD-2*R1+20,f+
rectangle(f-R1-R,VD+1,2*R1+f-
rectangle(f-R1-R,VD-2*R1,2*R1+
end;
end;
Procedure clear;
begin
Form4.Image1.canvas.Rectangle(