Автор работы: Пользователь скрыл имя, 13 Декабря 2011 в 20:04, курсовая работа
Тема моей курсовой работы: программирование с использованием подпрограмм пользователя. Задача курсового проектирования заключается в создание программы реализующую работу обычного кнопочного калькулятора, выполняющего основные арифметические операции. Данная программа позволяет вычислять выражения, содержащие численные значения. Программа предназначена для упрощения вычислений арифметических выражений. В современном мире использование калькулятора облегчает работу экономистов, инженеров и людей других профессий. В первую очередь это экономия времени и точность вычислений. Калькулятор, созданный в электронном виде имеет больше преимуществ, чем обычный кнопочный калькулятор. В первую очередь это удобство пользования и усовершенствование выполняемых функций.
Введение…………………………………………………………….………..4
1. Математическая постановка задачи…………………………….……….4
2. Описание алгоритма решения……………………………………..……..5
3.Обоснование выбора языка и средств поддержки
Технического программирования………………………………………….8
4.Описание процедур и функций ……………………………….…….…...8
5. Листинг программы…………..…………………………………….…..10
6. Результаты работы программы…..……………………………………20
Заключение………………………………………………………..…..……21
Список использованной литературы……………………..………..……..22
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(
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(
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(
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(
Shift: TShiftState; X, Y: Integer);
begin
Pole.Text:=Pole.Text+'9';
end;
procedure TForm1.Shape16MouseDown(
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(
Shift: TShiftState; X, Y: Integer);
begin
d:=2;
xx:=TextToInt(Pole.Text);
ltext.Caption:=Pole.Text+' - ';
Pole.Text:='0';
end;
procedure TForm1.Shape19MouseDown(
Shift: TShiftState; X, Y: Integer);
begin
d:=3;
xx:=TextToInt(Pole.Text);
ltext.Caption:=Pole.Text+' * ';
Pole.Text:='0';
end;
procedure TForm1.Shape14MouseDown(
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(
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(
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(
3: Pole.Text:=IntToStr(
4: Pole.Text:=FloatToStr(
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
3 4
1)Пользователь вводит число (число может быть введено как с клавиатуры, так и самого калькулятора):
2)Выбирает алгебраическую операцию (в данном случаи «+»), вводит второе число:
3)После нажатия клавиши «результат» выводится ответ:
1)
Заключение:
В результате работы была создана программа калькулятор, созданная в среде программирования Delphi, которая осуществляет функции: сложения, вычитания, умножения, деления двух и более операндов. При необходимости программа может быть дополнена функциями инженерного калькулятора. Например, такими как: преобразование чисел из одной системы счисления в другую, вычисление тригонометрических, показательных, логарифмических функций и вычисление квадратного корня.
В создания данной программы, мне понравилось
работать в среде программирования Delphi,
поскольку она имеет удобный интерфейс
и достаточно не сложное написание программного
кода, а также более наглядно представляет
программу визуально.
Список использованной литературы.
4.Фаронов В.В. Delphi 6: Учебный курс. – М.: Издатель Молгачева С.В., 2001. – 672 с
Информация о работе Программирование с использованием подпрограмм пользователя