Zum Inhalt springen
Malarkey

Coder-Stübchen

Empfohlene Beiträge

Geschrieben

Ich muß sagen so theoretisch ohne Anwendung, die dahinter steckt, finde ich persönlich das immer schiwerig zu beantworten, aber wenn ich das richtig verstanden habe... ja du mußt erst eine Controllerfunktion aufrufen, wenn du dich strikt an MVC halten willst.

Beispiel Formular JSP:

View1 - Daten eingeben -> Übergabe an Controller (Annahme Pflichtfeld Nachname nicht ausgefüllt) --> Controller gibt zurück an View1 || Daten korrekt -> Controller gibt an View2 (ihre Daten wurden angenommen und im Model (Datenbank) gespeichert

Profle Objekt ???

Geschrieben

Das Profile Objekt ist ein Objekt, dass ich selbst erstellt habe, welches eingegebene Daten enthält :)

Hältst du dich eigentlich an MVC? :D

Geschrieben

Nur wenn es explizit im Pflichtenheft steht ;)

Geschrieben (bearbeitet)

Ansonsten programmierst du einfach so ohne MVC?

Wird das bei größeren Programmen nicht etwas unübersichtlich? :D

EDIT: Ist die grafische Oberfläche in C eigentlich auch View und Controller vermischt oder ist das getrennt?

Bearbeitet von Cyborg11
Geschrieben

Nicht komplett ohne nur nicht strikt und zur Übersicht gibt es UML :)

C hat einige Grafikbibliotheken im Angebot kann man pauschal nicht so sagen (jedenfalls ich nicht) ;)

Geschrieben (bearbeitet)

Einen Mischmasch find ich aber auch doof :P

Hab mir jetzt mal eine Klasse programmiert, damit ich die Komponenten leichter im GridBagLayout anordnen kann :)

Wenn jemand Interesse hat :D

package view;



import java.awt.Component;

import java.awt.Container;

import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.Insets;



public class LayoutExtension

{

	private GridBagConstraints gbc;

	

	public LayoutExtension()

	{

		gbc = new GridBagConstraints();

	}

	

	/**

	 * Methode um eine Komponente einem Container mit einem GridBagLayout hinzuzufügen.

	 * 

	 * @param cont Container, der die Komponente beinhalten soll

	 * @param gbl GridBagLayout

	 * @param comp Komponente, die hinzugefügt werden soll

	 * @param x X-Position der Komponente 

	 * @param y Y-Position der Komponente

	 * @param height Höhe der Komponente

	 * @param width Breite der Komponente

	 * @param weightx Platzbedarf in X-Richtung

	 * @param weighty Platzbedarf in Y-Richtung

	 * @param top Freier Platz in Pixel nach oben

	 * @param left Freier Platz in Pixel nach links

	 * @param bottom Freier Platz in Pixel nach unten

	 * @param right Freier Platz in Pixel nach rechts

	 */

	

	public void addComponent(	Container cont, GridBagLayout gbl, Component comp,

								int x, int y, int height, int width, double weightx,

								double weighty, int top, int left, int bottom, int right

							 )

	{

		gbc.gridx = x;

		gbc.gridy = y;

		gbc.gridheight = height;

		gbc.gridwidth = width;

		gbc.weightx = weightx;

		gbc.weighty = weighty;

		gbc.anchor = GridBagConstraints.CENTER;

		gbc.fill = GridBagConstraints.NONE;

		gbc.insets = new Insets(top, left, bottom, right);

		gbc.ipadx = 0;

		gbc.ipady = 0;		

		gbl.setConstraints(cont, gbc);

		cont.add(comp, gbc);		

	}

	

	/**

	 * Methode um eine Komponente einem Container mit einem GridBagLayout hinzuzufügen.

	 * 

	 * @param cont Container, der die Komponente beinhalten soll

	 * @param gbl GridBagLayout

	 * @param comp Komponente, die hinzugefügt werden soll

	 * @param x X-Position der Komponente 

	 * @param y Y-Position der Komponente

	 * @param height Höhe der Komponente

	 * @param width Breite der Komponente

	 * @param weightx Platzbedarf in X-Richtung

	 * @param weighty Platzbedarf in Y-Richtung

	 * @param fill Gibt an, in welche Richtung vergrößert werden darf

	 * @param top Freier Platz in Pixel nach oben

	 * @param left Freier Platz in Pixel nach links

	 * @param bottom Freier Platz in Pixel nach unten

	 * @param right Freier Platz in Pixel nach rechts

	 */

	

	public void addComponent(	Container cont, GridBagLayout gbl, Component comp,

								int x, int y, int height, int width, double weightx,

								double weighty, int fill, int top, int left,

								int bottom, int right

							 )

	{

		gbc.gridx = x;

		gbc.gridy = y;

		gbc.gridheight = height;

		gbc.gridwidth = width;

		gbc.weightx = weightx;

		gbc.weighty = weighty;

		gbc.anchor = GridBagConstraints.CENTER;

		gbc.fill = fill;

		gbc.insets = new Insets(top, left, bottom, right);

		gbc.ipadx = 0;

		gbc.ipady = 0;		

		gbl.setConstraints(cont, gbc);

		cont.add(comp, gbc);		

	}

	

	/**

	 * Methode um eine Komponente einem Container mit einem GridBagLayout hinzuzufügen.

	 * 

	 * @param cont Container, der die Komponente beinhalten soll

	 * @param gbl GridBagLayout

	 * @param comp Komponente, die hinzugefügt werden soll

	 * @param x X-Position der Komponente 

	 * @param y Y-Position der Komponente

	 * @param height Höhe der Komponente

	 * @param width Breite der Komponente

	 * @param weightx Platzbedarf in X-Richtung

	 * @param weighty Platzbedarf in Y-Richtung

	 * @param anchor Legt die Ausrichtung der Komponente im Rechteck fest

	 * @param fill Gibt an, in welche Richtung vergrößert werden darf

	 * @param top Freier Platz in Pixel nach oben

	 * @param left Freier Platz in Pixel nach links

	 * @param bottom Freier Platz in Pixel nach unten

	 * @param right Freier Platz in Pixel nach rechts

	 */

	

	public void addComponent(	Container cont, GridBagLayout gbl, Component comp,

								int x, int y, int height, int width, double weightx,

								double weighty, int anchor, int fill, int top, int left,

								int bottom, int right

							 )

	{

		gbc.gridx = x;

		gbc.gridy = y;

		gbc.gridheight = height;

		gbc.gridwidth = width;

		gbc.weightx = weightx;

		gbc.weighty = weighty;

		gbc.anchor = anchor;

		gbc.fill = fill;

		gbc.insets = new Insets(top, left, bottom, right);

		gbc.ipadx = 0;

		gbc.ipady = 0;		

		gbl.setConstraints(cont, gbc);

		cont.add(comp, gbc);		

	}

}

Bearbeitet von Cyborg11
Geschrieben

Angabe:

Aufgabe Teil 2:

Schreiben Sie ein Programm (orientiert sich am Programm input_output_prinzip), das drei reelle Zahlen multipliziert.

Lösungsweg:

Achtung: Sie dürfen kein Array verwenden. Die Lösung des Problems ist wie folgt auszuführen:

? In der main-Funktion werden die Werte erfasst.

? Die Berechnung wird mithilfe einer eigenen Funktion ausgeführt. (Formel: Ergebnis = a * b * c)

? In der main-Funktion wird das Ergebnis ausgegeben.


/* Exercise 02_01 Teil 2 */

/* Programmcode hier einfügen */
#include <stdio.h>

double multiplikation(double a, double b, double c);

int main(int argc, char* argv[])
{
double a=0;
double b=0;
double c=0;

printf("Geben sie die Zahl a an: ");
scanf("%lf", &a);
printf("Geben Sie die Zahl b an: ");
scanf("%lf", &b);
printf("Geben Sie die Zahl c an: ");
scanf("%lf", &c);
printf("Das Ergebnis lautet: %f\n", multiplikation(a, b, c));



return 0;
}

double multiplikation(double a, double b, double c)
{
double ergebnis=0;
ergebnis = a * b * c;
return ergebnis;
}
/* Mastervorlage Gueltig ab: 2011-07-30*/



/* Folgende Angaben sind hier im Kommentar verpflichtend zu erfassen */

/* Pflo */

/* ic11b063 */

Würde eigentlich so passen, oder was meint ihr?

Geschrieben


scanf("%lf", &c);
printf("Das Ergebnis lautet: %f\n", multiplikation(a, b, c));



return 0;
}

double multiplikation(double a, double b, double c)
{
return a * b * c;
}
/* Mastervorlage Gueltig ab: 2011-07-30*/



/* Folgende Angaben sind hier im Kommentar verpflichtend zu erfassen */

/* Pflo */

/* ic11b063 */

/* Exercise 02_01 Teil 2 */



/* Programmcode hier einfügen */

#include <stdio.h>



double multiplikation(double a, double b, double c);



int main(int argc, char* argv[])

{

double a=0;

double b=0;

double c=0;



printf("Geben sie die Zahl a an: ");

scanf("%lf", &a);

printf("Geben Sie die Zahl b an: ");

scanf("%lf", &b);

printf("Geben Sie die Zahl c an: ");

So sollte das nochmal kürzer sein.

Bin kein Java-Pro, jemand mit ein wenig mehr Kenntnissen sollte drübergucken.

Geschrieben

Ok, sollte aber egal sein, die 2 Zeilen mehr..

Ist übrigens C, nicht java :)

Geschrieben (bearbeitet)

oO sieht aus wie Java :o

Wer bei uns im Unternehmen Programme ausschreibt, wird gelyncht ;)

Erklärt zumindest, warum ich Scanf nich kenne.

Bearbeitet von Twilight
Geschrieben (bearbeitet)

Na gut, dann besser ich es eben aus :D

Würde bei mir wahrscheinlich keinen Punkteabzug bedeuten, aber ok, für die Zukunft ist es sicher besser :)

E:

Noch was :dau:

int a = 5;

int b = 8;

int c = 3;





 ergebnis = (a = !funktion_verdopple©) && (b = funktion_potenziere©);

    printf("Ergebnis_7a ist:%d\n", ergebnis);

    printf("Ergebnis_7b ist:%d\n", a);

    printf("Ergebnis_7c ist:%d\n", b);



    ergebnis = (a = funktion_verdopple©) && (b = funktion_potenziere©);

    printf("Ergebnis_8a ist:%d\n", ergebnis);

    printf("Ergebnis_8b ist:%d\n", a);

    printf("Ergebnis_8c ist:%d\n", b);



Ich muss das erklären, Ergebnisse sind angehängt. 7a ist klar, 5 =! 6, daher da schon 0 als Ergebnis. 7b ist 0, weil b =! 9 ist??

7c hab ich keine Ahnung, wieso da 8 heraus kommt

bei 8 blicke ich überhaupt nicht durch. Sind doch eigentlich beide Funktionen falsch, wieso kommen dann solche Ergebnisse herraus? :confused:

post-22702-1316981312.jpg

Bearbeitet von PFLO
E:
Geschrieben

Wie wäre es mit Zeilenumbrüchen in der Ausgabe ;) oder soll das alles in eine Zeile ?

printf("\nGeben Sie die Zahl b an: ");

scanf("%lf", &b);

printf("\nGeben Sie die Zahl c an: ");

scanf("%lf", &c);

printf("\nDas Ergebnis lautet: %f\n", multiplikation(a, b, c))

Geschrieben
Wie wäre es mit Zeilenumbrüchen in der Ausgabe ;) oder soll das alles in eine Zeile ?

printf("\nGeben Sie die Zahl b an: ");

scanf("%lf", &b);

printf("\nGeben Sie die Zahl c an: ");

scanf("%lf", &c);

printf("\nDas Ergebnis lautet: %f\n", multiplikation(a, b, c))

Das wird eh alles in einer eigenen Zeile ausgegeben

post-22702-1316981958_thumb.jpg

Geschrieben

Klassischer Fall von Fail meinerseits *argh*

scanf hat autozeilenumbruch...ich geh ins Bett zuviele Sportsendungen zuviel Alkohol :party:

Geschrieben

Hat mir trotzdem geholfen, das mit dem automatischen Zeilenumbruch wusste ich nicht :D

Noch was :dau:

int a = 5;

int b = 8;

int c = 3;





 ergebnis = (a = !funktion_verdopple©) && (b = funktion_potenziere©);

    printf("Ergebnis_7a ist:%d\n", ergebnis);

    printf("Ergebnis_7b ist:%d\n", a);

    printf("Ergebnis_7c ist:%d\n", b);



    ergebnis = (a = funktion_verdopple©) && (b = funktion_potenziere©);

    printf("Ergebnis_8a ist:%d\n", ergebnis);

    printf("Ergebnis_8b ist:%d\n", a);

    printf("Ergebnis_8c ist:%d\n", b);



Ich muss das erklären, Ergebnisse sind angehängt. 7a ist klar, 5 =! 6, daher da schon 0 als Ergebnis. 7b ist 0, weil b =! 9 ist?? 7c hab ich keine Ahnung, wieso da 8 heraus kommt bei 8 blicke ich überhaupt nicht durch. Sind doch eigentlich beide Funktionen falsch, wieso kommen dann solche Ergebnisse herraus? :confused:

post-22702-1316981312.jpg

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.