From 08d0baf7f51766a459f8d239ed4f74d4e8f9b076 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 17 Dec 2020 20:31:41 +0100 Subject: [PATCH] +Alles zusammen --- src/com/company/lösungen/Ebook.java | 227 -------------- src/com/company/lösungen/onlineShop.java | 202 ------------- src/com/company/lösungen/websiteGen.java | 325 --------------------- src/com/company/mathe/pfFormel.java | 34 +++ src/com/company/mathe/pqFormelRechner.java | 21 ++ 5 files changed, 55 insertions(+), 754 deletions(-) delete mode 100644 src/com/company/lösungen/Ebook.java delete mode 100644 src/com/company/lösungen/onlineShop.java delete mode 100644 src/com/company/lösungen/websiteGen.java create mode 100644 src/com/company/mathe/pfFormel.java create mode 100644 src/com/company/mathe/pqFormelRechner.java diff --git a/src/com/company/lösungen/Ebook.java b/src/com/company/lösungen/Ebook.java deleted file mode 100644 index 2fbf2cc..0000000 --- a/src/com/company/lösungen/Ebook.java +++ /dev/null @@ -1,227 +0,0 @@ -package com.company.lösungen; - -public class Ebook { - // Öffentliche Klasse zur Repräsentation eines E-Books - public class Ebook { - // Deklaration privater Variablen - private MediaAsset[] assets; - private String author; - private int year; - - // Öffentlicher Konstruktor, der zur Angabe von - // Autor und Jahreszahl verpflichtet - public Ebook(String author, int year) { - this.assets = new MediaAsset[100]; - this.author = author; - this.year = year; - } - - // Getter-Methode zur Rückgabe der Seitenanzahl - public int numPages() { - float sum = 0.0f; - - // Gehe Assets-Array durch - for (int i = 0; i < assets.length; i = i + 1) { - // Ist Eintrag in Array vorhanden, dann Summe errechnen - if (assets[i] != null) { - sum = sum + assets[i].numPages(); - } - } - - return Math.round(sum); - } - - // Methode, über die ein MediaAsset hinzugefügt werden kann - // Das Asset muss an die Methode übergeben werden. - public void addAsset(MediaAsset asset) { - // Gehe Assets-Array durch - for (int i = 0; i < assets.length; i = i + 1) { - // Ist kein Eintrag in Array vorhanden, dann einmal hinzufügen - if (assets[i] == null) { - assets[i] = asset; - - // Springe aus Schleife - break; - } - } - } - - // Methode, die eine String-Repräsentation dieses - // E-Books zurückliefert. - public String toString() { - String output = "Ebook: " + author + " (" + year + ")\nSeiten: " + - numPages() + "\n-------\n"; - - // Gehe Array-Inhalte durch - for (int i = 0; i < assets.length; i = i + 1) { - // Füge toString-Ausgabe hinzu - if (assets[i] != null) { - output = output + assets[i].toString(); - } - } - - return output; - } - } - - // Klasse zur Beschreibung eines MediaAsset - public class MediaAsset { - // Deklaration privater Variablen - private String file; - private int size; - private String language; - - // Konstruktor, der zur Angabe diverser Informationen verpflichtet - public MediaAsset(String file, int size, String language) { - this.file = file; - this.size = size; - this.language = language; - } - - // Methode zur Rückgabe der Seitenanzahl ist hierbei nicht möglich - public float numPages() { - // Ein undefiniertes Asset trägt nicht zur Seitenzahl bei - return 0.0f; - } - - // Methode zur Repräsentation des Assets - public String toString() { - return file + " (" + numPages() + " Seiten)\n"; - } - } - - // Öffentliche Klasse zur Repräsentation eines TextAssets, die -// von der Klasse MediaAsset ableitet. - public class TextAsset extends MediaAsset { - // Deklaration privater Variablen - private int numChars; - - // Konstruktor, der zur Angabe von Werten für Dateinamen, -größe, - // Sprache sowie Anzahl an Zeichen verpflichtet - public TextAsset(String file, int size, String language, int numChars) { - // Aufruf der Basisklasse und Übergabe der Werte - super(file, size, language); - - // Spezifische Werte werden lokal gespeichert - this.numChars = numChars; - } - - // Methode zur Abfrage der Anzahl an Seiten - public float numPages() { - return numChars / 2000.0f; - } - } - - // Öffentliche Klasse zur Repräsentation eines PictureAssets, die -// von der Klasse MediaAsset ableitet. - public class PictureAsset extends MediaAsset { - // Deklaration privater Variablen - private int w; - private int h; - - // Öffentlicher Konstruktor, der zur Angabe der folgenden Werte - // verpflichtet - public PictureAsset( - String file, - int size, - String language, - int w, - int h - ) { - // Aufruf und Übergabe der von der Basisklasse verwalteten Werte - super(file, size, language); - - // Übrige Werte werden lokal festgehalten - this.w = w; - this.h = h; - } - - // Methode zur Berechnung und Rückgabe der Anzahl von Seiten - public float numPages() { - float height = h * (960 / (float)w); - if (height > 600) { - return 1.0f; - } - else { - return 0.5f; - } - } - } - - - // Öffentliche Klasse zur Repräsentation eines PictureAssets, die -// von der Klasse MediaAsset ableitet. - public class AudioAsset extends MediaAsset { - // Deklaration privater Variablen - private int duration; - - // Öffentlicher Konstruktor, der zur Angabe der folgenden Werte - // verpflichtet - public AudioAsset(String file, int size, String language, int duration) { - // Aufruf und Übergabe der von der Basisklasse verwalteten Werte - super(file, size, language); - - // Übrige Werte werden lokal festgehalten - this.duration = duration; - } - - // Methode zur Berechnung und Rückgabe der Anzahl von Seiten - public float numPages() { - return 0.0f; - } - } - - - // Öffentliche Klasse zur Repräsentation eines VideoAssets, die -// von der Klasse MediaAsset ableitet. - public class VideoAsset extends MediaAsset { - // Deklaration privater Variablen - private int duration; - private int w; - private int h; - - // Konstruktor, der zur Angabe der folgenden Werte verpflichtet - public VideoAsset( - String file, - int size, - String language, - int duration, - int w, - int h - ) { - // Aufruf und Übergabe der von der Basisklasse verwalteten Werte - super(file, size, language); - - // Übrige Werte werden lokal festgehalten - this.duration = duration; - this.w = w; - this.h = h; - } - - // Methode zur Berechnung und Rückgabe der Anzahl von Seiten - public float numPages() { - float height = h * (960 / (float)w); - if (height > 600) { - return 1.0f; - } - else { - return 0.5f; - } - } - } - - // Startpunkt des Hauptprogramms -// Hier werden die implementierten Klassen zu Demonstrations- und -// Testzwecken instanziiert und verwendet. - public void setup() { - Ebook testBook = new Ebook("Stephan Wiefling", 2017); - testBook.addAsset(new TextAsset("Aufgabe 1", 12, "Deutsch", 3444)); - testBook.addAsset(new AudioAsset("Audio 1", 12, "Deutsch", 95)); - testBook.addAsset( - new VideoAsset("Video 1", 12, "Deutsch", 95, 800, 800) - ); - testBook.addAsset(new PictureAsset("Bild 1", 12, "Deutsch", 2000, 600)); - testBook.addAsset(new TextAsset("Aufgabe 2", 12, "Deutsch", 7655)); - System.out.println(testBook); - } -} diff --git a/src/com/company/lösungen/onlineShop.java b/src/com/company/lösungen/onlineShop.java deleted file mode 100644 index ce76ad0..0000000 --- a/src/com/company/lösungen/onlineShop.java +++ /dev/null @@ -1,202 +0,0 @@ -package com.company.lösungen; - -public class onlineShop { - // Öffentliche Klasse zur Repräsentation eines Artikels - public class Article { - // Deklaration privater Variablen - private int articleNumber; - private float price; - - // Konstruktor, der die Artikelnummer und den Preis - // erforderlich macht. - public Article(int articleNumber, float price) { - this.articleNumber = articleNumber; - this.price = price; - } - - // Getter-Methode, die den Preis zurückliefert. - public float getPrice() { - return price; - } - } - - // Öffentliche Klasse, die ein Buch repräsentiert. -// Die Klasse erbt von der Klasse Artikel - public class Book extends Article { - // Deklaration eigener privater Variablen - private String author; - private String title; - private int year; - - // Der Mehrwertsteuersatz für Bücher (7 %) wird durch die - // statische Konstante VAT repräsentiert. - public static final float VAT = 0.07f; - - // Öffentlicher Konstruktor mit der Vorschrift - // zum Anlegen eines Buchobjekts. - public Book( - int articleNumber, - float price, - String author, - String title, - int year - ) { - // Aufruf des Konstruktors der Basisklasse Article - super(articleNumber, price); - - // Zusätzlich werden die charakterisierenden - // Eigenschaften eines Buchs gesetzt. - this.author = author; - this.title = title; - this.year = year; - } - - // Öffentliche Methode zur Berechnung des Bruttopreises - public float getPrice() { - // Rufe für Nettopreis die Methode in der Superklasse auf - // und addiere die für Bücher geltende Mehrwertsteuer - return round((super.getPrice() + super.getPrice() * Book.VAT) * 100) / 100.0; - } - - // Öffentliche Methode, die einen geeigneten String generiert - // und zurückliefert. - public String toString() { - return "Buch - " + author + ": " + title + " (" + year + ")"; - } - } - - // Klasse, die eine DVD repräsentiert und von der Klasse -// Article ableitet. - class DVD extends Article { - // Deklaration privater Variablen, die spezifisch für eine - // DVD sind - private String name; - private String duration; - private int countryCode; - - // Statische Konstante für Mehrwertsteuersatz für DVDs (19 %) - public static final float VAT = 0.19f; - - // Öffentlicher Konstruktor der Klasse DVD. Zum Generieren eines - // Objekts der Klasse DVD werden die angegebenen Werte verlangt. - public DVD( - int articleNumber, - float price, - String name, - String duration, - int countryCode - ) { - // Aufruf des Basisklassenkonstruktors - super(articleNumber, price); - - // Zusätzliche Daten werden in den internen Variablen abgelegt. - this.name = name; - this.duration = duration; - this.countryCode = countryCode; - } - - // Öffentliche Methode zur Berechnung des Bruttopreises - public float getPrice() { - // Rufe für Nettopreis die Methode in der Superklasse auf - // und addiere die für Bücher geltende Mehrwertsteuer - return round((super.getPrice() + super.getPrice() * DVD.VAT) * 100) / 100.0; - } - - // Öffentliche Methode, die einen DVD-repräsentativen String - // zurückliefert. - public String toString() { - return "DVD - " + name; - } - } - - // Klasse, die einen Warenkorb realisiert - public class ShoppingCart { - // Deklaration privater Variablen - private Article[] cart; - - // Öffentlicher Konstruktor, der den internen - // Warenkorb initialisiert - public ShoppingCart() { - // Noch leerer Warenkorb - this.cart = new Article[0]; - } - - // Öffentliche Methode zum Hinzufügen eines Artikels - // zum Warenkorb. Der Artikel wird in Form eines - // Article-Objekts realisiert. Da sowohl Bücher als - // auch DVDs von der Klasse Article erben, sind beide - // Typen hier erlaubt und werden dafür auf die Basis- - // implementierung zurückgecastet. - public void addToCart(Article article) { - // Vergrößere Array um ein Element - Article[] cartNew = new Article[cart.length + 1]; - - // Kopiere alle Artikel rüber - for (int i = 0; i < cart.length; i = i + 1) { - cartNew[i] = cart[i]; - } - - // Setze neuen Artikel ans Ende der Liste - cartNew[cartNew.length - 1] = article; - - // Übernehme neue Liste - cart = cartNew; - } - - // Öffentliche Methode, die eine Rechnung auf der - // Konsole druckt - public void showBill() { - // Gesamtpreis - float sum = 0.0f; - - // Jeden Artikel durchgehen - for (int i = 0; i < cart.length; i = i + 1) { - Article article = cart[i]; - - // Gebe Namen und Preis aus - System.out.println(article + "\t " + article.getPrice() + " Euro"); - - // Addiere zu Gesamtpreis - sum = sum + article.getPrice(); - } - System.out.println("------------------------------------"); - - // Gebe Gesamtpreis aus - System.out.println("Gesamtpreis: " + str(sum) + " Euro"); - } - } - - // Startpunkt des Hauptprogramms -// Hier werden die implementierten Klassen zu Demonstrations- und -// Testzwecken instanziiert und verwendet. - public void setup() { - Book book = new Book( - 122767676, - 32.71f, - "Luigi Lo Iacono", - "WebSockets", - 2015 - ); - - DVD dvd1 = new DVD( - 122767676, - 14.95f, - "Spiel mir das Lied vom Tod", - "99:12", - 1 - ); - DVD dvd2 = new DVD( - 122767676, - 8.40f, - "Casablanca, Classic Collection", - "99:12", - 1 - ); - - ShoppingCart wk = new ShoppingCart(); - wk.addToCart(book); - wk.addToCart(dvd1); - wk.addToCart(dvd2); - wk.showBill(); - } -} diff --git a/src/com/company/lösungen/websiteGen.java b/src/com/company/lösungen/websiteGen.java deleted file mode 100644 index ae7b11d..0000000 --- a/src/com/company/lösungen/websiteGen.java +++ /dev/null @@ -1,325 +0,0 @@ -package com.company.lösungen; - -public class websiteGen { - // Konstanten, mit denen wir die Wetterlage beschreiben - static final int SONNE = 0, - BEWOELKT = 1, - REGEN = 2; - - // Abstrakte Klasse zur Repräsentation einer Stadt. -// Von dieser Klasse kann keine Instanz (= Objekt) erzeugt werden. - public abstract class Stadt { - // Deklaration privater Variablen - private String name; - private int wetter; - - // Konstruktor, der zur Angabe eines Städtenamens und des - // Wetters auffordert - public Stadt(String name, int wetter) { - this.name = name; - this.wetter = wetter; - } - - // Getter-Methode zur Rückgabe des Städtenamens - public String getName() { - return this.name; - } - - // Getter-Methode zur Rückgabe des Wetters als String - public String getWetter() { - if (this.wetter == REGEN) { - return "regnerisch"; - } - else if (this.wetter == BEWOELKT) { - return "bewölkt"; - } - else if (this.wetter == SONNE) { - return "sonnig"; - } - - // Unbekannter Wert - return "Unbekannt"; - } - - // Getter-Methode zur Rückgabe des Webseiten-Inhalts - // für den Webseiten-Generator. - public String getContent() { - return "

In " + this.getName() + " ist es " + this.getWetter() + - ".

"; - } - - // Getter-Methode zur Rückgabe der URL zur Wetterseite - public String getURL() { - // Wandle Namen in Kleinbuchstaben um - String name = this - .getName() - .toLowerCase(); - - // Wandle Leerzeichen im Namen in Bindestriche um - name = name.replace(" ", "-"); - - // Wandle Umlaute um - name = name.replace("ä", "ae"); - name = name.replace("ü", "ue"); - name = name.replace("ö", "oe"); - - // Gebe umgewandelte URL zurück - return name + ".html"; - } - } - - // Öffentliche Klasse für die Großstadt leitet -// von der Klasse Stadt ab. - public class Grossstadt extends Stadt { - private String[] stadtteile; - - // Konstruktor erwartet ebenfalls einen Städtenamen und das - // Wetter, aber zusätzlich noch Stadtteile - public Grossstadt(String name, int wetter, String[] stadtteile) { - // Städtename und Wetter werden an die Basisklasse - // übergeben - super(name, wetter); - - // Stadtteile werden noch gesetzt - this.stadtteile = stadtteile; - } - - // Getter-Methode zur Rückgabe des Webseiten-Inhalts - // für den Webseiten-Generator - public String getContent() { - // Hier speichern wir unsere Webseite als HTML-Code. - // Wir übernehmen zunächst den Code von der Überklasse. - String output = super.getContent(); - - String stadtteile = ""; - // Gehe die Stadtteile durch - for (int i = 0; i < this.stadtteile.length; i = i + 1) { - if (i == (this.stadtteile.length - 1)) { - // Wir sind beim letzten Eintrag: - // Füge "und" vor dem Stadtteilnamen hinzu - stadtteile = stadtteile + " und "; - } - - // Füge Namen des Stadtteils hinzu - stadtteile = stadtteile + this.stadtteile[i]; - - // Wenn wir noch nicht am Ende sind - if (i < (this.stadtteile.length - 2)) { - // Füge Komma und Leerzeichen hinzu - stadtteile = stadtteile + ", "; - } - } - - // Füge den Hinweis zu den Stadtteilen hinzu - output = output + "

Dies trifft auch für die Stadtteile " + - stadtteile + " zu.

"; - - // Gebe generierten HTML-Code zurück - return output; - } - - // Getter-Methode zur Rückgabe der URL zur Wetterseite - public String getURL() { - // Generiere URL und gebe sie zurück. - // Rufe dabei die URL-Generierungsmethode aus der - // Oberklasse auf. - return "wetter_grossstadt_" + super.getURL(); - } - } - - // Öffentliche Klasse für die Großstadt leitet -// von der Klasse Stadt ab. - public class Kleinstadt extends Stadt { - // Konstruktor erwartet ebenfalls einen Städtenamen und das - // Wetter - public Kleinstadt(String name, int wetter) { - // Städtename und Wetter werden an die Basisklasse - // übergeben - super(name, wetter); - } - - // Getter-Methode zur Rückgabe des Webseiten-Inhalts - // für den Webseiten-Generator - public String getContent() { - return super.getContent(); - } - - // Getter-Methode zur Rückgabe der URL zur Wetterseite - public String getURL() { - // Generiere URL und gebe sie zurück. - // Rufe dabei die URL-Generierungsmethode aus der - // Oberklasse auf. - return "wetter_kleinstadt_" + super.getURL(); - } - } - - // Öffentliche Klasse für den Webseitengenerator - public class WebseitenGenerator { - // Deklaration privater Variablen - private Stadt[] staedte; - - // Anzahl der Einträge im Array - private int numEntries = 0; - - public WebseitenGenerator() { - this.staedte = new Stadt[0]; - } - - // Methode zum Hinzufügen einer Stadt - public void addStadt(Stadt stadt) { - // Erzeuge temporären Array mit einem Eintrag mehr - Stadt[] staedteTemp = new Stadt[numEntries + 1]; - - // Kopiere die alten Werte in den neuen Array - for (int i = 0; i < numEntries; i = i + 1) { - staedteTemp[i] = this.staedte[i]; - } - - // Füge den neuen Eintrag an der letzten Position hinzu - staedteTemp[numEntries] = stadt; - - // Setze die neue Liste - staedte = staedteTemp; - - // Erhöhe die Anzahl der Einträge um eins - numEntries = numEntries + 1; - } - - // Methode zum Erstellen und Ausgeben der Navigationsleiste - // unserer Wetterwebseite - public String getNavigation() { - // Hier speichern wir unsere Navigationsleiste als HTML-Code. - // Wir beginnen mit dem Paragrafen-HTML-Tag - String output = "

Die Wetter-Webseite

"; - - // Gehe alle Städte durch - for (int i = 0; i < this.staedte.length; i = i + 1) { - // Hole die URL zur Datei - String url = this - .staedte[i] - .getURL(); - - // Hole den Städtenamen - String name = this - .staedte[i] - .getName(); - - // Füge HTML-Link zur Ausgabe hinzu - output = output + "" + name + ""; - - // Füge Trenner hinzu, wenn wir noch nicht am Ende der - // Liste sind - if (i < this.staedte.length - 1) { - output = output + " | "; - } - } - - // Schließe den Paragrafen-Tag - output = output + "

"; - - // Gebe generierte Navigationsleiste zurück - return output; - } - - // Methode zum Erstellen und Ausgeben der HTML-Seite - // für eine bestimmte Stadt - public String generatePage(int index) { - // Hole die Stadt aus dem Array - Stadt stadt = this.staedte[index]; - - // Hier speichern wir unsere Webseite als HTML-Code - // Setze HTML-Kopf - String output = ""; - - // Füge Navigationsleiste hinzu - output = output + this.getNavigation(); - - // Füge Überschrift hinzu - output = output + "

Das Wetter für " + stadt.getName() + "

"; - - output = output + stadt.getContent(); - - // Füge HTML-Fußzeile hinzu - output = output + ""; - - // Gebe HTML-Code zurück - return output; - } - - // Methode zum Erstellen und Ausgeben der Wetterwebseite - // mit allen Webseiten - public void generateWebsites() { - // Generiere Index-Dokument - // Öffne Datei für die Hauptseite - PrintWriter output = createWriter("index.html"); - - // Generiere HTML-Code für Datei, in der Hauptseite nehmen - // wir nur die Navigationsleiste - String htmlCode = this.getNavigation(); - - // Speichere HTML-Code in Datei - output.print(htmlCode); - - // Schließe Datei - output.close(); - - // Gehe alle Städte durch - for (int i = 0; i < this.staedte.length; i = i + 1) { - // Öffne Datei mit URL-Dateinamen - output = createWriter(this.staedte[i].getURL()); - - // Generiere HTML-Code für Datei - htmlCode = this.generatePage(i); - - // Speichere HTML-Code in Datei - output.print(htmlCode); - - // Schließe Datei - output.close(); - } - - System.out.println("Webseiten generiert"); - } - } - - // Startpunkt des Hauptprogramms -// Hier werden die implementierten Klassen zu Demonstrations- und -// Testzwecken instanziiert und verwendet. - public void setup() { - // Definiere Köln - String[] stadtteileKoeln = { - "Ehrenfeld", - "Raderthal", - "Nippes", - "Poll", - "Esch", - "Pesch", - "Kalk" - }; - Grossstadt koeln = new Grossstadt("Köln", SONNE, stadtteileKoeln); - - // Definiere Daaden - Kleinstadt daaden = new Kleinstadt("Daaden", BEWOELKT); - - // Definiere Bonn - String[] stadtteileBonn = { - "Poppelsdorf", - "Südstadt", - "Beuel", - "Duisdorf", - "Graurheindorf" - }; - Grossstadt bonn = new Grossstadt("Bonn", REGEN, stadtteileBonn); - - // Initialisiere den Webseitengenerator - WebseitenGenerator generator = new WebseitenGenerator(); - - // Füge die Städte hinzu - generator.addStadt(koeln); - generator.addStadt(daaden); - generator.addStadt(bonn); - - // Generiere die Webseiten - generator.generateWebsites(); - } -} diff --git a/src/com/company/mathe/pfFormel.java b/src/com/company/mathe/pfFormel.java new file mode 100644 index 0000000..3480f4e --- /dev/null +++ b/src/com/company/mathe/pfFormel.java @@ -0,0 +1,34 @@ +package com.company.mathe; + +import java.util.Scanner; + +public class pfFormel { + + public static void main(String[] args) { + pqFormelRechner rechner = new pqFormelRechner(); + Scanner scanner = new Scanner(System.in); + boolean bisStop = false; + + + + while (bisStop == false) { + try { + System.out.println("Bitte geben sie die Werte für P und Q ein: "); + System.out.println("P: "); + String Pwert = scanner.nextLine().replace("-", ""); + if (Pwert.equals("x")) { + bisStop = true; + return; + } + System.out.println("Q: "); + String Qwert = scanner.nextLine().replace("-", ""); + System.out.println(rechner.berechnePQFormel(Double.parseDouble(Pwert), Double.parseDouble(Qwert))); + } + catch(Exception e) { + System.out.println("Math Error"); + System.out.println("Versuchen sie erneut"); + } + + } + } +} diff --git a/src/com/company/mathe/pqFormelRechner.java b/src/com/company/mathe/pqFormelRechner.java new file mode 100644 index 0000000..309263e --- /dev/null +++ b/src/com/company/mathe/pqFormelRechner.java @@ -0,0 +1,21 @@ +package com.company.mathe; + +public class pqFormelRechner { + public static String berechnePQFormel(double P, double Q){ + double eingabe = (P/2) * (P/2) - Q; + if (eingabe >= 0) { + double x1,x2; + x1 = -(P/2) + Math.sqrt(eingabe); + x2 = -(P/2) - Math.sqrt(eingabe); + if (x1==x2){ + return "Das Ergebnis ist L={"+x2+"}"; + } + else { + return "Die Ergebnisse sind L={"+x1+";"+x2+"}"; + } + } + else { + return "Keine Lösung, das Ergebniss ist "+eingabe; + } + } +}