Visual Basic 2010

Status
Für weitere Antworten geschlossen.

xynlovesit

Dungeon-Boss
Mitglied seit
05.10.2011
Beiträge
636
Reaktionspunkte
16
Hallo,

ich bräuchte mal kurz Eure Hilfe. Ich muss mit Visual Basic 2010, wird c++ sein? Kenn mich noch nicht so gut aus in dem Gebiet ein Basic Calculator machen.


Das soll so aussehen:

[ Textbox1 ] Label1 [Textbox 2 ] Label2 [Textbox 3]

Button1 +
Button2 -
Button3 x
Button4 /

Button5 Calculate

Das heisst, in den ersten zwei Textboxs schreibt man zwei Zahlen rein und dann drückt man entweder auf Button2 das es minus genommen wird und das Ergebnis dann in der Textbox 3 erscheint. Die zwei Label stehen dafür, dass der 1 Label das entsprechende Zeichen übernimmt, drückt man auf +, soll es ein + werden, oder ein - und Label2 soll ein = sein.

Hoffe Ihr könnt mir helfen, danke schonmal!
 
Nein, Visual Basic ist kein C++, sondern Visual Basic. Es gibt aber auch Visual C++, welches für .Net erweitert wurde und nicht zu verwechseln ist, mit ANSI C++.
Mit Visual Basic hab ich, Gott sei Dank, nichts am Hut. Finde die Syntax einfach nur schrecklich. In C# könnte ich dir weiterhelfen. Aber ich denke, dass würde dich mehr verwirren, als weiterhelfen.

Programmierst du unter .Net mit dem Visual Studio? Falls ja, dann sind die Controls ja gleich auf die Form gezogen. Dann die Click-Events abonnieren, den Inhalt der Textboxen auslesen,
in double casten und je nach dem, in welchem Click-Event du dich befindest, die Rechenoperation ausführen. Das Ergebnis
dann wieder der Textbox zuweisen und gut ist.

Nein, Visual Basic ist kein C++, sondern Visual Basic. Es gibt aber auch Visual C++, welches für .Net erweitert wurde und nicht zu verwechseln ist, mit ANSI C++.
Mit Visual Basic hab ich, Gott sei Dank, nichts am Hut. Finde die Syntax einfach nur schrecklich. In C# könnte ich dir weiterhelfen. Aber ich denke, dass würde dich mehr verwirren, als weiterhelfen.

Programmierst du unter .Net mit dem Visual Studio? Falls ja, dann sind die Controls ja gleich auf die Form gezogen. Dann die Click-Events abonnieren, den Inhalt der Textboxen auslesen,
in double casten und je nach dem, in welchem Click-Event du dich befindest, die Rechenoperation ausführen. Das Ergebnis
dann wieder der Textbox zuweisen und gut ist.

edit: hab ich gerade gefunden.

Code:
Dim wert1 As String, wert2 As String, wert As String
		Dim zahl1 As Double, zahl2 As Double

		wert1 = args(0)

		wert = args(1)

		wert2 = args(2)

		zahl1 = [Double].Parse(wert1)
		zahl2 = [Double].Parse(wert2)

		If wert = "+" Then
			Console.WriteLine(zahl1 + zahl2)

		ElseIf wert = "-" Then
			Console.WriteLine(zahl1 - zahl2)
		ElseIf wert = "*" Then
			Console.WriteLine(zahl1 * zahl2)
		ElseIf wert = "/" Then
			Console.WriteLine(zahl1 / zahl2)
		End If

Der hat nen kleinen Taschenrechner gemacht. Allerdings ist das eine Consolen-Applikation. Du musst halt beim Click-Event die Textboxen auslesen.
Also anstelle von

wert1 = args(0) wird es bei dir heißen:

Dim zahl1 as double
Dim zahl2 as double
Dim Operation as string

if(!string.isNullOrEmpty(textbox1.text) && double.tryparse(textbox1.text, out zahl1) && !string.isNullOrEmpty(textbox2.text) && double.tryparse(textbox2.text, out zahl2)
{
Operation = textbox3.text;
if(Operation == "+")
{
textboxresult.Text = (zahl1 + zahl2).toString();
}
elseif(Operation == "-")
usw...
}
else
{
textboxresult.text = "error"
}

Mit dieser Methode hättest wenigstens gleich ne kleine Validierung dabei. Bei dem Beispiel mit der Consolen-Anwendung kann man jeden Quatsch eingeben
und er castet es dann in Double, was ne exception gibt, wenn ich z.B. Buchstaben eingebe. Natürlich könnte man noch mehr validieren.
Teilungen mit 0 müssten noch abgefangen werden und zum Beispiel, dass man mehrere Kommas eingeben kann...halt ne, die hast du ja eh nicht.

Achja...der Code von mir würde voraussetzen, dass du VB unter .Net verwendest. Aber das weiß ich ja nicht.
 
Zuletzt bearbeitet von einem Moderator:
Is das ned eher nen Thema für die "Kreative Ecke"?...

Da wurden ja auch schon SQL Sachen und VM Zeugs besprochen, was eher Technik is
 
Noch ne kleine Anmerkung, da ich sehe, dass du die Operation auch auf einen Button hast. In dem Fall musst du natürlich am besten auch da das Click-Event abonnieren und dann
den Text in die Variable "Operation" speichern. Ich les die ja von ner Textbox aus, bei meinem Beispiel.

Du musst dann im Click-Event sowas machen, falls zum Beispiel alle Buttons für die Operation am gleichen event hängen, machst du

if(((Button)sender).Text == "+")
{
Operation = "+"
}

Sollte jeder Button für ne Rechenoperation ein eigenes Event feuern, dann weißt du ja eh schon, was die Operation ist und speicherst es in die Variable "Operation".

@Littlecool:

Wieso soll SQL mehr Technik sein? SQL ist ein Werkzeug für Anwendungsentwickler. Techniker, wie Admins, welche mehr Netzwerk und den ganze Kram machen, die haben damit nicht immer soviel zu tun. Rudimentäre Kenntnisse in SQL würde ich den Admins im Rechenzentrum bei uns zugestehen. Aber wenn die Skripte mal etwas komplexer werden, dann steigen die meisten dort aus.
 
Zuletzt bearbeitet von einem Moderator:
Bin ja selber einer deswegen sage ich es

SQL haben wir jetzt auch im aufbau...

Aber wenns an die Sprachen geht.... ugh kA
 
Also, so würde es in C# aussehen. Ganz billig zusammengestöpselt und auch noch nicht alle Fehler abgefangen, wie zum Beispiel Teilen durch 0.
Außerdem hängen die Controls auch etwas planlos in der Gegend rum, aber cosmetic kannst ja selbst betreiben. Sofern du .Net machst und falls nicht, dann hilft das Beispiel dir eh nicht soviel weiter, aber solltest
du .Net verwenden und das Visual Studio, dann wirst du die Controls ja eh über den Designer auf die Form ziehen, denke ich mal.

Code:
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication3
{
 public partial class Form1 : Form
 {
 private string strOp = null;
 private TextBox tbZahl1;
 private TextBox tbZahl2;
 private TextBox result;
 
 public Form1()
 {
 InitializeComponent();
 AddControls();
 }
 private void AddControls()
 {
 Button ButtonPlus = new Button();
 ButtonPlus.Text = "+";
 ButtonPlus.Left = 100;
 ButtonPlus.Click += new EventHandler(ButtonOp_Click);
 Button ButtonMinus = new Button();
 ButtonMinus.Text = "-";
 ButtonMinus.Left = 200;
 ButtonMinus.Click += new EventHandler(ButtonOp_Click);
 Button ButtonDiv = new Button();
 ButtonDiv.Text = "/";
 ButtonDiv.Left = 300;
 ButtonDiv.Click += new EventHandler(ButtonOp_Click);
 Button ButtonMulti = new Button();
 ButtonMulti.Text = "x";
 ButtonMulti.Left = 400;
 ButtonMulti.Click += new EventHandler(ButtonOp_Click);

 Button ButtonCalc = new Button();
 ButtonCalc.Text = "calc";
 ButtonCalc.Left = 500;
 ButtonCalc.Click += new EventHandler(ButtonCalc_Click);

 this.Controls.Add(ButtonPlus);
 this.Controls.Add(ButtonMinus);
 this.Controls.Add(ButtonDiv);
 this.Controls.Add(ButtonMulti);
 this.Controls.Add(ButtonCalc);

 tbZahl1 = new TextBox();
 tbZahl1.Top = 100;
 this.Controls.Add(tbZahl1);
 tbZahl2 = new TextBox();
 tbZahl2.Top = 160;
 this.Controls.Add(tbZahl2);
 result = new TextBox();
 result.Top = 200;
 this.Controls.Add(result);

 }
 void ButtonCalc_Click(object sender, EventArgs e)
 {
 double zahl1;
 double zahl2;

 if(!string.IsNullOrEmpty(tbZahl1.Text) && double.TryParse(tbZahl1.Text, out zahl1) && !string.IsNullOrEmpty(tbZahl2.Text) &&
 double.TryParse(tbZahl2.Text, out zahl2) && strOp != null)
 {
 switch (strOp)
 {
 case "+":
 result.Text = (zahl1 + zahl2).ToString();
 break;
 case "-":
 result.Text = (zahl1 - zahl2).ToString();
 break;
 case "/":
 result.Text = (zahl1 / zahl2).ToString();
 break;
 case "x":
 result.Text = (zahl1 * zahl2).ToString();
 break;
 }
 }
 else
 {
 result.Text = "error";
 }
 }
 void ButtonOp_Click(object sender, EventArgs e)
 {
 switch (((Button)sender).Text)
 { 
 case "+":
 this.strOp = "+";
 break;
 case "-":
 this.strOp = "-";
 break;
 case "/":
 this.strOp = "/";
 break;
 case "x":
 this.strOp = "x";
 break;
 }
 }
 }
}

Das kannst du jetzt durch einen Online-Converter jagen und von C# in Visual Basic wandeln lassen. ^^
 
Zuletzt bearbeitet von einem Moderator:
Gestern registriert und direkt mal Hausaufgaben machen lassen? Irgendwie finde ich das nicht nett ...
 
Status
Für weitere Antworten geschlossen.
Zurück