Überstunden
-
Hi,
ich bin ein wenig am verzweifeln. Eigentlich sollte das nicht so sein, weil die Aufgabe wahrscheinlich pups-einfach ist, aber ich kann nicht programmieren. Vor zwei Jahren hatten wir in unserem Studium so etwas wie einen Schnellkurs in technischer Programmierung mit C++ (den ich nicht verstanden hab, weil der Dozent **** war). In der Klausur bin ich auch nur mit Ach und Krach durchgekommen. Nun müssen wir, um unser Studium zu bestehen, PTPs (Praxistransferprojekte), schreiben. Darin müssen wir uns eine Problemstellung suchen und diese lösen.
Da hab ich mir mal überlegt, dass ich ein Programm schreiben, in dem man seine Arbeitsstunden eintragen kann und das Programm addiert diese und sagt einem, ob man Überstunden oder Minusstunden gemacht hat.
Nunja, das Programm hab ich vor zwei Jahren mal irgendwie zusammen gebaut. Allerdings ist meinem Dozenten jetzt eingefallen, dass das nicht so ganz toll ist, da ich nur Ganzzahlen addiere und keine Fließkommazahlen. Das war mich auch bewusst, nur hab ich das auch nicht anders hinbekommen.
Da das nun zwei Jahre her ist und ich das auch vorher nicht hinbekommen habe, wäre ich für jede Hilfe dankbar. Mittlerweise versteh ich nur noch Bahnhof, wenn ich mir das Programm angucke. Wahrscheinlich bin ich einfach ein blondes Dummchen und die Aufgabe ist super einfach.
Wenn jemand mir ein kompilierfähiges Gesamtprogramm hier reinsetzen könnte, würde ich super super glücklich sein. Ich muss das PTP bald wieder korrigiert hochladen.Hier einmal mein jetztiges Programm.
#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[])
{
int Tage[5];
int d;
float Summe=0;
int Tag;
int Ende;
int Ergebnis;
float x;
float y;
float z;printf("Um zu beginnen, gebe -1- ein, um zu beenden -2-: ");
scanf("%d",&Ende);
fflush(stdin);
printf("\n");
while(Ende!=2)
{
switch(Ende)
{
case 1 :
for(d=0; d<5; d++)
{
printf("Gebe die Arbeitsstunden fuer den %d. Tag an: ",d+1);
scanf("%d",&Tage[d]);
fflush(stdin);
Summe=Summe+Tage[d];y=("%.2f",Summe);
x=32.5;
z=y-x;}
printf("Du hast %.2f Stunden in dieser Woche gearbeitet.\n\n",Summe);printf ("Du solltest 32,50 Stunden diese Woche gearbeitet haben, \num in diesem Monat auf deine noetigen Stunden zu kommen.\n\n");
printf ("Ueberstunden bzw. fehlende Stunden: %.2f\n\n", z);
Summe=0;
printf("Willst du abfragen, wie viele Stunden du an irgendeinem Tag in \ndieser Woche gearbeitet hast, dann gebe -3- ein, wenn nicht -4-:");
scanf("%d",&Tag);
fflush(stdin);if(Tag == 3)
{
printf("Von welchem Tag willst du die Stundenanzahl wissen : ");
scanf("%d",&d);
fflush(stdin);
printf("An dem Tag %d hast du %d Stunden gearbeitet.\n\n", d, Tage[d-1]);
printf("Willst du abfragen, wie viele Stunden du an irgendeinem Tag in \ndieser Woche gearbeitet hast, dann gebe -3- ein, wenn nicht -4-:");
scanf("%d",&Tag);
fflush(stdin);
}
if(Tag == 4)
{
printf("Um weiter zu machen gebe -1- ein, wenn du nicht weitermachen willst, \ngebe -2- ein:");
scanf("%d",&Ende);
fflush(stdin);
}
break;
case 2 :break;
}
}
system("PAUSE");
return 0;
}Liebe Grüße (und in großer Hoffnung)
Alina
-
Hallo Alina,
du bist im falschen Forum gelandet. Du machst C, ein Moderator verschiebt dich bestimmt gleich.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum C (C89, C99 und C11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
ups, sorry... wie gesagt, sogar hierfür bin ich zu blöd
-
out schrieb:
Hallo Alina,
du bist im falschen Forum gelandet. Du machst C, ein Moderator verschiebt dich bestimmt gleich.Das ist immer ein schlechtes Zeichen, wenn es kein Versehen ist:
Alina schrieb:
Programmierung mit C++
Da darf man dann davon ausgehen, dass der Rest des Kurses entsprechend schlecht war, wenn schon der Name des Kurses nicht zum Inhalt passte.
@**Alina**: Was ist deine Frage? Da ist bloß eine Menge unformatierter Quelltext und eine Menge Text, in dem du (erfolglos) Mitleid erwecken möchtest. Wenn du kompetente Hilfe haben möchtest, dann lies dir die als wichtig markierten Links im Forum durch (der Einfachheit halber auch in meiner Signatur verlinkt). Die wichtigsten Verbesserungen an deinem Beitrag sind vernünftige Formatierung, eine klare Frage und, ganz wichtig, mach nicht auf dummes Blondchen. Mit letzterem schreckst du alle kompetenten Leute ab und bekommst bloß Antworten von Teenagern mit Hormonproblemen.
-
Da ich mich hier nicht auskenne, wird es wohl ein Versehen gewesen sein, dass ich im falschen Forum heöandet bin.
Und ja der Kurs war entsprechend schlecht. Der Dozent hat sich an den Informatikern orientiert, die bei uns mit im Kurs saßen. Das waren fünf Leute und die hatten das alles schon. Die restlichen 40 Leute hatten kein Plan von Programmierung. Den Dozenten hat das nicht interessiert und ist daher auch nicht auf unsere Fragen eingegangen und hat erwartet, dass wir das einfach können.
Meine Frage ist ganz einfach, wie ich das hinbekomme, dass ich auch Fließkommazahlen addieren kann. Im Moment sind nur Ganzzahlen addierbar, bzw. die Nachkommastellen werden ignoriert.
-
sie hat keine frage.
sie möchte, dass es ihr jemand macht.
... äääh das programm meine ich natürlichAlina schrieb:
Wenn jemand mir ein kompilierfähiges Gesamtprogramm hier reinsetzen könnte, würde ich super super glücklich sein.
p.s.
mein Hormonhaushalt ausgewogen ist.
-
Alina schrieb:
Meine Frage ist ganz einfach, wie ich das hinbekomme, dass ich auch Fließkommazahlen addieren kann. Im Moment sind nur Ganzzahlen addierbar, bzw. die Nachkommastellen werden ignoriert.
Hi Schwesta!
Guckst du:void clear_stdin ( void ) { int c; while (( c = getchar()) != '\n' && c != EOF ) {} } int main ( void ) { float a, b; puts ( "Big Brothers floating point numbers addition demo." ); puts ( "Type two floating point numbers separated by a whitespace and hit enter." ); if ( 2 == scanf ( "%f %f", &a, &b )) printf ( "%f + %f = %f\n", a, b, a + b ); else puts ( "Invalid input!" ); clear_stdin(); puts( "Hit enter to quit." ); getchar(); return 0; }
-
Hier mal ein einfacheres Beispiel:
Dokumentation zu den verwendeten Funktionen:
http://www.cplusplus.com/reference/cstdio/scanf/
http://www.cplusplus.com/reference/cstdio/printf/
http://www.c-plusplus.net/forum/39320-full#include <stdio> #include <conio> int main ( ) { float zahl1,zahl2,ergebniss; printf("Erste Zahl: \n"); scanf("%f",&zahl1); printf("Zweite Zahl: \n"); scanf("%f",&zahl2); ergebniss = zahl1 + zahl2; printf("%f",ergebniss); getch(); }
-
Captain Homework schrieb:
Hier mal ein einfacheres Beispiel:
[zensiert]
<ironie sequenz>
die Entwickler von scanf haben sich ja auch nix dabei gedacht, als sie einen rueckgabewert beschlossen.
</ironie sequenz>
-
Alina schrieb:
Nunja, das Programm hab ich vor zwei Jahren mal irgendwie zusammen gebaut. Allerdings ist meinem Dozenten jetzt eingefallen,
Jemand schaut sich deinen 2 Jahre alten Code an?
Alina schrieb:
Wahrscheinlich bin ich einfach ein blondes Dummchen und die Aufgabe ist super einfach.
Ich stehe aber auf Schwarzhaarige, unn nuh?
Alina schrieb:
Ich muss das PTP bald wieder korrigiert hochladen.
Immerhin, sonst werden hier Sonntag 22 Uhr Hausaufgabenlösungen abverlangt, und Montag ist Abgabetermin. Da bist du ja sehr zeitig dran.
Damit es nicht ganz zu einfach für dich wird, habe ich mal was weggelassen und was hinzugefügt, was deinen Blondchen-Horizont übersteigt, vielleicht findest du das ja und kannst es deinem Lehrer erklären.
Wenn nicht, dass lösche es einfach, spart dumme Nachfragen.int main() { float Tage[5]={0}; unsigned d; float Summe=0; int c; while( 1 ) { puts("\ (1) Arbeitsstundeneingabe für 5 Tage\n\ (2) Stundenzahl für 1 Tag\n\ (sonst) Ende"); c=getchar();while(getchar()!='\n'); switch(c) { case '1' : for(d=0; d<5; d++) { printf("Gebe die Arbeitsstunden fuer den %u. Tag an: ",d+1); scanf("%f",&Tage[d]);while(getchar()!='\n'); Summe=Summe+Tage[d]; } printf("Du hast %.2f Stunden in dieser Woche gearbeitet.\n\n",Summe); printf ("Du solltest 32,50 Stunden diese Woche gearbeitet haben, \num in diesem Monat auf deine noetigen Stunden zu kommen.\n\n"); printf ("Ueberstunden bzw. fehlende Stunden: %.2f\n\n", Summe-32.5); break; case '2': printf("Von welchem Tag willst du die Stundenanzahl wissen : "); scanf("%u",&d);while(getchar()!='\n'); if(--d>4) return puts("Fehler"),1; printf("An dem Tag %u hast du %.2f Stunden gearbeitet.\n\n", d+1, Tage[d]); break; default: puts("Ende");return 0; } } return 0; }
-
Ich dachte immer, statt while(1) schreibt der traditionsbewusste C-Programmierer for(;;). Oder ist das die Blondinenversion?
-
Ich sehe schon ... das Forum wird noch wegen ausuferndem Sexismus geschlossen.
-
Ethon schrieb:
Ich sehe schon ... das Forum wird noch wegen ausuferndem Sexismus geschlossen.
Das Problem ist: Hinterher erzählt sie bestimmt herum, dass die ganzen Informatiknerds im bösen Internet sie doof behandelt haben, bloß weil sie erwähnt hat, dass sie eine Frau ist.
-
SeppJ schrieb:
Ethon schrieb:
Ich sehe schon ... das Forum wird noch wegen ausuferndem Sexismus geschlossen.
Das Problem ist: Hinterher erzählt sie bestimmt herum, dass die ganzen Informatiknerds im bösen Internet sie doof behandelt haben, bloß weil sie erwähnt hat, dass sie eine Frau ist.
Falls sie eine Frau ist. Sich im Internet als Frau auszugeben auch wenn man keine ist, ist erfahrungsgemäß ziemlich zielführend - gerade wenn die potentiellen Helfer in ihren Frauenkontakten auf Mami und Youporn beschränkt sind. Das Forum hier ist aber irgendwie eine Ausnahme.
Ich bin immer skeptisch wenn sich jemand neu anmeldet, mit eindeutig weiblichem Nickname, sich selbst als Blondchen bezeichnet und um Abnahme der Arbeit bittet.
-
Ethon schrieb:
Falls sie eine Frau ist.
Stimm.t Wahrscheinlich sowieso Fake.
Das Forum hier ist aber irgendwie eine Ausnahme.
Nun, es sind drei brauchbare Komplettlösungen gekommen, sogar ziemlich schnell. Voller Erfolg würde ich das nennen. Da kann man die dummen Kommentare dazwischen auch mal überlesen.
-
Nur weil ein weiblicher Mensch programmieren lernen möchte, muss diese nicht gleich ein aufmerksamsgeiler Mann sein, ihr Sexisten!
-
Alice S. schrieb:
Nur weil ein weiblicher Mensch programmieren lernen möchte, muss diese nicht gleich ein aufmerksamsgeiler Mann sein, ihr Sexisten!
Nur weil jemand mit Frauenname was fragt, muss das kein Mann sein.
Nur weil jemand mit Frauenname was fragt, muss das keine Frau sein.
-
So Guten Morgen,
Um mal die Diskursionen zu beenden, ich bin tatsächlich eine Frau. Ich musste mich in diesem Forum nunmal neu anmelden, da ich sonst nie programmiere und ich halt eine Frage stellen wollte. In Zukunft werde ich euch wohl nicht mehr mit Programmierfragen nerven, also könnt ihr beruhigt sein. Lernen werde ich es wohl nur, wenn es mir irgendjemand mal vernünftig erklärt und nicht direkt zu mir sagt: "Hey programmier mal ne Fakultät" (das war nämlich die erste Stunde bei unserem Dozenten, ohne dass wir Vorwissen hatten).
Naja ansonsten muss ich dazu sagen, dass ich sehr dankbar bin für die Antworten (die dummen Kommentare dabei waren teilweise schon recht lustig, vor allem weil sie in einem Punkt zustimmen: sei schlau, stell dich dumm (frei nach der dummen/schlauen Katzenberger)). Hat funktioniert, auch wenns mir ein wenig Leid tut (aber das hier ist nunmal eine fast reine Männerdomäne).
Achja, ich hätte die Frage ja nicht gestellt, wenn ich das hätte selber lösen können. Ich saß da nunmal schon ein paar Stunden dran und es wollte nicht funktionieren. Programmieren liegt mir halt nicht so. Aber trotzdem nochmal Danke
-
Alina schrieb:
Lernen werde ich es wohl nur, wenn es mir irgendjemand mal vernünftig erklärt und nicht direkt zu mir sagt: "Hey programmier mal ne Fakultät" (das war nämlich die erste Stunde bei unserem Dozenten, ohne dass wir Vorwissen hatten).
Das sollte jeder erwachsene, nicht geistig beschränkte Mensch mit Hilfe eines Lehrbuchs innerhalb weniger Stunden hinkriegen.
Alina schrieb:
Programmieren liegt mir halt nicht so.
Glaubst Du die Leute hier konnten schon direkt nach der Geburt programmieren?
Wir haben uns alle durch etliche Bücher gequält und unzählige Stunden geübt. Deine Aufgaben sind aber so einfach, dass Du das mit lernwillen in kurzer Zeit selbst hättest lösen können. Du warst einfach nur zu Faul und wolltest, dass Dir jemand die Arbeit abnimmt.