Zum Inhalt springen

GUI Taschenrechner mit Visual Studio 2005


jon1991

Empfohlene Beiträge

Hallo erstmal ich bin neu hier^^

und zwar hab ich ein problem ich muss erstmal einen einfachen Taschenrechner im MS Visual Studio 2005 erstellen.

Auf das forum kam durch den C# taschenrechner Thread aber leider kann ich damit nichts anfangen.

also ich google jetzt schon seit über 5h lang und finde einfach absolut nichts was mir weiterhilft :(

Um das ganze zu verstehen will ich einfach mal einen Grafisch erstellen der

2 zahlen addiert.

Also hab ich textBox1 textBox2 und textBox3 erstellt..

und dann noch einen button auf den ich klicken will und dann soll das ergebnis ausgerechnet werden.

in der textBox3 soll dann das ergebnis der zwei adierten zahlen stehen die man in textBox1 und textBox2 einträgt.

Aber ich finde absolut keinen quelltext, mit dem Borland C++ builder könnte ich das aber beim visual studio komm ich einfach nicht weiter.

wäre nett wenn mir jemand mal den funktionieren quelltext für die einfache rechnung sagen könnte dann würde ich verstehen wie man aus den boxen liest und zurück in die boxen schreibt.

vielen dank schonmal im Vorraus

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi danke schonmal für die antwort...

Aber ich muss das ganze in C++ programmieren also ich habe "Visual C++ 2005 Express Edition"

das mit dem grafischen und auch die Bedien oberfläche ist ja exakt gleich nur wenn ich dnn quelltext vom vidio benutzte geht es nicht.. ist ja auch kein c++..

hab den quelltext mal rausgeschrieben könnte mir den vll einer umschreiben auf c++ ?

double zahl1 = double.Parse|textzahl1.Text);

		 double zahl2 = double.Parse|textzahl2.Text);

		 double Ergebnis;


		 if(rdbtnplus.Checked)

		 {

			 Ergebnis= zahl1 + zahl2;

			 label1.Text = Ergebnis.ToString();

		 }

		  if(rdbtnminus.Checked)

		 {

			 Ergebnis= zahl1 - zahl2;

			 label1.Text = Ergebnis.ToString();

		 }


		   if(rdbtnmal.Checked)

		 {

			 Ergebnis= zahl1 * zahl2;

			 label1.Text = Ergebnis.ToString();

		 }


		    if(rdbtnplus.Checked)

		 {

			 Ergebnis= zahl1 / zahl2;

			 label1.Text = Ergebnis.ToString();

		 }

wäre echt nett

oder vielleicht kennt jemand ja noch ein weiteres bespiel für c++ in MS Visual.. ich muss einfach das grundwissen reinbekommen und dafür brauch ich einfach mal ein funktionierendes Tutorial.

Danke schonmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber ich muss das ganze in C++ programmieren also ich habe "Visual C++ 2005 Express Edition"

das mit dem grafischen und auch die Bedien oberfläche ist ja exakt gleich

Langsam. Die Programmiersprache, bei der die Programmierung der grafischen Oberflächen wie in C# funktioniert, ist C++/CLI. Diese Sprache hat Parallelen zu C++, ist aber grundsätzlich eine eigenständige Programmiersprache. C++/CLI ist nicht dasselbe wie C++.

Wenn deine Aufgabe lautet, das in C++ zu machen, wirst du damit dieser Anforderung möglicherweise nicht gerecht. Bitte kläre das.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja meine Aufgabe lautet erstmal so einen "einfachen" Taschenrechner mit dem MS Visual C++ 2005 Express Edition zu schreiben...

Naja ich kenn mich damit nicht so gut aus. Habe bis jetzt eig fast nur Consolen anwendungen gemacht und noch nie mit dem Visual Studio gearbeitet.

Aber wieso werde ich mit dieser Aufgabe nicht gerecht?? es kann doch nicht so schwer sein sowas einfaches zu programmieren mein problem ist halt das ich den quellcode nicht weis..

Was ich dazusagen kann, mit dem Borland C++ Builder kann ich es teilweise aber wenn ich den quelltext auf Visual studio anwende klappt es wieder nicht...

das einziege was ich bis jetzt hinbekommen habe ist der beenden button in den muss man ja nur: Close(); schreiben das weis ich noch vom C++ Builder von Borland..

Ich finde absolut keine Tutorial wo es erklärt wird für den Borland C++ builder hätte ich ein gutes aber den bekommt man ja nirgens her :/

Geht das allen so?

Ich bin grade am verzweifeln :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja meine Aufgabe lautet erstmal so einen "einfachen" Taschenrechner mit dem MS Visual C++ 2005 Express Edition zu schreiben...
Wenn das der Wortlaut der Aufgabenstellung ist, dann ist das in Ordnung. Dir muss nur klar sein, dass die verwendete Programmiersprache dann C++/CLI ist, nicht C++.

Aber wieso werde ich mit dieser Aufgabe nicht gerecht??
Wenn die Aufgabe gewesen wäre, das in C++ zu machen, hättest du die falsche Programmiersprache benutzt.

es kann doch nicht so schwer sein sowas einfaches zu programmieren
Die Programmierung grafischer Benutzeroberflächen in C++ ist durchaus nicht einfach. Aber zum Glück kannst du C++/CLI benutzen, da geht das wesentlich einfacher.

Was ich dazusagen kann, mit dem Borland C++ Builder kann ich es teilweise aber wenn ich den quelltext auf Visual studio anwende klappt es wieder nicht...
Weil das unterschiedliche Programmiersprachen sind. Und weil der Borland Builder eine Bibliothek für grafische Benutzeroberflächen verwendet, die Visual C++ nicht kennt.

Ich kann dich erst mal ins richtige Unterforum verschieben, hier bist du nämlich falsch ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok danke^^

sry aber ich versteh nicht was du mit "C++/CLI" meinst :confused:

noch nie gehört.

ist C++/CLI ne andere programmiersprche wie C++ ?

Ich brauch einfach mal beispielrogramme die mit MS Visual C++ 2005 Express Edition" am besten in forum eines Taschenrechners wo buttons, textBox und vll noch RadioButtons verwendet wurden läuft.

Ich hab einfach so viel gesucht und nichts gefunden wenn ich doch auch nur einen kleinen quelltext hätte, wie z.B der von mustiwebp würde das schon reichen damit ich einfach verstehe wie man die eingaben von ner textBox auf ne variable u.s.w. schreiben kann eben wie in dem C# tutorial.

Aber vielleicht such ich die ganze zeit auch mit den falschen stichwörtern im internet gibts doch eigentlich alles :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok das hab ich jezt verstanden^^

Hab mal bischen danach gesucht aber wieso gibt es zu C++/CLI kaum tutorials... Für alle sprachen wie java usw gibtes tausende tutorials die gut sind aber nicht für mein MS Visual C++ Studio.

ich hab kein gutes gefunden wo so en "einfacher Taschenrechner" erklärt wird...

Darum bitte ich noch einmal drum könnte mir das bitte einer kurz von C# in C++/CLI umschreiben bzw so umschreiben das es halt bei meinem Mircosoft Visual C++ 2005 Express Edition drauf läuft..

wäre echt nett.

double zahl1 = double.Parse|textzahl1.Text);

		 double zahl2 = double.Parse|textzahl2.Text);

		 double Ergebnis;


		 if(rdbtnplus.Checked)

		 {

			 Ergebnis= zahl1 + zahl2;

			 label1.Text = Ergebnis.ToString();

		 }

		  if(rdbtnminus.Checked)

		 {

			 Ergebnis= zahl1 - zahl2;

			 label1.Text = Ergebnis.ToString();

		 }


		   if(rdbtnmal.Checked)

		 {

			 Ergebnis= zahl1 * zahl2;

			 label1.Text = Ergebnis.ToString();

		 }


		    if(rdbtnplus.Checked)

		 {

			 Ergebnis= zahl1 / zahl2;

			 label1.Text = Ergebnis.ToString();

		 }

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Übersetzung ist eigentlich ziemlich einfach.

Wenn auf statische Methoden zugegriffen wird, musst du den Punkt durch zwei Doppelpunkte ersetzen. Aus double.Parse wird double::Parse.

Wenn auf nichtstatische Methoden oder Eigenschaften von CLR-Klassen zugegriffen wird, musst du den Punkt durch einen Pfeil (->) ersetzen. Aus rdbtnplus.Checked wird rdbtnplus->Checked.

Der Punkt bei Ergebnis.ToString bleibt.

Vorher solltest du aber noch die Fehler in diesem Code beheben. Da sind zwei Syntaxfehler und ein logischer Fehler drin. Eventuell falsch abgeschrieben?

Und natürlich musst du entweder die Steuerelemente auf deiner Form genauso nennen wie in dem Code, oder den Code entsprechend ändern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke schonmal für die antwort

Also hab mir den quelltext nochmal vom vidio angeschaut und der ist 100% gleich wie den ich hier gepostet hab. Habs extra noch 2 mal durchgelesen konnte da aber keine fehler sehen :/

gut die qualität ist auf dem vid schlecht aber ich konnte echt nichts feststellen :(13147889.png

so und dann hab ich das ganze noch kurz umgeschrieben dann :)


double zahl1 = double::Parse|textzahl1.Text);

		 double zahl2 = double::Parse|textzahl2.Text);

		 double Ergebnis;


		 if(rdbtnplus->Checked)

		 {

			 Ergebnis= zahl1 + zahl2;

			 label1->Text = Ergebnis.ToString();

		 }

		  if(rdbtnminus->Checked)

		 {

			 Ergebnis= zahl1 - zahl2;

			 label1->Text = Ergebnis.ToString();

		 }


		   if(rdbtnmal->Checked)

		 {

			 Ergebnis= zahl1 * zahl2;

			 label1->Text = Ergebnis.ToString();

		 }


		    if(rdbtnplus->Checked)

		 {

			 Ergebnis= zahl1 / zahl2;

			 label1->Text = Ergebnis.ToString();

		 }

könntest du mir bitte nochmal kurz sagen wo hier die 3 fehler sind

danke :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

double zahl1 = double::Parse|textzahl1.Text);
Gut, es ist auf dem Video schlecht zu erkennen, aber ein wenig Grundlagenwissen über die verwendete Programmiersprache und ihre Syntax sollte man dann doch haben. Dann erkennt man, dass hier ein Funktionsaufruf vorliegt. Und den macht man mit (), nicht |).

Und was den logischen Fehler angeht, der ist im Screenshot schon drin. Aber diesen Fehler kann man ohne Kenntnis der Programmiersprache nur mit ein wenig Nachdenken erkennen. Das überlasse ich dir, ein wenig mentale Eigenleistung sollte ja drin sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ok danke ja stimmt den logischen fehler sollte man eigentlich sehen und das das ne klammer sein soll kann man sich auch denken aber wenn man das nur so sturr wort für wort abtippt wie ich das gemacht hab fällt einem sowas nicht auf :upps

Aber es funktioniert immer noch nicht :rolleyes:

hab alles neu gemacht und kommt immer noch die meldung da sind fehler drin und dann lässt es sich auch net starten.

hier mal der fertige quelltext:

double zahl1 = double::Parse(textzahl1.Text);

		 double zahl2 = double::Parse(textzahl2.Text);

		 double Ergebnis;


		 if(plus->Checked)

		 {

			 Ergebnis= zahl1 + zahl2;

			 label1->Text = Ergebnis.ToString();

		 }

		  if(minus->Checked)

		 {

			 Ergebnis= zahl1 - zahl2;

			 label1->Text = Ergebnis.ToString();

		 }


		   if(mal->Checked)

		 {

			 Ergebnis= zahl1 * zahl2;

			 label1->Text = Ergebnis.ToString();

		 }


		    if(geteilt->Checked)

		 {

			 Ergebnis= zahl1 / zahl2;

			 label1->Text = Ergebnis.ToString();

		 }
Und das ich bei den buttons der "(Name)" falsch bezeichnet habe schliese ich aus kann man ja leicht überprüfen im quelltext:
	private: System::Windows::Forms::TextBox^  textzahl1;

	private: System::Windows::Forms::TextBox^  textzahl2;

	private: System::Windows::Forms::Button^  btnergebnis;

	private: System::Windows::Forms::RadioButton^  plus;

	private: System::Windows::Forms::RadioButton^  minus;

	private: System::Windows::Forms::RadioButton^  mal;

	private: System::Windows::Forms::RadioButton^  geteilt;

Alles richtig geschrieben.

Wo liegt denn da jetzt noch das problem?

fehlt da vielleicht ein header und wenn ja welcher? :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

ach ich bin doch so ein idiot :upps

sorry hab schon länger nichts mehr mit compilern gemacht und da vergisst man einfach so leichte sachen wie in die console schauen :/

musste einfach aus

double zahl1 = double::Parse(textzahl1.Text);
double zahl1 = double::Parse(textzahl1->Text);

machen

So jetzt mal bischen rumprobieren damit ich mal auch was alleine schaffe.

Vielen dank das du mir bis dahin erstmal geholfen hast wenn ich das grund prinzip verstanden habe wird das nacher auch nicht mehr so schwer werden denke ich :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn das der Wortlaut der Aufgabenstellung ist, dann ist das in Ordnung. Dir muss nur klar sein, dass die verwendete Programmiersprache dann C++/CLI ist, nicht C++.

Wenn die Aufgabe gewesen wäre, das in C++ zu machen, hättest du die falsche Programmiersprache benutzt.

soso..

Ich würde beim Vergleich C++/CLI und C++ nicht unbedingt von verschiedenen Sprachen sprechen - eher von Dialekten ähnlich der verschiedenen Standards und Erweiterungen.

Bjarne Stroustrup selbst bezeichnet C++/CLI als Extension-Set: Stroustrup: FAQ (!)

Aber es geht auch anders:

VS C++ Express ist im Gegansatz zu den anderen Express-Editionen auch in der Lage stink normale Win32 Binaries/DLLs zu erzeugen (komplett ohne .Net)

In der 2008er Version geht das afaik direkt, in der 2005er muss man das evtl. noch anschalten (Using the Free Visual C++ 2005 Express Edition to Develop Win32 Applications - CodeProject).

Grüße Ripper

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde beim Vergleich C++/CLI und C++ nicht unbedingt von verschiedenen Sprachen sprechen - eher von Dialekten ähnlich der verschiedenen Standards und Erweiterungen.
Der Unterschied mag nicht so groß sein, wie ich ihn dargestellt habe. Es geht mir darum, dass jon1991 das machen muss, wie er selbst schreibt. Er hat also von jemandem diese Aufgabe bekommen. Und dieser Jemand hat vermutlich ziemlich klare Vorstellungen davon, ob C++ oder C++/CLI verwendet werden soll. Insofern halte ich hier eine klare Abgrenzung für wichtig.

Aber es geht auch anders:

Ja, das geht. Allerdings verlässt man mit GUI-Programmierung in WinAPI (also ohne .NET) sehr schnell den Bereich von "einfach".
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja ich hab die Augabe einen kleinen Taschenrechner mit vielen funktionen zu programmieren.

Aber im endeffekt ist es egal mit was und in welcher Sprache ich es programmiere.

Und da ich nunmal ne version von MS C++ Visual Studio habe wollte ich es auch damit machen :D

bin jetzt auch durch andere Tutorials usw bischen weiter gekommen in den 2 Tagen.

Und der Taschenrechener funktioniert auch solange ich nur so Aufgaben wie z.B 5-8 rechne

Ich will aber auch Aufgaben wie z.B 5 - 8 + 7 eingeben können und dann wenn ich = drücke soll auch das richtige ergebnis da stehen..

Aber ich weis ehrlich nicht wie ich das auf den aktuellen quellcode umsetzten soll :/

meine idee war ja das wenn man ein zweites mal z.B + drückt es das ergebnis aus der textBox in einer Variable speichert und sobald man dann die neuen zahlen eingibt es zu diese dazu addiert oder je nach dem eben welcher button.

Ja bischen kompliziert und ging auch nicht wirklich wie ich das gemacht habe :/

vll habt ihr ja ne idee wie ich das einfach und nicht kompliziert umsetzen kann der sollte einfach mehrere zahlen hintereinander rechnen können.

am besten so wie der rechner von windows^^

So sieht der taschenrechner aus:

unbenanntoqj.jpg

ja und der quellcode:


	bool rplus    = false;

	bool rminus   = false;

	bool rmal     = false;

	bool rgeteilt = false;

	bool rgleich  = false;







private: System::Void eins_Click(System::Object^  sender, System::EventArgs^  e) {

                 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }


				 textBox1->Text = textBox1->Text + "1";

			 }

	private: System::Void zwei_Click(System::Object^  sender, System::EventArgs^  e) {

				 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }



				 textBox1->Text = textBox1->Text + "2";

			 }

private: System::Void drei_Click(System::Object^  sender, System::EventArgs^  e) {

			 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }


			 textBox1->Text = textBox1->Text + "3";

		 }

private: System::Void vier_Click(System::Object^  sender, System::EventArgs^  e) {

			 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }


			 textBox1->Text = textBox1->Text + "4";

		 }

private: System::Void fünf_Click(System::Object^  sender, System::EventArgs^  e) {

			 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }


			 textBox1->Text = textBox1->Text + "5";

		 }

private: System::Void sechs_Click(System::Object^  sender, System::EventArgs^  e) {

			 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }


			 textBox1->Text = textBox1->Text + "6";

		 }

private: System::Void sieben_Click(System::Object^  sender, System::EventArgs^  e) {

			 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }


			 textBox1->Text = textBox1->Text + "7";

		 }

private: System::Void acht_Click(System::Object^  sender, System::EventArgs^  e) {

			 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }


			 textBox1->Text = textBox1->Text + "8";

		 }

private: System::Void neun_Click(System::Object^  sender, System::EventArgs^  e) {

			 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }


			 textBox1->Text = textBox1->Text + "9";

		 }

private: System::Void btnkomma_Click(System::Object^  sender, System::EventArgs^  e) {



			 if(textBox1->Text->Contains(","))

			 {

				 return;

			 }

			 else

			 {

				 textBox1->Text = textBox1->Text + ",";

			 }


		 }

private: System::Void btnplusminus_Click(System::Object^  sender, System::EventArgs^  e) {


			  if(textBox1->Text->Contains("-"))

			 {

				 textBox1->Text = textBox1->Text->Remove(0, 1);

			 }

			 else

			 {

				 textBox1->Text = "-" + textBox1->Text;

			 }




		 }

private: System::Void null_Click(System::Object^  sender, System::EventArgs^  e) {

			 if(rgleich)

				 {

					 textBox1->Text = "";

					 rgleich = false;

				 }


			 textBox1->Text = textBox1->Text + "0";

		 }

private: System::Void plus_Click(System::Object^  sender, System::EventArgs^  e) {




		     if(textBox1->Text=="")

			 {

				 return;

			 }

			 else

			 {

				 rplus= true;

				 textBox1->Tag = textBox1->Text;

				 textBox1->Text = "";

			 }











		 }


private: System::Void minus_Click(System::Object^  sender, System::EventArgs^  e) {

			 if(textBox1->Text=="")

			 {

				 return;

			 }

			 else

			 {

				 rminus= true;

				 textBox1->Tag = textBox1->Text;

				 textBox1->Text = "";

			 }








		 }

private: System::Void gleich_Click(System::Object^  sender, System::EventArgs^  e) {


			 rgleich = true;


			 if(rplus)

			 {

				 Decimal dec;

				 dec = Convert::ToDecimal(textBox1->Tag) + Convert::ToDecimal(textBox1->Text);

				 textBox1->Text = dec.ToString();




			 }

			 if(rminus)

			 {

				 Decimal dec;

				 dec = Convert::ToDecimal(textBox1->Tag) - Convert::ToDecimal(textBox1->Text);



				 textBox1->Text = dec.ToString();

			 }

			 if(rmal)

			 {

				 Decimal dec;

				 dec = Convert::ToDecimal(textBox1->Tag) * Convert::ToDecimal(textBox1->Text);


				 textBox1->Text = dec.ToString();

			 }

			 if(rgeteilt)

			 {

				 Decimal dec;

				 dec = Convert::ToDecimal(textBox1->Tag) / Convert::ToDecimal(textBox1->Text);


				 textBox1->Text = dec.ToString();

			 }






}


private: System::Void mal_Click(System::Object^  sender, System::EventArgs^  e) {


			 if(textBox1->Text=="")

			 {

				 return;

			 }

			 else

			 {

				 rmal= true;

				 textBox1->Tag = textBox1->Text;

				 textBox1->Text = "";

			 }








		 }

private: System::Void geteilt_Click(System::Object^  sender, System::EventArgs^  e) {


			 if(textBox1->Text=="")

			 {

				 return;

			 }

			 else

			 {

				 rgeteilt = true;

				 textBox1->Tag = textBox1->Text;

				 textBox1->Text = "";

			 }







		 }








private: System::Void clear_Click(System::Object^  sender, System::EventArgs^  e) {


			 rplus = rminus = rmal = rgeteilt = rgleich = false;


			 textBox1->Text = "";

			 textBox1->Tag = "";




}

vielleicht hat ja einer ne idee wäre echt nett

ich wills ja selber machen aber ich hab jetzt echt 2h lang probiert und probiert und bin gleich weit wie vor 2h :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...