Автор работы: Пользователь скрыл имя, 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
С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
Исполняемый файл программы «калькулятор» имеет название 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 |
Полный листинг программы:
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]=
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]=
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(
inc(i);
if i<length(s) then
begin
if s[i]='+' then rez:= StrToFloat(copy(s,1,i-1))+
if s[i]='-' then rez:= StrToFloat(copy(s,1,i-1))-
if s[i]='*' then rez:= StrToFloat(copy(s,1,i-1))*
if s[i]='/' then rez:= StrToFloat(copy(s,1,i-1))/
if s[i]='^' then rez:= power(StrToFloat(copy(s,1,i-1)
Pole.Text:=FloatToStr(rez);
end;