Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    378
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    7

Whiz-zarD hat zuletzt am 1. Mai gewonnen

Whiz-zarD hat die beliebtesten Inhalte erstellt!

1 Benutzer folgt diesem Benutzer

Über Whiz-zarD

  • Rang
    Reg.-Benutzer

Letzte Besucher des Profils

1.920 Profilaufrufe
  1. XML-Dateien sollten nicht mit regulären Ausdrücken geparsed werden: https://stackoverflow.com/questions/6751105/why-its-not-possible-to-use-regex-to-parse-html-xml-a-formal-explanation-in-la Du merkst ja selber, dass es gar nicht so trivial ist, da du z.B. auch Zeilenumbrüche berücksichtigen müsstest. Das beste ist, du lässt die XML-Datei mittels einer geeigneten Bibliothek (mit welcher Sprache entwickelst du?) und löschst dann die Einträge aus der DOM-Struktur und generierst eine neue XML-Datei.
  2. Ich muss gestehen, dass ich mit Hibernate direkt noch nicht gearbeitet habe, sondern mit dem .Net-Ableger NHibernate. Dort gibt man in der SessionFactory den Connectionstring mit. Der kann ja dynamisch erzeugt worden sein. Du kannst bei Hibernate auch die Konfiguration überschreiben: http://stackoverflow.com/questions/18033288/programmatically-configure-hibernate-with-dynamic-username-and-password Wie das jetzt unter Java implementiert wird, weiß ich nicht. Das letzte Mal, als ich mit Java entwickelt habe, ist schon einige Jahre her. Ich entwickle hauptsächlich mit C#. Wir haben es so gelöst, wenn das FormClosed-Event vom Hauptfenster ausgeführt wird, schließen wir die Verbindung. Also ja, ein shutdown Hook.
  3. Wo ist denn das Problem, den Nutzer die Möglichkeit zu schaffen, Benutzername, Passwort, Server, Port, etc. über die Anwendung anzugeben anstatt die Werte statisch im Code zu schreiben? Du erzeugst einfach eine Singleton-Klasse, die die Konfiguration speichert. Mit Hilfe des Singletons kannst du eine Datenbank-Verbindung aufbauen, die du dann in dein Controller reichst. In diesem Zusammenhang schaue dir mal Hibernate ORM an. Das ist ein Object/Relational-Mapper (O/R-Mapper). O/R-Mapper haben die Aufgabe, Relationale Daten, wie sie in einer relationalen Datenbank stehen, in Objekte, gemäß der Objektorientierung, zu wandeln. O/R-Mapper kapseln schon deine Geschäftslogik von der Datenzugriffsschicht ab, sodass du in der Geschäftslogik gar nicht weißt, woher die Daten stammen.
  4. Eine CSS-Datei benötigt keine verbundene Spalten. Die CSS ist nur für die grafische Darstellung der Spalten da. Der Fehler liegt also im HTML-Dokument, da eben nicht genügend Spalten verbunden werden, damit die Spalte bis zum Ende geht und nicht nach der achten aufhört.
  5. Das Problem ist doch, dass 8 Spalten verbunden werden und nicht 10 und anstatt den Fehler zu korrigieren, soll er ausgeblendet werden? Spricht nicht gerade für den Betrieb ...
  6. Ich versteh nicht, wo genau dein Problem ist. Kannst du es vielleicht mal anhand eines Beispiels erläutern?
  7. Visual Studio ist eher mehr für andere Sprachen geeignet und nicht für C. Die Programmierung mit C funktioniert ja auch nur, weil Visual C++ auf C aufbaut. Ich würde da auch eher Code::Blocks nehmen.
  8. Es sind ja 10 Ausgaben auf dem Bildschirm. Ich kann es mir nur so vorstellen, dass eine Schleife gebaut werden soll, die 10 mal durchlaufen wird und jedes Mal eine Ausgabe machen soll. Dann würde man mit einer switch-Anweisung 4 mal x und 4 mal y einen Wert zuweisen aber es stimmt schon, dass es merkwürdig ist, dass im printf() von a und b die Rede ist aber in der Aufgabe selbst von x und y. Irgendwas passt da nicht.
  9. Wie gesagt, das ist ein bisschen abhängig vom Kontext, wann man eine Verbindung aufbaut und wieder schließt. Für die UI haben wir auch eine Verbindung, die wir ein mal beim Starten der Anwendung öffnen und dann beim Beenden schließen, damit man eben nicht Tausend Mal eine Verbindung aufbaut.
  10. Die Models sollten dumme POJOs sein. Es gehört keine Datenbeschaffungslogik in diese Klassen, denn ansonsten hast du eine Abhängigkeit zwischen den Models und der Datenbank. Die Datenbeschaffungslogik liegt dann in den Repositories, die du mit Interfaces kapselst. Dann ist es tatsächlich egal, woher die Daten kommen. Sie können dann aus einer Datenbank, aus einer XML-Datei oder sonst wo kommen. Frage 2 ist ein bisschen komplizierter. Es sollte nicht einfach eine Verbindung aufgebaut werden, die die ganze Zeit aktiv ist, solange die Anwendung läuft, sondern sie sollte so lange aktiv sein, wie sie auch benötigt wird. Es kann schon passieren, dass eine Anwendung gleich mehrere Verbindungen aufbaut. Dies ist z.B. in der Parallelisierung erforderlich, damit mehrere Zugriffe parallel verarbeitet werden können. Wenn z.B. eine Berechnung vier Threads aufbaut, dann werden auch vier Verbindungen aufgebaut und wenn die Threads mit ihrer Arbeit durch sind, dann werden die Verbindungen wieder geschlossen.
  11. Frage 1 und 2 verstehe ich nicht. Was willst du damit sagen? Frage 3 und 4 haben quasi die selbe Antwort: Schaue dir das Repository Pattern an.
  12. Eigentlich ist der genaue Datentyp hier nicht egal, da wir es mit Geldbeträgen zu tun haben und die eine besondere Vorsicht benötigen. Theoretisch wäre ein Integer sogar besser. Genau genommen ist die Aufgabe sehr lückenhaft. Die Methode heißt GetSumCurrentOrder(). Der Name suggeriert also, dass die Methode überhaupt keinen Eingangsparameter hat, sondern dass die Klasse schon die Bestellung im "Bauch" hat. Also müsste man erst mal die Gesamtsumme ausrechnen. Dann die Versandkosten und dann den Rabatt. function GetSumCurrentOrder(Wert: Integer) Summe:Integer summe = GetSumme() return summe + GetVersandkosten(summe) - GetRabatt(summe) end function
  13. Richtig. Es ist eine Abschlussprüfung. Da kann man eigentlich schon erwarten, dass man nach einer dreijährigen Ausbildung weiß, was genau ein Array ist und was nicht. Man muss sich doch auch mal im Klaren machen, was denn der Sinn von Pseudocode oder NS-Diagrammen ist. Es soll doch den Algorithmus darstellen, der dann von oben nach unten in eine Sprache geschrieben werden kann. Wenn ich aber gleich als erstes das Ergebnisarray deklariere, dann kann ich den Pseudcode oder das NS-Diagramm in vielen Sprachen einfach nicht umsetzen. Das Diagramm funktioniert dann vielleicht in PHP aber für C, C++, Java oder C# passt es nicht. Also ist der Pseudocode/das NS-Diagramm schon auf die jeweilige Zielsprache gemünzt und lässt sich nicht auf eine andere Sprache 1:1 übertragen. Man muss also schon die Eigenheiten der verwendeten Sprache kennen aber genau das sollte doch der Pseudocode oder das NS-Diagramm verhindern und das sind Dinge, die mich ein bisschen stören. Mag sein, dass der Prüfungsausschuss es nicht ganz so genau nimmt, denn man will die Azubis ja nicht durchfallen lassen aber ich finde das doch ein bisschen unschön.
  14. Jaein. Wenn man es genau betrachtet, ist dies auch falsch. Ein Array ist eigentlich ein zusammenhängender Block im Speicher. Man muss also schon im Vorwege wissen, wie groß dieser Block werden soll. Ein leeres Array wäre ein Array in der Größe von 0 Bytes. Du könntest dort also keine Daten speichern. Es gibt zwar schwachtypisierte Sprachen, die sowas kennen, wie leere Arrays, die dynamisch befüllt werden können, wie z.B. PHP aber dies sind genaugenommen keine Arrays sondern andere Datenstrukturen, wie z.B. Hashtabellen (im Falle von PHP) oder verkettete Listen. Also auch dein Pseudocode wäre von der Sprache abhängig. Unter C# oder Java könnte man dein Pseudocode nicht implementieren. Wenn man die Aufgabe genau betrachtet, ist das eigentlich auch nur eine Filterung mit einer anschließenden Sortierung. Ein sprachunabhängiger Pseudocode müsste also weg von der imperativen und hin zur funktionalen Vorgehensweise: function erstelleFluege(Datum : date, Plaetze : Integer): Flug[] Ergebnis = Filter Linien_Fluege Kriterium: getFlugDatum() == Datum UND getSitzplaetze() > Plaetze Sortiere Ergebnis nach getFlugDatum() return Ergebnis Wie man dann nun den Filter implementiert, ist dann den Entwickler überlassen. Mit C# und Linq wäre der gesamte Algorithmus sehr simpel: public Flug[] ErstelleFluege(DateTime datum, int platze) { return this.LinienFluege .Where(flug => flug.FlugDatum == datum && flug.Sitzplaetze > plaetze) .OrderBy(flug => flug.FlugDatum) .ToArray(); } Ich brauche also keine Arrays definieren oder sonst was. Das übernimmt das Framework für mich. Das er rein muss, ist mir schon klar. Mir ist aber nicht klar, ob der Prüfungsausschuss es akzeptiert, den Sortieralgorithmus als Blackbox zu betrachten, oder ob dieser als Pseudocode mit abgebildet werden muss.
  15. Diese Aufgaben sind einfach zum Heulen ... Wie will man ein Array erzeugen, wenn man nicht mal weiß, wie viele Elemente letztendlich das Array haben muss? Eigentlich müsste man eine verkettete Liste erzeugen, welches dann später in ein Array umgewandelt wird... Die Problematik sieht man schon bei deinem Code: Auswahl_Fluege[] = null Du setzt das Ergebnis-Array auf null und dementsprechend gibt es eine NullReferenceException, wenn du darauf zugreifen willst. Du müsstest das Array initialisieren aber mit wie vielen Elementen? Das wissen wir gar nicht, da wir die Elemente noch ermitteln müssen. Das klassische Henne-Ei-Problem... Dein Code mag vielleicht in einigen Sprachen, wie z.B. PHP funktionieren, weil Arrays dort im Grunde keine Arrays sind, sondern Hashtabellen. Es bleibt aber weiterhin das Problem, dass Auswahl_Fluege Null ist. Wenn der Code für PHP geeignet sein soll, dann müsstest du: Auswahl_Fluege = Array(); schreiben. Ich könnte noch mehr über die Aufgabe meckern aber ich lasse es mal hierbei. Ansonsten würde ich deine Lösung schon als richtig ansehen. Das einzige, was ich nicht weiß, ist, da die Rede von einer Sortierung ist und ich nicht weiß, ob nicht vielleicht ein Pseudocode für ein Sortieralgorithmus verlangt ist aber bei der Anzahl der massiven Fehlgriffen in der Aufgabenstellung gehe ich mal nicht davon aus.