Ví dụ : Chương trình qủan lý sinh viên gồm : thêm, bớt, duyệt danh sách, tìm kiếm phần tử#include #include#include< stdlib.h>#include#includevoid taomenu( )void themsv ( );void timkiem ( );void loaibo( );void danhsach( );void vitrihv (char st[ ], int d ); void lietke ( );
Ví dụ : Chương trình qủan lý sinh viên gồm : thêm, bớt, duyệt danh sách, tìm kiếm phần tử #include <stdio.h> #include<conio.h> #include< stdlib.h> #include<type.h> #include<string.h> void taomenu( ) void themsv ( ); void timkiem ( ); void loaibo( ); void danhsach( ); void vitrihv (char st[ ], int d ); void lietke ( ); #define sizesv size of (sinhvien) typedef(truct sinhvien) { char hoten[30] ; int diem ; struct sinhvien *tiep ; } sinhvien ; sinhvien *head; sinhvien *sv ; void main ( ) { clrscr ( ); gotoxy(1,12); printf (" chương trình quản lý danh sách sinh viên (DSLK)\n"); getch ( ) ; taomenu ( ); } void taomenu ( ) { char ch ; do { clrscr( ); printf(" thêm sinh viên tìm kiếm loại bỏ liệt kê Quit \n"); ch = toupper (getch()); switch (ch) { case "I' :themsv() ;break ; case ' I ' : timkiem( ) ; break ; case ' L; : loaibo( ) ;break ; case ' D' : lietke( ) ; break ; case ' Q ' : exit (1) ; break ; default : break ; } } while ( ch!= 'Q'); } void themsv ( ) { char tensv [30] ; int diem ; clrscr ( ); printf(" thêm sinh viên vào danh sách \n"); gotoxy(1,10) ; printf(" họ và tên : "); gets( tensv); printf("điểm :"); scanf("%d", &diem); vitrihv ( tensv, diem); } void vitrihv( char st [ ] ) int d ) { sinhvien *find = NULL , *next = NULL; int kq ; char ch ; v = NULL ; if ((sv = ( sinhvien*) malloc ( sizesv )) = = NULL) { printf(" không đủ bộ nhớ \n") ; getch( ) ; return } strcpy ( svă hoten, st); svă diem = d ; if ( head = = NULL) { head = sv ; headă tiep = NULL ; } else { find = head ; next = find ; while ((find!=NULL) &&((kq=strcmp(findă hoten, sv ă hoten))< 0) { next = find ; find = findătiep ;} if ( kq = = 0) { printf("sinh viên đã có trong danh sách . Ghi đè (Y/N) ? \n"); ch = getch( ); ch = toupper (ch); if (ch = 'N') { free(sv) ; return ; } else find --> diem = d ; free (sv) ; return ; } if (find = = head ) { sv ă tiep = head ; head = sv ; } else { sv ă tiep = find ; next ă tiep = sv ; } } } void timkiem( ) { char tensv[30] ; int kq ; clrscr ( ); printf(" tên sinh viên cần tìm :") ; gets(tensv); if((tensv !=" " ) && (head1 = NULL)) { sv = head ; while ((sv! = NULL) &&((kq = strcmp(svăhoten, tensv))< 0) sv = sv ă tiep ; if(kq = = 0); printf (" Họ và tên %s điểm %d", svăhoten, svă diem); else printf (" không có sinh viên %s \n", tensv); } getch( ) ; } void loaibo( ) { char tensv [30] ; int kq ; sinhvien *next ; clrscr ( ) printf ( " tên sinh viên cần loại bỏ :"); scanf("%s", tensv ); iF((tensv!=NULL) && (head!= NULL)) { sv = head ; next = sv ; while ((kq = strcmp (svă hoten, tensv )) < 0) { next = sv ; sv = sv ă tiep ; } if ( kq = = 0) { if ( sv = = head ) { head = head ă tiep ; free (sv) ; return ; } next ă tiep = sv ă tiep ; free(sv); } else { printf (" không có tên %s \n", tensv ); } } } void lietke( ) { clrscr( ) sv = head ; while ( sv! = NULL) { printf(" Họ và tên : %s \n" , svăhoten ); printf(" điểm : %d \n\n", svă diem); sv = svătiep ; } getch( ); }