Разработка программы "Калькулятор"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
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