Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string.h>
- #include <stdio.h>
- #include <conio.h>
- void up_addlist(char *titel, char *autor, char *isbn);
- void up_show();
- void up_datensatz_eingeben();
- void up_delete_first();
- void up_delete_last();
- void up_delete_between();
- void up_delete();
- void up_insert();
- typedef struct m_buch
- {
- char titel[50+1];
- char autor[50+1];
- char isbn[25+1];
- struct m_buch *davor;
- struct m_buch *danach;
- }t_buch;
- t_buch *mom, *start = 0, *ende = 0;
- int main()
- {
- int auswahl;
- do
- {
- printf("Bitte Funktion ausw%chlen\n------------------------\n\n", 132);
- printf("1: Datens%ctze eingeben\n\n", 132);
- printf("2: Datens%ctze anzeigen\n\n", 132);
- printf("3: Datensatz vor einem anderen einf%cgen\n\n", 129);
- printf("4: Datensatz l%cschen\n\n", 148);
- printf("6: Abbrechen\n\n");
- scanf("%i", &auswahl);
- fflush(stdin);
- switch(auswahl)
- {
- case 1:
- up_datensatz_eingeben();
- break;
- case 2:
- up_show();
- break;
- case 3:
- up_insert();
- break;
- case 4:
- up_delete();
- break;
- case 6:
- return 0;
- }
- }while(1);
- up_show();
- getch();
- }
- void up_datensatz_eingeben()
- {
- char titel[50+1];
- char autor[50+1];
- char isbn[25+1];
- char bu;
- bu='y';
- while(bu == 'y')
- {
- printf("\n\nBitte geben Sie den Name des Buches ein: ");
- gets(titel);
- fflush(stdin);
- printf("Bitte geben Sie den Autor des Buches ein: ");
- gets(autor);
- fflush(stdin);
- printf("Bitte geben Sie die ISBN des Buches ein: ");
- gets(isbn);
- fflush(stdin);
- up_addlist(titel, autor, isbn);
- printf("Wollen Sie noch einen Datensatz eingeben? (y/n)");
- scanf("%c", &bu);
- fflush(stdin);
- }
- }
- void up_addlist(char *titel, char *autor, char *isbn)
- {
- mom = (t_buch *)malloc(sizeof(t_buch));
- strcpy(mom->titel, titel);
- strcpy(mom->autor, autor);
- strcpy(mom->isbn, isbn);
- if(start == 0){
- start = mom;
- mom->davor = 0;
- mom->danach = 0;
- }else{
- ende->danach = mom;
- mom->davor = ende;
- mom->danach = 0;
- }
- ende = mom;
- }
- void up_show()
- {
- if(start)
- {
- int i = 1;
- mom = start;
- while(mom)
- {
- printf("\n%i. Buch\n-------\n\n", i);
- printf("Titel: %s\n", mom->titel);
- printf("Autor: %s\n", mom->autor);
- printf("ISBN: %s\n", mom->isbn);
- i++;
- mom = mom->danach;
- }
- }else{
- printf("\nEs sind keine Datensaetze vorhanden\n\n");
- }
- getch();
- }
- void up_delete()
- {
- int auswahl;
- if(start)
- {
- // Auflistung aller vorhandenen Datensätze
- int i = 1;
- mom = start;
- while(mom)
- {
- printf("%i. Buch\t Titel: %s, Autor: %s, ISBN: %s\n", i, mom->titel, mom->autor, mom->isbn);
- i++;
- mom = mom->danach;
- }
- //Datensatz auswählen und eigentliches Löschen
- printf("Bitte w%chlen Sie einen Datensatz aus. (Geben Sie daf%cr die Nummer ein!)", 132, 129);
- scanf("%i", &auswahl);
- fflush(stdin);
- mom = start;
- int j;
- for(j=1;j<auswahl;j++)
- {
- mom = mom->danach;
- }
- if(mom->davor == 0)
- {
- up_delete_first();
- printf("\nDer erste Datensatz wurde geloescht\n\n");
- }
- else if(mom->danach == 0)
- {
- up_delete_last();
- printf("\nDer letzte Datensatz wurde geloescht\n\n");
- }
- else
- {
- up_delete_between();
- printf("\nDer %i. Datensatz wurde geloescht\n\n", auswahl);
- }
- }else{
- printf("\nEs sind keine Datensaetze vorhanden\n\n");
- }
- getch();
- }
- void up_delete_first()
- {
- if(mom->danach)
- {
- start = mom->danach;
- mom->danach->davor = 0;
- }else{
- start=0;
- }
- free(mom);
- }
- void up_delete_last()
- {
- if(mom->davor)
- {
- mom->davor->danach = 0;
- ende = mom->davor;
- }else{
- ende=0;
- }
- free(mom);
- }
- void up_delete_between()
- {
- mom->davor->danach = mom->danach;
- mom->danach->davor = mom->davor;
- free(mom);
- }
- void up_insert()
- {
- int auswahl;
- t_buch *insert;
- insert = (t_buch *)malloc(sizeof(t_buch));
- // Auflistung aller vorhandenen Datensätze
- int i = 1;
- mom = start;
- while(mom)
- {
- printf("%i. Buch\t Titel: %s, Autor: %s, ISBN: %s\n", i, mom->titel, mom->autor, mom->isbn);
- i++;
- mom = mom->danach;
- }
- //Datensatz auswählen vor dem eingefügt werden soll
- printf("Bitte w%chlen Sie einen Datensatz aus vor dem Sie den neuen Datensatz einf%cgen wollen. (Geben Sie daf%cr die Nummer ein!)", 132, 129, 129);
- scanf("%i", &auswahl);
- fflush(stdin);
- mom = start;
- int j;
- for(j=1;j<auswahl;j++)
- {
- mom = mom->danach;
- }
- printf("\n\nBitte geben Sie den Name des Buches ein: ");
- gets(insert->titel);
- fflush(stdin);
- printf("Bitte geben Sie den Autor des Buches ein: ");
- gets(insert->autor);
- fflush(stdin);
- printf("Bitte geben Sie die ISBN des Buches ein: ");
- gets(insert->isbn);
- fflush(stdin);
- if(mom->davor == 0)
- {
- insert->davor = 0;
- insert->danach = mom;
- start = insert;
- mom->davor = insert;
- }else{
- mom->davor->danach = insert;
- insert->davor = mom->davor;
- mom->davor = insert;
- insert->danach = mom;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement