001
01.12.2017, 23:03 Uhr
rakip68
|
Vorgaben ( Console.h und die Funktionen --daran soll halt weitergearbeitet werden)
// Console.h
Code: |
/* Defines zur Positionierung des Cursors auf der Konsole */ /* CLS = Clear Screen. Use: CLS; */ #define CLS printf("\033[2J") /* CURPOS(L,C) = Positioniere den Cursor in Zeile L und Spalte C. * Use: to print a text in line L starting at column C * CURPOS(L,C); printf("place your text here"); */ #define CURPOS(L,C) printf("\033[%d;%df",L,C) /* CURUP(L) = Bewege den Cursor um L Zeilen nach oben. */ #define CURUP(L) printf("\033[%dA",L) /* CURDOWN(L) = Bewege den Cursor um L Zeilen nach unten. */ #define CURDOWN(L) printf("\033[%dB",L) /* CURRIGHT(C) = Bewege den Cursor um C Spalten nach rechts. */ #define CURRIGHT(C) printf("\033[%dC",C) /* CURLEFT(C) = Bewege den Cursor um C Spalten nach links. */ #define CURLEFT(C) printf("\033[%dD",C) /* CUR2EOL = Lösche alle Zeichen rechts ab aktuelle CURPOS */ #define CURCLR2EOL printf("\033[K")
|
Code: |
/* Dateiname : POOL2_005.c Programm : UPN-Rechner für Grundrechenarten (dezimal, hexadezimal, binaer) Beispielhafte Musterlösung für Aufgabe 005 aus POOL2 Eingaben : Parametereingabe bei Programmaufruf über Konsole. Aufruf mit: ./POOL2_005 <StackTiefe> StackTiefe = 3 ... 8 Ausgaben : Rückgabewerte des Programms: 0 falls Eingabeparameter OK -1 falls fehlerhafte oder unvollständige Eingabeparameter Autor : Version : */ #include <stdio.h> #include <stdlib.h> #include <math.h> #include "console.h"
#define SCOL 40 //linke Spalte zur Stackdarstellung auf Konsole #define SLINE 10 //obere Zeile zur Stackdarstellung auf Konsole #define ILINE 12 //Eingabezeile auf Konsole #define ICOL 41 //linke Eingabespalte in Stackdarstellung auf Konsole #define SWIDTH 32 //max. Breite der Anzeige fuer Stack #define STACKLINE "[ ]" // leere Stackzeile #define SDEPTH 8 //max. Tiefe der Anzeige fuer Stack
/* Funktion : void ClearLine(int Line) Aufgabe : Loescht die Stackzeile Line auf dem Bildschirm Eingaben : Line = Zeilenindex der zu loeschenden Zeile (oberste Bildschirmzeile: Line=0) Ausgaben : keine Autor : Kreiser Version : 01 Datum der letzten Änderung: 2012-12-14 */ void ClearLine(int Line){ CURPOS(Line, SCOL); CURCLR2EOL; CURPOS(Line, SCOL); printf("[ ]"); CURPOS(Line, ICOL); }
/* Funktion : void PrintStack(double* Stack, int StackTiefe, int StackIndex, char CalcMode) Aufgabe : Gibt den gesamten Stack auf dem Bildschirm aus Eingaben : Stack = Zeiger auf den Stack (Vektor mit double-Werten) StackTiefe = Groesse des Stacks (Anzahl der Speicherstellen) StackIndex = Index der letzten belegten Speicherstelle im Stack CalcMode = 'D' (dezimal), 'H' (hexadezimal), 'B' (binaer) Ausgaben : keine Autor : Kreiser Version : 01 Datum der letzten Änderung: 2012-12-14 */ void PrintStack(double* Stack, int StackTiefe, int StackIndex, char CalcMode){
}
/* Funktion : void Bildschirmmaske(int StackTiefe) Aufgabe : Zeigt den Bildschirm des UPN-Rechners an Eingaben : StackTiefe = Groesse des Stacks (Anzahl der Speicherstellen) Ausgaben : keine Autor : Kreiser Version : 01 Datum der letzten Änderung: 2012-12-14 */ void Bildschirmmaske(int StackTiefe){ int j; int i=3; //Zeilenposition fuer Stackdarstellung auf Console CLS; CURPOS(1, 1); printf("UPN-Rechner - (c) 2012-12 F07"); CURPOS(2, 1); printf("-------------------------------------------------------------------------"); CURPOS(i++, 1); printf("Programm verlassen (x)"); CURPOS(i++, 1); printf("Operatoren (+ - * /)"); CURPOS(i++, 1); printf("Ziffern (01234567890abcdef)"); CURPOS(i++, 1); printf("Dezimalpunkt | Vorzeichen (. | -)"); CURPOS(i++, 1); printf("Exponentkennung (E)"); CURPOS(i++, 1); printf("Stackoperationen Push | Pop (u | o)"); CURPOS(i++, 1); printf("Eingabe abschliessen (ENTER)"); CURPOS(i++, 1); printf("Binaermodus (B)"); CURPOS(i++, 1); printf("Dezimalmodus (D)"); CURPOS(i++, 1); printf("Hexadezimalmodus (H)"); i=ILINE; // Darstellungsfeld fuer Eingaben, Breite 30 Zeichen + Klammern CURPOS(i--, SCOL); printf(STACKLINE); CURPOS(i--, SCOL); printf("----------------------------------"); //X 0123456789 0123456789 0123456789 0123456789 //X 0123456789 0123456789 0123456789 for(j=0;j<StackTiefe;j++){ CURPOS(i--, SCOL); printf(STACKLINE); } CURPOS(ILINE+1, 1); printf("-------------------------------------------------------------------------\n"); }
int main(int argc, char *argv[]){ int Ausgabe=0; // Rueckgabewert von main()
return(Ausgabe); }
|
Dieser Post wurde am 01.12.2017 um 23:05 Uhr von rakip68 editiert. |