You are on page 1of 3

#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <string.

h> //Dinh nghia kieu cau truc nhan vien typedef struct node { char *HoTen; float TongLuong; int NamSinh; struct node *pNext; } NODE_NhanVien; //Dinh nghia kieu cau truc danh sach nhan vien typedef struct list { NODE_NhanVien *pHead; NODE_NhanVien *pTail; } LIST; //Ham khoi tao danh sach void createList(LIST &L) { L.pHead=L.pTail=NULL; } //Ham kiem tra danh sach rong int IsEmpty(LIST L) { return(L.pHead==NULL); } //Ham tao ra mot Node moi (Nhan vien moi) NODE_NhanVien* createNode(char *_hoTen,float _tongLuong,int _namSinh) { NODE_NhanVien *p=new NODE_NhanVien; if(p==NULL) return NULL; p->HoTen=_hoTen; p->TongLuong=_tongLuong; p->NamSinh=_namSinh; p->pNext=NULL; return p; } //Ham them mot Node moi (Nhan vien moi) vao dau danh sach void AddHead(NODE_NhanVien *p,LIST &L) { if(IsEmpty(L)) { L.pHead=L.pTail=p; //Neu ds rong thi Head=Tail=p (ds chi co duy nhat 1 phan tu) } else { p->pNext=L.pHead; L.pHead=p; } } //Ham nha thong tin nhan vien void Input(LIST &List) { int t; char *ho_ten; float tong_luong; int nam_sinh; do{

printf("Nhan 1 de them nhan vien vao danh sach, nhan phim bat ki de thoat\n"); if(getch()==49) //Ma ASCII cua '1' la 49 { flushall(); printf("Ho ten: "); ho_ten=new char; gets(ho_ten); printf("Nam Sinh: "); scanf("%d",&nam_sinh); printf("Tong Luong: "); scanf("%f",&tong_luong); AddHead(createNode(ho_ten,tong_luong,nam_sinh),List); } else return; } while(1); } //Ham kiem tra dk nv co tuoi > 45 va tong luong >= 3tr, tra ve 1 neu thoa dk, nguoc lai la 0 int Check(NODE_NhanVien *p) { int t1=p->NamSinh; float t2=p->TongLuong; if((2011-t1>45)&&(t2>=3000000.0)) return 1; return 0; } //Ham dem so nv thoa dk tren int Count(LIST L) { if(IsEmpty(L)) return 0; //Neu ds rong, ham tra ve 0 khong can thuc hien j khac NODE_NhanVien *p=L.pHead; int t=0; while(p!=NULL) { if(Check(p)) t++; p=p->pNext; } return t; } //Ham in danh sach void PrintList(LIST L) { if(IsEmpty(L)) return; //Neu ds rong, khong can thuc hien j ca NODE_NhanVien *p=L.pHead; while(p!=NULL) { printf("\nHo Ten: %s\nNam Sinh: %d",p->HoTen,p->NamSinh); printf("\nLuong: %.0f",p->TongLuong); printf("\n--------------------------------------------------------------------------\n"); p=p->pNext; } } //Ham huy ds void RemoveList(LIST &L) { NODE_NhanVien *p; while(L.pHead!=NULL)

{ p=L.pHead; L.pHead=L.pHead->pNext; delete p; } L.pTail=NULL; } //CHUONG TRINH CHINH int main() { LIST OVE_list; //Tao danh sach nv cong ty OVE createList(OVE_list); //Khoi tao danh sach Input(OVE_list); printf("\nDanh sach ban vua nhap la: "); PrintList(OVE_list); printf("\nSo NV hon 45 tuoi va luong hon 3tr la: %d",Count(OVE_list)); RemoveList(OVE_list); getch(); return 0; }

You might also like