Yêu cầu bài toán: viết chương trình quản lý nhân sự (dùng cấu trúc). Thông tin của một người gồm họ tên, ngày sinh, bậc lương. chương trình quản lý gồm các chức năng nhập, xuất thông tin nhân sự, sắp xếp tăng dần theo năm sinh, tìm kiếm 1 nhân viên theo họ tên. Mã: //Khai bao thu vien #include<stdio.h> #include<conio.h> #include<string.h> //Khai bao cau truc struct date { int ng,th,nm; }; typedef struct { char ht[40]; struct date ns; float bl; }person; //Khai bao nguyen mau ham void vao(person *p); void in(person p); void hv(person *p1,person *p2); void sapxep(person *p,int n); person tim(char *ht,person h[],int n); person *ptim(char *ht,person h[],int n); //Ham void vao(person *p) { person tg; float bl; fflush(stdin); printf("\nHo ten: "); gets(tg.ht); printf("Ngay sinh: "); scanf("%d/%d/%d",&tg.ns.ng,&tg.ns.th,&tg.ns.nm); printf("Bac luong: "); scanf("%f",&bl); tg.bl=bl; *p=tg; } void in(person p) { printf("Ho ten: %s ",p.ht); printf("Ngay sinh: %2d/%2d/%4d ",p.ns.ng,p.ns.th,p.ns.nm); printf("Bac luong: %.0f\n",p.bl); } void hv(person *p1,person *p2) { person tg; tg=*p1; *p1=*p2; *p2=tg; } void sapxep(person *p,int n) { for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) if(p[i].ns.nm>p[j].ns.nm) hv(&p[i],&p[j]); } person tim(char *ht,person h[],int n) { person tg; tg.ht[0]=0; tg.ns.ng=tg.ns.th=tg.ns.nm=0; tg.bl=0; for(int i=1;i<=n;i++) if(strcmp(ht,h[i].ht)==0) return(h[i]); return(tg); } person *ptim(char *ht,person h[],int n) { for(int i=1;i<=n;i++) if(strcmp(ht,h[i].ht)==0) return(&h[i]); return(NULL); } //Ham main void main() { clrscr(); char ht[40]; int n,i; person p[100],*p1; printf("Nhap so nguoi: "); scanf("%d",&n); printf("Nhap thong tin: "); for(i=1;i<=n;i++) vao(&p[i]); sapxep(p,n); printf("In thong tin: \n"); for(i=1;i<=n;i++) in(p[i]); //Su dung ham tim() while(1) { printf("Nhap ten can tim kiem (bam enter de ket thuc): "); fflush(stdin); gets(ht); if(ht[0]==0) break; if((tim(ht,p,n).ht[0]==0)) printf("\nKhong tim thay"); else in(tim(ht,p,n)); } //Su dung ham ptim while(1) { printf("\nNhap ten can tim kiem (bam enter de ket thuc): "); fflush(stdin); gets(ht); if(ht[0]==0) break; if((p1=ptim(ht,p,n))==NULL) printf("Khong tim thay"); else in(*p1); } getch(); }