C++ Aufgabe...
-
Kann hier jemand sowas???
http://193.23.171.171/download/Inf1_Praktikum2006/Zusatzaufgabe0607.pdf
Soll ja Leute geben, die daran Spass haben.
Ich mach drei Kreuze wenn ich den Müll hinter mir habe.
-
Das einzig schwierige an dieser Aufgabe ist es die EINE geforderte Matrikelnummer als ASCII-Art zu entwerfen. Der Rest ist ein Kinderspiel. Also nimm einen Texteditor (oder ein Tool, wenn das erlaubt ist), entwerfe erstmal deine Matrikelnummer als individuelle ASCII-Art (mit einem Monospace Font, wie z. Bsp. Courier New!), und wir sehen weiter

-
Achso, falls du es beim aufmerksamen Lesen der Aufgabe nicht gemerkt hast: Damit jemand die Aufgabe für dich lösen kann, musst du deine Matrikelnummer bekanntgeben, denn es soll NUR mit DEINER Matrikelnummer funktionieren

-
Mit diesem Programmierprojekt sollen Sie lernen, auf der Basis einer gegebenen Spezifikation ein Softwaremodul eigenständig zu entwickeln und zu testen.
[...]
Sie sollen diese Programmieraufgabe selbstständig bearbeiten und löse.Ah. => Ich würde sagen: durchgefallen.
-
Jupp.
Aber vielleicht als kleine Anregung: ich für meinen Teil würde meine Darstellungsart speziell machen durch folgendes:
1. man setze eine bestimmte Zeilen und Spaltenbreite fest, an die sich JEDE Zifefr bei der Darstellung hält.2. man setze fest:
0: /
1: \
2: o
usw für alle Ziffern von 0 bis 9.Wenn man jetzt eine Zahl bekommt z.B 201210 nimmt man in jeder Zeile die Zeichen in dieser Reihenfolge durch (also hier o/\o\/) und stellte seine Ziffern so dar. So kriegst du für jede Ziffernfolge ein spezielles Muster.
Und vielleicht noch etwas: Die Ziffern ebstehen ja eigentlich aus 2 Dingen: deinen Zeichen (de dann wie oben festgelegt sind) und Leerzeichen. Ich würde die Darstellungsweise aller 10 Zahlen also festlegen durch ein 2-dimesnionales bool-Array bool z[ZEILENANZAHL][SPALTENANZAHL] in dem ich dann überall da wo ein Leerzeichen kommt false reinschreibe und überall da wo ein Zeichen kommt true (musst dir alle Ziffern einmal vor-zeichnen und das dann festlegen, das ist Arbeit, nicht Programmieren, hehe). Danach brauchst du beim Schreiben einer Ziffer nur noch zu schauen ob an der Stelle die grad dran ist true oder false steht. Steht false da gibst du ein Leerzeichen aus, steht true da das Zeichen das gerade an der Reihe ist.
So, das wärs mal von mir, man bedenke, ich bin auch noch blutiger anfänger, aber ich denke so würds doch recht gut funktionnieren. Wenn nicht bitte sagen (und vor allem: warum nicht?)
Das programm zusammenschreiben musst du jetzt schon selbst machen.
-
Erstell doch einfach eine (text)datei in der du für jede Ziffer die Ascii-Art reinschreibst (kannst z.B. ein fertiges Ascii-Art Programm nehmen, dann sparst dir Zeit).
Und dann musst für jedes Zeichen nur noch die zugehörige Ascii-Art ausgeben.
Würde hierfür jedoch nicht auf die Standard-Ausgabe zurückgreifen sondern ein gotoxy(), das macht das Ausgeben einfacher, da du nicht Zeile für Zeile schreiben musst
-
Mir ist da was interessantes aufgefallen:
Diese Bildschirmausgabe soll nicht erfolgen, wenn die Funktion mit einer anderen Nummer als Ihrer Matrikelnummer aufgerufen wird!
aber:
Wenn matrikelnummer eine Folge von Dezimalziffern enthält, jedoch nicht Ihre Matrikelnummer, dann soll die Prüfziffer zusätzlich als grafische Bildschirmausgabe ausgegeben werden.
Zusätzlich? Zu was denn??

-
Sehr geehrte Damen und Herren,
ich möchte mich fragen ob sie mir ein Dienstleistung beim C++ Programm geben können.
ich bin Student an der Hochschule Anhalt.und hab ein Testatschein.hab versucht den Aufgabe zu Lösen aber es klappt nicht.
könnten sie mir hilfen .
schicken Sie mir Ihren Email Adresse ,und ich werde den Aufgabe Blatt per Email Schicken.wird mich freuen um eine positive Antwort.
Mit freundlichen GrüssenTarek Brakrim
-
Tarek schrieb:
Sehr geehrte Damen und Herren,
ich möchte mich fragen ob sie mir ein Dienstleistung beim C++ Programm geben können.
ich bin Student an der Hochschule Anhalt.und hab ein Testatschein.hab versucht den Aufgabe zu Lösen aber es klappt nicht.
könnten sie mir hilfen .
schicken Sie mir Ihren Email Adresse ,und ich werde den Aufgabe Blatt per Email Schicken.wird mich freuen um eine positive Antwort.
Mit freundlichen GrüssenTarek Brakrim
-
Ich denke, da wird hier leider keiner so helfen. Die meisten/alle halten sich hier daran, dass bei Haus/Testaufgaben bei spezifischen Problemen (also man veruscht das Programm zu schreiben, kommt aber an einer Stelle nicht weiter/etwas funktionniert nicht wie gedacht) und eben präzisen Fragen zu diesen Problemen geholfen wird.
Ein "Ich komm nicht klar schreibt mir bitte das Programm" gehört in die Abteilung "Projekte" und KÖNNTE dort gegen Bezahlung vielleicht angenommen werden.
Sollte sich doch jemand finden: Glück gehabt. Zuviel Hoffnung solltest du dir aber nicht machen.
-
Lissino schrieb:
Kann hier jemand sowas???
http://193.23.171.171/download/Inf1_Praktikum2006/Zusatzaufgabe0607.pdf
Soll ja Leute geben, die daran Spass haben.
Ich mach drei Kreuze wenn ich den Müll hinter mir habe.Tarek schrieb:
Sehr geehrte Damen und Herren,
ich möchte mich fragen ob sie mir ein Dienstleistung beim C++ Programm geben können.
ich bin Student an der Hochschule Anhalt.und hab ein Testatschein.hab versucht den Aufgabe zu Lösen aber es klappt nicht.
könnten sie mir hilfen .
schicken Sie mir Ihren Email Adresse ,und ich werde den Aufgabe Blatt per Email Schicken.wird mich freuen um eine positive Antwort.
Mit freundlichen GrüssenTarek Brakrim
Wieviel zahlst Du ?
Immerhin muss es sich lohnen, eine unmotivierte Blinse auf den eigenen Arbeitsmarkt zu hieven.
Gruß,
Simon2.
-
Lissino schrieb:
Kann hier jemand sowas???
http://193.23.171.171/download/Inf1_Praktikum2006/Zusatzaufgabe0607.pdf
In der Aufgabenstellung heißt es:
Gefordert ist eine in ANSI C implementierte Funktion, ...
d.h. der OP ist in der falschen ng gelandet und ich kann ohne schlechtes Gewissen einen Teil-Lösungsansatz in C++ posten
#include <iostream> #include <streambuf> #include <string> #include <cstring> // strlen const int ANZ_ZEILEN = 3; // in der Aufgabe sind 5 bis 10 gefordert const char* Glyph[][ANZ_ZEILEN] = { { // '0' " 000 ", " 0 0 ", " 000 " }, { // '1' " | ", " 1 ", " | " }, { // '2' " 2 ", " ", " 2 " }, { // '3' " + 3 ", " 3 ", " 3 + " }, { " 4 4 ", " ", " 4 4 " }, { " 5 5 ", " 5 ", " 5 5 " }, { " 666 ", " ", " 666 " }, { " 777 ", " 7 ", " 777 " }, { " 888 ", " 8 8 ", " 888 " }, { " 999 ", " 999 ", " 999 " } }; class BigPrint : public std::streambuf { public: explicit BigPrint( std::streambuf* out ) : m_out( out ) , m_buf() {} protected: virtual int_type overflow( int_type c = traits_type::eof() ) { if( !traits_type::eq_int_type( c, traits_type::eof() ) ) { const char cc = traits_type::to_char_type( c ); if( cc == '\n' ) write_line(); else m_buf.push_back( cc ); } return traits_type::not_eof( c ); } private: void write_line() { for( int iZl = 0; iZl<ANZ_ZEILEN; ++iZl ) { for( std::string::iterator iTx = m_buf.begin(); iTx != m_buf.end(); ++iTx ) { std::size_t idx = *iTx - '0'; if( idx < sizeof(Glyph)/sizeof(*Glyph) ) { m_out->sputn( Glyph[idx][iZl], std::strlen(Glyph[idx][iZl]) ); } else m_out->sputc( iZl == (ANZ_ZEILEN-1)/2? *iTx: ' ' ); } m_out->sputc( '\n' ); } m_out->sputc( '\n' ); // ggf. eine Leerzeile einfügen für mehrzeilige Ausgaben m_buf.clear(); } // -- Members std::streambuf* m_out; std::string m_buf; }; struct IosSwitch { IosSwitch( std::basic_ios< char >& ios, std::streambuf* sb ) : m_ios( ios ) , m_sb( m_ios.rdbuf( sb ) ) {} ~IosSwitch() { delete m_ios.rdbuf( m_sb ); } private: std::basic_ios< char >& m_ios; std::streambuf* m_sb; // -- noncopyable IosSwitch( const IosSwitch& ); IosSwitch& operator=( const IosSwitch& ); }; int main() { using namespace std; IosSwitch iosw( cout, new BigPrint( cout.rdbuf() ) ); cout << "Nr.:1234567890" << endl; return 0; }Gruß
Werner
-
Mhm.....