Code Bài toán quản lí sử dụng Stack C KHAI BAO DU LIEU 2 KHAI BAO CAU TRUC DU LIEU 2 KHAI BAO DANG STACK CUA DU LIEU 2 KHOI TAO STACK RONG 3 KIEM TRA STACK RONG 3 THEM PHAN TU VAO STACK 3 NHAP 1 NV 4 NHAP DANH SACH NHAN VIEN 5 IN 1 NV 5 IN DSNV 6 TIM NV CO MA X NAO DO 6 TIM VA IN TTNV CO LUONG CAO NHAT 7 TIM VA IN TTNV CO LUONG THAP NHAT 8 TIM VA IN TTNV CO SO CON > 3 9 SAP XEP NV THEO SO LUONG TANG DAN 9 SAP XEP NV THEO SO LUONG GIAM DAN 10 XOA 1 NHAN VIEN KHOI DANH SACH 11 IN PHAN TU DUNG DAU DANH SACH 12 DEM SO NHAN VIEN CO MUC LUONG TREN 4 TRIEU 13 DOI TEN NHAN VIEN CO MA X 14 TIM NV THEO TEN 15 TIM VA IN TTNV CO BANG CAP CAO HOC 16 TIM NHAN VIEN CHUA KET HON 17 THAY DOI THONG TIN NHAN VIEN CO MA X 17 IN THONG TIN NHAN VIEN DAT KET QUA TOT 19 TIM VA IN TTNV CO HE SO LUONG CAO NHAT 20 TIM VA IN TTNV CHUA CO CON 20
Trang 1M c L cụ ụ
Code Bài toán quản lí sử dụng Stack C
//KHAI BAO DU LIEU 2
//KHAI BAO CAU TRUC DU LIEU 2
//KHAI BAO DANG STACK CUA DU LIEU 2
//KHOI TAO STACK RONG 3
//KIEM TRA STACK RONG 3
//THEM PHAN TU VAO STACK 3
//NHAP 1 NV 4
//NHAP DANH SACH NHAN VIEN 5
//IN 1 NV 5
//IN DSNV 6
//TIM NV CO MA X NAO DO 6
//TIM VA IN TTNV CO LUONG CAO NHAT 7
//TIM VA IN TTNV CO LUONG THAP NHAT 8
//TIM VA IN TTNV CO SO CON > 3 9
//SAP XEP NV THEO SO LUONG TANG DAN 9
//SAP XEP NV THEO SO LUONG GIAM DAN 10
//XOA 1 NHAN VIEN KHOI DANH SACH 11
//IN PHAN TU DUNG DAU DANH SACH 12
//DEM SO NHAN VIEN CO MUC LUONG TREN 4 TRIEU 13
//DOI TEN NHAN VIEN CO MA X 14
//TIM NV THEO TEN 15
//TIM VA IN TTNV CO BANG CAP CAO HOC 16
//TIM NHAN VIEN CHUA KET HON 17
//THAY DOI THONG TIN NHAN VIEN CO MA X 17
//IN THONG TIN NHAN VIEN DAT KET QUA TOT 19
//TIM VA IN TTNV CO HE SO LUONG CAO NHAT 20
//TIM VA IN TTNV CHUA CO CON 20
#include<conio.h>
Trang 3//KHOI TAO STACK RONG
void Initstack(Stack &s)
{
s.top = NULL;
}
//KIEM TRA STACK RONG
int IsEmpty( Stack s)
//THEM PHAN TU VAO STACK
void Push( Stack &s,NV x)
Trang 4printf("Nhap ma nhan vien: ");scanf("%d",&x.MNV);
printf("Nhap ten nhan vien: ");fflush(stdin);gets(x.Hoten);
printf("Tinh trang hon nhan(m/s): ");fflush(stdin);gets(x.GD);
printf("So con: ");scanf("%d",&x.Con);
printf("Trinh do van hoa(C1,C2,C3,DH,CH): ");fflush(stdin);gets(x.TDVH);printf("Ket qua lam viec(TO,TB,KE): ");fflush(stdin);gets(x.KQ);
printf("Nhap he so luong(1->9): ");scanf("%f",&x.HSL);
Trang 5tg=pt+(x.HSL*1350000);
x.Luong=tg;
}
//NHAP DANH SACH NHAN VIEN
void NhapDSNV(Stack &s)
Trang 6}}
Trang 7}
for(p=s.top;p!=NULL;p=p->next)
{
if(Max==p->infor.Luong){
Trang 8}}
Min=p->infor.Luong;
}}
for(p=s.top;p!=NULL;p=p->next)
{
if(Min==p->infor.Luong){
InNV(p->infor);
}}
}
Trang 9d++;
}}
//SAP XEP NV THEO SO LUONG TANG DAN
void SXLUONGTANG(Stack &s)
Trang 10for(q=p->next;q!=NULL;q=q->next){
if(p->infor.Luong>q->infor.Luong){
tg=p->infor;
p->infor=q->infor;
q->infor=tg;
}}
}
InDSNV(s);
}
//SAP XEP NV THEO SO LUONG GIAM DAN
void SXLUONGGIAM(Stack &s)
if(p->infor.Luong<q->infor.Luong){
Trang 11p->infor=q->infor;q->infor=tg;
}}
Trang 12void XoanV(Stack &s)
pop(s);
}}
}
//IN PHAN TU DUNG DAU DANH SACH
void top( Stack s)
Trang 13}}
Trang 14Node *p;
for(p=s.top;p!=NULL;p=p->next)
{
if(strcmp(p->infor.TDVH,"DH")==0){
d++;
}}
//DOI TEN NHAN VIEN CO MA X
void DOITEN(Stack &s)
Trang 15if(p->infor.MNV==n){
printf("Nhap ten thay doi: ");fflush(stdin);gets(st);strcpy(p->infor.Hoten,st);
d++;
}}
Trang 16d++;
}}
InNV(p->infor);
}}
}
Trang 17//TIM NHAN VIEN CHUA KET HON
InNV(p->infor);
d++;
}}
//THAY DOI THONG TIN NHAN VIEN CO MA X
void THAYDOI(Stack &s)
Trang 18if(p->infor.MNV==n){
printf("1.Thay doi ho ten nhan vien");
printf("2.Thay doi tinh trang hon nhan nhan vien");
printf("3.Thay doi so con cua nhan vien");
printf("4.Thay doi trinh do van hoa nhan vien");
printf("5.Thay doi ket qua nhan vien");
printf("6.Thay doi he so luong nhan vien");
printf("Moi chon chuc nang: ");scanf("%d",&x);
switch(x){
case 1:printf("Moi nhap ho ten thay doi:
Trang 19if(p->infor.Con>=2){
pt=pt+(5*(p->infor.HSL*1350000))/100;}
if(strcmp(p->infor.TDVH,"CH")==0){
pt=pt+(10*(p->infor.HSL*1350000))/100;}
tg=pt+(p->infor.HSL*1350000);
p->infor.Luong=tg;
}}
InNV(p->infor);
}}
Trang 20Max= p->infor.HSL;
}}
for(p=s.top;p!=NULL;p=p->next)
{
if(p->infor.HSL==Max){
InNV(p->infor);
}}
Trang 21if(p->infor.Con==0){
InNV(p->infor);
}}
printf("\n2 In danh sach");
printf("\n3 Tim nhan vien co ma x");
printf("\n4 Tim va in thong tin nhan vien co luong cao nhat");
printf("\n5 Tim va in thong tin nhan vien co luong thap nhat");printf("\n6 Tim va in thong tin nhan vien co so con > 3");
printf("\n7 Sap xep nhan vien theo so luong tang dan");
printf("\n8 Sap xep nhan vien theo so luong giam dan");
Trang 22printf("\n9 Xoa mot nhan vien khoi danh sach");
printf("\n10 In ra phan tu dung dau danh sach");
printf("\n11 Dem so nhan vien co luong tren 4 trieu");
printf("\n12 Dem so nhan vien co bang cap Dai hoc");
printf("\n13 Doi ten NV co ma x");
printf("\n14 Tim nhan vien theo ten");
printf("\n15 Tim in thong tin nhan vien co bang cap cao hoc");
printf("\n16 Tim nhan vien chua ket hon");
printf("\n17 Thay doi thong tin nhan vien");
printf("\n18 In thong tin nhan vien co ket qua lam viec tot");
printf("\n19 Tim va in thong tin nhan vien co he so luong cao nhat");printf("\n20 Tim va in thong tin nhan vien chua co con");
printf("\nMoi ban chon chuc nang: ");scanf("%d",&n);
Trang 23case 11:DEMTREN4TRIEU(s);break;case 12:DEMNVBANGDH(s);break;case 13:DOITEN(s);break;
while(n!=0);
getch();
}