quan ly sinh vien bang C
#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: AzTruyen.Top