Программирование с использованием подпрограмм пользователя

Автор работы: Пользователь скрыл имя, 13 Декабря 2011 в 20:04, курсовая работа

Описание

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

Содержание

Введение…………………………………………………………….………..4
1. Математическая постановка задачи…………………………….……….4
2. Описание алгоритма решения……………………………………..……..5
3.Обоснование выбора языка и средств поддержки
Технического программирования………………………………………….8
4.Описание процедур и функций ……………………………….…….…...8
5. Листинг программы…………..…………………………………….…..10
6. Результаты работы программы…..……………………………………20
Заключение………………………………………………………..…..……21
Список использованной литературы……………………..………..……..22

Работа состоит из  1 файл

курсовая.doc

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

    procedure Shape19MouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Shape14MouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Shape4MouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

   procedure Shape10MouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Shape5MouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Shape18MouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

    xx, yy: integer;

    d : integer;

    {число  описывающее действие

     1 - +

     2 - -

     3 - *

     4 - /

     5 - div

     6 - mod

    }

implementation

{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

  Shift: TShiftState);

begin

Pole.CanFocus;

end;

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

ReleaseCapture();

SendMessage(Handle, WM_SYSCOMMAND, $F012, 0);

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Close();

end;

procedure TForm1.Shape13MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'1';

end;

procedure TForm1.Shape3MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'2';

end;

procedure TForm1.Shape15MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'3';

end;

procedure TForm1.Shape8MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'4';

end;

procedure TForm1.Shape2MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'5';

end;

procedure TForm1.Shape7MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'6';

end;

procedure TForm1.Shape17MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'7';

end;

procedure TForm1.Shape9MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'8';

end;

procedure TForm1.Shape12MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'9';

end;

procedure TForm1.Shape16MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

Pole.Text:=Pole.Text+'0';

end;

procedure TForm1.Shape6MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

d:=1;

xx:=TextToInt(Pole.Text);

ltext.Caption:=Pole.Text+' + ';

Pole.Text:='0';

end;

procedure TForm1.Shape11MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

d:=2;

xx:=TextToInt(Pole.Text);

ltext.Caption:=Pole.Text+' - ';

Pole.Text:='0';

end;

procedure TForm1.Shape19MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

d:=3;

xx:=TextToInt(Pole.Text);

ltext.Caption:=Pole.Text+' * ';

Pole.Text:='0';

end;

procedure TForm1.Shape14MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

d:=4;

xx:=TextToInt(Pole.Text);

ltext.Caption:=Pole.Text+' / ';

Pole.Text:='0';

end;

procedure TForm1.Shape4MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

d:=5;

xx:=TextToInt(Pole.Text);

ltext.Caption:=Pole.Text+' div ';

Pole.Text:='0';

end;

procedure TForm1.Shape10MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

d:=6;

xx:=TextToInt(Pole.Text);

ltext.Caption:=Pole.Text+' mod ';

Pole.Text:='0';

end;

procedure TForm1.Shape5MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

d:=0;

Pole.Text:='0';

end; 

procedure TForm1.Shape18MouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

yy:=TextToInt(Pole.Text);

case d of

  1: Pole.Text:=IntToStr(OpPlus(xx, yy));

  2: Pole.Text:=IntToStr(OpMinus(xx, yy));

  3: Pole.Text:=IntToStr(OpUmnojenie(xx, yy));

  4: Pole.Text:=FloatToStr(OpDelenie(xx, yy));

  5: Pole.Text:=IntToStr(OpDiv(xx, yy));

  6: Pole.Text:=IntToStr(OpMod(xx, yy));

end;

ltext.Caption:='Результат';

end;

end.

unit Unit2;

interface

uses

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

  Dialogs, StdCtrls;

function textToInt    (str: string): integer;

function OpPlus       (x : integer; y : integer): integer;

function OpMinus      (x : integer; y : integer): integer;

function OpDiv        (x : integer; y : integer): integer;

function OpMod        (x : integer; y : integer): integer;

function OpUmnojenie  (x : integer; y : integer): integer;

function OpDelenie    (x : integer; y : integer): real;

implementation

function TextToInt(str: string) : integer;

var n: integer;

label error, endofproc;

begin

if length(str)>8 then goto error;

for n:=1 to length(str) do

begin

  //ShowMessage(str[n]);

  if (str[n]<'0') or (str[n]>'9') then goto error;

end;

TextToInt:=StrToInt(str);

goto endofproc;

error:

  ShowMessage('Ошибка ввода');

endofproc:

end;

function OpPlus(x : integer; y : integer): integer;

begin

OpPlus:=x+y;

end;

function OpMinus(x : integer; y : integer): integer;

begin

OpMinus:=x-y;

end;

function OpDiv(x : integer; y : integer): integer;

begin

OpDiv:=x div y;

end;

function OpMod(x : integer; y : integer): integer;

begin

OpMod:=x mod y;

end;

function OpUmnojenie(x : integer; y : integer): integer;

begin

OpUmnojenie:=x*y;

end;

function OpDelenie(x : integer; y : integer): real;

begin 

OpDelenie:=x/y;

end;

end. 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

     Программа начинается с запуска ярлыка на рабочем  столе. Происходит формирование  изображения  созданного калькулятора, которое можно  перемещать по экрану. Внешне калькулятор  состоит из кнопок с цифрами(1),  с боку располагаются кнопки с операциями: сложения, вычитания, деления, умножения, операция целочисленного деления и возвращение остатка от деления.(2),в низу кнопка с функцией вывода результата(3) и удаление введенной цифры(4). Имеется окно вывода и ввода результатов(5).Выход из программы осуществляется с помощью кнопки  с изображение «крестика»(6)

 

     5               6 
 

   1                                                                                                                            2                                                                                                                

  3                    4

                                          
 
 
 

   
 

1)Пользователь вводит число (число может быть введено как с клавиатуры, так и самого калькулятора):

2)Выбирает  алгебраическую операцию (в данном случаи «+»), вводит второе число:

3)После нажатия клавиши «результат» выводится ответ:

 

1)                                          2)                                          3) 
 
 
 
 
 
 
 
 
 

Заключение:

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

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

    

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

  1. Культин Н.Б. Delphi 6. Программирование на Object Pascal.– СПб.: БХВ-Петербург, 2002. – 528 с.
  2. Иванова Г.С. Основы программирования: Учебник для вузов. – 2-е изд., перераб. и доп. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 416 с.
  3. Давыдов В.Г. Программирование и основы алгоритмизации: Учебное пособие. – М.: Высш. школа, 2003. – 447 с.: ил.

        4.Фаронов В.В. Delphi 6: Учебный курс. – М.: Издатель Молгачева С.В., 2001. – 672 с

Информация о работе Программирование с использованием подпрограмм пользователя