Formatele ferestrelor calculatorului în limba c # - programarea pe c, c # și java

Odată ce am creat deja un calculator similar. dar a fost destul de nepretențios și nu avea un TextBox comun pentru toate numerele.

În acest articol, vom crea un calculator mai avansat Windows Forms. Deci, va arata astfel:







Aici avem 19 butoane Buton. 1 casetă de text și 1 etichetă goală (în figură este evidențiată). Aplicarea acestuia va fi descrisă mai jos.

Deci, creăm această formă sau o formă similară. Am mărit lățimea casetei de text. folosind MultiLine:

De asemenea, în Proprietăți am mărit dimensiunea fontului în TextBox și etichetă până la 12 pt.

Acum facem ca atunci când faceți clic pe butoanele numerice, numărul corespunzător apare în caseta TextBox.

Pentru a face acest lucru, faceți dublu clic pe butonul "0" și în codul deschis scrieți:

În linia 3, atribuim primei variabile a la ce va fi scris în TextBox (adică numărul pe care îl introduce utilizatorul înainte de a da clic pe butonul "+").

Apoi, textul este șters, numărul introdus de utilizator dispare în el (dar rămâne în variabila a)

Numărătoarea variabilei este atribuită numărului 1, care apoi îi spune programului exact ce operație de adăugare va avea de a face cu numerele.

Apoi, în Etichetă, numărul din variabila a (care a fost inițial introdus de utilizator) și un semn plus sunt scrise. Pentru a arăta în formă va fi așa cum este descris mai jos.

Utilizatorul introduce un număr:

Apoi apăsați butonul "+" și apoi vedeți:

În plus, oricât de ciudat ar părea la prima vedere, vom atribui caracterul de valoare adevărului. deși mai sus, la începutul codului, am atribuit deja aceeași valoare. Vom descrie această variabilă mai detaliat mai jos, dar sensul este că îi atribuim valoarea adevărată. când dorim ca numărul introdus să fie negativ, dacă este pozitiv și fals. când vrem să facem numărul pozitiv, dacă este negativ. Inițial am introdus numere pozitive, începe cu primul, apoi al doilea. Și dacă primul număr vom face negativ, valoarea lui y znak merge în fals, iar apoi se dovedește că al doilea termen, așa cum au fost negative (în practică, doar pentru a pune în fața ei negativ, au faceți dublu-clic pe butonul corespunzător la o valoare falsă este trecut la true . și apoi înapoi într-un adevărat fals. a apărut semnul minus).

Aici folosim constructul casetei de comutare.

Un comutator este un operator de control. Poate include mai multe cazuri. Cauza - etichete a căror valoare determină ce operații vor avea loc.

Linia de comutare (contorizare) înseamnă că va depinde de valoarea contorului care determină ce acțiune va avea loc în codul de comutare.

Deci, dacă numără = 1 (în cazul codului 1 :), atunci se întâmplă următoarele:

După ce utilizatorul a apăsat "+". el, firește, trebuie să intre în cel de-al doilea termen, pe care îl face în conformitate cu scenariul standard, apoi apasă butonul "=" (și în el, după cum ne amintim, funcția noastră va fi executată).

Odată ce butonul "=" este apăsat, programul va adăuga numărul din variabila a celui de-al doilea element pe care utilizatorul la scris în TextBox. și scrieți rezultatul la variabila b (linia 6 a codului funcției). În linia 7, programul va afișa rezultatul adăugării în TextBox - variabilă b.

Instrucțiunea de rupere (linia 8) termină executarea codului de comutare atunci când execută cazul codului de etichetă 1. deoarece nu mai este nimic de făcut în el.







În mod similar, un algoritm este construit pentru cazul 2. Cazul 3 și cazul 4 cu diferența că nu se adaugă, ci se scad, se înmulțește și se împarte, respectiv.

Operatorul implicit este declanșat, dacă ceva nu merge conform planului și numărul ia o valoare diferită, care nu este descrisă în comutator. Apoi, doar funcția de pauză funcționează.

Cota de leu a programului este gata. Trebuie doar să scriem codul pentru cele trei butoane neatinse.

Faceți dublu clic pe butonul "C". Se va șterge toate intrările din TextBox și Label.

Codul ei este elementar:

Inițial, după cum ne amintim, variabila caracter este setată la true. Dacă apăsăm pentru prima dată butonul, semnul "-" apare în fața numelui din TextBox. și caracterul va fi setat la fals.

Dacă apăsați acest buton pentru a doua oară, deoarece caracterul este fals. va apărea a doua condiție. Aici este utilizată metoda Replace. care înlocuiește orice bucată de șir cu altul. În paranteze, după ce metoda este scrisă pentru prima dată, ce va fi înlocuit în linie și după virgulă, apoi ce să înlocuiți. În acest caz, înlocuim în TextBox'e minus valoarea goală.

Asta e tot, calculatorul Windows Forms este gata! Puteți să-l testați!

Aș vrea să știu cum să gestionez eroarea de divizare cu 0.

Atunci când se împarte cu 0, șirul "infinit" se returnează automat ca rezultat.
Dar, de asemenea, puteți procesa această situație în program, de exemplu, în acest fel (în metoda de calcul):
cazul 4:
separator de flotoare;
divider = float.Parse (textBox1.Text);
dacă (divider == 0.0)
MessageBox.Show ("Atenție! Împărțiți cu zero!");
altfel
b = a / divizor;
textBox1.Text = b.ToString ();
>
pauză;
Acum, atunci când se împarte cu 0, este afișat un mesaj cu un avertisment.

UMBRA Vă mulțumesc.

Și ce dacă, de exemplu: 1 plus 2 și apoi faceți clic din nou pe plus 2. Numără doar 2 + 2. Cum se face prima dată în considerare 1 + 2 apoi 3 + 2

Foarte bine, lecție evidentă.

Și cum introduc numere de la tastatură? Excepția apare, și când faceți clic pe mouse-ul toate buzzing

Bună ziua! Cum pot face imposibilă reintroducerea unei virgule?

Bună, Eugene.
Pentru a interzice o virgulă suplimentară de pe butonul Buton, puteți folosi următorul cod în locul codului în butonul18_Click:
dacă (textBox1.Text.IndexOf (',') == -1)
textBox1.Text + = ",";
>

Pentru această interdicție de la tastatură, trebuie să selectați un eveniment KeyPress din TextBox și să scrieți în acesta:
dacă (e.KeyChar == ',')
dacă (textBox1.Text.IndexOf (',')! = -1)
e.Handled = true;
>
>

Bună, dar nu-mi spuneți cum să facă acest calculator să înțeleagă paranteze?

Este necesar să se facă o intrare de la tastatură. Pentru a introduce numai numere. Ajută-te.

În primul rând, vom crea câteva variabile chiar la începutul programului, ceea ce trebuie să facem acest lucru:

flotați a, b;
int count;
bool caracter = adevărat;

Nu am înțeles exact unde la începutul programului, unde să-l scriu. Explicați-vă.

În clasa principală a formelor. Imediat dupa cuvintele:

clasa publică parțială Form1. formular

Timpul zilei. Cine poate ajuta la crearea asemănării calculatorului, dar trucul este acela că intrarea ar trebui să fie de la tastatura a 10 numere și după apăsarea butonului ar trebui să se adune toate numerele și să se dea răspunsul final.

Bună ziua, dar cum să adăugați cosine sinusoidale?

Bine ai venit! Adăugați mai multe butoane după cum este necesar.

Codul (în butonul propriu-zis), calculând, de exemplu, un sinus, va fi:

rezultat dublu = Math.Sin (Convert.ToDouble (textBox1.Text));
textBox1.Text = rezultat.ToString ();

Rețineți că metoda Sin are un argument în radiani.

Dar iată cum să o salvați, astfel încât mai târziu să o puteți folosi

Trebuie să creați un program de instalare în Visual Studio (consultați linkul), astfel încât să aveți un fișier de instalare și veți putea să utilizați calculatorul fără a utiliza IDE.

Bună ziua, vă mulțumesc foarte mult pentru un astfel de articol util!) Puteți să vă rog să-mi spuneți ce cod este necesar pentru a calcula sine a unghiului (să zicem 30 de grade, etc)? În plus, creșterea la o putere (orice număr la orice putere), calculul rădăcinii, calculul logaritmului natural și factorial al unui număr? Trebuie să adaug ceva, cu excepția butonului propriu-zis?

Pentru a calcula sinusoidele, trebuie mai întâi să convertiți gradele la radiani:

grad dublu = 30;
dublu rad = grad * Math.PI / 180;

Calculați apoi sinusul folosind metoda statică a clasei Math:

Ridicarea numărului a la putere b. Math.Pow (a, b);

Calculul rădăcinii pătrată: Math.Sqrt (a);

Logaritm natural: Math.Log (a);

Factorul este calculat folosind un ciclu sau o recursiune. Exemplu: Calcul factorial recursiv.

În plus față de codul butonului, trebuie de asemenea să modificați metoda calculate ().







Trimiteți-le prietenilor: