C语言编写人事管理系统

程序要求:

    • 添加功能:添加一个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址,家庭电话号码,部门,薪水,性别,职务
    • 删除功能:能够对一个职员的信息进行删除按姓名进行删除、
    • 删除全部职员信息:能够对于全部职员的信息进行删除
    • 显示功能:显示所有职员的主要信息包括姓名,身份证号码,工作证号,生日
    • 查找功能:根据你键入的职员姓名,显示其详细信息

 

参考一下:https://wenku.baidu.com/view/5dfc1dd8a58da0116c1749d0.html

如有帮助,望采纳。点击我回答右上角【采纳】按钮。

参考

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 300
struct date
{ 
	char year[6]; 
	char month[4]; 
	char day[4];
};
struct st
{ 
	char num[13];
 	char name[15]; 
	int age;
 	char work[20]; 
	char sex[6]; 
	char add[30]; 
	char phone[10];
 	struct date hiredate; 
};
void lr()
{ 
	FILE *p; 
	struct st s1; 
	char ans='y'; 
	p=fopen("d:\\staff.dat","a"); 
	if(p==NULL) { 
		printf("file open error!\n");
 		exit(-1); 
	} 
	while(ans=='y'||ans=='Y') { 
		printf("请输入工号:"); 
		scanf("%s",s1.num); 
		printf("请输入姓名:"); 
		scanf("%s",s1.name); 
		printf("请输入年龄:"); 
		scanf("%d",&s1.age); 
		printf("请输入工作:"); 
		scanf("%s",s1.work); printf("请输入性别:"); 
		scanf("%s",s1.sex); 
		printf("请输入地址:"); 
		scanf("%s",s1.add); 
		printf("请输入电话:"); 
		scanf("%s",s1.phone); 
		printf("请输入入职时间(年月日):"); 
		scanf("%s%s%s",s1.hiredate.year,s1.hiredate.month,s1.hiredate.day); 
		fwrite(&s1,sizeof(struct st),1,p); 
		getchar(); 
		printf("继续输入吗?(y/n)"); 
		scanf("%c",&ans); 
	} 
	fclose(p);
}
void cx(){ 
	FILE *p; 
	struct st s[N]; 
	char num[13]; 
	char name[15]; 
	char phone[10]; 
	int i,w,c,n=0,m=1; 
	if(m>0) { 
		do{ 
			printf("\n"); 
			printf("************************\n"); 
			printf("******按1 工号查询******\n"); 
			printf("******按2 姓名查询******\n"); 
			printf("******按3 电话查询******\n"); 
			printf("******按0 退出系统******\n"); 
			printf("************************\n"); 
			printf("请输入你的选择:\n"); 
			scanf("%d",&c); 
			switch(c) { 
				case 1: 
					p=fopen("d:\\staff.dat","rb"); 
					if(p==NULL) { 
						printf("file open error.\n"); 
						exit(-1); 
					} 
					while(fread(&s[n],sizeof(struct st),1,p)==1) {
						 n++; 
					} 
					fclose(p); 
					
					printf("请输入工号:"); 
					scanf("%s",num); 
					printf("\n"); 
					for(i=0;i<n;i++) { 
						if(strcmp(num,s[i].num)==0){
							printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone); 
							break; 
						}
						if(i>=n) { 
							printf("不存在该工号!\n"); 
						}
					}
					system("pause"); 
					break; 
				case 2: 
					p=fopen("d:\\staff.dat","rb"); 
					if(p==NULL){ 
						printf("file open error.\n"); 
						exit(-1); 
					} 
					while(fread(&s[n],sizeof(struct st),n,p)==1) { 
						n++; 
					} 
					fclose(p); 
					printf("请输入姓名:"); 
					scanf("%s",name); 
					printf("\n"); 
					for(i=0;i<n;i++) { 
						if(i>=n) { 
							printf("不存在该姓名!\n"); 
						} else { 
							printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone); 
						} 
					} 
					p=fopen("d:\\staff.dat","w"); 
					fwrite(s,sizeof(struct st),n,p); 
					fclose(p); 
					system("pause"); 
					break;
 				case 3: 
 					p=fopen("d:\\staff.dat","rb"); 
 					if(p==NULL){ 
 						printf("file open error.\n"); 
 						exit(-1); 
 					} 
 					while(fread(&s[n],sizeof(struct st),1,p)==1) { 
 						n++; 
 					} 
					fclose(p); 
					printf("请输入电话:"); 
					scanf("%s",phone); 
					printf("\n"); 
					for(i=0;i<n;i++) { 
						if(i>=n) { 
							printf("不存在该电话!\n"); 
						} else { 
							printf("%-15s%-20s%-4s\n",s[i].num,s[i].name,s[i].phone); 
						} 
					}
 					p=fopen("d:\\staff.dat","w"); 
 					fwrite(s,sizeof(struct st),n,p); 
					fclose(p); 
					system("pause"); 
					break; 
			} 
		} 
		while(c!=0); 
	}
}
int main()
{ 
	int choice; 
	printf("\n"); 
	while(1) { 
	printf("*************************************************************\n"); 
	printf("**------------------欢迎进入企业员工管理系统---------------**\n"); 
	printf("**--------------------按1,录入员工信息--------------------**\n"); 
	printf("**--------------------按2,更新员工信息--------------------**\n");
	printf("**--------------------按3,查询员工信息--------------------**\n");
	printf("**--------------------按4,排列员工信息--------------------**\n");
	printf("**--------------------按5,统计员工信息--------------------**\n");
	printf("**--------------------按6,输出员工信息--------------------**\n"); 
	printf("**--------------------按0,退出系统------------------------**\n"); 
	printf("**----------------------------------制作者:3组--**\n"); 
	printf("*************************************************************\n");
	printf("请输入你的选项:"); 
	scanf("%d",&choice); 
	switch(choice) { 
		case 0:
			printf("运行结束,谢谢使用!\n");
			system("pause");
			return 0; 
		case 1:
			lr();
			break; 
		case 3:
			cx();break; 
			
		default:
			printf("输入错误,请重新选择!\n"); 
		} 
	} 
	system("pause"); 
	return 0;
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632