quan ly sinh vien bang C

Màu nền
Font chữ
Font size
Chiều cao dòng

 #include<iostream.h>

#include<stdlib.h>

#include<stdio.h>

#include<string.h>

typedef struct

{

    char hoten[30];

    char lop[10];

    int MSSV;

    int diemtb;

}sinhvien;

typedef struct node

{

    sinhvien infor;

    struct node *next;

}*NODEPTR;

NODEPTR    InsertTop(NODEPTR *phead,sinhvien x)

{

    NODEPTR p;

    p = new node;

    p->infor = x;

    if(*phead == NULL)

    {

        p->next = NULL;

        *phead = p;

        return p;

    }

    p->next = *phead;

    *phead = p;

    return p;

}

NODEPTR InsertBefore(NODEPTR *phead,sinhvien x,int n)

{

    NODEPTR p,q;

    q = new node;

    q->infor = x;

    if(*phead==NULL)

    {

        cout<<"

Vi tri khong hop le

";

    }

    int i=0;

    p=*phead;

    while(p!=NULL&&i<n);

    {

        i++;

        p = p->next;

    }

    if(p == NULL)

    {

    cout<<"

Vi tri khong hop le

";

    }

    q->next = p->next;

    p->next=q;

    return q;

}

NODEPTR InsertBottom(NODEPTR *phead,sinhvien x)

{

    NODEPTR q,p;

    q = new node;

    q->infor = x;

    if(*phead==NULL)

    {

        q->next =  NULL;

        *phead = q;

        return q;

    }

    p = *phead;

    while(p!=NULL)

        p = p->next;

    q->next=NULL;

    p->next = p;

    return q;

}

void DelTop(NODEPTR *phead)

{

    NODEPTR p;

    if(*phead == NULL)

    {

        cout<<"

Danh sach rong

";

    }

    p = *phead;

    p->next = *phead;

    cout<<"

Node vua xoa bo la :

";

    cout<<"Ho ten : "<<p->infor.hoten<<endl;

    cout<<"Lop : "<<p->infor.lop<<endl;

    cout<<"Ma so sinh vien : "<<p->infor.MSSV<<endl;

    cout<<"Diem trung binh : "<<p->infor.diemtb<<endl;

    delete p;

}

void DelBefore(NODEPTR *phead,int n)

{

    NODEPTR p,q;

    q = new node;

    if(*phead = NULL)

    {

        cout<<"

Danh sach rong

";

    }

    p=*phead;

    int i=0;

    while(p!=NULL&&i<n-1)

    {

        p = p->next;

        i++;

    }

    if(p == NULL)

    {

        cout<<"

Cuoi danh sach khong xoa duoc

";

    }

    q = p;

    p = q->next;

    q->next = p->next;

    cout<<"

Node vua xoa bo la :

";

    cout<<"Ho ten : "<<p->infor.hoten<<endl;

    cout<<"Lop : "<<p->infor.lop<<endl;

    cout<<"Ma so sinh vien : "<<p->infor.MSSV<<endl;

    cout<<"Diem trung binh : "<<p->infor.diemtb<<endl;

    delete p;

}

void DelBottom(NODEPTR *phead)

{

    NODEPTR p;

    if(*phead == NULL)

    {

        cout<<"

Danh sach rong

";

    }

     p = *phead;

     while(p!=NULL)

     p = p->next;

     p->next = NULL;

     cout<<"

Node vua xoa bo la :

";

    cout<<"Ho ten : "<<p->infor.hoten<<endl;

    cout<<"Lop : "<<p->infor.lop<<endl;

    cout<<"Ma so sinh vien : "<<p->infor.MSSV<<endl;

    cout<<"Diem trung binh : "<<p->infor.diemtb<<endl;

    delete p ;

}

void Duyet(NODEPTR *phead)

{

    NODEPTR p;

    if(*phead == NULL)

    {

        cout<<"

Danh sach rong

";

    }

    p = *phead;

    int i = 1;

    while(p!=NULL)

    {

    cout<<"Sinh vien thu : "<<i++<<endl;

    cout<<"Ho ten : "<<p->infor.hoten<<endl;

    cout<<"Lop : "<<p->infor.lop<<endl;

    cout<<"Ma so sinh vien : "<<p->infor.MSSV<<endl;

    cout<<"Diem trung binh : "<<p->infor.diemtb<<endl;

    p=p->next;

    }

}

void SearchNode(NODEPTR *phead,int mssv)

{

    NODEPTR p;

    if(*phead==NULL)

    cout<<"

Tim khong thay

";

    p = *phead;

    while(p!=NULL)

    {

        if(p->infor.MSSV == mssv)

        {

            cout<<"Ho ten : "<<p->infor.hoten<<endl;

            cout<<"Lop : "<<p->infor.lop<<endl;

            cout<<"Ma so sinh vien : "<<p->infor.MSSV<<endl;

            cout<<"Diem trung binh : "<<p->infor.diemtb<<endl;

        }

        p = p->next;

    }

}

void main()

{

    sinhvien sv;

    NODEPTR phead;

    int mssv,vitri,chon;

    do

    {

    cout<<"

\t\t***___CAC THAO TAC TREN DANH SACH LIEN KET DON___***

";

    cout<<"\t\t________________________

";

    cout<<"

\t 1.Them node vao dau danh sach ";

    cout<<"

\t 2.Them node vao cuoi danh sach ";

    cout<<"

\t 3.Them node vao giua danh sach ";

    cout<<"

\t 4.Loai bo node o dau danh sach ";

    cout<<"

\t 5.Loai bo node o cuoi danh sach ";

    cout<<"

\t 6.Loai bo node o giua danh sach ";

    cout<<"

\t 7.Duyet danh sach ";

    cout<<"

\t 8.Tim kiem danh sach ";

    cout<<"

\t 0.Thoat ";

    cout<<"

\t Chon (1->8 or 0 de thoat): ";

    cin>>chon;

    switch(chon)

    {

            case 1:

                  cout<<"

Ho ten sinh vien: ";

                gets(sv.hoten);

                cout<<"

Ma sinh vien: ";

                cin>>sv.MSSV;

                cout<<"

Lop : ";

                gets(sv.lop);

                cout<<"Diem Trung binh : ";

                cin>>sv.diemtb;

                InsertTop(&phead,sv);

                break;

        case 2:

                cout<<"

Ho ten sinh vien: ";

                gets(sv.hoten);

                cout<<"

Ma sinh vien: ";

                cin>>sv.MSSV;

                cout<<"

Lop : ";

                gets(sv.lop);

                cout<<"Diem Trung binh : ";

                cin>>sv.diemtb;

                InsertBottom(&phead,sv);

                break;

        case 3:

                cout<<"

Vi tri them: ";

                cin>>vitri;

                cout<<"

Ho ten sinh vien: ";

                gets(sv.hoten);

                cout<<"

Ma sinh vien: ";

                cin>>sv.MSSV;

                cout<<"

Lop : ";

                gets(sv.lop);

                cout<<"Diem Trung binh : ";

                cin>>sv.diemtb;

                InsertBefore(&phead,sv,vitri-1);

                break;

        case 4:

                DelTop(&phead);

                break;

        case 5:

                DelBottom(&phead);

                break;

        case 6:

                cout<<"

Vi tri loai bo: ";

                cin>>vitri;

                DelBefore(&phead,vitri-1);

                break;

        case 7:

                Duyet(&phead);

                break;

        case 8:

                cout<<"

Ma sinh vien can tim: ";

                cin>>mssv;

                SearchNode(&phead,mssv);

                break;

    }

    }

     while(chon!=0);

Bạn đang đọc truyện trên: Truyen2U.Pro