Quản Lý Sinh Viên Sử Dụng Danh Sách Liên Kết đôi - Dạy Nhau Học Trang chủ » Danh Sách Liên Kết Kép Quản Lý Sinh Viên » Quản Lý Sinh Viên Sử Dụng Danh Sách Liên Kết đôi - Dạy Nhau Học Có thể bạn quan tâm Danh Sách Liên Kết Là Gì Danh Sách Liên Kết Tiếng Anh Là Gì Danh Sách Liên Kết Vòng Danh Sách Liên Kết Vòng Java Danh Sách Liên Kết Vòng Là Gì Quản lý sinh viên sử dụng danh sách liên kết đôi programming c linked-list maip (mai) July 19, 2017, 2:33am #1 Mọi người giúp em với Đây là bài toán quản lý danh sách sinh viên,em mới hoàn thành được chức năng nhập dữ liệu vào danh sách , in ra danh sách ,tìm kiếm danh sách theo 1 mã lớp.Chức năng sắp xếp tên theo thứ tự tên ,và sắp xếp theo điểm trung bình em chưa là được .Mọi người có thể vào xem giúp em với,em cảm ơn. #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> typedef struct DNode { int masv; char malop[12]; char ht[30]; float diemk1; float diemk2; float diemtb; struct DNode *next,*back; }DNODE; typedef struct DList { DNODE *head,*tail; }DLIST; void Newlist(DLIST &L) { L.head=L.tail=NULL; } void addtail(DList &L,DNODE *p) { if(p==NULL) return; if(L.head==NULL) { p->next=p->back=NULL; L.head=p; L.tail=L.head; } else { p->back=L.tail; p->next=NULL; L.tail->next=p; L.tail=p; } } DNode* createNode(int mssv,char mlop[],char hoten[],float diem1, float diem2) { float diemtrungbinh = (diem1+diem2)/2; DNode *p = (DNODE *) malloc(sizeof(DNODE)); if(!p) return NULL; p->masv = mssv; strcpy(p->malop,mlop); strcpy(p->ht,hoten); p->diemk1 = diem1; p->diemk2 = diem2; p->diemtb = diemtrungbinh; p->next=p->back=NULL; return p; } void createList(DLIST &l, int n){ DNode *p; int mssv; char hoten[30],mlop[12]; float diem1, diem2; fflush(stdin); do { fflush(stdin); printf("\nNhap ma sinh vien: "); scanf("%d",&mssv); if(mssv != 0){ fflush(stdin); printf("\nNhap ma lop: "); gets(mlop); fflush(stdin); printf("\nNhap ho ten: "); gets(hoten); fflush(stdin); printf("\nNhap diem k1 ( < 10 ): "); scanf("%f", &diem1); printf("\nNhap diem k2 ( 10 ): "); scanf("%f", &diem2); p = createNode(mssv, mlop, hoten, diem1, diem2); if(!p) return; addtail(l,p); n--; } }while(n >= 0); } void in(DList l) { DNode *p; p=l.head; printf("MASV Malop Ho ten Diemk1 Diemk2 Diemtb\n"); while(p!=NULL) { printf("\n\n\n"); printf("%d",p->masv); printf("%10s",p->malop); printf("%20s",p->ht); printf("%10.2f",p->diemk1); printf("%10.2f",p->diemk2); printf("%10.2f",p->diemtb); p=p->next; } } void sxten(DList l) { DNode *p,*q; DNode *k ; p = l.head; while (p!=NULL) { for (q=p->next;q!=NULL;q=q->next) if((p->diemtb)<(q->diemtb)) { k = q; // k->masv = p->masv; // strcmp(k->malop,p->malop); // strcmp(k->ht , p->ht); // k->diemk1 = p->diemk1; // k->diemk2 = p->diemk2; // k->diemtb = p->diemtb; // // p->masv = q->masv; // strcmp(p->malop , q->malop); // strcmp(p->ht , q->ht); // p->diemk1 = q->diemk1; // p->diemk2 = q->diemk2; // p->diemtb = q->diemtb; // // q->masv = k->masv; // strcmp(q->malop , k->malop); // strcmp(q->ht ,k->ht); // q->diemk1 = k->diemk1; // q->diemk2 = k->diemk2; // q->diemtb = k->diemtb; } if(k->diemtb != p->diemtb) { } p = p->next; } DNode *m; m = l.head; printf("MASV Malop Ho ten Diemk1 Diemk2 Diemtb\n"); in(m); // while(m != NULL) // { // printf("\n\n\n"); // printf("%d",p->masv); // printf("%10s",p->malop); // printf("%20s",p->ht); // printf("%10.2f",p->diemk1); // printf("%10.2f",p->diemk2); // printf("%10.2f",p->diemtb); // p=p->next; // } } void kt(DList l) { char kt[10]; DNode *p; int found=0; p=l.head; fflush(stdin); printf("Nhap ma lop muon tim"); gets(kt); printf("MASV Malop Ho ten Diemk1 Diemk2 Diemtb\n"); while(p!=NULL) if (strcmp(p->malop,kt) == 0) { printf("\n\n\n"); printf("%d",p->masv); printf("%10s",p->malop); printf("%20s",p->ht); printf("%10.2f",p->diemk1); printf("%10.2f",p->diemk2); printf("%10.2f",p->diemtb); found++; p=p->next; } else p = p->next; if (!found) printf("\n\n\nKhong co!!!"); } int main() { DList a; Newlist(a); int n,x; printf("\nNhap so sv : "); scanf("%d",&n); createList(a, n-1); printf("\n +++++++++++++++++++++++++++++++++++++++++"); printf("\n + Cac thu tuc ban muon xu li +"); printf("\n +++++++++++++++++++++++++++++++++++++++++"); printf("\n +1.In toan bo danh sach +"); printf("\n +2.Danh sach sinh vien theo ma lop +"); printf("\n +3.Sap xep theo diem +"); while(1){ printf("\n +++++++++++++++++++++++++++++++++++++++++"); printf("\n +Hay nhap lua chon cua ban +"); printf("\n +++++++++++++++++++++++++++++++++++++++++\n"); scanf("%d",&x); switch(x) { case 1: in(a); break; case 2: kt(a); break; case 3: sxten(a); break; } } getch(); } thanhtrung2314 (Trung Nguyen) July 19, 2017, 2:27am #2 Bạn format code lại để dễ xem hơn bằng cách ```cpp Code của bạn ``` 1 Like maip (mai) July 19, 2017, 2:32am #3 Cám ơn bạn,mình vừa sửa lại rồi Phong_Ky_Vo (Tao Không Ngu.) July 19, 2017, 3:39am #4 Hi mai. void Newlist(DLIST &L) { L.head=L.tail=NULL; } Mình không hiểu & dùng làm gì ? 1 Like noname00 (HK boy) July 19, 2017, 5:23am #5 Khởi tạo DSLK mới bằng cách gán đầu và đuôi bằng NULL, size = 0. DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » Danh Sách Liên Kết Kép Quản Lý Sinh Viên Quản Lý Sinh Viên Sử Dụng Danh Sách Liên Kết đơn Quản Lý Sinh Viên Sử Dụng Danh Sách Liên Kết đôi - Code24h Quản Lí Sinh Viên Bằng Danh Sách Liên Kết Kép Quản Lý Sinh Viên Bài Tập Danh Sách Liên Kết đôi Sử Dụng C/C++ | Lập Trình Từ Đầu Bài Tập Danh Sách Liên Kết đơn Bằng C/C++ | Lập Trình Từ Đầu Lập Trình C: Bài 14 - Danh Sách Liên Kết Kép - Nguyễn Văn Quân [C++] Danh Sách Liên Kết Kép - Danh Sách Sinh Viên - YouTube Chi Tiết Bài Học Danh Sách Liên Kết Kép - Vimentor Bài Quản Lý Sinh Viên Bằng Danh Sách Liên Kết - Tapatalk Tin Học - Quản Lí Sinh Viên Bằng Danh Sách Liên Kết Kép Bài Tập Danh Sách Liên Kết Kép - 123doc [PDF] BÀI 5 DANH SÁCH LIÊN KẾT ĐÔI Mục Tiêu - EHOU