Hallo Leute!!
Bin neu hier und möchte gerne c und c++ lernen. Mein Programm soll mir die Stunden, Minuten und Sekunden in einen laufenden Balken ausgeben, der auf einer gestrichelten Linie entlang läuft. Das Ganze in drei Zeilen. 1. Zeile Stunden. 2. Zeile Minuten und 3. Zeile Sekunden. Jedesmal, wenn 60 Sekunden vorbei sind, sollen die Minuten um einen Balkenpunkt weiter laufen. Genauso soll es mit den Minuten und Stunden funktionieren.

#include <stdio.h>
#include <conio.h>
#include <time.h>
#define ZEICHEN 219
#define keinstrich ''
#define unterstrich '_'
#define STUNDEN 24
#define MINUTEN 59
#define SEKUNDEN 59
void P1_Stunden_aktualisieren( int posx, int posy, int value, int max);
void P2_Minuten_aktualisieren( int posx, int posy, int value, int max);
void P3_Sekunden_aktualisieren(int posx, int posy, int value, int max);
void zeichne( int posx, int posy, char*name, int value, int max);
/************************************************** ****************************/
/* Zeichen die konstanten Elemente */
/************************************************** ****************************/
void zeichne( int posx, int posy, char*text, int value, int max)
{
gotoxy( posx,posy+1);
printf("%s",text);
gotoxy( posx, posy+1);
for ( int i = 0; i < max; i++)
{
printf("%c",unterstrich);
}
P1_Stunden_aktualisieren( posx, posy, value, STUNDEN);
P2_Minuten_aktualisieren( posx, posy, value, MINUTEN);
P3_Sekunden_aktualisieren( posx, posy, value, SEKUNDEN);
}
/************************************************** ****************************/
/* Gibt die veränderlichen Elemente von 'P1' aus */
/************************************************** ****************************/
void P1_Stunden_aktualisieren( int posx, int posy, int value, int max)
{
gotoxy( posx+10, posy);
printf("%2.2d",value);
gotoxy( posx+15, posy);
for( int i = 0; i < max; i++)
{
printf("%c",(i < value)?ZEICHEN:keinstrich);
}
}
/************************************************** ****************************/
/* Gibt die veränderlichen Elemente von 'P2'aus */
/************************************************** ****************************/
void P2_Minuten_aktualisieren( int posx, int posy, int value, int max)
{
gotoxy( posx+10, posy);
printf("%2.2d",value);
gotoxy( posx+15, posy);
for (int i = 0; i < max; i++)
{
printf("%c",(i < value)?ZEICHEN:keinstrich);
}
}
/************************************************** ****************************/
/* Gibt die veränderlichen Elemente von 'P3' aus */
/************************************************** ****************************/
void P3_Sekunden_aktualisieren( int posx, int posy, int value, int max)
{
gotoxy( posx+10, posy);
printf("%2.2d",value);
gotoxy( posx+15,posy);
for( int i = 0; i < max; i++)
{
printf("%c",(i < value)?ZEICHEN:keinstrich);
}
}
/************************************************** ****************************/
/* Hauptfunktion */
/************************************************** ****************************/
void main(void)
{
time_t zeit;
tm *zeit_neu;
clrscr();
_setcursortype (_NOCURSOR);
zeichne (2, 5, "Stunden", 0 , STUNDEN);
zeichne (2, 8, "Minuten", 0 , MINUTEN);
zeichne (2,11, "Sekunden", 0 , SEKUNDEN);
time(&zeit);
while(!kbhit())
{
if( zeit == time(NULL)) continue;
time (&zeit);
zeit_neu = gmtime (&zeit);
P1_Stunden_aktualisieren( 2, 5, zeit_neu-> tm_hour, STUNDEN);
P2_Minuten_aktualisieren( 2, 8, zeit_neu-> tm_min, MINUTEN);
P3_Sekunden_aktualisieren( 2, 11, zeit_neu-> tm_sec, SEKUNDEN);
}
}
/************************************************** ****************************/
bekomme drei Fehlermeldungen die mit den Funktionen P1 - P3 zu tun haben. Ich habe zu viele int Werte und wohl zu wenig char Werte.
Ich benötige 1 oder 2 characterconstanten in den Funktionen. Wie kann man das machen? Bin schon seit Tagen am Grübeln, aber ich komme auf keine geeignete Idee!
Vielleicht könnt Ihr mir gute Hilfestellungen geben
Danke für Eure Hilfe
Bin neu hier und möchte gerne c und c++ lernen. Mein Programm soll mir die Stunden, Minuten und Sekunden in einen laufenden Balken ausgeben, der auf einer gestrichelten Linie entlang läuft. Das Ganze in drei Zeilen. 1. Zeile Stunden. 2. Zeile Minuten und 3. Zeile Sekunden. Jedesmal, wenn 60 Sekunden vorbei sind, sollen die Minuten um einen Balkenpunkt weiter laufen. Genauso soll es mit den Minuten und Stunden funktionieren.

#include <stdio.h>
#include <conio.h>
#include <time.h>
#define ZEICHEN 219
#define keinstrich ''
#define unterstrich '_'
#define STUNDEN 24
#define MINUTEN 59
#define SEKUNDEN 59
void P1_Stunden_aktualisieren( int posx, int posy, int value, int max);
void P2_Minuten_aktualisieren( int posx, int posy, int value, int max);
void P3_Sekunden_aktualisieren(int posx, int posy, int value, int max);
void zeichne( int posx, int posy, char*name, int value, int max);
/************************************************** ****************************/
/* Zeichen die konstanten Elemente */
/************************************************** ****************************/
void zeichne( int posx, int posy, char*text, int value, int max)
{
gotoxy( posx,posy+1);
printf("%s",text);
gotoxy( posx, posy+1);
for ( int i = 0; i < max; i++)
{
printf("%c",unterstrich);
}
P1_Stunden_aktualisieren( posx, posy, value, STUNDEN);
P2_Minuten_aktualisieren( posx, posy, value, MINUTEN);
P3_Sekunden_aktualisieren( posx, posy, value, SEKUNDEN);
}
/************************************************** ****************************/
/* Gibt die veränderlichen Elemente von 'P1' aus */
/************************************************** ****************************/
void P1_Stunden_aktualisieren( int posx, int posy, int value, int max)
{
gotoxy( posx+10, posy);
printf("%2.2d",value);
gotoxy( posx+15, posy);
for( int i = 0; i < max; i++)
{
printf("%c",(i < value)?ZEICHEN:keinstrich);
}
}
/************************************************** ****************************/
/* Gibt die veränderlichen Elemente von 'P2'aus */
/************************************************** ****************************/
void P2_Minuten_aktualisieren( int posx, int posy, int value, int max)
{
gotoxy( posx+10, posy);
printf("%2.2d",value);
gotoxy( posx+15, posy);
for (int i = 0; i < max; i++)
{
printf("%c",(i < value)?ZEICHEN:keinstrich);
}
}
/************************************************** ****************************/
/* Gibt die veränderlichen Elemente von 'P3' aus */
/************************************************** ****************************/
void P3_Sekunden_aktualisieren( int posx, int posy, int value, int max)
{
gotoxy( posx+10, posy);
printf("%2.2d",value);
gotoxy( posx+15,posy);
for( int i = 0; i < max; i++)
{
printf("%c",(i < value)?ZEICHEN:keinstrich);
}
}
/************************************************** ****************************/
/* Hauptfunktion */
/************************************************** ****************************/
void main(void)
{
time_t zeit;
tm *zeit_neu;
clrscr();
_setcursortype (_NOCURSOR);
zeichne (2, 5, "Stunden", 0 , STUNDEN);
zeichne (2, 8, "Minuten", 0 , MINUTEN);
zeichne (2,11, "Sekunden", 0 , SEKUNDEN);
time(&zeit);
while(!kbhit())
{
if( zeit == time(NULL)) continue;
time (&zeit);
zeit_neu = gmtime (&zeit);
P1_Stunden_aktualisieren( 2, 5, zeit_neu-> tm_hour, STUNDEN);
P2_Minuten_aktualisieren( 2, 8, zeit_neu-> tm_min, MINUTEN);
P3_Sekunden_aktualisieren( 2, 11, zeit_neu-> tm_sec, SEKUNDEN);
}
}
/************************************************** ****************************/
bekomme drei Fehlermeldungen die mit den Funktionen P1 - P3 zu tun haben. Ich habe zu viele int Werte und wohl zu wenig char Werte.
Ich benötige 1 oder 2 characterconstanten in den Funktionen. Wie kann man das machen? Bin schon seit Tagen am Grübeln, aber ich komme auf keine geeignete Idee!
Vielleicht könnt Ihr mir gute Hilfestellungen geben

Danke für Eure Hilfe
Comment