Schnäppchen: Jump'run'Run Beetle Ju 3 Gratis Download bei Amazon - Nur heute: Warrior Blu-ray 9,97, Straw Dogs Wer Gewalt sät Blu-ray 11,97, Dirty Harry Blu-ray Collection für 32,97 USK 18, Hostel 3 Blu-ray 12,97 USK 18 - Samsung SSD 830 256 GB 174.99 - Blu-rays für unter 10 EUR (u. a. Bank Job, Final Destination) [Anzeige]
+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 19
  1. #1
    BIOS-Overclocker Avatar von Lan_Party
    Mitglied seit
    13.07.2010
    Ort
    Lohne, NDS
    Beiträge
    4.270

    C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge

    Moinsen erstmal,
    also in der Schule haben wir ein Programm geschrieben um unsere Noten auszurechnen. Ich bin relativ weit gekommen nur jetzt habe ich das Problem das ich nicht mehr weis wie ich den Durchschnitt, beste Note etc. ausrechnen soll. Ich denke hier gibt es ein paar begabte C# Programmierer gibt die mir weiterhelfen können. Vllt. könntet ihr das Programm auch verbessern da wenn man die Noten eingibt etwa so:
    1
    2
    3
    1
    [leerzeichen]
    kommt eine Fehlermeldung. Man darf nach der 1 kein Enter mehr betätigen sonst Stürzt das Programm ab leider weis ich aber nicht wieso.
    Spoiler:

    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;
    using System.Text.RegularExpressions;

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

    private void button1_Click(object sender, EventArgs e)
    {
    // Deklaration der Variablen
    Double dSumme, dDurchschnitt;

    Double[] ar_dEingegebeneZahlen;

    // Aufteilen der textbox in einzelne Zeilen
    String[] ar_Zeile = Regex.Split(this.textBox1.Text, "\r\n");

    ar_dEingegebeneZahlen = new Double[ar_Zeile.Length];

    // Umwandeln der Textzeilen in Zahlen
    for (int iL1 = 0; iL1 < ar_Zeile.Length; iL1++)
    {
    ar_dEingegebeneZahlen[iL1] = Convert.ToDouble(ar_Zeile[iL1]);
    }
    for (int iL1 = 0; iL1 < ar_Zeile.Length; iL1++)
    {
    MessageBox.Show(Convert.ToString(ar_dEingegebeneZa hlen[iL1]));
    }

    //Summenschleife
    if (this.radioButton1.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];
    }
    MessageBox.Show("Summe: " + Convert.ToString(dSumme));
    }
    else if (this.radioButton2.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];
    }
    MessageBox.Show("Durchschnitt: " + Convert.ToString(dSumme));
    }
    else if (this.radioButton3.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];
    }
    MessageBox.Show("Beste Note: " + Convert.ToString(dSumme));
    }
    else if (this.radioButton4.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];
    }
    MessageBox.Show("Schlechteste Note: " + Convert.ToString(dSumme));
    }
    }

    private void radioButton1_CheckedChanged(object sender, EventArgs e)
    {

    }
    }
    }

    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge-prog.png  
    Du brauchst einen neuen Hintergrund? Besuche meinen Blog und erlebe Desktop neu! <--> Dein Desktop ist voller Ordner und voll langweilig? Erstelle dir einen ExTrEmE Desktop!

  2. #2
    Komplett-PC-Käufer Avatar von deckard-cain
    Mitglied seit
    26.02.2011
    Beiträge
    84

    AW: C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge

    Dein Programm stürzt genau hier ab:

    ar_dEingegebeneZahlen[iL1] = Convert.ToDouble(ar_Zeile[iL1]);

    Der eingegebene String wird am Enter ("\r\n") gesplittet. Wenn am Ende noch ein Enter folgt, ist das letzte Element des String-Arrays null oder mindestens Leerstring (String.Empty).
    Die Convert.ToDouble verträgt diese Werte aber nicht und wirft gnadenlos eine Exception.
    Daher sollte die obige Zeile in ein try-catch gekapselt werden und der catch-Block sollte die InvalidCastException abfangen:

    try
    {
    ar_dEingegebeneZahlen[iL1] = Convert.ToDouble(ar_Zeile[iL1]);
    }
    catch(InvalidCastException ex)
    {

    }

    Besser wäre es, beim Splitten des Strings die Split-Methode des Strings selbst zu benutzen, da hier über die
    StringSplitOptions.RemoveEmptyEntries die leeren Einträge gleich eliminiert werden.

    String[] ar_Zeile = this.textBox1.Text.Split("\r\n", StringSplitOptions.RemoveEmptyEntries);


    Ganz allgemein noch der Tip, den ganzen Code in den EventHandler des Buttons zu packen ist ganz schlechter Programmierstil und
    wenig wartungsfreundlich. Erstelle lieber für jede Berechnung eine definierte Methode mit Eingangs- und Ausgangsparametern, die dann in
    den EventHandlern aufgerufen werden. Idealerweise in einer extra Klasse als Businesslayer (Stichwort 3-Layer- oder 3-Tier-Architektur).

    Falls später die Oberfläche umgebaut wird, minimiert sich der Änderungsaufwand für den eigentlichen Funktionscode.
    Lian-Li V354, i7-2600K @ Antec H2O 620 @ 2x Noctua NF-12P, 8GB Corsair Vengeance DDR3-1600, Gainward GTX560-TI Phantom, Asus P8P67-M Pro, System: SSD Corsair Force 60GB, Daten: Seagate V35.5 1TB, beQuiet Straight-Power E8-580W

  3. #3
    Software-Overclocker Avatar von fadade
    Mitglied seit
    02.01.2009
    Beiträge
    1.696

    AW: C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge

    Also jetzt ohne den Code angesehen zu habe wäre es wohl einfacher, wenn du die Noten einfach mit ";" trennst oder "," oder so. Dann kannst du beim Klick auf den Button folgendes machen:

    Code:
         String[] meineNotenStr = textBox1.Text.Split(',') //oder eben ein anderes Trennzeichen.
         int[] meineNotenInt = new int[meineNotenStr.Length];
         for (int i=0; i<meineNotenStr.Length; i++)
             meineNotenInt = System.Convert.ToInt32(meineNotenStr [i]); //oder hier einen anderen Datentyp wählen
    Tjo und dann für die Verschiedenen CheckBoxen:
    • Durchschnitt einfach den normalen Durchschnitt berechnen
    • Beste Note einfach den kleinsten Wert im int-Array suchen
    • Schlechteste Note einfach den größten Wert im int-Array suchen
    • Gesamtnote einfach nur Durchschnitt ausgeben, oder wenn die Noten noch eine Gewichtung haben (z.B. mit # oder sonstwas von Noten getrennt oder wie auch so mit \r\n (--> Sicherer ist System.Environment.Newline ) noch die Gewichtung mit in die Durchschnittsrechnung mit einbeziehen, dann könnte die normale Durchschnittsberechnung als Gewichtung für alle noten einfach eine 1 haben)
    ich denke mal, das schaffst du dann auch so
    Ansonsten frag einfach nochmal nach^^

    Edit: Für die Summe und Schnitt müsstest du dann eine double (oder float) Variable nutzen, aber so die Noten (oder später die Punkte 0-15) können besser mit int gehandhabt werden
    Geändert von fadade (06.02.2012 um 18:09 Uhr)
    MfG
    F a D a D e


  4. #4
    BIOS-Overclocker
    Themenstarter
    Avatar von Lan_Party
    Mitglied seit
    13.07.2010
    Ort
    Lohne, NDS
    Beiträge
    4.270

    AW: C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge

    Ich habe das alles einfach mal so übernommen nun kommen aber diese Fehlermeldungen und das Programm stürzt trotzdem ab.

    Fehler 1 Die beste Übereinstimmung für die überladene string.Split(string[], System.StringSplitOptions)-Methode hat einige ungültige Argumente. H:\Zeugniss_Rechner\Zeugniss_Rechner\Form1.cs 28 33 Zeugniss_Rechner

    Fehler 2 1-Argument: Kann nicht von "string" in "string[]" konvertiert werden. H:\Zeugniss_Rechner\Zeugniss_Rechner\Form1.cs 28 58 Zeugniss_Rechner

    Das mit diesem Businesslayer hat uns unser Lehrer nie gezeigt. C# wird an unserer Schule jetzt erst Unterrichtet. Der Lehrer kennt sich dort noch nicht gut aus und staunt manchmal selbst was dort alles möglich ist. Das sollte ich mir mal genauer angucken da ich mir das mal kurz durchgelesen habe. Leider habe ich nicht viel im Inet gefunden und verstehen tue ich es auch nicht wirklich. Ich schaue mir es einfach mal genauer an.

    BTW: Danke erstmal für deine Hilfe!
    Du brauchst einen neuen Hintergrund? Besuche meinen Blog und erlebe Desktop neu! <--> Dein Desktop ist voller Ordner und voll langweilig? Erstelle dir einen ExTrEmE Desktop!

  5. #5
    Software-Overclocker Avatar von fadade
    Mitglied seit
    02.01.2009
    Beiträge
    1.696

    AW: C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge

    Achja die StringSplitOptions ... öhm, da sollte irgendwie Default reichen, auswendig kann ich die auch nicht, aber ich nehme immer das, was auch die leeren einträge gleich mit löscht.
    Kann sonst im Laufe des Abends mal etwas machen
    Aber nun kommt erstmal PIIIZZAAAAAA
    MfG
    F a D a D e


  6. #6
    BIOS-Overclocker
    Themenstarter
    Avatar von Lan_Party
    Mitglied seit
    13.07.2010
    Ort
    Lohne, NDS
    Beiträge
    4.270

    AW: C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge

    Neuer Code:
    Spoiler:

    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;
    using System.Text.RegularExpressions;

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

    private void button1_Click(object sender, EventArgs e)
    {
    // Deklaration der Variablen
    Double dSumme, dDurchschnitt;

    // Aufteilen der textbox in einzelne Zeilen
    String[] ar_Zeile = textBox1.Text.Split(',', System.StringSplitOptions.RemoveEmptyEntries);

    int[] ar_dEingegebeneZahlen = new int[ar_Zeile.Length];

    // Umwandeln der Textzeilen in Zahlen
    for (int iL1 = 0; iL1 < ar_Zeile.Length; iL1++)
    try
    {
    ar_dEingegebeneZahlen[iL1] = Convert.ToInt16(ar_Zeile[iL1]);
    }
    catch(InvalidCastException ex)
    {

    }
    for (int iL1 = 0; iL1 < ar_Zeile.Length; iL1++)
    {
    MessageBox.Show(Convert.ToString(ar_dEingegebeneZa hlen[iL1]));
    }

    //Summenschleife
    if (this.radioButton1.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];
    }
    MessageBox.Show("Summe: " + Convert.ToString(dSumme));
    }
    else if (this.radioButton2.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];
    }
    MessageBox.Show("Durchschnitt: " + Convert.ToString(dSumme));
    }
    else if (this.radioButton3.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];
    }
    MessageBox.Show("Beste Note: " + Convert.ToString(dSumme));
    }
    else if (this.radioButton4.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];
    }
    MessageBox.Show("Schlechteste Note: " + Convert.ToString(dSumme));
    }
    }

    private void radioButton1_CheckedChanged(object sender, EventArgs e)
    {

    }
    }
    }


    Immernoch am abstürzen. Try und Catch hilft auch nicht. Wie kommts!? Sonst hatte ich nie Probleme damit.

    BTW: Guten Appetit! Danke erstmal für die Hilfe!
    Du brauchst einen neuen Hintergrund? Besuche meinen Blog und erlebe Desktop neu! <--> Dein Desktop ist voller Ordner und voll langweilig? Erstelle dir einen ExTrEmE Desktop!

  7. #7
    Komplett-PC-Käufer Avatar von deckard-cain
    Mitglied seit
    26.02.2011
    Beiträge
    84

    AW: C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge

    Wegen der Fehlermeldungen, ändere den Aufruf von String.Split folgendermaßen:

    String[] ar_Zeile = textBox1.Text.Split(new string[] {","}, System.StringSplitOptions.RemoveEmptyEntries)

    Die Methode braucht ein Array mit den Trennzeichen.... (siehe auch: String.Split Method (String[], StringSplitOptions) (System))

    Wenn er immer noch abstürzt wäre die Fehlermeldung nicth schlecht, ansonsten einfach mal debuggen.
    Falls ihr das Visual Studio verwendet, einen Breakpoint auf der ersten Codezeile im Click-EventHandler des Buttons setzen (mit dem Cursor in die Zeile gehen und F9 drücken).
    Dann das Programm ausführen (F10), die Daten eingeben und den Button betätigen. Kurze Zeit später sollte er an dieser Zeile die Ausführung stoppen.
    Danach die Befehle nacheinander ausführen (F10) und schauen, wo er aussteigt. Im Normalfall zeigt er euch die Exception.
    Bei Schleifen einfach einen Breakpoint nach der Schleife setzen und mit F5 weitergehen.

    Bei Durchschauen des Codes ist mir die Stelle aufgefallen:

    for (int iL1 = 0; iL1 < ar_Zeile.Length; iL1++)
    try
    {
    ar_dEingegebeneZahlen[iL1] = Convert.ToInt16(ar_Zeile[iL1]);
    }
    catch(InvalidCastException ex)
    {

    }


    Die Schleife hat keine Klammern. Damit ersetzen:

    for (int iL1 = 0; iL1 < ar_Zeile.Length; iL1++)
    {
    try
    {
    ar_dEingegebeneZahlen[iL1] = Convert.ToInt16(ar_Zeile[iL1]);
    }
    catch(InvalidCastException ex)
    {

    }
    }

    Das gefährliche ist, wenn das Array ar_dEingegebeneZahlen nicht komplett gefüllt wird, greifen die nachfolgenden Befehle ins Leere und es kommt zu einer NullReference-Exception.
    Die Ausgaben in den Schleifen lassen sich aber so absichern:

    if(ar_dEingegebeneZa hlen[iL1] != null)
    {
    MessageBox.Show(Convert.ToString(ar_dEingegebeneZa hlen[iL1]));
    }

    Auch hier läuft der Convert.ToString Amok, wenn das Element null ist. Gleiches wäre auch, wenn Du direkt die ToString-Methode des Array-Elementes nutzt.
    Methoden können nur an existierenden Objekten aufgerufen werden.

    Für String-Ausgaben empfehle ich generell String.Format zu nehmen, die Methode ist hier wesentlich fehlertoleranter:

    Statt:
    MessageBox.Show("Beste Note: " + Convert.ToString(dSumme));

    diesen Aufruf:
    MessageBox.Show(String.Format("Beste Note: {0}",dSumme));

    Das sollte die Probleme jetzt aber beheben. Check einfach alle Zeilen nochmal auf Convert.X Aufrufe und debugge ein bisschen.

    Happy Coding.
    Lian-Li V354, i7-2600K @ Antec H2O 620 @ 2x Noctua NF-12P, 8GB Corsair Vengeance DDR3-1600, Gainward GTX560-TI Phantom, Asus P8P67-M Pro, System: SSD Corsair Force 60GB, Daten: Seagate V35.5 1TB, beQuiet Straight-Power E8-580W

  8. #8
    Software-Overclocker Avatar von fadade
    Mitglied seit
    02.01.2009
    Beiträge
    1.696

    AW: C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge

    So habs nun mal kurz in recht simpler Weise gemacht
    Projektdateien für MS Visual Studio und exe sind in der folgenden ZIP-Datei.

    Anhang 517646


    Edit: hab sogar einen kleinen "Fehler" drin: Wenn man Beste Note anwählt und Gewichtungen angegeben hat, dann werden diese nicht beachtet ... naja, das ist dann deine Hausaufgabe
    Geändert von fadade (07.02.2012 um 12:19 Uhr)
    MfG
    F a D a D e


  9. #9
    BIOS-Overclocker
    Themenstarter
    Avatar von Lan_Party
    Mitglied seit
    13.07.2010
    Ort
    Lohne, NDS
    Beiträge
    4.270

    Wir haben heute SW(Software) gehabt anstatt DB(Datenbanken) deshalb bin ich eig. fertig. Ich werde später den Code vom Lehrer mal hochladen dann könnt ihr mal sehen wie er es hat. Das einzige was gefehlt hat war ein Seperator.
    Danke euch für die Hilfe aber ich denke selbst den Code vom Lehrer könnt ihr verbessern.
    PS: Als Compiler nutzen wir VS C# 2010.

    EDIT: Hier kommt der Code! Ich denke Ihr könnt noch etwas dran verbessern.
    Spoiler:

    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;
    using System.Text.RegularExpressions;
    using System.IO;

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

    private void button1_Click(object sender, EventArgs e)
    {
    //Deklarationen
    Double dSumme, dDurchschnitt, dMerker, dNotenzaehler;

    Double[] ar_dEingegebeneZahlen;


    //Aufteilen der textbox in einzelne Zeilen
    //String[] ar_sZeile = Regex.Split(this.textBox1.Text, "\r\n", RegexOptions.);
    //String[] ar_sZeile = this.textBox1.Text.Split new String[]{","}("\r\n",StringSplitOptions.RemoveEmptyEntries );
    String[] ar_sSeparator = new String[3];
    ar_sSeparator[0] = "\r\n";
    ar_sSeparator[1] = ",";
    ar_sSeparator[2] = " ";
    String[] ar_sZeile = this.textBox1.Text.Split(ar_sSeparator,StringSplit Options.RemoveEmptyEntries);


    ar_dEingegebeneZahlen = new Double[ar_sZeile.Length];

    //Umwandeln der TExtzeilen in Zahlen

    for (int iL1 = 0; iL1 < ar_sZeile.Length; iL1++)
    {
    if (!(ar_sZeile[iL1] == ""))
    {
    ar_dEingegebeneZahlen[iL1] = Convert.ToDouble(ar_sZeile[iL1]);
    }
    }

    // Summenschleife
    if (this.radioButton1.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];

    }
    MessageBox.Show("Summe: " + Convert.ToString(dSumme));
    }
    else if (this.radioButton2.Checked == true)
    {
    dSumme = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    dSumme = dSumme + ar_dEingegebeneZahlen[iL1];
    }

    dDurchschnitt = dSumme / ar_dEingegebeneZahlen.Length;
    MessageBox.Show("Durchschnitt: " + Convert.ToString(dDurchschnitt));

    }
    else if (this.radioButton3.Checked == true)
    {
    dMerker = 7;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    if (ar_dEingegebeneZahlen[iL1] < dMerker)
    {
    dMerker = ar_dEingegebeneZahlen[iL1];
    }

    }
    dNotenzaehler = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    if (ar_dEingegebeneZahlen[iL1] == dMerker)
    {
    dNotenzaehler++;
    }

    }
    MessageBox.Show("Beste Zensur: " + Convert.ToString(dMerker) + ", kommt " + Convert.ToString(dNotenzaehler) + " mal vor.");

    }
    else if (this.radioButton4.Checked == true)
    {
    dMerker = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    if (ar_dEingegebeneZahlen[iL1] > dMerker)
    {
    dMerker = ar_dEingegebeneZahlen[iL1];
    }

    }

    dNotenzaehler = 0;
    for (int iL1 = 0; iL1 < ar_dEingegebeneZahlen.Length; iL1++)
    {
    if (ar_dEingegebeneZahlen[iL1] == dMerker)
    {
    dNotenzaehler++;
    }

    }
    MessageBox.Show("Schlechteste Zensur: " + Convert.ToString(dMerker) + ", kommt " + Convert.ToString(dNotenzaehler) + " mal vor.");



    }
    else
    {
    MessageBox.Show("Bitte Auswahl treffen!");
    }

    }
    }
    }


    @ fadade Dein Rechner hat einen kleinen Fehler. Die beste Note ist eine 6 und die schlechteste eine 1, laut deinem Rechner.
    Danke trotzdem und ausführlich ist er auch noch!
    Geändert von Lan_Party (07.02.2012 um 17:30 Uhr)
    Du brauchst einen neuen Hintergrund? Besuche meinen Blog und erlebe Desktop neu! <--> Dein Desktop ist voller Ordner und voll langweilig? Erstelle dir einen ExTrEmE Desktop!

  10. #10
    BIOS-Overclocker
    Themenstarter
    Avatar von Lan_Party
    Mitglied seit
    13.07.2010
    Ort
    Lohne, NDS
    Beiträge
    4.270

    AW: C# - Berechungsprgamm --> Suche Hilfe + Verbesserungsvorschläge

    Push! Da post editiert ich hoffe das geht i.O. Sonst könnte ein Mod diesen Post zum letzten editieren bzw. löschen und pushen.
    Du brauchst einen neuen Hintergrund? Besuche meinen Blog und erlebe Desktop neu! <--> Dein Desktop ist voller Ordner und voll langweilig? Erstelle dir einen ExTrEmE Desktop!

+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein