Разработка программы "Калькулятор"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

temp); end;

Заключение

 

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

Также было проведено исследование полученного программного продукта. В результате были выявлены следующие достоинства и недостатки полученного программного продукта:

Достоинства:

Существует возможность сбрасывать результат;

Программный продукт малотребователен к системным ресурсам компьютера.

Недостатки:

Невозможность выполнения некоторых других математических операций;

Невозможность сохранения операндов или результатов в памяти программы;

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

Список литературы

 

1. Фаронов, В.В. Программирование в Delphi 7: учеб. пособие / В.В. Фаронов. - 7-е изд., перераб. - М.: Нолидж, 2006. - 412с.

. Ставровский, А.Б. Delphi в задачах и примерах: учеб. для вузов / А.Б. Ставровский. - Киев: BНV, 2004. - 399с.

. Кнут, Д.Э. Искусство программирования: учеб. пособие: в 3 т.: пер. с англ. Т.1: Основные алгоритмы. - 3-е изд. - М. и др.: Вильямс, 2000. - 720 с.

. Гловацкая, А.П. Методы и алгоритмы вычислительной математики: учеб. пособие для вузов / А.П. Головыцкая. - М.: Радио и связь, 1999. - 408с.

. Бежанова, М.М. Практическое программирование: структуры данных и алгоритмы: учеб. для вузов / М.М. Бежанова, Л.А. Москвина, И.В. Поттосин. - М.: Логос, 2001. - 223с.

Приложения

 

Приложение 1

 

Листинг программы

program Calculator;

uses Functions,GrMouse,GrButton,Graph,GrOutPut,dos,crt;: string= 7 8 9/< - x^y+

4 5 6 * sin cos+

1 2 3 - tg ktg+

0 с. + = ы+

P R O E K T;

{$F+}: array [1.35] of TGrButton;,QuitButton: TGrButton;,SecondEdit: TGrButton;: TMouseStatus;: boolean;GetCaption (i: byte): string;,TempPos,Count: byte;: =0;: =0;x: =1 to Length (Captions) doCaptions [x] = then inc (count);Count=i-2 then TempPos: =x;Count=i-1 then GetCaption: =copy (Captions,TempPos+2,x-TempPos-1);;;ChangeSysOfCount (SysOfCount: TSysCountStr);: string;SysOfCount [1] of

D: begin;;SysOfCount [1] of

D: begin SysCount: =DEC; DisButtons: =DECindexes; end;;(FParam);(SParam);(false);(SParam);(true);(FParam);;SetGroupEnabled (SysOfCount: TSysCountStr);: =ALLnumbers;i: =2 to 35 doi in DisButtons thenButtons [i] donot Enabled then(true);(SysOFCount);i: =2 to 35 doi in DisButtons then[i]. SetEnabled (False);: =;;DrawingSquareOfButt (MaxTopInc,LeftOffs,TopOffs,BStartInd,BCount: word);: =0;j<=MaxTopInc doi: =BStartInd-1 to BStartInd+BCount-2 do[j+i+1]. Left: =i*50+LeftOffs;[j+i+1]. Top: =j*7+TopOffs;[j+i+1]. Draw;;(j,7);;;Action;: =true;;SetRadioClick (var ActButt,DisAct1,DisAct2: TGrButton);ActButt. FillColor=ActButt. FillColor then. FillColor: =ActButt. PressedColor;. FillColor: =1;. FillColor: =1;. Fill (ActButt. PressedColor);. Fill (DisAct1. FillColor);. FIll (DisAct2. FillColor);;;SetDECsys;(Buttons [8],Buttons [1],Buttons [15]);(DEC);;FstAction;(FirstEdit. FillColor=1) then. FillColor: =4;. FillColor: =1;. Draw;. Draw;(true);: =false;;;SndAction;(SecondEdit. FillColor=1) then. FillColor: =1;. FillColor: =4;. Draw;. Draw;(false);;;;;. Init;. Init;. Init;. Init;i: =1 to 35 doButtons [i] do;: =GetCaption (i+1);;QuitButton do: =140;: =GetMaxY-50;: =20;: =370;: =Quit;;;CEButton do: =GetMaxX-220;: =80;: =30;: =85;: =CE;;;FirstEdit do: =GetMaxX-55;: =120;: =Fst;: =4;;;SecondEdit do: =GetMaxX-55;: =170;: =Snd;;;(30,140,1200,1,1);(30,170,120,2,6);(5,5,GetMaxX-5,GetMaxY-5);(OutXs,OutYs,OutXf,OutYf);

{/*End of drawing*/};;;[1]. PressedColor: =8;[8]. PressedColor: =8;[15]. PressedColor: =8;(DEC);(Buttons [8],Buttons [1],Buttons [15]);[8]. Action: =SetDECsys;[6]. Action: =BackSpaceSymbol;[24]. Action: =SetPlusMines;[27]. Action: =GetResult;

{*************************}not Quit doi: =1 to 35 doButtons [i] doonClick (Action,MouseStatus) then(Length (Caption) =1) then(Caption [1] in SysCount) then(Caption);: =false;;(Caption [1]);Caption [1] =с then Calculated: =false;;: =0;KeyPressed then: =Ord (readkey);Key of

.57,46,97.103:UpCase (Char (Key)) in SysCount then(UpCase (Char (Key)));: =false;;

: begin;: =false;;

: SetEnterMode (*); {*}

: SetEnterMode (+); {+}

: SetEnterMode (-); {-}

: SetEnterMode (/); {/}

: exit;;;;. onClick (Action,MouseStatus);. OnClick (CEClick,MouseStatus);FirstEdit. OnClick (FstAction,MouseStatus) or (FActive) then FstAction;SecondEdit. OnClick (SndAction,MouseStatus) or (SActive) then SndAction;;;.

Модуль Function

unit Functions;

{$F+} {$N+}Graph,GrOutPut;SetEnterMode (Func: char);GetResult;FilterExpValue (var Par: StrParam);IntToStr (Param: word): String;: string;: word;(Param,Temp);: =Temp;;FilterExpValue (var Par: StrParam);degree,mant,NullStr: string;,e,DotPos,ExpPos: integer;,minus: boolean;: integer;Par [1] =- then minus: =trueminus: =false;: =Pos (. ,Par);: =Pos (E,Par);: =;: =;: =false;

{**************}ExpPos=0 then exit;: =Copy (Par,ExpPos+1,Length (Par) - ExpPos);: =Copy (Par,DotPos-1,ExpPos-DotPos+1);(Degree, IntDegree,e);(IntDegree>0)begini: =1 to IntDegreebegin: =Pos (. ,mant);(mant,DotPos,1);(. ,mant,DotPos+1);;;(IntDegree0 then(SParam,1,1);elsePos (-,FParam) =0 then: =-+FParam;Pos (-,SParam) =0 then: =-+SParam;;;Value (FPar,SPar: StrParam; var FTemp,STemp);: word;(FPar,Extended (FTemp),e);(SPar,Extended (STemp),e);;Operation: string;,STemp,Res: extended;,Answer: StrParam;,RetBin,Ex: boolean;: word;

{******************}

{******************}: =false;: =false;(FParam,SParam,FTemp,STemp);: =false; {*used for exit after odnomest function*}CurrentFunc of

+: Res: =FTemp+STemp;

-: Res: =FTemp-STemp;

*: Res: =FTemp*STemp;

/: if SParam<>0then Res: =FTemp/STemp;

s: Res: =sin (ftemp);

c: Res: =cos (ftemp);

t: Res: = (sin (ftemp) /cos (ftemp));

k: Res: = (cos (ftemp) /sin (ftemp));

v: Res: =sqrt (Ftemp);

x: Res: =exp (ln (Ftemp) *stemp);;(Res,St);Ex then exit;(st);(SParam);(FParam);: =St;: =st;: =#0;(Result);;;SetEnterMode (Func: char);(Func in AllOper) then(Length (FParam) =0) or (FParam=0) then(true);elseFunc in [n,p] then: =Func;;;;(False);CurrentFunc=#0 then: =Func;;Calculated then: =Operation;;Calculated then: =Result;;(true);(FParam);(false);: =false;: =;: =;else(Length (SParam) >0) and (SParam#0 then: =Operation;;.

Модуль Groutput

unit GrOutPut;

{$N+}Graph;=string [64];=Procedure;=record: char;: StrParam;;=record,y1,x2,y2: word;;

{Output controls}=30;=20;=600;=60;

{***************}

{All ordinal operations}= [+,-,*,/,c,s,t,k,v,x];

{**********************}= [0. 9,. ];

{*****************************************}= [2,3,4,9,10,11,16,17,18,23,30.35];= [30.35];

{***********************************}=13;=36;CheckOutPut (var Out: StrParam);ClearOutPut;ClrResOut;SetFActive (param: boolean);TextToOut (Out: StrParam);AddToOutPut (Param: string);SetPlusMines;ResultToScreen;BackSpaceSymbol;CEClick;C