C# Visual C# 2013 (Anfänger)

  • Ersteller Ersteller Montrey87
  • Erstellt am Erstellt am
M

Montrey87

Gast
Also ich habe mir das Buch "Einstieg in Visual C# 2013" und hänge jetzt an einer Übung Fest wahrscheinlich denke ich einfach zu Kompliziert oder verstehe es nur nicht.

Übung:
Schreiben sie ein Programm, in dem Ihr Nachname, Ihr Vorname, Ihre Adresse, Ihr Alter und Ihr Gehalt jeweils in Variablen eines geeigneten Datentyps gespeichert und anschließend ausgegeben werden.

Problem an der sache ist ich verstehe nicht wie ich das in Variablen verpacken soll.

Code:
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 Namen_Alter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void cmdAnzeigen_Click(object sender, EventArgs e)
        {
            lblName.Text = "Adresse:\nMax Mustermann\nMusterstr.123";
        }
    }
}

So ist das mit sicherheit nicht gewollt sorry wenn das blöd rüberkommt aber ich fange bei 0 an ;-) .
 
Ich denke du sollst deinen Namen und so weiter in von dir definierten String-Variablen speichern und dein alter in einer Integer-Variablen. Dann sollst du die Variablen verwenden, um sie z.B. in einem Textfeld auszugeben. So verstehe ich das mal, ohne selbst viel über C# zu wissen, aber dürfte ja ähnlich sein wie bei anderen Programmiersprachen.
 
Zuletzt bearbeitet:
Hi,

nach meinem Verständnis will die Aufgabenstellung, dass du eine Konsolenanwendung schreibst. Jedoch hast du einen Code für eine Windows-Forms Anwendung (Klickibunti) bereitgestellt.

Folglich würde es in etwas so aussehen:

Code:
void main(){
//string firstname = Console.ReadLine();
string firstname = "Hans Mustermann";
Console.WriteLine(firstname);

//usw für die anderen Felder
}
 
Zuletzt bearbeitet:
Als Beispiel dient das hier im Buch.


Code:
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Datentypen
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void cmdAnzeige_Click(object sender, EventArgs e)
        {
            /* ganze Zahlen */
            byte By;
            short Sh;
            int It;
            long Lg;

            /* Zahlen mit Nachkommastellen */
            double Db1, Db2;
            float Fl;
            decimal De;

            /* Boolesche Variable, Zeichen, Zeichenkette */
            bool Bo;
            char Ch;
            string St;

            By = 200;
            Sh = 30000;
            It = 2000000000;
            Lg = 3000000000;

            Db1 = 1 / 7;
            Db2 = 1.0 / 7;
            Fl = 1.0f / 7;
            De = 1.0m / 7;

            Bo = true;
            Ch = 'a';
            St = "Zeichenkette";

            lblAnzeige.Text =
               "byte: " + By + "\n" +
               "short: " + Sh + "\n" +
               "int: " + It + "\n" +
               "long: " + Lg + "\n" +
               "double 1: " + Db1 + "\n" +
               "double 2: " + Db2 + "\n" +
               "float: " + Fl + "\n" +
               "decimal: " + De + "\n" +
               "bool: " + Bo + "\n" +
               "char: " + Ch + "\n" +
               "string: " + St;
        }
    }
}

Ich bin etwas überfordert muss ich sagen von dem einen Kapitel in sowas geworfen :)

EDIT: Ich verstehe schon was damit gemeint ist nur wie wende ich das ganze jetzt auf sowas simples wie Namen , Adresse usw an.
 
Zuletzt bearbeitet:
Hab das Buch auch in einer früheren Version, es ist meiner Meinung nach viel zu kompliziert & theoretisch für einen Anfänger.

Du musst für Adresse, Name und Vorname einen String initialisieren und ihnen dann später einen wert zuweisen. Das gleiche gilt für Alter (Integer) und dem Gehalt (double, da es ein kommwert ist)

Ich würde übrigends auch mit einer Konsolenanwendung beginnen, da es doch etwas einfacher ist.
Schau am besten mal nach Tutorials im Internet nach zum Thema. Variablen, Wertebereiche und Zuweisung.

P.s: Mir hat das Buch "C# in 21 Tagen" gut geholfen, da es dort viele Beispiele mit kompletter Beschreibung drin sind.
 
In Variablen speichern machst du ganz einfach, indem du dafür Variablen anlegst:
Code:
string Vorname = "Max";
string Nachname = "Mustermann"
string Kaesekuchenfabrik = "Musterstraße 24"

Wie du siehst, kann man eine Variable auch unsinnig benennen und trotzdem sinnvollen Inhalt verpacken. Sprechende Namen sind aber IMMER besser, glaub mir.

Das Ausgeben darfst du dir dann aussuchen. Entweder du platziert 100 Textboxen, oder lässt es in einer Nachricht ausgeben. Ein Beispiel wäre:

Code:
MessageBox.Show(
  "Vorname: " + Vorname + "\n" +
  "Nachname: " + Nachname + "\n" +
  "Straße: " + Kaesekuchenfabrik + "\n"
);

Durch das "+" kannst du beliebig strings und string-Variablen vermischen. Das Speichern in Variablen ist so als Übung noch recht unspannend und der Sinn mag etwas schleierhaft vorkommen. Aber wenn man mit den Variablen weiterarbeiten will, wird es ersichtlich, warum man nicht direkt den Text nimmt. Wenn du die Werte erst einlesen willst, z.B. aus einer Textbox, dann MUSST du sogar Variablen nehmen. Du weißt ja vorher nicht, was du einliest ;)

Hilft das eventuell weiter?
 
Hi, wie mein Vorredner schon sagte und in deinem Beispiel aus dem Buch ab Zeile 17. zu sehen, musst du erst die entsprechenden Variablen initialisieren.

string Name;
string Vorname;
int Alter;

Und diesen anschließend den entsprechenden Wert zuweisen.

Name = "Mustermann";
Vorname = "Max";
Alter = 99;

Zum Schluss schreibt dein Buch vor alles in ein (vorhandenes) Label mit dem Namen lblAnzeige zu schreiben.

Z.b. so:
lblAnzeige.Text = Vorname + " " + Name + " " + Alter;

Das alles passiert sobald du auf die Schaltfläche cmdAnzeige klickst, sofern das entsprechende Event definiert ist.

Viel Spaß beim coden ;-)
 
Liebe Grüße Anfänger ^^

Kein Problem, jeder fängt mal klein an.
Ich hab die Aufgabe mal schnell für dich umgesetzt. Ich hoffe du benutzt auch visual studio...
Ich habs versucht ordentlich zu kommentieren. Wenn trotzdem Fragen aufkommen, einfach nachfragen,
ich biete gerne Hilfe.

Im Prinzip ist die Aufgabe ganz einfach, wenn man aber vorher nichtmal ordentlich auf Winforms vorbereitet wird
ist das bescheuert.

MfG T2xlc
 

Anhänge

Ja das hilft mir schon weiter , ich denke man kann es auf viele arten und wege lösen.
Das Buch ist halt irgendwie fies :) von kleinen mini Programm was super einfach und verständlich ist zu Variablen wo die Erklärung die ich oben gepostet habe für mehr verwirrung sorgt.

Die Übung will es halt von mir so das ich ein Grafisches Programm mit einem Button erstelle "Anzeigen" wo ich dann drauf klicken soll und er mir halt dann untereinander alles anzeigt.

Max Mustermann
Musterstr 123
12345 Musterstadt

Alter:23
Gehalt: 2345,1

Wieso da kein einfaches Beispiel bei ist verstehe ich nicht so ganz.



EDIT: So geht es z.B auch bzw wird mir dann angezeigt.

Code:
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 Namen_Alter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            ;
        }

        private void cmdAnzeigen_Click(object sender, EventArgs e)
        {
            string Name;
            string Nachname;
            string Strasse;
            string Alter;
            string Gehalt;

            Name = "Max \n";
            Nachname = "Mustermann \n";
            Strasse = "Musterstr.1\n";
            Alter = "Alter: 23\n";
            Gehalt = "Gehalt: 2599,97€";

            lblName.Text = Name + Nachname + Strasse + Alter + Gehalt;

            
        }
    }
}

EDIT: Danke für das Beispiel es ist aber glaube sogar noch ein schritt weiter als was in dem Buch verlangt wird sieht schon Proffessioneller aus als was da abgebildet wird.
 
Zuletzt bearbeitet:
Sieht schon ganz gut aus.
Ich würde aber
[Alter] und [Gehalt] nicht als string abspeichern.
Sondern Alter als (int) nur Ganze Zahlen.
und Gehalt als (double) Fließkomma Zahl mit hoher genauigkeit.

Um dann in der Ausgabe keine Fehler zu bekommen musst du nocht
Gehalt.ToString() aufrufen.

Ach ja, um eine Variable mit einem string zu kombinieren benutzt man "text" + Variable

Auf diese Weise kannst du statt:
Alter = "Alter: 23\n"

so schreiben:
lblName.Text = ... "Alter: " + Alter.ToString() +... usw.

Wobei "Alter: " ein vordefinierter string ist und Alter
die Variable, die oben eingetragen wurde
 
Zuletzt bearbeitet:
Montrey87 schrieb:
Das Buch ist halt irgendwie fies :)
Ist vielleicht auch einfach dem Buchaufbau geschuldet, wo man insgesamt viel (zu viel? zu schnell?) vermitteln will und sich gerade für die ersten Schritte nicht so viel Zeit / Platz nimmt, wie es für Anfänger wirklich hilfreich ist.

Ich muss sagen, dass ich da mit Videotutorials sehr viel besser beim Einstieg klargekommen bin. Habe mich im letzten Jahr nebenbei Just for Fun ein wenig mit C# beschäftigt und kam damit recht gut klar. Erst danach habe ich mich dann der (Online)Literatur zugewendet.

Ich habe da für den Einstieg die Video-Tuts (C# for Beginners) von Bob Taylor verwendet: http://www.microsoftvirtualacademy.com/training-courses/c-fundamentals-for-absolute-beginners_deu (Kann man sich auch als MP4-Video runterladen)
Nachteil: Videos sind auf Englisch, wobei ich allerdings sehe, dass zumindest die Webvideos (Downloads habe ich jetzt nicht getestet) inzwischen dt. Untertitel haben. Probier es doch mal damit für den Einstieg in die Basics aus.
 
Den string Alter und Gehalt stehen lassen ?
und dann dazu double z.B 2566,5 und beim alter einfach int = 23 ?



Code:
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 Namen_Alter
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            ;
        }

        private void cmdAnzeigen_Click(object sender, EventArgs e)
        {
            string Name;
            string Nachname;
            string Strasse;
            int alt;
            double db;
            

            alt = 23;
            db = 2599.99;


            Name = "Max\n";
            Nachname = "Mustermann \n";
            Strasse = "Musterstr.1\n";
            

            lblName.Text = Name + Nachname + Strasse + "Alter: " + alt.ToString() +"\n" + "Gehalt: " + db.ToString();

            
        }
    }
}


So klappt das ganze.
Eine frage wieso meckert das Programm wenn ich 2599,99 statt 2599.99 mache ? ist das Komma für was anderes Vorgesehen
 
Zuletzt bearbeitet:
Das ist halt die Syntax von C#, da es aus dem amerikanischen kommt, dort ist , ein .
Irgendwer hat es so definiert. Punkt.

Zum Speichern von Geld muss man in der Regel einen Decimal nehmen. Damit rechnet es sich wesentlich langsamer, aber im Dezimal System genau, beim Float oder Double wirst Du immer Abweichungen haben. Bei Gelddingen ist das in der Regel unerwünscht, während es bei anderen Themen, wie Meßwerte oder Koordinaten in der Regel OK ist. Hängt aber immer vom Anwendungsfall ab.
 
Zurück
Oben