Code Ctdl Va Gt Code Ctdl Va Gt

Câu a: Đề xuất cấu trúc dữ liệu hợp lý

struct sinhvien {

<tab>mssv char[10]; - <tab>hten char[20]; - <tab>dtb float; };

struct node {

<tab>sinhvien data; - <tab>node *next; };

typedef node *pnode;

Câu b: Hàm sắp xếp dãy sinh viên theo thứ tự điểm số tăng dần

void sap_xep(pnode &L)

{

<tab>pnode p=H, q;

<tab>for(p=H; p!=NULL; p=p->next)

<tab>{

<tab><tab>for(q=p->next; q!=NULL; q=q->next)

<tab><tab>{

<tab><tab><tab>if(p->hs.dtb > q->hs.dtb)

<tab><tab><tab>{

<tab><tab><tab><tab>pnode t = new node;

<tab><tab><tab><tab>strcpy(t->hs.hten,p->hs.hten);

<tab><tab><tab><tab>strcpy(t->hs.mssv,p->hs.mssv);

<tab><tab><tab><tab>t->hs.dtb = p->hs.dtb;

<tab><tab><tab><tab>strcpy(p->hs.hten,q->hs.hten);

<tab><tab><tab><tab>strcpy(p->hs.mssv,q->hs.mssv);

<tab><tab><tab><tab>p->hs.dtb = q->hs.dtb;

<tab><tab><tab><tab>strcpy(q->hs.hten, t->hs.hten);

<tab><tab><tab><tab>strcpy(q->hs.mssv, t->hs.mssv);

<tab><tab><tab><tab>q->hs.dtb = t->hs.dtb;

<tab><tab><tab>}

<tab><tab>}

<tab>}

<tab>while(p!=NULL)

<tab>{

<tab><tab>cout<<"

MSSV: "<<p->hs.mssv;

<tab><tab>cout<<"

Ho Ten: "<<p->hs.hten;

<tab><tab>cout<<"

DTB: "<<p->hs.dtb;

<tab><tab>p=p->next;

<tab>}

}

Câu c: Viết hàm cho biết thông tin về sinh viên có điểm cao nhất trong danh sách

void find_max(pnode H)

{

<tab>pnode p = H;

<tab>pnode max = new node;

<tab>max->hs.dtb = p->hs.dtb;

<tab>while(p!=NULL)

<tab>{

<tab><tab>if(max->hs.dtb < p->hs.dtb)

<tab><tab>{

<tab><tab><tab>strcpy(max->hs.hten, p->hs.hten);

<tab><tab><tab>strcpy(max->hs.mssv, p->hs.mssv);

<tab><tab><tab>max->hs.dtb = p->hs.dtb;

<tab><tab>}

<tab><tab>p=p->next;

<tab>}

<tab>cout<<"

hoc sinh co diem trung binh cao nhat la: ";

<tab>cout<<"

MSSV: "<<max->hs.mssv;

<tab>cout<<"

Ho Ten: "<<max->hs.hten;

<tab>cout<<"

Diem trung binh: "<<max->hs.dtb;

}

loading...