Feedback

C# - Flächenberechnungen am Kreis,Quadrat,Parallelogramm,Trapez

Veröffentlicht von am 10/1/2009
(3 Bewertungen)
Programm Snippet zur Berechnung von Flächen (Kreis,Quadrat,Parallelogramm,Trapez)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("****************************** Rechenprogramm V. 1.0 ************************\n");
            Console.WriteLine("********************** Software zur Berechnung von Flächen *****************\n");
            Console.WriteLine("Kreis  ******  Rechteck  ******  Trapez  *******  Parallelogramm   *********\n");
            Console.WriteLine("----------------------------------------------------------------------------\n");
            Console.WriteLine("*** Bitte geben Sie den jeweiligen Begriff ein um Berechnungen durchzuführen\n");
            do
            {
                //Kreis
                double radkreis;
                double pi = 3.1415;
                double kflaeche;
                //Rechteck - Quadrat
                double alang;
                double blang;
                double flaecherechteck;
                //Parallelogramm
                double apgramm;
                double hapgramm;
                double flaechepgramm;
                //Trapez
                double trapeza;
                double trapezh;
                double trapezc;
                double flaechetrapez;
                //Eingabe Variable
                string i;
                i = Convert.ToString(Console.ReadLine());

                switch (i)
                {
                    case "kreis":
                    case "Kreis":
                        // Code handhabt sowohl 1 als auch 2
                        Console.WriteLine("Bitte geben Sie den Radius des Kreises ein:\n");
                        radkreis = Convert.ToDouble(Console.ReadLine());
                        if (radkreis <= 0) { Console.WriteLine("Fehler! Nur positive Werte gültig.\n"); }

                        else
                        {
                            kflaeche = (radkreis * radkreis) * pi;
                            Console.WriteLine("Die Flaeche betraegt: " + kflaeche + " cm/2\n");
                        }
                            break;
                        

                    case "Quadrat":
                    case "quadrat":
                    case "Rechteck":
                    case "rechteck":
                        Console.WriteLine("Bitte geben Sie die Laenge der Seite ''a'' ein:\n");
                        alang = Convert.ToDouble(Console.ReadLine());
                        if (alang <= 0) { Console.WriteLine("Fehler"); }
                        else
                        {
                            Console.WriteLine("Laenge der Seite ''b'':");
                            blang = Convert.ToDouble(Console.ReadLine());
                            flaecherechteck = alang * blang;
                            if (flaecherechteck <= 0) { Console.WriteLine("Fehler! Nur positive Werte gültig.\n\n"); }
                            else
                            {
                                Console.WriteLine("Das Rechteck hat eine Flaeche von: " + flaecherechteck + " cm/2\n");
                            }
                        }                              
                        break;

                    case "Parallelogramm":
                    case "parallelogramm":
                    case "pgramm":
                        Console.WriteLine("Bitte geben Sie die Seitenlaenge ''a'' ein:");
                        apgramm = Convert.ToDouble(Console.ReadLine());
                        Console.WriteLine("Jetzt bitte die Hoehe ''ha'':");
                        hapgramm = Convert.ToDouble(Console.ReadLine());
                        flaechepgramm = apgramm * hapgramm;
                        if (flaechepgramm <= 0) { Console.WriteLine("Fehler! Nur positive Werte gültig.\n\n"); }
                        else
                        {
                            Console.WriteLine("Die Flaeche des betraegt: " + flaechepgramm + " cm/2\n");
                        }
                        break;

                    case "Trapez":
                    case "trapez":
                        Console.WriteLine("Bitte geben Sie die Laenge ''a'' ein:");
                        trapeza = Convert.ToDouble(Console.ReadLine());
                        Console.WriteLine("Laenge ''h''");
                        trapezh = Convert.ToDouble(Console.ReadLine());
                        Console.WriteLine("Laenge ''c''");
                        trapezc = Convert.ToDouble(Console.ReadLine());
                        flaechetrapez = ((trapeza + trapezc) / 2) * trapezh;
                        if (flaechetrapez <= 0) { Console.WriteLine("Fehler! Nur positive Werte gültig.\n"); }
                        else
                        {
                            Console.WriteLine("Der Flaecheninhalt des Trapez betraegt:" + flaechetrapez + " cm/2\n");
                        }
                        break;


                    case "help":
                    case "Help":
                    case "HELP":
                    case "?":
                        Console.WriteLine("Bitte verwenden Sie folgende Befehle um Berechnungen durchzufuehren:\n");
                        Console.WriteLine(" - Kreis");
                        Console.WriteLine(" - Rechteck");
                        Console.WriteLine(" - Parallelogramm");
                        Console.WriteLine(" - Trapez");
                        break;

                    case "exit":
                    case "Exit":
                    case "quit":
                    case "Quit":
                        Console.WriteLine("Bitte geben Sie ''Ja'' ein um zu beenden");
                        string ExitQ = Console.ReadLine();
                        if (ExitQ == "ja" || ExitQ == "Ja" || ExitQ == "j" || ExitQ == "y" || ExitQ == "yes")
                        {
                            return;
                        }
                        
                        break;
                    default:
                        Console.WriteLine("Ungueltiger Befehl! Bitte geben Sie ''?'' oder ''Help'' ein um Hilfe zu erhalten.");
                        break;
                }
            }
            while (true);


        }
    }
}

3 Kommentare zum Snippet

Rainer Hilmer schrieb am 10/2/2009:
Der Grund für Snippets ist die Wiederverwendbarkeit. Das heißt, man installiert es und kann es schnell in seinen Code einfügen wo es gebraucht wird. Das kann auch eine ganze Klasse sein, die spezielle Funktionen bietet. Wenn du deine Berechnungen als Methoden in eine Klasse gepackt und diese hier eingestellt hättest, wäre die Bewertung wahrscheinlich besser ausgefalllen. Eine Konsolenanwendung in dieser Form, mit komplett prozeduralem Code, kommt Jahrzehnte zu spät. Sagt dir die Abkürzung OOP etwas?
Rainer Hilmer schrieb am 10/2/2009:
Ich stelle gerade fest daß mein Kommentar vielleicht beleidigend rüber kommt. So war das nicht gemeint. Vielmehr wollte ich dich motivieren - naja, das ist wohl in die Hose gegangen. Sorry
Sperneder Patrick schrieb am 10/2/2009:
Hilfreich ist es auch sich bereits vorhandener Klassen oder in deinem Fall Konstanten zu bedienen. PI ist in der Klasse Math.PI als Konstante (double) vorhanden, aber ansonsten finde ich ist es nettes kleines Konsolenprogramm um sich mit .NET anzufreunden. Jedoch möchte ich mich Rainer anschliessen und dir nahe legen sich einmal mit dem Begriff OOP ( Objekt Orientierte Programmierung ) auseinandersetzen.
 

Logge dich ein, um hier zu kommentieren!