Инженерный калькулятор

Автор работы: Пользователь скрыл имя, 11 Марта 2013 в 23:18, курсовая работа

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

Эволюция технических средств персональных компьютеров привела к повсеместному вытеснению старой “доброй” ОС MS-DOS значительно более мощными системами Windows, программирование для которых существенно сложнее, чем программирование для MS-DOS. В 1993 году Microsoft выпустила первую визуальную среду программирования Visual Basic, и программирование для Windows стало даже проще, чем программирование для MS-DOS. В ответ на это Borland в 1995 году выпустила первую версию Delphi, а затем, с интервалом в 1 год, - еще 4 версии: 2, 3, 4 и 5. Наконец, в середине 2001 г. выпускается версия 6.

Содержание

Введение………………………………………………………………………..…..5
Теоретическая часть……………………………………………………………...10
Описание функций и процедур……………………………………………….....13
Руководство пользователя…………………………………………………….…17
Результат работы программы……………………………………………….…...24
Заключение………………………………………………………………….…….26
Список литературы……

Вложенные файлы: 1 файл

Работа.docx

— 1.65 Мб (Скачать файл)



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

     

Таблица 1. Функции кнопок.

 

 

 

 

 

 

 

 

Результат работы программы.

 

В меню Вид можно выбрать два типа калькулятора: обычный и инженерный (рис. 5,6).

 

Рис.5. Обычный вид.

 

 

Рис. 6. Инженерный вид.

 

  Чтобы  решить систему алгебраических уравнений, необходимо в меню Вид выбрать Решение СЛАУ (рис. 7).

 

 

Рис. 7. Решение СЛАУ

 

 

После нажатия кнопки Sta, появляется окно статистика, в котором можно выполнять статистические вычисления (рис.8).

 

 

Рис. 8. Статистика

Заключение

 

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

В целом, работа была не сложной, но потребовала немало временных  затрат.

Во время выполнения, мною были закреплены знания по программированию и математике, приобретены навыки со средой программирования Delphi XE. Я познакомился с такими понятиями как «Объект», «Класс».  В процессе выполнения были изучены компоненты классов TButton, TMemo, TStrigGrid и др.  Я изучил  методы для работы с этими компонентами и научился обрабатывать реакции этих компонентов на различные события.

В результате, получилось то, что нужно было сделать,  программа работает без ошибок. Можно было добавить в программу и другие операции (например, умножение матриц, нахождение обратной матрицы и др.), но это не было частью задания.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список использованной литературы.

 

    1. М. Фленов «Библия Delphi».

 

    1. П. Дарахвелидзе, Е. Марков  «Программирование в Delphi».

 

    1. И. Ю. Баженова Delphi 7. Самоучитель программиста 

 

    1. http://www.beluch.ru/progr/100comp/2_2_1.htm

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение

 

unit Unit1;

 

interface

 

uses

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

  Dialogs, StdCtrls, ExtCtrls, Menus, Buttons, jpeg, math, XPMan, unit2, unit3,

  unit4,ClipBrd;

 

type

  TForm1 = class(TForm)

    MainMenu1: TMainMenu;

    Pravka: TMenuItem;

    Copy: TMenuItem;

    Insert: TMenuItem;

    Vid: TMenuItem;

    Ingener: TMenuItem;

    Standart: TMenuItem;

    SpeedButton1: TSpeedButton;

    SpeedButton2: TSpeedButton;

    SpeedButton3: TSpeedButton;

    SpeedButton4: TSpeedButton;

    SpeedButton5: TSpeedButton;

    SpeedButton6: TSpeedButton;

    SpeedButton7: TSpeedButton;

    SpeedButton8: TSpeedButton;

    SpeedButton9: TSpeedButton;

    SpeedButtonT: TSpeedButton;

    SpeedButton0: TSpeedButton;

    SpeedButtonPlusMinus: TSpeedButton;

    SpeedButtonCL: TSpeedButton;

    SpeedButtonCE: TSpeedButton;

    SpeedButtonBack: TSpeedButton;

    SpeedButtonSta: TSpeedButton;

    SpeedButtonAve: TSpeedButton;

    SpeedButtonSum: TSpeedButton;

    SpeedButtonS: TSpeedButton;

    SpeedButtonDat: TSpeedButton;

    SpeedButtonD: TSpeedButton;

    SpeedButtonE: TSpeedButton;

    SpeedButtonF: TSpeedButton;

    SpeedButtonA: TSpeedButton;

    SpeedButtonB: TSpeedButton;

    SpeedButtonC: TSpeedButton;

    SpeedButtonUmn: TSpeedButton;

    SpeedButtonDel: TSpeedButton;

    SpeedButtonPlus: TSpeedButton;

    SpeedButtonRavno: TSpeedButton;

    SpeedButtonMinus: TSpeedButton;

    SpeedButtonMC: TSpeedButton;

    SpeedButtonMR: TSpeedButton;

    SpeedButtonMS: TSpeedButton;

    SpeedButtonMplus: TSpeedButton;

    SpeedButtonSin: TSpeedButton;

    SpeedButtonCos: TSpeedButton;

    SpeedButtonTg: TSpeedButton;

    SpeedButtonLn: TSpeedButton;

    SpeedButtonLog: TSpeedButton;

    SpeedButtonMod: TSpeedButton;

    SpeedButtonAnd: TSpeedButton;

    SpeedButtonLsh: TSpeedButton;

    SpeedButtonNot: TSpeedButton;

    SpeedButtonXor: TSpeedButton;

    SpeedButtonOr: TSpeedButton;

    SpeedButtonX2: TSpeedButton;

    SpeedButtonXY: TSpeedButton;

    SpeedButton1x: TSpeedButton;

    SpeedButtonFac: TSpeedButton;

    SpeedButtonPi: TSpeedButton;

    SpeedButtonInt: TSpeedButton;

    SpeedButtonSqrt: TSpeedButton;

    SpeedButtonMumn: TSpeedButton;

    SpeedButtonMdel: TSpeedButton;

    SpeedButtonCtg: TSpeedButton;

    Memo1: TMemo;

    Panel1: TPanel;

    RadioButtonHex: TRadioButton;

    RadioButtonDec: TRadioButton;

    RadioButtonOct: TRadioButton;

    RadioButtonBin: TRadioButton;

    Panel2: TPanel;

    Panel3: TPanel;

    Inv: TCheckBox;

    Hyp: TCheckBox;

    Panel5: TPanel;

    RadioButtonGradus: TRadioButton;

    RadioButtonRad: TRadioButton;

    RadioButtonGrad: TRadioButton;

    RadioButton4: TRadioButton;

    RadioButton2: TRadioButton;

    RadioButton1: TRadioButton;

    Image1: TImage;

    N1: TMenuItem;

    Image2: TImage;

    N2: TMenuItem;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    Label10: TLabel;

    Label11: TLabel;

    Label12: TLabel;

    XPManifest1: TXPManifest;

    procedure FormCreate(Sender: TObject);

    procedure RadioButtonHexClick(Sender: TObject);

    procedure RadioButtonDecClick(Sender: TObject);

    procedure RadioButtonOctClick(Sender: TObject);

    procedure RadioButtonBinClick(Sender: TObject);

    procedure SpeedButtonStaClick(Sender: TObject);

    procedure SpeedButton7Click(Sender: TObject);

    procedure SpeedButton8Click(Sender: TObject);

    procedure SpeedButton9Click(Sender: TObject);

    procedure SpeedButton4Click(Sender: TObject);

    procedure SpeedButton5Click(Sender: TObject);

    procedure SpeedButton6Click(Sender: TObject);

    procedure SpeedButton1Click(Sender: TObject);

    procedure SpeedButton2Click(Sender: TObject);

    procedure SpeedButton3Click(Sender: TObject);

    procedure SpeedButtonTClick(Sender: TObject);

    procedure SpeedButton0Click(Sender: TObject);

    procedure SpeedButtonAClick(Sender: TObject);

    procedure SpeedButtonBClick(Sender: TObject);

    procedure SpeedButtonCClick(Sender: TObject);

    procedure SpeedButtonDClick(Sender: TObject);

    procedure SpeedButtonEClick(Sender: TObject);

    procedure SpeedButtonFClick(Sender: TObject);

    procedure SpeedButtonPlusClick(Sender: TObject);

    procedure SpeedButtonRavnoClick(Sender: TObject);

    procedure SpeedButtonPlusDblClick(Sender: TObject);

    procedure SpeedButtonCEClick(Sender: TObject);

    procedure SpeedButtonCLClick(Sender: TObject);

    procedure SpeedButtonBackClick(Sender: TObject);

    procedure SpeedButtonMinusClick(Sender: TObject);

    procedure SpeedButtonDelClick(Sender: TObject);

    procedure SpeedButtonUmnClick(Sender: TObject);

    procedure SpeedButtonLnClick(Sender: TObject);

    procedure SpeedButtonX2Click(Sender: TObject);

    procedure SpeedButton1xClick(Sender: TObject);

    procedure SpeedButtonLogClick(Sender: TObject);

    procedure SpeedButtonXYClick(Sender: TObject);

    procedure SpeedButtonIntClick(Sender: TObject);

    procedure SpeedButtonPiClick(Sender: TObject);

    procedure SpeedButtonSinClick(Sender: TObject);

    procedure SpeedButtonCosClick(Sender: TObject);

    procedure SpeedButtonTgClick(Sender: TObject);

    procedure SpeedButtonCtgClick(Sender: TObject);

    procedure FormKeyPress(Sender: TObject; var Key: Char);

    procedure SpeedButtonFacClick(Sender: TObject);

    procedure SpeedButtonSqrtClick(Sender: TObject);

    procedure Memo1Change(Sender: TObject);

    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

    procedure SpeedButtonPlusMinusClick(Sender: TObject);

    procedure SpeedButtonMSClick(Sender: TObject);

    procedure SpeedButtonMRClick(Sender: TObject);

    procedure SpeedButtonMCClick(Sender: TObject);

    procedure SpeedButtonMplusClick(Sender: TObject);

    procedure SpeedButtonMumnClick(Sender: TObject);

    procedure SpeedButtonMdelClick(Sender: TObject);

    procedure SpeedButtonDatClick(Sender: TObject);

    procedure SpeedButtonSumClick(Sender: TObject);

    procedure SpeedButtonAveClick(Sender: TObject);

    procedure SpeedButtonSClick(Sender: TObject);

    procedure RadioButton4Click(Sender: TObject);

    procedure RadioButton2Click(Sender: TObject);

    procedure RadioButton1Click(Sender: TObject);

    procedure SpeedButtonNotClick(Sender: TObject);

    procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonModClick(Sender: TObject);

    procedure SpeedButtonAndClick(Sender: TObject);

    procedure SpeedButtonOrClick(Sender: TObject);

    procedure SpeedButtonXorClick(Sender: TObject);

    procedure SpeedButtonRavnoMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonRavnoMouseLeave(Sender: TObject);

    procedure SpeedButtonLshClick(Sender: TObject);

    procedure SpeedButton7MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButton8MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButton9MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButton4MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButton5MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButton6MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButton1MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButton2MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButton3MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonTMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButton0MouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonPlusMinusMouseMove(Sender: TObject; Shift: TShiftState;

      X, Y: Integer);

    procedure SpeedButtonAMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonBMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonCMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonDMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonEMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonFMouseMove(Sender: TObject; Shift: TShiftState; X,

      Y: Integer);

    procedure SpeedButtonFMouseLeave(Sender: TObject);

    procedure SpeedButtonEMouseLeave(Sender: TObject);

    procedure SpeedButtonDMouseLeave(Sender: TObject);

    procedure SpeedButtonCMouseLeave(Sender: TObject);

    procedure SpeedButtonBMouseLeave(Sender: TObject);

    procedure SpeedButtonAMouseLeave(Sender: TObject);

    procedure SpeedButtonPlusMinusMouseLeave(Sender: TObject);

    procedure SpeedButton0MouseLeave(Sender: TObject);

    procedure SpeedButtonTMouseLeave(Sender: TObject);

    procedure SpeedButton3MouseLeave(Sender: TObject);

    procedure SpeedButton2MouseLeave(Sender: TObject);

    procedure SpeedButton1MouseLeave(Sender: TObject);

    procedure SpeedButton6MouseLeave(Sender: TObject);

    procedure SpeedButton5MouseLeave(Sender: TObject);

    procedure SpeedButton4MouseLeave(Sender: TObject);

    procedure SpeedButton9MouseLeave(Sender: TObject);

    procedure SpeedButton8MouseLeave(Sender: TObject);

    procedure SpeedButton7MouseLeave(Sender: TObject);

    procedure N2Click(Sender: TObject);

    procedure FormShow(Sender: TObject);

    procedure CopyClick(Sender: TObject);

    procedure InsertClick(Sender: TObject);

    procedure StandartClick(Sender: TObject);

    procedure IngenerClick(Sender: TObject);

    procedure N1Click(Sender: TObject);

    procedure Image1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

  kol,ss,i,j,l,pk,mk,uk,dk,mok,mo,rm,mb1,ls,lk:integer;  flag:boolean;

  a,b,c,R,m,d,u,s,mem_s,mem_p,mem_u,mem_d,mem_c, mod1:extended; net:string;

  klav,nol:char;

  kopy,vstavka:string;

implementation

 

uses Unit5;

 

{$R *.dfm}

{---------------------Перевод в  другую систему СС____begin--------------------}

function ItoS(val:integer):string;

var

  r:string;

begin

  Str(val,r);

  ItoS:=r;

end;

 

function ConvertToCS(val:integer;CS:integer):string;

var

  r,r1:string;

  m,i:integer;

begin

  r:='';  if CS>16 then exit;

  repeat

   m:=val mod CS;

   val:=val div CS;

   if m<10 then

    r:=r+ItoS(m)

      else

        r:=r+chr(ord('A')+m-10);

  until val=0;

   r1:='';

  for i:=length(r) downto 1 do r1:=r1+r[i];

  ConvertToCS:=r1;

END;

 

function Rto10(s:string;R:word):longint;

var z,m,n:integer;

function stepen(x,n:integer):longint;

var k,i:longint;

begin

     k:=1;

     for i:=1 to n do k:=k*x;

     stepen:=k;

end;

begin

     m:=0;

     for i:=1 to length(s) do

     begin

          val(s[i],n,z);

          if z<>0 then n:=10+ord(UpCase(s[i]))-ord('A');

          m:=m+stepen(R,length(s)-i)*n;

     end;

     Rto10:=m;

end;

{---------------------Перевод в  другую систему СС____end--------------------}

 

function rol32(value, shift: longint): longint;

asm

  mov ecx, edx

  rol eax, cl

end;

 

procedure TForm1.CopyClick(Sender: TObject); {Копируем в буфер обмена}

begin

memo1.SelectAll;

memo1.CopyToClipboard;

flag:=true;

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

ss:=10;

Memo1.Text:='0';

net:='Недопустимое значение';

HideCaret(memo1.Handle);

Memo1.Alignment := taRightJustify;

Memo1.MaxLength := 27;

Memo1.WantReturns :=true;;

Memo1.WordWrap := true;;

flag:=true;

  SpeedButtonA.Enabled:=false;  SpeedButtonB.Enabled:=false;

  SpeedButtonC.Enabled:=false;  SpeedButtonD.Enabled:=false;

  SpeedButtonE.Enabled:=false;  SpeedButtonF.Enabled:=false;

end;

 

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);

begin

  CASE key of

    #27: begin SpeedButtonCLClick(SpeedButtonCL); key:=#0; end;

   '1': begin SpeedButton1Click(SpeedButton1); key:=#0;   end;

   '2': begin SpeedButton2Click(SpeedButton2); key:=#0;   end;

   '3': begin SpeedButton3Click(SpeedButton3); key:=#0;   end;

   '4': begin SpeedButton4Click(SpeedButton4); key:=#0;   end;

   '5': begin SpeedButton5Click(SpeedButton5); key:=#0;   end;

   '6': begin SpeedButton6Click(SpeedButton6); key:=#0;   end;

   '7': begin SpeedButton7Click(SpeedButton7); key:=#0;   end;

   '8': begin SpeedButton8Click(SpeedButton8); key:=#0;   end;

   '9': begin SpeedButton9Click(SpeedButton9); key:=#0;   end;

   '0': begin SpeedButton0Click(SpeedButton0); key:=#0;   end;

   #97: if RadioButtonHex.Checked=true then begin

        SpeedButtonAClick(SpeedButtonA); key:=#0;   end;

   #98: if RadioButtonHex.Checked=true then begin

         SpeedButtonBClick(SpeedButtonB); key:=#0;  end;

   #99: if RadioButtonHex.Checked=true then begin

        SpeedButtoncClick(SpeedButtonC); key:=#0;   end;

   #100: if RadioButtonHex.Checked=true then begin

         SpeedButtonDClick(SpeedButtonD); key:=#0;  end;

   #101: if RadioButtonHex.Checked=true then begin

         SpeedButtonEClick(SpeedButtonE); key:=#0;  end;

   #102: if RadioButtonHex.Checked=true then begin

         SpeedButtonfClick(SpeedButtonF); key:=#0;  end;

   '+':  SpeedButtonPlusClick(SpeedButtonPlus);

   '-':  SpeedButtonMinusClick(SpeedButtonMinus);

   '*':  SpeedButtonUmnClick(SpeedButtonUmn);

   '/':  SpeedButtonDelClick(SpeedButtonDel);

   #13:  SpeedButtonRavnoClick(SpeedButtonRavno);

   #115: SpeedButtonSinClick(SpeedButtonSin);

   #107: SpeedButtonCosClick(SpeedButtonCos);

   #116: SpeedButtonTgClick(SpeedButtonTg);

   #113: SpeedButtonCtgClick(SpeedButtonCtg);

   #33:  SpeedButtonFacClick(SpeedButtonFac);

   #96:  SpeedButtonSqrtClick(SpeedButtonSqrt);

   #92:  SpeedButtonPlusMinusClick(SpeedButtonPlusMinus);

   #46:  SpeedButtonTClick(SpeedButtonT);

   #112: SpeedButtonPiClick(SpeedButtonPi);

{I}  #105: begin

            if Inv.Checked=true then Inv.Checked:=false

              else

             if Inv.Checked=false then Inv.Checked:=true;

            end;

{H}  #104: begin

            if Hyp.Checked=true then Hyp.Checked:=false

              else

            if Hyp.Checked=false then Hyp.Checked:=true;

            end;

   #108: SpeedButtonLnClick(SpeedButtonLn); {l}

   #103: SpeedButtonLogClick(SpeedButtonLog); {g}

   #122: SpeedButtonIntClick(SpeedButtonInt);

   #64 : SpeedButtonX2Click(SpeedButtonX2);

   #94 : SpeedButtonXYClick(SpeedButtonXY);

   #08 : SpeedButtonBackClick(speedbuttonBack);

END;

 

end;

 

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);

Информация о работе Инженерный калькулятор