Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define LEN 10
- typedef struct {
- char title[31];
- char artist[31];
- long duration; } song_t;
- void clearbuffer(void)
- {
- while(getchar() != '\n');
- return;
- }
- void insertItem(song_t items[], long len)
- {
- int i=0;
- while(items[i].duration && i++<LEN);
- if(i==LEN)
- {
- printf("KEIN PLATZ FREI!\n");
- return;
- }
- printf("TITEL: ");
- scanf("%s", items[i].title);
- clearbuffer();
- printf("INTERPRET: ");
- scanf("%s", items[i].artist);
- clearbuffer();
- printf("LAENGE: ");
- scanf("%ld", &items[i].duration);
- clearbuffer();
- return;
- }
- void printItem(song_t *item)
- {
- printf("%s - %s - %ld\n",item->title, item->artist,
- item->duration);
- }
- void printList(song_t items[], long len)
- {
- int i;
- for(i=0;i<len;i++)
- if(items[i].duration)
- printItem(&items[i]);
- }
- void swap(song_t *a, song_t *b)
- {
- song_t t=*a;
- *a=*b;
- *b=t;
- return;
- }
- void sortListDsc(song_t items[], long len, long attr)
- {
- int i, j;
- for(i=len-1;i>0;i--)
- {
- for(j=0;j<i;j++)
- {
- switch(attr)
- {
- case 0:
- if(items[j].title[0]<items[j+1].title[0])
- swap(&items[j],&items[j+1]);
- break;
- case 1:
- if(items[j].artist[0]<items[j+1].artist[0])
- swap(&items[j],&items[j+1]);
- break;
- case 2:
- if(items[j].duration<items[j+1].duration)
- swap(&items[j],&items[j+1]);
- break;
- }
- }
- }
- return;
- }
- void sortListAsc(song_t items[], long len, long attr)
- {
- int i, j;
- for(i=1;i<len-1;i++)
- {
- for(j=0;j<i;j++)
- {
- switch(attr)
- {
- case 0:
- if(items[j].title[0]>items[j+1].title[0])
- swap(&items[j],&items[j+1]);
- break;
- case 1:
- if(items[j].artist[0]>items[j+1].artist[0])
- swap(&items[j],&items[j+1]);
- break;
- case 2:
- if(items[j].duration>items[j+1].duration)
- swap(&items[j],&items[j+1]);
- break;
- }
- }
- }
- return;
- }
- int main()
- {
- char menusel;
- song_t tracklist[LEN]=
- {
- { "DEMOTITLE_1","DEMOARTIST_1", 10 },
- { "DEMOTITLE_2","DEMOARTIST_2", 20 },
- { "DEMOTITLE_3","DEMOARTIST_3", 30 },
- { "DEMOTITLE_4","DEMOARTIST_4", 40 },
- { "DEMOTITLE_5","DEMOARTIST_5", 500 }
- };
- while(1)
- {
- printf("\n\n\n");
- printf("-1- ALLE DATEN AUSGEBEN\n");
- printf("-2- EINTRAG HINZUFUEGEN\n\n");
- printf("SORTIEREN AUFSTEIGEND:\n");
- printf("-3- NACH TITEL\n");
- printf("-4- NACH INTEPRET\n");
- printf("-5- NACH LAENGE\n\n");
- printf("SORTIEREN ABSTEIGEND:\n");
- printf("-6- NACH TITEL\n");
- printf("-7- NACH INTEPRET\n");
- printf("-8- NACH LAENGE\n\n");
- printf("-9- ENDE \n");
- scanf("%c",&menusel);
- clearbuffer();
- switch(menusel)
- {
- case '1':
- printList(tracklist,LEN);
- break;
- case '2':
- insertItem(tracklist,LEN);
- break;
- case '3':
- sortListAsc(tracklist,LEN,0);
- break;
- case '4':
- sortListAsc(tracklist,LEN,1);
- break;
- case '5':
- sortListAsc(tracklist,LEN,2);
- break;
- case '6':
- sortListDsc(tracklist,LEN,0);
- break;
- case '7':
- sortListDsc(tracklist,LEN,1);
- break;
- case '8':
- sortListDsc(tracklist,LEN,2);
- break;
- case '9':
- return 0;
- default:
- continue;
- }
- printf("\n*** EINGABETASTE DRUECKEN ***\n");
- getchar();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement