Простой калькулятор

Автор работы: Пользователь скрыл имя, 04 Июня 2012 в 17:12, курсовая работа

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

Для математических вычислений существует множество различных программных продуктов. Это известные всем пакеты MathCAD, Math Lab, Mathematical, Axum. Есть и более простые: всевозможные программы – калькуляторы (имитирующие работу обычного калькулятора). В среде Windows есть такая программа (Calc.exe), по аналогии с ней было сделано данное задание.

Содержание

Основные данные о работе 1
Содержание 2
Введение 4
Основная часть 5
1. Разработка эскизного и технического проектов программы 5
1.1 Задание 5
1.2 Назначение и область применения 5
2. Технические характеристики 6
2.1 Постановка задачи 6
2.2 Описание алгоритма 8
2.3 Организация входных и выходных данных 8
2.4 Выбор состава технических и программных средств 8
3. Разработка рабочего проекта 10
3.1 Разработка программы 10
3.2 Спецификация программы 14
3.3 Текст программы 15
3.4 Описание программы 23
3.5 Тестирование программы 24
3.6 Внедрение 24
Заключение 26
Глоссарий 27
Список использованных источников 29
Приложения 30

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

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

— 277.50 Кб (Скачать файл)

Сursor – crHandPoin

Height –  25

Left –  120

Taborder –  11

Top –  72

Width –  33 

15-компонент button3

Свойства:

Сaption – «*»

Сursor – crHandPoin

Height –  25

Left –  120

Taborder –  12

Top –  104

Width –  33   

16-компонент button4

Свойства:

Сaption – «/»

Сursor – crHandPoin

Height –  25

Left –  120

Taborder –  13

Top –  136

Width –  33 

17 - компонент button5

Свойства:

Сaption – «=»

Сursor – crHandPoin

Height –  57

Left –  192

Taborder –  14

Top –  72

Width –  89

18 - компонент Dot

Свойства:

Сaption – «,»

Сursor – crHandPoin

Height –  25

Left –  120

Taborder –  13

Top –  136

Width 33 

19 – компонент TМainMenu

Свойства:

Items

Файл (N1)  Справка  (N3)        Выход (N2) о прграмме (N4)

Для N1 –  событие BitBtn1Click (приводится ниже).

N2Click –  закончить работу с приложением.

Для (N3)

N4Click –  перейти к работе со второй  формой.

20 – компонент Tedit PoleСвойства:

Сursor – crHandPoin

     Height – 21

     Left – 8

     Taborder – 9

     Top – 8

     Width – 289

    1. Спецификация  программы

     Исполняемый файл программы «калькулятор»  имеет  название Calculator.exe и расположен в  архиве Калькулятор.rar в каталоге Калькулятор\программа калькулятор. Состав проекта:

Наименование Обозначение Примечание
Calculator.Dof Файл параметров проекта Содержит текущие  установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивы
Calculatort.Dpr Файл проекта Связывает все  файлы, из которых состоит приложение
Calculatort.Dsk Файл, содержащий Desktop – настройки проекта Содержит информацию о том, какие окна открыты и в каких позициях они расположены
Calculator.Res Файл ресурсов Содержит пиктограммы, графические изображения
Unit1.Pas Файл программного модуля для формы № 1 Определяет  функциональность формы № 1
Unit2.Pas Файл программного модуля для формы № 2 Определяет  функциональность формы № 2
Unit1.Dfm Файл формы  № 1 Содержит список свойств всех компонентов, включенных в форму № 1
Unit2.Dfm Файл формы  № 2 Содержит список свойств всех компонентов, включенных в форму № 2
Unit1.Dcu Объектный файл для Unit1.Pas Откомпилированная версия Unit1.Pas
calculator.ico Иконка в  верхний левый угол Откомпилированная версия Unit3.Pas4

    1. Текст программы

     Полный листинг программы:

     unit Unit1;

     interface

     uses

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

       Dialogs, Buttons, StdCtrls, Menus; 

     type

       TForm1 = class(TForm)

         _1: TButton;

         _2: TButton;

         _3: TButton;

         _4: TButton;

         _5: TButton;

         _6: TButton;

         _7: TButton;

         _8: TButton;

         _9: TButton;

         _0: TButton;

         _00: TButton;

         Dot: TButton;

         Pole: TEdit;

         Button1: TButton;

         Button2: TButton;

         Button3: TButton;

         Button4: TButton;

         MainMenu1: TMainMenu;

         N1: TMenuItem;

         N2: TMenuItem;

         N3: TMenuItem;

         N4: TMenuItem;

         Button5: TButton;

         procedure _1Click(Sender: TObject);

         procedure _2Click(Sender: TObject);

         procedure _3Click(Sender: TObject);

         procedure _4Click(Sender: TObject);

         procedure _5Click(Sender: TObject);

         procedure _6Click(Sender: TObject);

         procedure _7Click(Sender: TObject);

         procedure _8Click(Sender: TObject);

         procedure _9Click(Sender: TObject);

         procedure DotClick(Sender: TObject);

         procedure _00Click(Sender: TObject);

         procedure _0Click(Sender: TObject);

         procedure Button1Click(Sender: TObject);

         procedure Button2Click(Sender: TObject);

         procedure Button3Click(Sender: TObject);

         procedure Button4Click(Sender: TObject);

         procedure Button5Click(Sender: TObject);

         procedure PoleChange(Sender: TObject);

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

         procedure N2Click(Sender: TObject);

         procedure N4Click(Sender: TObject);

       private

         { Private declarations }

       public

         { Public declarations }

       end;

     var

       Form1: TForm1;

     implementation

     {$R *.dfm}

     uses

       Math, Unit2;

     var

       rez: real;

     procedure TForm1._1Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1._2Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1._3Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1._4Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1._5Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1._6Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1._7Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1._8Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1._9Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1.DotClick(Sender: TObject);

     begin

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

     end;

     procedure TForm1._00Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1._0Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1.Button1Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1.Button2Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1.Button3Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1.Button4Click(Sender: TObject);

     begin

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

     end;

     procedure TForm1.Button5Click(Sender: TObject);

     var

       s: string;

       i: word;

       First: boolean;

     begin

       s:=Pole.Text;

       rez:=0;

       while (s[1]='+')or(s[1]='*')or(s[1]='/')or(s[1]='^') do

     delete(s,1,1);

       First:=true;

       for i:=1 to length(s) do

           if s[i]=' ' then delete(s,i,1)

                       else if s[i]='.' then

                            begin

                              delete(s,i,1);

                              insert(',',s,i);

                            end;

       for i:=1 to length(s) do

           if (s[i]='+')or(s[i]='-')or(s[i]='*')or(s[i]='/')or(s[i]='^')then

              if (First=false) then delete(s,i,length(s)-i+1)

                               else First:=false;

       Pole.Text:='';

       i:=1;

       while (s[i]<>'+')and(s[i]<>'-')and(s[i]<>'*')and(s[i]<>'/')and(s[i]<>'^') do

             inc(i);

       if i<length(s) then

       begin

         if s[i]='+' then rez:= StrToFloat(copy(s,1,i-1))+StrToFloat(copy(s,i+1,length(s)-i+1));

         if s[i]='-' then rez:= StrToFloat(copy(s,1,i-1))-StrToFloat(copy(s,i+1,length(s)-i+1));

         if s[i]='*' then rez:= StrToFloat(copy(s,1,i-1))*StrToFloat(copy(s,i+1,length(s)-i+1));

         if s[i]='/' then rez:= StrToFloat(copy(s,1,i-1))/StrToFloat(copy(s,i+1,length(s)-i+1));

         if s[i]='^' then rez:= power(StrToFloat(copy(s,1,i-1)),StrToFloat(copy(s,i+1,length(s)-i+1)));

         Pole.Text:=FloatToStr(rez);

        

       end;

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