Guten Taag ich bins mal wieder und sitze an meiner Hausarbeit..-.-
die aufgabe
Schreiben Sie ein C-Programm, das
• eine Liste von Schuldnern (mit Name, Vorname, geliehenem Betrag und
vereinbartem Rückzahlungstermin) einlesen kann (die Länge der Liste kann
(bis zu einer Obergrenze von 100) vom Benutzer festgelegt werden),
• diese Liste wieder ausgeben kann,
• für einen vom Benutzer eingegebenen Zeitraum die Gesamtsumme der
Rückzahlungen ermitteln kann.
Dabei schreiben Sie jeweils eine eigene Funktion, d.h. eine Funktion zum Einlesen,
eine Funktion zum Ausgeben und eine Funktion zur Ermittlung der Rückzahlung in
einem bestimmten Zeitraum.
Rufen diese Funktionen in Hauptprogramm zum Test in folgender Reihenfolge auf:
• Liste einlesen
• Liste ausgeben
• Rückzahlungssumme für einen bestimmten Zeitraum ermitteln
Eine Menüsteuerung ist nicht erforderlich. Die Verwendung globaler Variablen ist
nicht zulässig.
Verwenden Sie folgende Datenstruktur
struct datum {
int tag;
int monat;
int jahr;
};
struct schuldner{
char name[50];
char vorname[50];
double summe;
struct datum faelligkeit;
};
struct schuldner liste[100]
Beispiel – Für die Eingabe:
Name: Rahn
Vorname: Helmut
Summe: 10
Rückzahlung Jahr: 2010
Rückzahlung Monat: 12
Rückzahlung Tag: 24
Name: Walter
Vorname: Fritz
Summe: 15
Rückzahlung Jahr: 2010
Rückzahlung Monat: 12
Rückzahlung Tag: 31
Name: Turek
Vorname: Toni
Summe: 8
Rückzahlung Jahr: 2011
Rückzahlung Monat: 01
Rückzahlung Tag: 01
Name: Morlock
Vorname: Max
Summe: 20
Rückzahlung Jahr: 2011
Rückzahlung Monat: 01
Rückzahlung Tag: 31
und den Zeitraum 25.12.2010 bis 06.01.2011 soll das Programm die
Rückzahlungssumme 23 berechnen.
und mein code
die aufgabe
Schreiben Sie ein C-Programm, das
• eine Liste von Schuldnern (mit Name, Vorname, geliehenem Betrag und
vereinbartem Rückzahlungstermin) einlesen kann (die Länge der Liste kann
(bis zu einer Obergrenze von 100) vom Benutzer festgelegt werden),
• diese Liste wieder ausgeben kann,
• für einen vom Benutzer eingegebenen Zeitraum die Gesamtsumme der
Rückzahlungen ermitteln kann.
Dabei schreiben Sie jeweils eine eigene Funktion, d.h. eine Funktion zum Einlesen,
eine Funktion zum Ausgeben und eine Funktion zur Ermittlung der Rückzahlung in
einem bestimmten Zeitraum.
Rufen diese Funktionen in Hauptprogramm zum Test in folgender Reihenfolge auf:
• Liste einlesen
• Liste ausgeben
• Rückzahlungssumme für einen bestimmten Zeitraum ermitteln
Eine Menüsteuerung ist nicht erforderlich. Die Verwendung globaler Variablen ist
nicht zulässig.
Verwenden Sie folgende Datenstruktur
struct datum {
int tag;
int monat;
int jahr;
};
struct schuldner{
char name[50];
char vorname[50];
double summe;
struct datum faelligkeit;
};
struct schuldner liste[100]
Beispiel – Für die Eingabe:
Name: Rahn
Vorname: Helmut
Summe: 10
Rückzahlung Jahr: 2010
Rückzahlung Monat: 12
Rückzahlung Tag: 24
Name: Walter
Vorname: Fritz
Summe: 15
Rückzahlung Jahr: 2010
Rückzahlung Monat: 12
Rückzahlung Tag: 31
Name: Turek
Vorname: Toni
Summe: 8
Rückzahlung Jahr: 2011
Rückzahlung Monat: 01
Rückzahlung Tag: 01
Name: Morlock
Vorname: Max
Summe: 20
Rückzahlung Jahr: 2011
Rückzahlung Monat: 01
Rückzahlung Tag: 31
und den Zeitraum 25.12.2010 bis 06.01.2011 soll das Programm die
Rückzahlungssumme 23 berechnen.
und mein code
Code:
#include <stdlib.h>
#include <stdio.h>
struct schuldner {
char name[60];
char vorname[60];
double summe;
struct datum faelligtkeit
};
struct datum {
int tag;
int monat;
int jahr;
}
struct listeneintrag {
struct listeneintrag *next;
struct schuldner inhalt;
struct datum inhalt;
};
void schuldnerAusgeben (struct schuldner einschuldner) {
printf("%s", einschuldner.name);
printf("%s", einschuldner.vorname);
printf("%d\n", einschuldner.summe);
}
struct schuldner schuldnerEingeben (void) {
struct schuldner einschuldner;
printf("Name:");fflush(stdin);fgets(einschuldner.name,60,stdin);
printf("Vorname:");fflush(stdin);fgets(einschuldner.vorname,60,stdin);
printf("Summe:");fflush(stdin);fgets(einschuldner.summe,100,stdin);
printf("Nr:");fflush(stdin);scanf("%i",&eineAdresse.nr);
return (einschuldner);
}
struct listeneintrag *adresseInListeEinfuegen (struct adresse neueAdresse, struct listeneintrag *liste) {
struct listeneintrag *neuerListeneintrag;
neuerListeneintrag = malloc(sizeof(struct listeneintrag));
neuerListeneintrag->next = liste;
neuerListeneintrag->inhalt = neueAdresse;
return neuerListeneintrag;
}
void listeAusgeben (struct listeneintrag *listenanfang) {
struct listeneintrag *aktuellerListeneintrag;
aktuellerListeneintrag = listenanfang;
while ( aktuellerListeneintrag != NULL )
{
adresseAusgeben(aktuellerListeneintrag->inhalt);
aktuellerListeneintrag = aktuellerListeneintrag->next;
}
}
int main (void){
struct listeneintrag *listenanfang = NULL;
int anzahlschuldner, indexschuldern;
struct schuldner einschuldner;
struct datum eindatum
printf("Bitte Schuldner eingeben: ?"); scanf("%i",&anzahlschuldner);fflush(stdin);
for (indexschuldner = 1; indexschuldner <= anzahlschuldner; indexschuldner ++) {
einschuldner = schuldner eingeben();
eindatum = datum eingeben ();
listenanfang = schuldnerInListeEinfuegen(einschuldner, listenanfang);
istenanfang = datumInListeEinfuegen(eindatum, listenanfang);
}
listeAusgeben(listenanfang);
}