Nhập Xuất DS Liên kết Đơn
Tiêu đề: Nhập Xuất DS Liên kết Đơn»Tiêu đề: Nhập Xuất DS Liên kết Đơn Code: #include "khaibao.h" void Nhap1SV(SINHVIEN &sv) { cout<<"Ma so sinh vien: "; cin.getline(sv.mssv,9); cout<<"Ho va ten: "; cin.getline(sv.hovaten,31); do{ cout<<"Gioi tinh (1_Nam ; 0_Nu): "; cin>>sv.gioitinh; if(sv.gioitinh!=0 && sv.gioitinh!=1) cout<<"Nhap khong hop le! 1_Nam, 0_Nu\n"; }while(sv.gioitinh!=0 && sv.gioitinh!=1); cin.ignore(); cout<<"Dia chi: "; cin.getline(sv.diachi,81); cout<<"Diem trung binh: "; cin>>sv.diemtrungbinh; cin.ignore(); } void Xuat1SV(SINHVIEN sv) { cout<<"\nMa so sinh vien: "<<sv.mssv; cout<<"\nHo va ten: "<<sv.hovaten; cout<<"\nGioi tinh: "; if(sv.gioitinh==0) cout<<" Nu"; else cout<<" Nam"; cout<<"\nDia chi: "<<sv.diachi; cout<<"\nDiem trung binh: "<<sv.diemtrungbinh<<endl; } void CreateEmptyList(LIST &l) { l.phead=l.ptail=NULL; } bool IsEmptyList(LIST l) { return((l.phead==NULL) && (l.ptail==NULL)); } NODE *CreateNode(SINHVIEN sv) { NODE *pnew; pnew=new NODE; if(pnew==NULL) { cout<<"Loi trong cap phat bo nho\n"; exit(0); } pnew->data=sv; pnew->pnext=NULL; return pnew; } void AddHead(LIST &l, NODE *pnew) { if(l.phead==NULL) l.phead=l.ptail=pnew; else { pnew->pnext=l.phead; l.phead=pnew; } } void AddTail(LIST &l, NODE *pnew) { if(l.ptail==NULL) { l.ptail=l.phead=pnew; } else { l.ptail->pnext=pnew; l.ptail=pnew; } } void NhapDS(LIST &l,int n) { for(int i=0;i<n;i++) { SINHVIEN a; cout<<"Nhap sv thu "<<i<<"\n"; Nhap1SV(a); AddTail(l,CreateNode(a)); } } void XuatDS(LIST l) { NODE *p=l.phead; while(p!=NULL) { Xuat1SV(p->data); p=p->pnext; } } NODE *TimMaSV(LIST l, char masv[]) { NODE *p=l.phead; while(p!=NULL) { if(strcmp(p->data.mssv,masv)==0) return p; p=p->pnext; } return NULL; } NODE *TimPre(LIST l, NODE *pcur) { if(pcur==l.phead||pcur==NULL) return NULL; NODE *p=l.phead; while(p->pnext!=NULL) { if(p->pnext==pcur) return p; p=p->pnext; } return NULL; } void XoaDau(LIST &l) { NODE *pdel=l.phead; l.phead=l.phead->pnext; delete pdel; } void XoaCuoi(LIST &l) { NODE *pdel=l.ptail; l.ptail=TimPre(l,l.ptail); l.ptail->pnext=NULL; delete pdel; } void XoaNode(LIST &l,NODE *pdel) { if(pdel==l.phead) XoaDau(l); else { if(pdel==l.ptail) XoaCuoi(l); else { NODE *pre=TimPre(l,pdel); pre->pnext=pdel->pnext; delete pdel; } } } void XoaSV(LIST &l) { char mssv[9]; cout<<"Nhap ma so sinh vien can xoa: "; cin.getline(mssv,9); NODE *pdel=TimMaSV(l,mssv); if(pdel==NULL) cout<<"Khong tim thay mssv can xoa\n"; else XoaNode(l,pdel); } void HoanVi(SINHVIEN &a, SINHVIEN &b) { SINHVIEN tam=a; a=b; b=tam; } void SapXepTangTB(LIST &l) { NODE *p=l.phead; while(p->pnext!=NULL) { NODE *k=p->pnext; while(k!=NULL) { if((p->data.diemtrungbinh)>(k->data.diemtrungbinh)) HoanVi(p->data,k->data); k=k->pnext; } p=p->pnext; } } void TrungBinhLonHon5(LIST l) { NODE *p=l.phead; while(p!=NULL) { if(p->data.diemtrungbinh>5) Xuat1SV(p->data); p=p->pnext; } } int DemNam(LIST l) { int d=0; NODE *p=l.phead; while(p!=NULL) { if(p->data.gioitinh==1) d++; p=p->pnext; } return d; } void CapNhatDiem(LIST &l) { char maso[9]; cout<<"Nhap ma sinh vien can thay doi diem: "; cin.getline(maso,9); NODE *masv=TimMaSV(l, maso); if(masv==NULL) { cout<<"Khong tim thay sinh vien can cap nhat\n"; return; } int diem; cout<<"Nhap diem trung binh can thay doi: "; cin>>diem; masv->data.diemtrungbinh=diem; }
Bạn thích bài viết "Nhập Xuất DS Liên kết Đơn" của MrBCH không? Nếu bạn thích thì bấm . Còn không thích thì bấm
Trang 1 trong tổng số 1 trang
Trả Lời Nhanh Permissions in this forum: Bạn không có quyền trả lời bài viết
Đang tải dữ liệu...