From 2daf5119ea8db76be51a44c189cfc53c6a9e0b3b Mon Sep 17 00:00:00 2001 From: h1tbench Date: Wed, 10 Dec 2025 01:59:59 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D1=8C=D1=82?= =?UTF-8?q?=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B5=D0=BA=D1=82=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calculator/AnalaizerClass.dll | Bin 0 -> 11264 bytes calculator/CalcClass.dll | Bin 0 -> 5632 bytes calculator/Form1.Designer.cs | 480 ++++++++++++++++++ calculator/Form1.cs | 329 ++++++++++++ calculator/Form1.resx | 120 +++++ calculator/calculator/calculator.sln | 25 + calculator/calculator/calculator/App.config | 6 + .../calculator/calculator/Form1.Designer.cs | 363 +++++++++++++ calculator/calculator/calculator/Form1.cs | 45 ++ calculator/calculator/calculator/Form1.resx | 120 +++++ calculator/calculator/calculator/Program.cs | 22 + .../calculator/Properties/AssemblyInfo.cs | 36 ++ .../Properties/Resources.Designer.cs | 71 +++ .../calculator/Properties/Resources.resx | 117 +++++ .../Properties/Settings.Designer.cs | 30 ++ .../calculator/Properties/Settings.settings | 7 + .../calculator/calculator/calculator.csproj | 86 ++++ calculator/Спецификация.doc | Bin 0 -> 114688 bytes calculator/скрипт/DeleteGitCreads.ps1 | 39 ++ calculator/скрипт/RunScript.bat | 3 + 20 files changed, 1899 insertions(+) create mode 100644 calculator/AnalaizerClass.dll create mode 100644 calculator/CalcClass.dll create mode 100644 calculator/Form1.Designer.cs create mode 100644 calculator/Form1.cs create mode 100644 calculator/Form1.resx create mode 100644 calculator/calculator/calculator.sln create mode 100644 calculator/calculator/calculator/App.config create mode 100644 calculator/calculator/calculator/Form1.Designer.cs create mode 100644 calculator/calculator/calculator/Form1.cs create mode 100644 calculator/calculator/calculator/Form1.resx create mode 100644 calculator/calculator/calculator/Program.cs create mode 100644 calculator/calculator/calculator/Properties/AssemblyInfo.cs create mode 100644 calculator/calculator/calculator/Properties/Resources.Designer.cs create mode 100644 calculator/calculator/calculator/Properties/Resources.resx create mode 100644 calculator/calculator/calculator/Properties/Settings.Designer.cs create mode 100644 calculator/calculator/calculator/Properties/Settings.settings create mode 100644 calculator/calculator/calculator/calculator.csproj create mode 100644 calculator/Спецификация.doc create mode 100644 calculator/скрипт/DeleteGitCreads.ps1 create mode 100644 calculator/скрипт/RunScript.bat diff --git a/calculator/AnalaizerClass.dll b/calculator/AnalaizerClass.dll new file mode 100644 index 0000000000000000000000000000000000000000..9644b50e544a47c8464fe1255819db789848f344 GIT binary patch literal 11264 zcmeHNeQaCTbwBU%iF~3Y+I+Mr$@+S-ESaJtn)&dh}Gry>>naf6~p}~D9 zFM45?=#1nb$HK3EtDx-_b7$8N(GMKv8n?vB8))75yfuFqGB>>XBI zjhE_N{v&R`TiwK5#Tir^FV?Gq%Y@JFp=VtEvfu55Prk5|{<~JV=(WI{aSK>iWY*b$ z6CVbTzdn+~t3+EvZHIno_5f`BB^K!U*J!=Sz1wKDHAFAMdgk4LE&Toy;Pykt4Ycp0 z9fuvCK-)r#!{4u?bz{y4(P}%^j(?lwbYzYvFgNlg0G9YY(QCa@1%wHV1^d-9l}pi-uaQ zwo=2>aJkATxi$AL8tSyVN(~pP*HEw3@1mhWYpB%lE393WK6o_GE*kb|dnz^jQS}=3 zYI}Fl;MKg98nD}{^+D6LT{QSKU!{h>#V)8aO8c~ZyJ*<2?XT33s$PR%^Y5aeQERN! z;1(LV8U;{q-2D%@EZ_FvVCA-L(wa(y^vzk_;MU}T8 z{zlo;p>vr9wZ5jH!#P?=JM9cJS4Oc4=LeLUjnm z;aogzC&rQX_L0H6!~biG=ykXEie zs0B-~1D)7EPB7zZ_gFSdtdpY4`>56QQQu!KNgF= zxx3Ji7J7A|N3LqCUM?q}lap$K~zh!!K`b^?9ut33bgbX}^nZuypa8 zUBZ65de++o(-vlZtT^r4JPi)|!U_d(Fku&aJKD1z4s6GsEG|cG`yN;y`7shn^{XO( zOne2nO)o%$T7p5kYQWXkcKej^KLh_OzT2pq%D}CT+U!11x~+eMLVo~PJ@o$*{l_FVSzw_x}g|)_fnA#7tYh?~p0eF8Z(dHd%Mx1h0a7ogZq) z71-sinMD=H{Tw%Tv`5i?f%ZwH&fBmZUq<^rLh%d)M83zBzt(KT+{k~R?=+jxb(+n9 zgL|AV6L(*?*#gkhC+`co%vN;!LoTz8@$CS@QTuB8wNf?%|8(avEBs*CpjzpdXy%Dh=@ zZLQYU@h@Ogl&(`T4W27S7t`SJQgks59xX-l*0s~%#*Q@LjcijM*g+|#&h!pSF?D)N zQiqSws+QwT>tf%fUHvN-Ag;RNBpCRXU9Woj4wOxIJ8O$2Otn9s`JQ{s{cD^w4P{l% zu5be{@oxt$_?r1FwkfKL*YA!jqsu>1L^{!FtiR0^m)TJ$gx$WH@$Vw}P?J%5m4SF$ z{#4+UD4YtM1cg(9^Q~|yaFP{H1{9{NpH<{Fd28@hE~@_`)O($? zIN(L~zk>HOXg=i28rnC|evKCC1D|bv)1|^&I1 zbO2MGZl~Y=I_Vi!osHt=7j$ldq69G8xe1^MBl?{IzI6nxuNF-VDlpNS0DK=rD)x8! zV;Gixr$1Rnwr{WR@{1odMLdMEeL_*NT@LgiQixV;@oh25c1QevdwnPr4vmJ#hQ`># z8cG3v2WEEN#y*FUaF4ncb5=6Fl4Xun+=IUfgS+0bNMYQr5d-Qv{f@aAyr(dpfWcj{ zl)1#rcpyr;f1j-KjS|IUm{4dqm^=@nMV;Y#1M{}WOy|aQSe>`liQmp=@Du%eXch2B z^gLjV#IQ?Z{JjFE0p0Y7l#|@_Q9vhsPGWwC%$(zLyX>SV*& zL;l-KZPX9@3eoy1h&8C?DtYM~bol83Y5;scIDK?V{sQ2~0T*4C23l~Il!yHj|+U1J}oT>`~?Bu32#{1+Xd{UC#8=A z|CICz0Y6KZgqC_it*6WKv&fov$=?9~yX6-!*OZR{J`DJF`hfgh^e@Z*h`x>a17K=} zUN3z_{xK!#DfuOO2s}Rr=ikUL1OA=d4a`3Q^AP=ufd4Mwj|6;C{tfUy74R2w6Qr@% zA*#cv6hg#Xr3C#cJx;^4O#e)hR409zlud-L?7?BrnYjH(bX@eyaXEYWx4F3UY=LFs zthv0NGA1dSj;G?uTZT2Aif6N-HAEY0+9XVOpu=5-o0IbH*CY zFTLAHL{R&(XAH#B;`CE}pnX=hoA+*<2E6gSI=N1Y4394i3-_C|S!SQ--x@Sl5#Y zBTF_S&T7vYsrXIN%SLn9{!8l+m!HUNAT1?R$=pVfYF7zbF>+U?SL0Sz^v)RRmE0;U zzcTyKdYmV~gSbWK%{=?GnNGk1FwCWm0?S-FH#}4@_x@yh*}Rbrv9DP=i$KL!jF@?o zW|HxgxpL0PuBURexN6=YI|6g*W#i`jgS5E5logeWCKjyZbp&K?Et4|VjC4+THe=-C z$y9doJ!7NM*kCL=I}n|n9v&DuH8egD9UMJ6FdUv9ip8Rl@XXlYd-KsTtkXu?upn%? z#C5Tjo{X zXIJeY#xwB*2TVlN#G=uHnV|*4xF%3@oJ>00q`BAQTz?#T^^N5SdX~)cE$xq{4o1B zCge{-?rEX-wXLa?gTu&yOQK^9ErW(b&2a?Z!fRN8W%O~DI|fK{;7WM79o|Rs@n;W4 z#j3Hd?2)~yVUoP%D>zQH`IDW&v%_HrE+PWSZkGpmP^85fD7E>0z0>-cyyl9-TQ;=r66INz{nFN)WWe5lG2#ujd z#M1DaHBIu&3ffqO>qm)9UL;OHPE>p8Iq6S8gPj-=v2dK)HkDKSgh~(J+OIH#A+B@wNiV8=o0(S5e{Q6uXJ$>6t?putSH7N2440%2FSDe5%I~g#IqAk z+F!m=I3Hj^b9wR&Vs^fK5Ph-biS@64v3LH{7s6lr%f}lYBK0e`-g%*UC>AzAi#F!rG5@py101;jw|b~E&}d0eD0 z$}{W=dpxRRw+AzdEYPNUYIND7vSN>_NVvSXocpywpz<%5E=xY#n^awveYDpn>}-We ztvtKc?Sd~_FAQK2t*SzjyA{T&ZZ`yj0SMJy>vG8|JD@sTk_T=}s+9lNC+!ld{(0Gd zzZK8iXQsCgh4ZTx&TokVG1!!UCb_Q{M&<9qzY`(4GHqHjsnpqcGHqX@3`1PFn18FA z^r`ZRZ;jqW5#TQ@@qN8nZZs#6_&*O7c;>qY?c!CUWtm6zvn=zc(*;_jD}b~3I$NYU zny33Po&!9EK0kk@{OlFJnCyH`<`LMxWnT%5=I=rYQscN=oWenoA_Fqh^dQbUeh%@k zdvqSuIIvmJxpX8!O$$2FmlXcpOoB~0aPd*IatBGD5`YXrP$*q%bX;zMIKBUWFTnwv8{Z;1(4Mh-8?<=gC&SWw?+R z#gNvH482eJj_XlS`Ff6A(Y2M&nvnqp*Pv>7Me@oazUkP6cXt6_hy$9U-agop*3imr z+~15R2@TUHTv(Q6U9t=DJrEi3lP)$x@8oMT%`VjKSx0B2?@8ZOrR!*^=;;W3efN;w zDFUBV8nNCMtEr+>honCAA=b%|Lk4ME(mLii(=qyIt*oqkelEQ)7A^MZ7J18aJ?*h* z(Wb{vN6Q9TstwomF0C~g-&+roI#~)-e=mIM40GXcG!v+`g+@T&s6Q6*=YC7 z9kV-KwL87h?)0tNjp0S8lCI|YzDl0AR`Q&T@_gN3MjJNobrEZsyRLC{l)1edohFl* zj7J`EQO!SPOvIHp^P@h=@8andnOl3^>RipNv-i;lB75CdsLP2AHdoLZi%pS5=T=Ngd^}~*8SmhVBazu~ z);Gvty-ZENV(Y5(kQzGMNrkSnAR@bwS@xw$OHz5*Nj{rVGg{}&)?`-_b@91r)@tkN zWL&?lx2XF5Yh6@l8tz)v*S2?f>fh~~Ghx$^o>}D;Pi_6G`TC}im#Q}2J$#wGOwBzQ z%sx7(McrL`@cEupI`v?Bf6sm*?Efy|xfsy#B=833H`up3vVmVL70M#pzGy0%V2-iPHlT$W1|E9rR|f3&Fx^n6`oqRalVI-T=znw z8bzmhsZF&OIs;H^kr=?kgw5LD3A+{igeDZ1(8ML}3C+ZFgtAKkLiseI4Lca8tebi3 znV7Id=GjD+_ko5W#CR^6i9Hoz1!6ibN0>(}hF2qOiI{Oc*;t-ZzNVYqyAnN=cu`Re7 zVLzmGUi!O2-W6iourtD5BG!Wb2z!NCE2bjsHDYZDBJ4NV&G&IR#1g;9M{qBG9$|k} z*xL&GV%t@u$@`PSF17tyJ5NmVJKdjIoUgJ`(9Ee*fansF8Vj7mIi z$4TPtm{#yJ3d(zH$Bfp32M}mG(2XBxkCO5u?F8YEwK>9{D#_OgH!D3UB=I;>%>PB! z<6%tT)0lzBc<2)Tj9$XOp^xw#LZQY8x3NCtdrKU~GFdf4PC{7eAz7mzGHPjIRg>I5 z=FKd+&Or>>ZhpwM%jMLJ>sB!g+GR(0i>@7bKIY4L&v%PCWG|EhXCC9ZIVT_BEO!PY zzE6pQ6Rg3q#nNIKLta_UQ?qud;FN?ARF)%43z+a8b9@ZU%pkj%!`Px5V7Pc5^bG@p zSsW8Ew3u^{{oJDMI~Xlsw1i0~U*s=^yzSz!ofq%K_C!%lBS07A z@1%yj`GunE_*ut4U(7q=m=Nrs=#?fN*IrVq@<71$m0JuPL>onntX$D81{bQ_C5+j@ zEEu$ej48W>3lbcAL5`HtdB+bhSYf}AW*S@0HHS+RkG@vy!@WeGJm@rKe5(3Nw*$puZS}cJ^J`IMYX$d2)H#WxN z8uw_;_cant=yAkM(`+*9;)ZD^^iA;?p{P)lgsD@Lme8UfeB0%2nbKQM`S!wbuQalh zcNU~1r)GVY3R}Z-(Qhs}**}xDC9932^4qMIb9Tt{hh2BfW}T`7?KtYxi`2?4SeaV! z+rs321aAT?*KU)Dz;thMY^2JUcRW@;(Np$hAo=lW()Mi{zFR zAGl(?K$9AM3MeI|Uw98qUsf_{#vOio*$0>d-hk4}E0%|8y^OrlvruElqHLN)QI$PO zS)bBXU(&okst;Q_?|n^06DZjdeRr8J8}r10A%*8TOH^fkQoM6qet=Hp*C^!*N@|D^ zFR+J6gaypfH^AaEtZa-&bctSURN@ir{cZKCxF)E>qy0t3AMlOTMpunXV&wNmwP!$i k?a)S!Rxi+__uI# + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором форм Windows + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button12 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.button15 = new System.Windows.Forms.Button(); + this.button16 = new System.Windows.Forms.Button(); + this.button17 = new System.Windows.Forms.Button(); + this.button18 = new System.Windows.Forms.Button(); + this.button19 = new System.Windows.Forms.Button(); + this.button20 = new System.Windows.Forms.Button(); + this.button21 = new System.Windows.Forms.Button(); + this.button22 = new System.Windows.Forms.Button(); + this.button23 = new System.Windows.Forms.Button(); + this.button24 = new System.Windows.Forms.Button(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.button25 = new System.Windows.Forms.Button(); + this.button26 = new System.Windows.Forms.Button(); + this.button27 = new System.Windows.Forms.Button(); + this.button28 = new System.Windows.Forms.Button(); + this.button29 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(19, 58); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(59, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Результат"; + this.label1.Click += new System.EventHandler(this.label1_Click); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(94, 25); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(202, 20); + this.textBox1.TabIndex = 1; + this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); + // + // button1 + // + this.button1.ForeColor = System.Drawing.SystemColors.ActiveCaption; + this.button1.Location = new System.Drawing.Point(246, 247); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(50, 37); + this.button1.TabIndex = 2; + this.button1.Text = "M+"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.ForeColor = System.Drawing.SystemColors.ActiveCaption; + this.button2.Location = new System.Drawing.Point(246, 204); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(50, 37); + this.button2.TabIndex = 3; + this.button2.Text = "MR"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click_1); + // + // button3 + // + this.button3.Location = new System.Drawing.Point(22, 98); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(50, 37); + this.button3.TabIndex = 4; + this.button3.Text = "("; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button4 + // + this.button4.Location = new System.Drawing.Point(78, 98); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(50, 37); + this.button4.TabIndex = 5; + this.button4.Text = ")"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Location = new System.Drawing.Point(134, 98); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(79, 37); + this.button5.TabIndex = 6; + this.button5.Text = "Сброс"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // button6 + // + this.button6.ForeColor = System.Drawing.SystemColors.ActiveCaption; + this.button6.Location = new System.Drawing.Point(246, 290); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(50, 37); + this.button6.TabIndex = 7; + this.button6.Text = "MC"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // button7 + // + this.button7.Location = new System.Drawing.Point(219, 98); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(77, 37); + this.button7.TabIndex = 8; + this.button7.Text = "<-x"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // button8 + // + this.button8.Location = new System.Drawing.Point(190, 204); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(50, 37); + this.button8.TabIndex = 9; + this.button8.Text = "/"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button9 + // + this.button9.Location = new System.Drawing.Point(22, 204); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(50, 37); + this.button9.TabIndex = 10; + this.button9.Text = "1"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // button10 + // + this.button10.Location = new System.Drawing.Point(78, 204); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(50, 37); + this.button10.TabIndex = 11; + this.button10.Text = "2"; + this.button10.UseVisualStyleBackColor = true; + this.button10.Click += new System.EventHandler(this.button10_Click); + // + // button11 + // + this.button11.Location = new System.Drawing.Point(134, 204); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(50, 37); + this.button11.TabIndex = 12; + this.button11.Text = "3"; + this.button11.UseVisualStyleBackColor = true; + this.button11.Click += new System.EventHandler(this.button11_Click); + // + // button12 + // + this.button12.Location = new System.Drawing.Point(190, 247); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(50, 37); + this.button12.TabIndex = 13; + this.button12.Text = "*"; + this.button12.UseVisualStyleBackColor = true; + this.button12.Click += new System.EventHandler(this.button12_Click); + // + // button13 + // + this.button13.Location = new System.Drawing.Point(22, 247); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(50, 37); + this.button13.TabIndex = 14; + this.button13.Text = "4"; + this.button13.UseVisualStyleBackColor = true; + this.button13.Click += new System.EventHandler(this.button13_Click); + // + // button14 + // + this.button14.Location = new System.Drawing.Point(78, 247); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(50, 37); + this.button14.TabIndex = 15; + this.button14.Text = "5"; + this.button14.UseVisualStyleBackColor = true; + this.button14.Click += new System.EventHandler(this.button14_Click); + // + // button15 + // + this.button15.Location = new System.Drawing.Point(134, 247); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(50, 37); + this.button15.TabIndex = 16; + this.button15.Text = "6"; + this.button15.UseVisualStyleBackColor = true; + this.button15.Click += new System.EventHandler(this.button15_Click); + // + // button16 + // + this.button16.Location = new System.Drawing.Point(190, 290); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(50, 37); + this.button16.TabIndex = 17; + this.button16.Text = "-"; + this.button16.UseVisualStyleBackColor = true; + this.button16.Click += new System.EventHandler(this.button16_Click); + // + // button17 + // + this.button17.Location = new System.Drawing.Point(22, 290); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(50, 37); + this.button17.TabIndex = 18; + this.button17.Text = "7"; + this.button17.UseVisualStyleBackColor = true; + this.button17.Click += new System.EventHandler(this.button17_Click); + // + // button18 + // + this.button18.Location = new System.Drawing.Point(78, 290); + this.button18.Name = "button18"; + this.button18.Size = new System.Drawing.Size(50, 37); + this.button18.TabIndex = 19; + this.button18.Text = "8"; + this.button18.UseVisualStyleBackColor = true; + this.button18.Click += new System.EventHandler(this.button18_Click); + // + // button19 + // + this.button19.Location = new System.Drawing.Point(134, 290); + this.button19.Name = "button19"; + this.button19.Size = new System.Drawing.Size(50, 37); + this.button19.TabIndex = 20; + this.button19.Text = "9"; + this.button19.UseVisualStyleBackColor = true; + this.button19.Click += new System.EventHandler(this.button19_Click); + // + // button20 + // + this.button20.Location = new System.Drawing.Point(190, 333); + this.button20.Name = "button20"; + this.button20.Size = new System.Drawing.Size(50, 37); + this.button20.TabIndex = 21; + this.button20.Text = "+"; + this.button20.UseVisualStyleBackColor = true; + this.button20.Click += new System.EventHandler(this.button20_Click); + // + // button21 + // + this.button21.Location = new System.Drawing.Point(246, 333); + this.button21.Name = "button21"; + this.button21.Size = new System.Drawing.Size(50, 37); + this.button21.TabIndex = 25; + this.button21.Text = "="; + this.button21.UseVisualStyleBackColor = true; + this.button21.Click += new System.EventHandler(this.button21_Click); + // + // button22 + // + this.button22.Location = new System.Drawing.Point(246, 161); + this.button22.Name = "button22"; + this.button22.Size = new System.Drawing.Size(50, 37); + this.button22.TabIndex = 24; + this.button22.Text = "%"; + this.button22.UseVisualStyleBackColor = true; + this.button22.Click += new System.EventHandler(this.button22_Click); + // + // button23 + // + this.button23.Location = new System.Drawing.Point(22, 333); + this.button23.Name = "button23"; + this.button23.Size = new System.Drawing.Size(50, 37); + this.button23.TabIndex = 23; + this.button23.Text = "+/-"; + this.button23.UseVisualStyleBackColor = true; + this.button23.Click += new System.EventHandler(this.button23_Click); + // + // button24 + // + this.button24.Location = new System.Drawing.Point(78, 333); + this.button24.Name = "button24"; + this.button24.Size = new System.Drawing.Size(50, 37); + this.button24.TabIndex = 22; + this.button24.Text = "0"; + this.button24.UseVisualStyleBackColor = true; + this.button24.Click += new System.EventHandler(this.button24_Click); + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(94, 55); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(202, 20); + this.textBox2.TabIndex = 26; + this.textBox2.TextChanged += new System.EventHandler(this.textBox2_TextChanged); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(19, 28); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(66, 13); + this.label2.TabIndex = 27; + this.label2.Text = "Выражение"; + this.label2.Click += new System.EventHandler(this.label2_Click); + // + // button25 + // + this.button25.Location = new System.Drawing.Point(134, 161); + this.button25.Name = "button25"; + this.button25.Size = new System.Drawing.Size(50, 37); + this.button25.TabIndex = 32; + this.button25.Text = "x2"; + this.button25.UseVisualStyleBackColor = true; + this.button25.Click += new System.EventHandler(this.button25_Click); + // + // button26 + // + this.button26.Location = new System.Drawing.Point(78, 161); + this.button26.Name = "button26"; + this.button26.Size = new System.Drawing.Size(50, 37); + this.button26.TabIndex = 31; + this.button26.Text = "cos"; + this.button26.UseVisualStyleBackColor = true; + this.button26.Click += new System.EventHandler(this.button26_Click); + // + // button27 + // + this.button27.Location = new System.Drawing.Point(22, 161); + this.button27.Name = "button27"; + this.button27.Size = new System.Drawing.Size(50, 37); + this.button27.TabIndex = 30; + this.button27.Text = "sin"; + this.button27.UseVisualStyleBackColor = true; + this.button27.Click += new System.EventHandler(this.button27_Click); + // + // button28 + // + this.button28.Location = new System.Drawing.Point(190, 161); + this.button28.Name = "button28"; + this.button28.Size = new System.Drawing.Size(50, 37); + this.button28.TabIndex = 29; + this.button28.Text = "x3"; + this.button28.UseVisualStyleBackColor = true; + this.button28.Click += new System.EventHandler(this.button28_Click); + // + // button29 + // + this.button29.ForeColor = System.Drawing.SystemColors.ActiveCaption; + this.button29.Location = new System.Drawing.Point(134, 333); + this.button29.Name = "button29"; + this.button29.Size = new System.Drawing.Size(50, 37); + this.button29.TabIndex = 28; + this.button29.Text = "."; + this.button29.UseVisualStyleBackColor = true; + this.button29.Click += new System.EventHandler(this.button29_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(299, 378); + this.Controls.Add(this.button25); + this.Controls.Add(this.button26); + this.Controls.Add(this.button27); + this.Controls.Add(this.button28); + this.Controls.Add(this.button29); + this.Controls.Add(this.label2); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.button21); + this.Controls.Add(this.button22); + this.Controls.Add(this.button23); + this.Controls.Add(this.button24); + this.Controls.Add(this.button20); + this.Controls.Add(this.button19); + this.Controls.Add(this.button18); + this.Controls.Add(this.button17); + this.Controls.Add(this.button16); + this.Controls.Add(this.button15); + this.Controls.Add(this.button14); + this.Controls.Add(this.button13); + this.Controls.Add(this.button12); + this.Controls.Add(this.button11); + this.Controls.Add(this.button10); + this.Controls.Add(this.button9); + this.Controls.Add(this.button8); + this.Controls.Add(this.button7); + this.Controls.Add(this.button6); + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label1); + this.ForeColor = System.Drawing.SystemColors.ActiveCaptionText; + this.Name = "Form1"; + this.Text = "Калькулятор"; + this.TransparencyKey = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Button button16; + private System.Windows.Forms.Button button17; + private System.Windows.Forms.Button button18; + private System.Windows.Forms.Button button19; + private System.Windows.Forms.Button button20; + private System.Windows.Forms.Button button21; + private System.Windows.Forms.Button button22; + private System.Windows.Forms.Button button23; + private System.Windows.Forms.Button button24; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button button25; + private System.Windows.Forms.Button button26; + private System.Windows.Forms.Button button27; + private System.Windows.Forms.Button button28; + private System.Windows.Forms.Button button29; + } +} + diff --git a/calculator/Form1.cs b/calculator/Form1.cs new file mode 100644 index 0000000..8648b34 --- /dev/null +++ b/calculator/Form1.cs @@ -0,0 +1,329 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Globalization; +using System.Text.RegularExpressions; +using System.Windows.Forms; + +namespace calculator +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + SetupAppearance(); + } + + private void SetupAppearance() + { + this.BackColor = Color.FromArgb(240, 240, 240); + textBox1.BackColor = Color.White; + textBox2.BackColor = Color.White; + + SetButtonColor(button1, Color.FromArgb(70, 130, 180)); // % + SetButtonColor(button8, Color.FromArgb(70, 130, 180)); // / + SetButtonColor(button12, Color.FromArgb(70, 130, 180)); // * + SetButtonColor(button16, Color.FromArgb(70, 130, 180)); // - + SetButtonColor(button20, Color.FromArgb(70, 130, 180)); // + + SetButtonColor(button21, Color.FromArgb(46, 204, 113)); // = + SetButtonColor(button22, Color.FromArgb(70, 130, 180)); // % + SetButtonColor(button27, Color.FromArgb(155, 89, 182)); // sin + SetButtonColor(button26, Color.FromArgb(155, 89, 182)); // cos + SetButtonColor(button25, Color.FromArgb(155, 89, 182)); // x² + SetButtonColor(button28, Color.FromArgb(155, 89, 182)); // x³ + + button5.BackColor = Color.FromArgb(231, 76, 60); // Сброс + button5.ForeColor = Color.White; + + button7.BackColor = Color.FromArgb(52, 152, 219); // ← + button7.ForeColor = Color.White; + + SetDigitButtonColor(button9); // 1 + SetDigitButtonColor(button10); // 2 + SetDigitButtonColor(button11); // 3 + SetDigitButtonColor(button13); // 4 + SetDigitButtonColor(button14); // 5 + SetDigitButtonColor(button15); // 6 + SetDigitButtonColor(button17); // 7 + SetDigitButtonColor(button18); // 8 + SetDigitButtonColor(button19); // 9 + SetDigitButtonColor(button24); // 0 + + button3.BackColor = Color.FromArgb(149, 165, 166); // ( + button3.ForeColor = Color.White; + + button4.BackColor = Color.FromArgb(149, 165, 166); // ) + button4.ForeColor = Color.White; + + button23.BackColor = Color.FromArgb(230, 126, 34); // +/- + button23.ForeColor = Color.White; + + button29.BackColor = Color.FromArgb(230, 126, 34); // . + button29.ForeColor = Color.White; + } + + private void SetButtonColor(Button btn, Color bgColor) + { + if (btn != null) + { + btn.BackColor = bgColor; + btn.ForeColor = Color.White; + btn.FlatStyle = FlatStyle.Flat; + btn.FlatAppearance.BorderSize = 0; + } + } + + private void SetDigitButtonColor(Button btn) + { + if (btn != null) + { + btn.BackColor = Color.White; + btn.ForeColor = Color.Black; + btn.FlatStyle = FlatStyle.Flat; + btn.FlatAppearance.BorderColor = Color.FromArgb(200, 200, 200); + btn.FlatAppearance.BorderSize = 1; + } + } + + private void textBox1_TextChanged(object sender, EventArgs e) + { + } + + private void textBox2_TextChanged(object sender, EventArgs e) + { + } + + private void label1_Click(object sender, EventArgs e) + { + } + + private void label2_Click(object sender, EventArgs e) + { + } + + private void button9_Click(object sender, EventArgs e) + { + textBox1.Text += "1"; + } + + private void button10_Click(object sender, EventArgs e) + { + textBox1.Text += "2"; + } + + private void button11_Click(object sender, EventArgs e) + { + textBox1.Text += "3"; + } + + private void button13_Click(object sender, EventArgs e) + { + textBox1.Text += "4"; + } + + private void button14_Click(object sender, EventArgs e) + { + textBox1.Text += "5"; + } + + private void button15_Click(object sender, EventArgs e) + { + textBox1.Text += "6"; + } + + private void button17_Click(object sender, EventArgs e) + { + textBox1.Text += "7"; + } + + private void button18_Click(object sender, EventArgs e) + { + textBox1.Text += "8"; + } + + private void button19_Click_1(object sender, EventArgs e) + { + textBox1.Text += "9"; + } + + private void button24_Click(object sender, EventArgs e) + { + textBox1.Text += "0"; + } + + private void button29_Click(object sender, EventArgs e) + { + if (!textBox1.Text.EndsWith(".") && !string.IsNullOrEmpty(textBox1.Text)) + textBox1.Text += "."; + } + + private void button3_Click(object sender, EventArgs e) + { + textBox1.Text += "("; + } + + private void button4_Click(object sender, EventArgs e) + { + textBox1.Text += ")"; + } + + private void button1_Click(object sender, EventArgs e) + { + textBox1.Text += "%"; + } + + private void button22_Click(object sender, EventArgs e) + { + textBox1.Text += "%"; + } + + private void button8_Click(object sender, EventArgs e) + { + textBox1.Text += "/"; + } + + private void button12_Click(object sender, EventArgs e) + { + textBox1.Text += "*"; + } + + private void button16_Click(object sender, EventArgs e) + { + textBox1.Text += "-"; + } + + private void button20_Click(object sender, EventArgs e) + { + textBox1.Text += "+"; + } + + private void button21_Click(object sender, EventArgs e) + { + string expression = textBox1.Text; + try + { + object result = CalculateExpression(expression); + textBox2.Text = Convert.ToString(result); + } + catch (Exception ex) + { + textBox2.Text = "Ошибка"; + MessageBox.Show("Некорректное выражение: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } + + private void button27_Click(object sender, EventArgs e) + { + textBox1.Text += "sin("; + } + + private void button26_Click(object sender, EventArgs e) + { + textBox1.Text += "cos("; + } + + private void button25_Click(object sender, EventArgs e) + { + textBox1.Text += "square("; + } + + private void button28_Click(object sender, EventArgs e) + { + textBox1.Text += "cube("; + } + + private void button23_Click(object sender, EventArgs e) + { + textBox1.Text = ToggleSign(textBox1.Text); + } + + private void button5_Click(object sender, EventArgs e) + { + textBox1.Text = ""; + textBox2.Text = ""; + textBox1.Focus(); + } + + private void button7_Click(object sender, EventArgs e) + { + if (textBox1.Text.Length > 0) + { + string text = textBox1.Text; + textBox1.Text = text.Remove(text.Length - 1, 1); + } + } + + private void button2_Click_1(object sender, EventArgs e) + { + textBox1.Text += ""; + } + + private void button6_Click(object sender, EventArgs e) + { + } + + private void button19_Click(object sender, EventArgs e) + { + textBox1.Text += "9"; + } + + private object CalculateExpression(string expression) + { + expression = Regex.Replace(expression, @"(sin|cos|square|cube)\(([^)]+)\)", match => + { + string functionName = match.Groups[1].Value; + string argumentStr = match.Groups[2].Value; + + object argumentValObj = CalculateExpression(argumentStr); + double argumentVal = Convert.ToDouble(argumentValObj); + + double result = 0; + + switch (functionName) + { + case "sin": + result = Math.Sin(argumentVal); + break; + case "cos": + result = Math.Cos(argumentVal); + break; + case "square": + result = argumentVal * argumentVal; + break; + case "cube": + result = argumentVal * argumentVal * argumentVal; + break; + } + + return result.ToString(CultureInfo.InvariantCulture); + }); + + DataTable dt = new DataTable(); + dt.Locale = CultureInfo.InvariantCulture; + + return dt.Compute(expression, null); + } + + private string ToggleSign(string currentValue) + { + if (string.IsNullOrEmpty(currentValue)) + { + return "0"; + } + + if (double.TryParse(currentValue, NumberStyles.Any, CultureInfo.InvariantCulture, out double number)) + { + return (-number).ToString(CultureInfo.InvariantCulture); + } + + return currentValue; + } + + private long Mod(long a, long b) + { + return a % b; + } + } +} \ No newline at end of file diff --git a/calculator/Form1.resx b/calculator/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/calculator/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/calculator/calculator/calculator.sln b/calculator/calculator/calculator.sln new file mode 100644 index 0000000..194e4ec --- /dev/null +++ b/calculator/calculator/calculator.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34511.84 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "calculator", "calculator\calculator.csproj", "{AE0E32D3-F62C-4DB6-9792-33CFEB5E995A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AE0E32D3-F62C-4DB6-9792-33CFEB5E995A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE0E32D3-F62C-4DB6-9792-33CFEB5E995A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE0E32D3-F62C-4DB6-9792-33CFEB5E995A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE0E32D3-F62C-4DB6-9792-33CFEB5E995A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BBC7C084-6F94-4D12-AC2D-DE4705D4692A} + EndGlobalSection +EndGlobal diff --git a/calculator/calculator/calculator/App.config b/calculator/calculator/calculator/App.config new file mode 100644 index 0000000..193aecc --- /dev/null +++ b/calculator/calculator/calculator/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/calculator/calculator/calculator/Form1.Designer.cs b/calculator/calculator/calculator/Form1.Designer.cs new file mode 100644 index 0000000..4883114 --- /dev/null +++ b/calculator/calculator/calculator/Form1.Designer.cs @@ -0,0 +1,363 @@ +namespace calculator +{ + partial class Form1 + { + /// + /// Обязательная переменная конструктора. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Освободить все используемые ресурсы. + /// + /// истинно, если управляемый ресурс должен быть удален; иначе ложно. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Код, автоматически созданный конструктором форм Windows + + /// + /// Требуемый метод для поддержки конструктора — не изменяйте + /// содержимое этого метода с помощью редактора кода. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button12 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.button15 = new System.Windows.Forms.Button(); + this.button16 = new System.Windows.Forms.Button(); + this.button17 = new System.Windows.Forms.Button(); + this.button18 = new System.Windows.Forms.Button(); + this.button19 = new System.Windows.Forms.Button(); + this.button20 = new System.Windows.Forms.Button(); + this.button21 = new System.Windows.Forms.Button(); + this.button22 = new System.Windows.Forms.Button(); + this.button23 = new System.Windows.Forms.Button(); + this.button24 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(84, 21); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(72, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Калькулятор"; + this.label1.Click += new System.EventHandler(this.label1_Click); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(12, 60); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(218, 20); + this.textBox1.TabIndex = 1; + this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(12, 99); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(50, 37); + this.button1.TabIndex = 2; + this.button1.Text = "%"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(68, 99); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(50, 37); + this.button2.TabIndex = 3; + this.button2.Text = "^"; + this.button2.UseVisualStyleBackColor = true; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(124, 99); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(50, 37); + this.button3.TabIndex = 4; + this.button3.Text = "("; + this.button3.UseVisualStyleBackColor = true; + // + // button4 + // + this.button4.Location = new System.Drawing.Point(180, 99); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(50, 37); + this.button4.TabIndex = 5; + this.button4.Text = ")"; + this.button4.UseVisualStyleBackColor = true; + // + // button5 + // + this.button5.Location = new System.Drawing.Point(12, 142); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(50, 37); + this.button5.TabIndex = 6; + this.button5.Text = "C"; + this.button5.UseVisualStyleBackColor = true; + // + // button6 + // + this.button6.Location = new System.Drawing.Point(68, 142); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(50, 37); + this.button6.TabIndex = 7; + this.button6.Text = "CE"; + this.button6.UseVisualStyleBackColor = true; + // + // button7 + // + this.button7.Location = new System.Drawing.Point(124, 142); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(50, 37); + this.button7.TabIndex = 8; + this.button7.Text = "<-x"; + this.button7.UseVisualStyleBackColor = true; + // + // button8 + // + this.button8.Location = new System.Drawing.Point(180, 142); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(50, 37); + this.button8.TabIndex = 9; + this.button8.Text = "/"; + this.button8.UseVisualStyleBackColor = true; + // + // button9 + // + this.button9.Location = new System.Drawing.Point(12, 185); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(50, 37); + this.button9.TabIndex = 10; + this.button9.Text = "1"; + this.button9.UseVisualStyleBackColor = true; + // + // button10 + // + this.button10.Location = new System.Drawing.Point(68, 185); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(50, 37); + this.button10.TabIndex = 11; + this.button10.Text = "2"; + this.button10.UseVisualStyleBackColor = true; + // + // button11 + // + this.button11.Location = new System.Drawing.Point(124, 185); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(50, 37); + this.button11.TabIndex = 12; + this.button11.Text = "3"; + this.button11.UseVisualStyleBackColor = true; + // + // button12 + // + this.button12.Location = new System.Drawing.Point(180, 185); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(50, 37); + this.button12.TabIndex = 13; + this.button12.Text = "*"; + this.button12.UseVisualStyleBackColor = true; + // + // button13 + // + this.button13.Location = new System.Drawing.Point(12, 228); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(50, 37); + this.button13.TabIndex = 14; + this.button13.Text = "4"; + this.button13.UseVisualStyleBackColor = true; + // + // button14 + // + this.button14.Location = new System.Drawing.Point(68, 228); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(50, 37); + this.button14.TabIndex = 15; + this.button14.Text = "5"; + this.button14.UseVisualStyleBackColor = true; + // + // button15 + // + this.button15.Location = new System.Drawing.Point(124, 228); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(50, 37); + this.button15.TabIndex = 16; + this.button15.Text = "6"; + this.button15.UseVisualStyleBackColor = true; + // + // button16 + // + this.button16.Location = new System.Drawing.Point(180, 228); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(50, 37); + this.button16.TabIndex = 17; + this.button16.Text = "-"; + this.button16.UseVisualStyleBackColor = true; + // + // button17 + // + this.button17.Location = new System.Drawing.Point(12, 271); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(50, 37); + this.button17.TabIndex = 18; + this.button17.Text = "7"; + this.button17.UseVisualStyleBackColor = true; + // + // button18 + // + this.button18.Location = new System.Drawing.Point(68, 271); + this.button18.Name = "button18"; + this.button18.Size = new System.Drawing.Size(50, 37); + this.button18.TabIndex = 19; + this.button18.Text = "8"; + this.button18.UseVisualStyleBackColor = true; + // + // button19 + // + this.button19.Location = new System.Drawing.Point(124, 271); + this.button19.Name = "button19"; + this.button19.Size = new System.Drawing.Size(50, 37); + this.button19.TabIndex = 20; + this.button19.Text = "9"; + this.button19.UseVisualStyleBackColor = true; + this.button19.Click += new System.EventHandler(this.button19_Click); + // + // button20 + // + this.button20.Location = new System.Drawing.Point(180, 271); + this.button20.Name = "button20"; + this.button20.Size = new System.Drawing.Size(50, 37); + this.button20.TabIndex = 21; + this.button20.Text = "+"; + this.button20.UseVisualStyleBackColor = true; + // + // button21 + // + this.button21.Location = new System.Drawing.Point(180, 314); + this.button21.Name = "button21"; + this.button21.Size = new System.Drawing.Size(50, 37); + this.button21.TabIndex = 25; + this.button21.Text = "="; + this.button21.UseVisualStyleBackColor = true; + // + // button22 + // + this.button22.Location = new System.Drawing.Point(124, 314); + this.button22.Name = "button22"; + this.button22.Size = new System.Drawing.Size(50, 37); + this.button22.TabIndex = 24; + this.button22.Text = "."; + this.button22.UseVisualStyleBackColor = true; + // + // button23 + // + this.button23.Location = new System.Drawing.Point(68, 314); + this.button23.Name = "button23"; + this.button23.Size = new System.Drawing.Size(50, 37); + this.button23.TabIndex = 23; + this.button23.Text = "00 "; + this.button23.UseVisualStyleBackColor = true; + // + // button24 + // + this.button24.Location = new System.Drawing.Point(12, 314); + this.button24.Name = "button24"; + this.button24.Size = new System.Drawing.Size(50, 37); + this.button24.TabIndex = 22; + this.button24.Text = "0"; + this.button24.UseVisualStyleBackColor = true; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(248, 389); + this.Controls.Add(this.button21); + this.Controls.Add(this.button22); + this.Controls.Add(this.button23); + this.Controls.Add(this.button24); + this.Controls.Add(this.button20); + this.Controls.Add(this.button19); + this.Controls.Add(this.button18); + this.Controls.Add(this.button17); + this.Controls.Add(this.button16); + this.Controls.Add(this.button15); + this.Controls.Add(this.button14); + this.Controls.Add(this.button13); + this.Controls.Add(this.button12); + this.Controls.Add(this.button11); + this.Controls.Add(this.button10); + this.Controls.Add(this.button9); + this.Controls.Add(this.button8); + this.Controls.Add(this.button7); + this.Controls.Add(this.button6); + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.label1); + this.Name = "Form1"; + this.Text = "Form1"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Button button16; + private System.Windows.Forms.Button button17; + private System.Windows.Forms.Button button18; + private System.Windows.Forms.Button button19; + private System.Windows.Forms.Button button20; + private System.Windows.Forms.Button button21; + private System.Windows.Forms.Button button22; + private System.Windows.Forms.Button button23; + private System.Windows.Forms.Button button24; + } +} + diff --git a/calculator/calculator/calculator/Form1.cs b/calculator/calculator/calculator/Form1.cs new file mode 100644 index 0000000..190e051 --- /dev/null +++ b/calculator/calculator/calculator/Form1.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace calculator +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void label1_Click(object sender, EventArgs e) + { + + } + + private void textBox1_TextChanged(object sender, EventArgs e) + { + + } + + private void button19_Click(object sender, EventArgs e) + { + textBox1.Text += "9"; + } + + private void button1_Click(object sender, EventArgs e) + { + textBox1.Text += "%"; + } + private void button2_Click(object sender, EventArgs e) + { + textBox1.Text += "^"; + } + + } +} diff --git a/calculator/calculator/calculator/Form1.resx b/calculator/calculator/calculator/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/calculator/calculator/calculator/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/calculator/calculator/calculator/Program.cs b/calculator/calculator/calculator/Program.cs new file mode 100644 index 0000000..5377607 --- /dev/null +++ b/calculator/calculator/calculator/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace calculator +{ + internal static class Program + { + /// + /// Главная точка входа для приложения. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/calculator/calculator/calculator/Properties/AssemblyInfo.cs b/calculator/calculator/calculator/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0b250f4 --- /dev/null +++ b/calculator/calculator/calculator/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Общие сведения об этой сборке предоставляются следующим набором +// набора атрибутов. Измените значения этих атрибутов для изменения сведений, +// связанных со сборкой. +[assembly: AssemblyTitle("calculator")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("calculator")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми +// для компонентов COM. Если необходимо обратиться к типу в этой сборке через +// COM, следует установить атрибут ComVisible в TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("ae0e32d3-f62c-4db6-9792-33cfeb5e995a")] + +// Сведения о версии сборки состоят из указанных ниже четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер сборки +// Редакция +// +// Можно задать все значения или принять номера сборки и редакции по умолчанию +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/calculator/calculator/calculator/Properties/Resources.Designer.cs b/calculator/calculator/calculator/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4d077e9 --- /dev/null +++ b/calculator/calculator/calculator/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программным средством. +// Версия среды выполнения: 4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильному поведению и будут утрачены, если +// код создан повторно. +// +//------------------------------------------------------------------------------ + +namespace calculator.Properties +{ + + + /// + /// Класс ресурсов со строгим типом для поиска локализованных строк и пр. + /// + // Этот класс был автоматически создан при помощи StronglyTypedResourceBuilder + // класс с помощью таких средств, как ResGen или Visual Studio. + // Для добавления или удаления члена измените файл .ResX, а затем перезапустите ResGen + // с параметром /str или заново постройте свой VS-проект. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Возврат кэшированного экземпляра ResourceManager, используемого этим классом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("calculator.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Переопределяет свойство CurrentUICulture текущего потока для всех + /// подстановки ресурсов с помощью этого класса ресурсов со строгим типом. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/calculator/calculator/calculator/Properties/Resources.resx b/calculator/calculator/calculator/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/calculator/calculator/calculator/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/calculator/calculator/calculator/Properties/Settings.Designer.cs b/calculator/calculator/calculator/Properties/Settings.Designer.cs new file mode 100644 index 0000000..3a849d6 --- /dev/null +++ b/calculator/calculator/calculator/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace calculator.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/calculator/calculator/calculator/Properties/Settings.settings b/calculator/calculator/calculator/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/calculator/calculator/calculator/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/calculator/calculator/calculator/calculator.csproj b/calculator/calculator/calculator/calculator.csproj new file mode 100644 index 0000000..39b46ba --- /dev/null +++ b/calculator/calculator/calculator/calculator.csproj @@ -0,0 +1,86 @@ + + + + + Debug + AnyCPU + {AE0E32D3-F62C-4DB6-9792-33CFEB5E995A} + WinExe + calculator + calculator + v4.8 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Form + Form1.cs + + + Form1.cs + Form1.Designer.cs + + + + + Form1.cs + Form1.resx + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + \ No newline at end of file diff --git a/calculator/Спецификация.doc b/calculator/Спецификация.doc new file mode 100644 index 0000000000000000000000000000000000000000..9c046664bd656a9147114134bf318c30d10a23a8 GIT binary patch literal 114688 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%0DUQWY7B+Lel( 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