Автор: Пользователь скрыл имя, 04 Апреля 2012 в 21:33, курсовая работа
Для обеспечения безопасного использования машин большой мощности, способных развивать высокие скорости движения, проектируются тормозные системы, которые могут эффективно противодействовать мощности и скорости.
Тормоза предназначены для уменьшения поступательной скорости, экстренной остановки или удержания на уклоне.
В данной работе необходимо рассчитать удельную мощность трения дисков фрикционного тормоза, необходимую для торможения колеса, в зависимости от момента трения тормоза и числа пар трения.
ВВЕДЕНИЕ 5
1. МАТЕМАТИЧЕСКОЕ РЕШЕНИЕ ЗАДАЧИ 6
2. АЛГОРИТМИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ 8
3. ТАБЛИЦА ИДЕНТИФИКАТОРОВ 9
5. СТРУКТУРА ПРОГРАММНОГО ПРИЛОЖЕНИЯ 16
5.1. Падающее и контекстное меню 16
5.2. Статусная строка 16
5.3. Обработка исключительных ситуаций 17
5.4. Построение графических зависимостей 18
5.5. Создание анимации 18
5.6. Вызов внешнего приложения 19
5.7. Динамически подключаемые библиотеки 20
5.8. Использование системных диалогов 21
7. РАСЧЁТ КОНТРОЛЬНОГО ПРИМЕРА 28
ЗАКЛЮЧЕНИЕ 31
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ИНФОРМАЦИИ 32
zmin:=StrToInt(Form1.
zmax:=StrToInt(Form1.
Wr:=StrToFloat(Form1.
Re:=StrToFloat(Form1.
Ri:=StrToFloat(Form1.
stMtr:=(Mtrmax-Mtrmin)/m;
with Form3 do
begin
{Построение зависимости Pud от Mtr}
Series1.Clear;
Series2.Clear;
Series3.Clear;
for i:=0 to m-1 do
with StringGrid1 do
begin
Series1.AddXY(StrToFloat(
Series2.AddXY(StrToFloat(
Series3.AddXY(StrToFloat(
Series2.Title:='при z='+ cells[5,0];
Series1.Title:='при z='+ FloatToStr(zmin);
Series3.Title:='при z='+ FloatToStr(zmax);
end;
{Построение зависимости Pud от z}
Series4.Clear;
Series5.Clear;
Series6.Clear;
for i:=0 to n-1 do
with StringGrid1 do
begin
Series4.AddXY(StrToFloat(
Series5.AddXY(StrToFloat(
Series6.AddXY(StrToFloat(
Series4.Title:='при Mtr='+ cells[0,1];
Series5.Title:='при Mtr='+ cells[0,5];
Series6.Title:='при Mtr='+ cells[0,m];
end;
{Построение 3D зависимости Pud от Mtr и z}
Series7.Clear;
Mtr:=Mtrmin;
Repeat
z:=zmin;
repeat
Pud7:=Mtr*abs(Wr)/pi*(Re*Re-
Series7.AddXYZ(Mtr,Pud7,z);
z:=z+1
until z>=zmax;
Mtr:=Mtr+stMtr
until Mtr>=Mtrmax
end;
Form3.ShowModal;
end;
procedure TForm2.BitBtn6Click(Sender: TObject);
var
WordApp, NewDoc, WordTable: OLEVariant;
iRows, iCols, iGridRows, jGridCols: Integer;
begin
SaveDialog1.DefaultExt := 'doc';
SaveDialog1.Filter := 'Документ MS Word (*.doc)|*.doc';
SaveDialog1.FileName := 'Результаты расчетов';
if not SaveDialog1.Execute then
Exit;
try
WordApp := CreateOleObject('Word.
except
Exit
end;
NewDoc := WordApp.Documents.Add;
iCols := StringGrid1.ColCount;
iRows := StringGrid1.RowCount;
WordTable := NewDoc.Tables.Add(WordApp.
WordTable.Range.Font.Size := 8;
for iGridRows := 1 to iRows do
for jGridCols := 1 to iCols do
WordTable.Cell(iGridRows, jGridCols).Range.Text :=
StringGrid1.Cells[jGridCols - 1, iGridRows - 1];
WordApp.ActiveDocument.SaveAs(
WordApp.Quit;
WordApp := Unassigned;
NewDoc := Unassigned;
WordTable := Unassigned;
end;
procedure TForm2.BitBtn7Click(Sender: TObject);
var
XLApp,Sheet,Column:Variant;
i,j,m,n: Integer;
begin
SaveDialog1.DefaultExt := 'xls';
SaveDialog1.Filter := 'Документ MS Excel (*.xls)|*.xls';
SaveDialog1.FileName := 'Результаты расчетов';
if not SaveDialog1.Execute then
Exit;
try
XLApp := CreateOleObject('Excel.
except
Exit
end;
XLApp.WorkBooks.Add(-4167);
XLApp.WorkBooks[1].WorkSheets[
Column := XLApp.WorkBooks[1].WorkSheets[
n := StringGrid1.ColCount;
m := StringGrid1.RowCount;
for i := 1 to m + 1 do
Column := XLApp.WorkBooks[1].WorkSheets[
Column.Columns[1].Font.Bold := True;
Column.Rows[1].Font.Bold := True;
Column.Rows[1].Font.Italic := True;
Column.Rows[2].Font.Bold := True;
Sheet := XLApp.WorkBooks[1].WorkSheets[
Form1.Enabled := False;
for i := 0 to m do
for j := 0 to n do
Sheet.Cells[j + 2, i + 1] := '''' + StringGrid1.Cells[i, j];
Form1.Enabled := True;
Sheet.Cells[1, 2] := Label1.Caption;
XLApp.ActiveWorkBook.SaveAs(
XLApp.Quit
end;
procedure TForm2.BitBtn4Click(Sender: TObject);
begin
AutoSizeGridColmn(StringGrid1,
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
WinHelp(Handle, 'help/help.hlp', HELP_CONTEXT, 3);
end;
procedure TForm2.BitBtn5Click(Sender: TObject);
var
HTMLFile: TextFile;
i,j: Integer;
begin
SaveDialog1.DefaultExt := 'html';
SaveDialog1.Filter := 'HTML-файл (*.html)|*.html';
SaveDialog1.FileName := 'Результаты расчетов';
if SaveDialog1.Execute then
begin
AssignFile(HTMLFile, SaveDialog1.FileName);
Rewrite(HTMLFile);
Writeln(HTMLFile, '<html>');
Writeln(HTMLFile, '<head>');
Writeln(HTMLFile,'<metahttp-
'charset=windows-1251">');
Writeln(HTMLFile, '<title>Результаты расчетов</title>');
Writeln(HTMLFile, '</head>');
Writeln(HTMLFile, '<body>');
Writeln(HTMLFile, ' <center><font size="6"><b>' + Label1.Caption +
'</b></font></center>');
Writeln(HTMLFile, ' <table border=1 cellspacing=0 cellspading=0>');
for i := 0 to StringGrid1.RowCount do
begin
Writeln(HTMLFile, ' <tr>');
for j := 0 to StringGrid1.ColCount do
if (j = 0) or (i = 0) then
Writeln(HTMLFile, ' <td><b><i>' +
StringGrid1.Cells[j, i] + '</i></b>')
else
Writeln(HTMLFile, ' <td>' + StringGrid1.Cells[j, i]);
end;
Writeln(HTMLFile, ' </table>');
Writeln(HTMLFile, '</body>');
Writeln(HTMLFile, '</html>');
CloseFile(HTMLFile);
end;
end;
end.
Unit3.pas
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TeEngine, TeeFunci, Series, ExtCtrls, TeeProcs, Chart,
ComCtrls, Buttons, TeeSurfa;
type
TForm3 = class(TForm)
PageSetupDialog1: TPageSetupDialog;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Chart1: TChart;
TabSheet2: TTabSheet;
Chart2: TChart;
Series1: TLineSeries;
TabSheet3: TTabSheet;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
StatusBar1: TStatusBar;
Series2: TLineSeries;
Series3: TLineSeries;
Series4: TLineSeries;
Series5: TLineSeries;
Series6: TLineSeries;
Chart3: TChart;
Series7: TSurfaceSeries;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2, Unit1;
{$R *.dfm}
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure TForm3.BitBtn3Click(Sender: TObject);
begin
if PageSetupDialog1.Execute then
begin
Chart1.print;
Chart2.print;
Chart3.print;
end;
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
WinHelp(Handle, 'help/help.hlp', HELP_CONTEXT, 4);
end;
end.
Unit4.pas
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, Math, ComCtrls;
type
TForm5 = class(TForm)
Memo1: TMemo;
BitBtn1: TBitBtn;
Image1: TImage;
Timer1: TTimer;
Memo2: TMemo;
Memo3: TMemo;
Label1: TLabel;
BitBtn2: TBitBtn;
StatusBar1: TStatusBar;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
direction: integer;
ld_x, rd_x, p_y, inter: integer;
const
ld_points : array[1..2] of integer = (46, 82);
rd_points : array[1..2] of integer = (228, 192);
implementation
uses Unit1;
{$R *.dfm}
procedure Draw;
begin
with Form5.Image1.Canvas do
begin
Rectangle(137, 8, 192, 173); {êîëåñî}
MoveTo(138, p_y);
LineTo(192, p_y); {çàñå÷êà íà êîëåñå}
Rectangle(ld_x,67, ld_x+55, 231); {äèñê òîðìîçà}
Rectangle(rd_x,67, rd_x+55, 231); {äèñê òîðìîçà}
end;
end;
procedure Clean;
begin
Form5.Image1.Canvas.Rectangle(
end;
procedure TForm5.FormCreate(Sender: TObject);
begin
Memo1.Clear;
Memo1.Lines.Add('Ïðîãðàììà
Memo2.Clear;
Memo2.Lines.Add('Âûïîëíèë');
Memo2.Lines.Add('ñòóäåíò
Memo2.Lines.Add('Ïðîâåðèë
Memo3.Clear;
Memo3.Lines.Add('Êàôåäðà "
Memo3.Lines.Add('
Memo3.Lines.Add('ÁÍÒÓ');
Label1.Caption:='PARTIZAN740@
p_y:=9;
ld_x:=ld_points[1];
rd_x:=rd_points[1];
inter:=0;
end;
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure TForm5.Timer1Timer(Sender: TObject);
begin
Clean;
if p_y > 169 then p_y := 8 else p_y := p_y+5;
if ld_x = ld_points[1] then
begin
direction:=0;
end;
if ld_x >= ld_points[2] then
begin
direction:=1;
p_y := p_y-5;
end;
if direction = 0 then
begin
inc(ld_x);
dec(rd_x);
end
else
begin
if (ld_x = ld_points[2]) then
begin
if (inter > 10) then
begin
inter:=0;
dec(ld_x);
inc(rd_x);
end
else
inc(inter);
end
else
begin
dec(ld_x);
inc(rd_x);
end;
end;
Draw;
end;
procedure TForm5.BitBtn2Click(Sender: TObject);
begin
WinHelp(Handle, 'help/help.hlp', HELP_CONTEXT, 5);
end;
end.