In UML umschreiben --- HILFE

Vaiper

Mitglied
Moinsen

also Ich habe ja im Allgemeinen nicht gerade viel Ahnung von C++ aber nun raff ich NICHTS mehr :/

Ich soll nen Quellcode in UML umschreiben ( KP was das ist ) :( und nun bitte ich euch mir zu Helfen oder es mir vlt. iwie zu erklären weile meine Lehrerin (nutzt nur ihre Bücher und Zettel) kann es mir auch nicht so ganz so erklären habt Ihr vlt. ne Definition dafür ?

Hier der Original Code

C++:
#include <iostream.h>
#include <stdio.h>
#include <fstream.h>
int satz_zahl = 0;
//***************************************************
// Basisklasse Adressen
struct adressen
   {
     	char name[50];
        char strasse[25];
      	char ort[25];
		char telefon[15];
		char telefax[15];
		char eMail[20];
    };
	 struct adressen adressdaten[10];
//***********************************************

//  Methoden zur Dateneingabe
//--------------------------------------------------
// Eingabe der Adressen
void adr_ein(int index)
 {
   printf( "Achtung --> Bitte keine Leerzeichen eingeben!\n"); 
   
   printf("Name:\t\t");
   scanf("%s", &adressdaten[index].name);
   printf( "Strasse:\t");
    scanf("%s", &adressdaten[index].strasse);
   printf( "Ort:\t\t");
   scanf("%s", &adressdaten[index].ort);
   printf( "Telefon:\t");
   scanf("%s", &adressdaten[index].telefon);
   printf( "Telefax:\t\t");
   scanf("%s", &adressdaten[index].telefax);
   printf( "eMail:\t\t");
   scanf("%s", &adressdaten[index].eMail);
 }
//--------------------------------------------------
 // Adressdaten anzeigen lassen
void adr_zeig(int index)
 	{
	printf( " Name:\t\t");
	printf("%s%s", adressdaten[index].name,"\n") ;
   printf(  "Strasse:\t");
   printf("%s%s", adressdaten[index].strasse ,"\n");
   printf(  "Ort:\t\t");
   printf("%s%s",adressdaten[index].ort ,"\n");
   printf(  "Telefon:\t");
   printf("%s%s",adressdaten[index].telefon ,"\n");
   printf(  "Telefax\t\t");
   printf("%s%s",adressdaten[index].telefax ,"\n");
   printf(  "eMail:\t\t");
   printf("%s%s",adressdaten[index].eMail ,"\n");
 	}
//--------------------------------------------------
// Adressdaten lesen
   int adr_lesen()
   {
   fstream datei;
   datei.open("adress.dat", ios::in);
   datei >> satz_zahl;
printf("%s%i%s", "In der Datei befinden sich ", satz_zahl, " Datens\x84tze\n");
   for (int i=0; i<=satz_zahl; i++)
     {
     datei  >> adressdaten[i].name;
	datei  >> adressdaten[i].strasse;
   	datei  >> adressdaten[i].ort;
	datei  >> adressdaten[i].telefon;
	datei  >> adressdaten[i].telefax;
	datei  >> adressdaten[i].eMail;
     }
   datei.close();
   return satz_zahl;
   }
//--------------------------------------------------
// Adressdaten speichern
void adr_speicher()
 {
   fstream datei;
   datei.open("adress.dat", ios::out);
   datei << satz_zahl << endl;

   for (int i=0; i<=satz_zahl; i++)
     {
     datei  << adressdaten[i].name << endl;
	datei  << adressdaten[i].strasse << endl;
   	datei  << adressdaten[i].ort << endl;
	datei  << adressdaten[i].telefon << endl;
	datei  << adressdaten[i].telefax << endl;
	datei  << adressdaten[i].eMail << endl;
     }
   datei.close();
   }
//**************************************************************
// Hauptfunktion
int main()
	{
	// Alle Daten aus der Datei in die Tabelle übernehmen
	adr_lesen();

	int wahl;
   do
   {
   	printf( "Programm zur Adressverwaltung\n\n");
    printf( " 1) Daten eingeben\n");
	printf( " 2) Daten anzeigen\n");
	printf( " 3) Programmende\n");
      cin >> wahl;

      switch(wahl)
      {
      case 1:
            {
            adr_ein(satz_zahl);
            satz_zahl++;
            break;
            }
      case 2:
       	   {
            int ind = 0;
            printf("%s%i%s", "Welchen Datensatz zwischen 1 und ",satz_zahl, " m\x94");
		  printf("chten Sie sehen?  ") ;
            scanf("%i", &ind);
            adr_zeig(ind-1);
            break;
            }
       }

   }while (wahl != 3);
   adr_speicher();
   return 0;
	}





Hier die Lösung von einer Klassenkameradin, Ich habe Keine Ahnung wie Sie das gemacht hat also wie sie da drauf gekommen ist :/ pls Helft mir!


C++:
#include <iostream.h>
#include <stdio.h>
#include <fstream.h>
int satz_zahl = 0;
//***************************************************
// Basisklasse Adressen
class adressen//statt des 
   {
public:
     	char name[50];
        char strasse[25];
      	char ort[25];
		char telefon[15];
		char telefax[15];
		char eMail[20];

public: 
	int adr_ein(int index);
	int adr_zeig(int index);
	int adr_lesen();
	int adr_speicher();

    };
	 class adressen adressdaten[10];
//***********************************************

//  Methoden zur Dateneingabe
//--------------------------------------------------
// Eingabe der Adressen
	 int adressen::adr_ein(int index)
 {
   printf( "Achtung --> Bitte keine Leerzeichen eingeben!\n"); 
   
   printf("Name:\t\t");
   scanf("%s", &adressdaten[index].name);
   printf( "Strasse:\t");
    scanf("%s", &adressdaten[index].strasse);
   printf( "Ort:\t\t");
   scanf("%s", &adressdaten[index].ort);
   printf( "Telefon:\t");
   scanf("%s", &adressdaten[index].telefon);
   printf( "Telefax:\t\t");
   scanf("%s", &adressdaten[index].telefax);
   printf( "eMail:\t\t");
   scanf("%s", &adressdaten[index].eMail);
   return 0;
 }
//--------------------------------------------------
 // Adressdaten anzeigen lassen
	 int adressen::adr_zeig(int index)
 	{
	printf( " Name:\t\t");
	printf("%s%s", adressdaten[index].name,"\n") ;
   printf(  "Strasse:\t");
   printf("%s%s", adressdaten[index].strasse ,"\n");
   printf(  "Ort:\t\t");
   printf("%s%s",adressdaten[index].ort ,"\n");
   printf(  "Telefon:\t");
   printf("%s%s",adressdaten[index].telefon ,"\n");
   printf(  "Telefax\t\t");
   printf("%s%s",adressdaten[index].telefax ,"\n");
   printf(  "eMail:\t\t");
   printf("%s%s",adressdaten[index].eMail ,"\n");
   return 0;
 	}
//--------------------------------------------------
// Adressdaten lesen
	 int adressen:: adr_lesen()
   {
   fstream datei;
   datei.open("adress.dat", ios::in);
   datei >> satz_zahl;
printf("%s%i%s", "In der Datei befinden sich ", satz_zahl, " Datens\x84tze\n");
   for (int i=0; i<=satz_zahl; i++)
     {
     datei  >> adressdaten[i].name;
	datei  >> adressdaten[i].strasse;
   	datei  >> adressdaten[i].ort;
	datei  >> adressdaten[i].telefon;
	datei  >> adressdaten[i].telefax;
	datei  >> adressdaten[i].eMail;
     }
   datei.close();
   return satz_zahl;
   }
//--------------------------------------------------
// Adressdaten speichern
	 int adressen:: adr_speicher()
 {
   fstream datei;
   datei.open("adress.dat", ios::out);
   datei << satz_zahl << endl;

   for (int i=0; i<=satz_zahl; i++)
     {
     datei  << adressdaten[i].name << endl;
	datei  << adressdaten[i].strasse << endl;
   	datei  << adressdaten[i].ort << endl;
	datei  << adressdaten[i].telefon << endl;
	datei  << adressdaten[i].telefax << endl;
	datei  << adressdaten[i].eMail << endl;
     }
   datei.close();
   return 0;
   }
//**************************************************************
// Hauptfunktion
int main()
	{int i;
	// Alle Daten aus der Datei in die Tabelle übernehmen
	adressdaten[i].adr_lesen();

	int wahl;
   do
   {
   	printf( "Programm zur Adressverwaltung\n\n");
    printf( " 1) Daten eingeben\n");
	printf( " 2) Daten anzeigen\n");
	printf( " 3) Programmende\n");
      cin >> wahl;

      switch(wahl)
      {
      case 1:
            {
            adressdaten[i].adr_ein(satz_zahl);
            satz_zahl++;
            break;
            }
      case 2:
       	   {
            int ind = 0;
            printf("%s%i%s", "Welchen Datensatz zwischen 1 und ",satz_zahl, " m\x94");
		  printf("chten Sie sehen?  ") ;
            scanf("%i", &ind);
            adressdaten[i].adr_zeig(ind-1);
            break;
            }
       }

   }while (wahl != 3);
   adressdaten[i].adr_speicher();
   return 0;
	}


Es wäre Super von Euch wenn ihr mir das mal Erklären könntet :/


mfg

Vaiper aka Sven
 
Hallo, Sven.

UML ist eine Software-Modellierungssprache, d.h. eine Sammlung von Richtlinien, nach welchen man (objektorientierte) Software strukturiert und etwickelt (Klassen, Attribute, Methoden etc.).

Ich denke mal, dass deine Lehrerin möchte, dass ihr das ganze UML-konform macht, also mit dem richtigen UML-gemäßen Aufbau des Quellcodes und so. Deswegen hat deine Klassenkameradin z.B. die Struktur (Schlüsselwort struct) durch eine entsprechende Klasse ersetzt (struct ist im Gegensatz zur Klasse nicht OOP- bzw. UML-konform).

Hier mal noch etwas Hilfe zur Selbsthilfe. Lies dir einfach mal alles durch, was hier steht und vielleicht klärt das ja schon die offenen Fragen. :)

Gruß, Niko
 
Hey Azmodan,

danke für deine schnelle Antwort :) mal gucken was ich bei Wiki so finde ( auch wenn es das 100 mal ist das es jemand gepostet hat) :) aber naja egal! Also ich danke dir trotzdem !





Ich denke mal, dass deine Lehrerin möchte, dass ihr das ganze UML-konform macht, also mit dem richtigen UML-gemäßen Aufbau des Quellcodes und so. Deswegen hat deine Klassenkameradin z.B. die Struktur (Schlüsselwort struct) durch eine entsprechende Klasse ersetzt (struct ist im Gegensatz zur Klasse nicht OOP- bzw. UML-konform).

meinste damit von struct bla blu nach class bla blu?`

wenn ja habe ich es glaube ich soweit verstanden!


mfg Sven
 
Nunja, um das Selberlesen wirst du nicht herum kommen. Ich dachte nur, bevor ich dir einfach nur :suchen: schreibe, sage ich dir lieber gleich, wo's steht und gebe dir ein paar mögliche Suchbegriffe mit auf den Weg. :)

Und ja, genau das habe ich damit gemeint: struct wird umgewandelt zu class.

Und jetzt bist du gefordert, dich erstmal darüber nach zu bilden. ;)

Gruß, Niko
 
Zurück