Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem][C++] Pisanie kalkulatora z GUI w MS Visual Studio 10


Rekomendowane odpowiedzi

Opublikowano

Witam.

Mam następujący problem.

 

Spróbowałem na rozgrzewkę napisać bylejaki kalkulator w Visual Studio 2010 (jako że jedyne ma porządny edytor GUI wbudowany w całość oraz porządny Object Browser - nie krzyczcie)

 

No i po zrobieniu GUI z 10 przyciskami które mają wpisywać numery do textboxa oraz tradycyjnymi + - * / = i , pojawił się problem.

 

Jak wczytać do zmiennej tekst z textboxa i jak zrobić żeby został do niego tekst dodany. Bo jak zrobić żeby mi się wyświetlił kawałek kodu akcji buttona wiem.

846331404756772371599.jpeg
Opublikowano

string a = button1->text;
button1->text = "asdf";

Nie jestem pewien czy winforms obługuje string czy char[], więc jakby nie działało to zmień.

Twoja stara robi catch the clowny w Game Makerze.

Opublikowano

powinno obsługiwać i string, dzięki :D

String^ lol = textbox->Text;

 

a do dodawania cyfr wystarczy użyć tego

textbox->Text = textbox->Text + '1';

i śmiga jak głupie, dzięki :D

 

 

I jeszcze pytanko - jak na takim stringu operować, czyli na przykład wyszukać w nim dany znak, itp?

przerabiać go na tablicę char[] i po kolei szukać znaku?

// znalazłem takie cuś:

http://msdn.microsof...y/bb384865.aspx (próbuję walnąć String^ do std::string)

http://msdn.microsof...y/bb384856.aspx

 

ktoś przejrzy i pomoże? Bo nadal nie wiem za bardzo o co chodzi

846331404756772371599.jpeg
Opublikowano

ty piszesz w C++/CLI, a nie w C++

 

jak chcesz napisać jakiś kalkulator typu wpisujesz 2*(3+1-2) to musisz sparsować sobie ten tekst z textboxa. Można to różnie zrobić, najlepiej najpierw sam coś wymyśl bo jest to ciekawa rzecz.

Opublikowano

Tutaj masz ciekawie opisane parsowanie ;] Co prawda tam jest parsowanie całego języka, no ale z tego zrobić porządne parsowanie samych wyr. matematycznych jest banalnie :)

Opublikowano

Właśnie kurde tylko problemy z CLI xD

Ma ktoś jakiegoś tuta pisanego pod to, czy koniecznie muszę kombinować albo na C::B się przenosić?

 

@sopelek, ja wymyśliłem taki prosty algorytm:

- wpisujesz liczby

- po kliknięciu w znak działania przenosi liczby do zmiennej i od razu konwersja do inta

- po kliknięciu = też przenosi do zmiennej i konwertuje zawartość textboxa a potem liczy wszystko i wypisuje w textboxie

 

A ja teraz borykam się z wstawianiem przecinka, a dokładniej sprawdzaniem czy był już wstawiony. Mogę zrobić na przykład zmienną logiczną która będzie mówić czy już ktoś to kliknął, ale to będzie wielce nieprofesjonalne.

Dlatego szukam sposobu na taki C++owy StringInStr.

846331404756772371599.jpeg
Opublikowano

Wpisz String:: i intelisense powinno ci wyświetlić wszystkie funkcje cli stringa.

Twoja stara robi catch the clowny w Game Makerze.

Opublikowano

Dla obliczania bardziej zlozonych rzeczy to:

http://pl.wikipedia...._notacja_polska

 

Przecinek? Jesli zostanie raz klikniety zmieniasz button na non-clickable, jakas opcja na pewno bedzie i tyle. Proste dodawania i mnozenia to 2 zmienne starcza. Ktos daje 1 liczbe klika + ta liczba laduje w zmiennej. Zapisujesz operacje do wykonania i pobierasz druga liczbe. Dodajesz do zmiennej z pierwsza i koniec lub bardziej profesjonalnie. Po pobraniu liczby i znaku, znak wysyla odpowiedni sygnal i przenosi wywolanie odrazu do funkcji odpowiedzialnej ze konkretne dzialanie i czeka na pobranie drugiego argumentu. W qt eventloop np.

 

Ps. Jesli nie znasz metod klas to:

http://www.cplusplus.com/reference/string/string/

 

Chociaz IDE powinno podpowiadac skladnie.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...