职工管理系统代码-C语言指针

这是一个简单的教职工管理系统,使用C语言编写,适用于初学者。系统包括职工信息的录入、查询、删除和修改等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是之前写的简单的教职工管理系统,分享一下,给初学C语言的小伙伴!

此外,提醒一下,N 表示职工的人数,也就是说,此系统必须先存入职工信息,才能查询职工信息!记得N一定不要写太大,不然自己会受不了的!

VC 6.0 或者 Dev c++都是可以运行的

#include<stdio.h>
#include<string.h>
#define N 1
	void input();					//输出
	void search();					//查询
	void dele();					//删除
	void modi();					//修改
	void search_name();				//按姓名查询
	void search_num();				//按职工号查询
	void search_edu();				//按职工学历查询
	void dele_name();				//按职工姓名删除
	void dele_num();				//按职工号删除
	void modi_name();				//按职工姓名修改
	void modiol_name();				//按职工姓名修改仅修改职工姓名
	void modiol_num();				//按职工姓名修改仅修改职工号
	void modiol_age();				//按职工姓名修改仅修改职工年龄
	void modiol_add();				//按职工姓名修改仅修改职工地址
	void modiol_tel();				//按职工姓名修改仅修改职工电话号码
	void modiol_edu();				//按职工姓名修改仅修改职工学历
	void modiol();					//按职工姓名修改全部修改
	void modi_num();				//按职工学号修改
	void modion_name();				//按职工学号修改仅修改职工姓名
	void modion_num();				//按职工学号修改仅修改职工号
	void modion_age();				//按职工学号修改仅修改职工年龄
	void modion_add();				//按职工学号修改仅修改职工地址
	void modion_tel();				//按职工学号修改仅修改职工电话号码
	void modion_edu();				//按职工学号修改仅修改职工学历
	void modion();					//按职工学号修改全部修改
	void output();					//输出

struct employee
{
	long num;				//职工号
	char name[10];			//职工姓名
	char sex[10];			//性别
	int age;				//年龄
	char edu[10];			//学历
	float sal;				//工资
	char add[10];			//地址
	long tel;				//电话号码
}emp[N];					//结构体
struct employee *p;			//构建指针


//++++++++++++++++++++++++++主菜单+++++++++++++++++++++++++++++//
void main()
{		
	int a;
	while(1)
	{
		printf("\t\t主菜单\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("++         1.职工信息录入!             ++\n");
		printf("++         2.职工信息查询!             ++\n");
		printf("++         3.职工信息删除!             ++\n");
		printf("++         4.职工信息修改!             ++\n");
		printf("++         5.职工信息浏览!             ++\n");
		printf("++         0.退出程序!                 ++\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("请输入你的选择:(0 ~ 5):");
		scanf("%d",&a);
		switch(a)
		{
		case 1:input();break;
		case 2:search();break;
		case 3:dele();break;
		case 4:modi();break;
		case 5:output();break;
		case 0:break;
		default:printf("输入错误!请重新输入:\n");
		}
		if(a==0) break;
	}
}


//++++++++++++++++++++++++++输入职工信息+++++++++++++++++++++++++++++//
void input()
{
	for (p=emp;p<emp+N;p++)
	{
		printf("请输入职工号:\n");
		scanf("%ld",&p->num);
		printf("请输入职工姓名:\n");
		scanf("%s",p->name);
		printf("请输入职工性别:\n");
		scanf("%s",p->sex);
		printf("请输入职工年龄:\n");
		scanf("%d",&p->age);
		printf("请输入职工学历:\n");
		scanf("%s",&p->edu);
		printf("请输入职工工资:\n");
		scanf("%f",&p->sal);
		printf("请输入职工住址:\n");
		scanf("%s",p->add);
		printf("请输入职工电话号码:\n");
		scanf("%ld",&p->tel);
	}
}

//++++++++++++++++++++++++++查询菜单+++++++++++++++++++++++++++++//
void search()
{
	int a;
	while(1)
	{
		printf("\t\t查询菜单\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("++         1.按职工姓名查询!           ++\n");
		printf("++         2.按职工号查询!             ++\n");
		printf("++         3.按职工学历查询!           ++\n");
		printf("++         0.返回主菜单!               ++\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("请输入你的选择:(0 ~ 3):");
		scanf("%d",&a);
		switch(a)
		{
		case 1:search_name();break;
		case 2:search_num();break;
		case 3:search_edu();break;
		case 0:break;
		default:printf("输入错误!请重新输入:");
		}
		if(a==0) break;		
	}
}


//++++++++++++++++++++++++++按职工姓名查询代码+++++++++++++++++++++++++++++//
void search_name()
{
	char temp_name[10];
	printf("请输入你所要查询的职工姓名:\n");
	scanf("%s",temp_name);
	for(p=emp;p<emp+N;p++)
		if(strcmp(temp_name,p->name)==0) break;
	if(p>=N+emp) printf("无此职工姓名!\n");
	else printf("\t职工号:%ld\t\t性别:%s\t\t年龄:%d\t\t学历:%s\t\t工资:%.1f\t\t住址:%s\t\t电话:%ld\n",p->num,p->sex,p->age,p->edu,p->sal,p->add,p->tel);
}


//++++++++++++++++++++++++++按职工号查询代码+++++++++++++++++++++++++++++//
void search_num()
{
	long temp_num;
	printf("请输入你所要查询的职工号:\n");
	scanf("%ld",&temp_num);
	for(p=emp;p<emp+N;p++)
		if(temp_num==p->num) break;
	if(p>=N+emp) printf("无此职工号!\n");
	else printf("\t职工姓名:%s\t\t性别:%s\t\t年龄:%d\t\t学历:%s\t\t工资:%.1f\t\t住址:%s\t\t电话:%ld\n",p->name,p->sex,p->age,p->edu,p->sal,p->add,p->tel);
}




//++++++++++++++++++++++++++按职工学历查询代码+++++++++++++++++++++++++++++//
void search_edu()
{
	char temp_edu[10];
	int temp_k=0;
	printf("请输入你所要查询的职工学历:\n");
	scanf("%s",temp_edu);
	for(p=emp;p<emp+N;p++)
		if(strcmp(temp_edu,p->edu)==0) 
		{	printf("\t职工号:%ld\t\t姓名:%s\t\t性别:%s\t\t年龄:%d\t\t工资:%.1f\t\t住址:%s\t\t电话:%ld\n",p->num,p->name,p->sex,p->age,p->sal,p->add,p->tel);
			temp_k++;
		}
	if(temp_k==0) printf("无此职工学历!\n");	
}






//++++++++++++++++++++++++++删除菜单+++++++++++++++++++++++++++++//
void dele()
{
	int a;
	while(1)
	{
		printf("\t\t删除菜单\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("++         1.按职工姓名删除!           ++\n");
		printf("++         2.按职工号删除!             ++\n");
		printf("++         0.返回主菜单!               ++\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("请输入你的选择:(0 ~ 2):");
		scanf("%d",&a);
		switch(a)
		{
		case 1:dele_name();break;
		case 2:dele_num();break;
		case 0:break;
		default:printf("输入错误!请重新输入:");
		}
		if(a==0) break;		
	}	
}




//++++++++++++++++++++++++++按职工姓名删除!+++++++++++++++++++++++++++++//
void dele_name()
{
	char temp_name[10];
	printf("请输入你所要删除的职工姓名:\n");
	scanf("%s",temp_name);
	for(p=emp;p<emp+N;p++)
		if(strcmp(temp_name,p->name)==0) break;
	if(p>=N+emp) printf("无此职工姓名!\n");
	else 
	{
		for(;p<N-1;p++)
		{
			strcpy(p->name,(p+1)->name);p->num=(p+1)->num;p->age=(p+1)->age;
			strcpy(p->edu,(p+1)->edu);p->sal=(p+1)->sal;p->tel=(p+1)->tel;
			strcpy(p->sex,(p+1)->sex);strcpy(p->add,(p+1)->add);
		}
		strcpy(p->name," ");p->num=0;p->age=0;strcpy(p->edu," ");p->sal=0.0;
		p->tel=0;strcpy(p->sex," ");strcpy(p->add," ");
		printf("删除成功!\n");
	}
}





//++++++++++++++++++++++++++按职工号删除!+++++++++++++++++++++++++++++//
void dele_num()
{
	long temp_num;
	printf("请输入你所要删除的职工号:\n");
	scanf("%ld",&temp_num);
	for(p=emp;p<emp+N;p++)
		if(p->num==temp_num) break;
	if(p>=N+emp) printf("无此职工号!\n");
	else 
	{
		for(;p<N-1;p++)
		{
			strcpy(p->name,(p+1)->name);p->num=(p+1)->num;p->age=(p+1)->age;
			strcpy(p->edu,(p+1)->edu);p->sal=(p+1)->sal;p->tel=(p+1)->tel;
			strcpy(p->sex,(p+1)->sex);strcpy(p->add,(p+1)->add);
		}
		strcpy(p->name," ");p->num=0;p->age=0;strcpy(p->edu," ");p->sal=0.0;
		p->tel=0;strcpy(p->sex," ");strcpy(p->add," ");
		printf("删除成功!\n");
	}
}











//++++++++++++++++++++++++++修改菜单+++++++++++++++++++++++++++++//
void modi()
{
	int a;
	while(1)
	{
		printf("\t\t修改菜单\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("++         1.按职工姓名修改!           ++\n");
		printf("++         2.按职工号修改!             ++\n");
		printf("++         0.返回主菜单!               ++\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("请输入你的选择:(0 ~ 2):");
		scanf("%d",&a);
		switch(a)
		{
		case 1:modi_name();break;
		case 2:modi_num();break;
		case 0:break;
		default:printf("输入错误!请重新输入:");
		}
		if(a==0) break;		
	}		
}


//++++++++++++++++++++++++++修改子菜单1+++++++++++++++++++++++++++++//

void modi_name()
{
	int a;
	while(1)
	{
		printf("\t\t修改姓名子菜单\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("++         1.仅修改姓名!               ++\n");
		printf("++         2.仅修改职工号!             ++\n");
		printf("++         3.仅修改年龄!               ++\n");
		printf("++         4.仅修改学历!               ++\n");
		printf("++         5.仅修改住址!               ++\n");
		printf("++         6.仅修改电话!               ++\n");
		printf("++         7.全部修改!                 ++\n");
		printf("++         0.返回修改菜单!             ++\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("请输入你的选择:(0 ~ 7):");
		scanf("%d",&a);
		switch(a)
		{
		case 1:modiol_name();break;
		case 2:modiol_num();break;
		case 3:modiol_age();break;
		case 4:modiol_edu();break;
		case 5:modiol_add();break;
		case 6:modiol_tel();break;
		case 7:modiol();break;
		case 0:break;
		default:printf("输入错误!请重新输入:");
		}
		if(a==0) break;		
	}	
}



//++++++++++++++++++++++++++仅修改姓名!+++++++++++++++++++++++++++++//
void modiol_name()
{
	char temp_name[10];
	printf("请输入你要修改的职工姓名:\n");
	scanf("%s",temp_name);
	for(p=emp;p<emp+N;p++)
		if(strcmp(p->name,temp_name)==0) break;
	if(p>=N+emp) printf("无此职工姓名!\n");
	else 
	{
		printf("请输入你所要修改的信息:");
		printf("\n姓名:"); scanf("%s",p->name);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++仅修改职工号!+++++++++++++++++++++++++++++//
void modiol_num()
{
	char temp_name[10];
	printf("请输入你要修改的职工姓名:\n");
	scanf("%s",temp_name);
	for(p=emp;p<emp+N;p++)
		if(strcmp(p->name,temp_name)==0) break;
	if(p>=N+emp) printf("无此职工姓名!\n");
	else 
	{
		printf("请输入你所要修改的信息:");
		printf("\n职工号:");scanf("%ld",&p->num);
		printf("\n修改成功!");
	}
}

//++++++++++++++++++++++++++仅修改年龄!+++++++++++++++++++++++++++++//
void modiol_age()
{
	char temp_name[10];
	printf("请输入你要修改的职工姓名:\n");
	scanf("%s",temp_name);
	for(p=emp;p<emp+N;p++)
		if(strcmp(p->name,temp_name)==0) break;
	if(p>=N+emp) printf("无此职工姓名!\n");
	else 
	{
		printf("请输入你所要修改的信息:");
		printf("\n年龄:");scanf("%d",&p->age);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++仅修改学历!+++++++++++++++++++++++++++++//
void modiol_edu()
{
	char temp_name[10];
	printf("请输入你要修改的职工姓名:\n");
	scanf("%s",temp_name);
	for(p=emp;p<emp+N;p++)
		if(strcmp(p->name,temp_name)==0) break;
	if(p>=N+emp) printf("无此职工姓名!\n");
	else 
	{
		printf("请输入你所要修改的信息:");
		printf("\n学历:");scanf("%s",p->edu);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++仅修改住址!+++++++++++++++++++++++++++++//
void modiol_add()
{
	char temp_name[10];
	printf("请输入你要修改的职工姓名:\n");
	scanf("%s",temp_name);
	for(p=emp;p<emp+N;p++)
		if(strcmp(p->name,temp_name)==0) break;
	if(p>=N+emp) printf("无此职工姓名!\n");
	else 
	{
		printf("请输入你所要修改的信息:");
		printf("\n住址:");scanf("%s",p->add);
		printf("\n修改成功!");
	}
}

//++++++++++++++++++++++++++仅修改电话!+++++++++++++++++++++++++++++//
void modiol_tel()
{
	char temp_name[10];
	printf("请输入你要修改的职工姓名:\n");
	scanf("%s",temp_name);
	for(p=emp;p<emp+N;p++)
		if(strcmp(p->name,temp_name)==0) break;
	if(p>=N+emp) printf("无此职工姓名!\n");
	else 
	{
		printf("请输入你所要修改的信息:");
		printf("\n电话:");scanf("%ld",p->tel);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++全部修改!+++++++++++++++++++++++++++++//

void modiol()
{
	char temp_name[10];
	printf("请输入你要修改的职工姓名:\n");
	scanf("%s",temp_name);
	for(p=emp;p<emp+N;p++)
		if(strcmp(p->name,temp_name)==0) break;
	if(p>=N+emp) printf("无此职工姓名!\n");
	else 
	{
		printf("请输入你所要修改的全部信息:\n");
		printf("姓名:"); scanf("%s",p->name);
		printf("\n职工号:");scanf("%ld",&p->num);
		printf("\n年龄:");scanf("%d",&p->age);
		printf("\n学历:");scanf("%s",p->edu);
		printf("\n住址:");scanf("%s",p->add);
		printf("\n电话:");scanf("%ld",p->tel);
		printf("\n修改成功!\n");
	}
}




//++++++++++++++++++++++++++修改子菜单2+++++++++++++++++++++++++++++//
void modi_num()
{
	int a;
	while(1)
	{
		printf("\t\t修改学号子菜单\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("++         1.仅修改姓名!               ++\n");
		printf("++         2.仅修改职工号!             ++\n");
		printf("++         3.仅修改年龄!               ++\n");
		printf("++         4.仅修改学历!               ++\n");
		printf("++         5.仅修改住址!               ++\n");
		printf("++         6.仅修改电话!               ++\n");
		printf("++         7.全部修改!                 ++\n");
		printf("++         0.返回修改菜单!             ++\n");
		printf("+++++++++++++++++++++++++++++++++++++++++\n");
		printf("请输入你的选择:(0 ~ 7):");
		scanf("%d",&a);
		switch(a)
		{
		case 1:modion_name();break;
		case 2:modion_num();break;
		case 3:modion_age();break;
		case 4:modion_edu();break;
		case 5:modion_add();break;
		case 6:modion_tel();break;
		case 7:modion();break;
		case 0:break;
		default:printf("输入错误!请重新输入:");
		}
		if(a==0) break;		
	}	
}

//++++++++++++++++++++++++++仅修改姓名!+++++++++++++++++++++++++++++//
void modion_name()
{
	long temp_num;
	printf("请输入你要修改的职工号:\n");
	scanf("%ld",&temp_num);
	for(p=emp;p<emp+N;p++)
	{
		if(p->num==temp_num) break;
	}
	if(p>=N+emp) printf("无此职工号!\n");
	else 
	{
		printf("请输入你所要修改的信息:\n");
		printf("姓名:"); scanf("%s",p->name);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++仅修改职工号!+++++++++++++++++++++++++++++//
void modion_num()
{
	long temp_num;
	printf("请输入你要修改的职工号:\n");
	scanf("%ld",&temp_num);
	for(p=emp;p<emp+N;p++)
	{
		if(p->num==temp_num) break;
	}
	if(p>=N+emp) printf("无此职工号!\n");
	else 
	{
		printf("请输入你所要修改的信息:\n");
		printf("\n职工号:");scanf("%ld",&p->num);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++仅修改年龄!+++++++++++++++++++++++++++++//
void modion_age()
{
	long temp_num;
	printf("请输入你要修改的职工号:\n");
	scanf("%ld",&temp_num);
	for(p=emp;p<emp+N;p++)
	{
		if(p->num==temp_num) break;
	}
	if(p>=N+emp) printf("无此职工号!\n");
	else 
	{
		printf("请输入你所要修改的信息:\n");
		printf("\n年龄:");scanf("%d",&p->age);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++仅修改学历!+++++++++++++++++++++++++++++//
void modion_edu()
{
	long temp_num;
	printf("请输入你要修改的职工号:\n");
	scanf("%ld",&temp_num);
	for(p=emp;p<emp+N;p++)
	{
		if(p->num==temp_num) break;
	}
	if(p>=N+emp) printf("无此职工号!\n");
	else 
	{
		printf("请输入你所要修改的信息:\n");
		printf("\n学历:");scanf("%s",p->edu);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++仅修改住址!+++++++++++++++++++++++++++++//
void modion_add()
{
	long temp_num;
	printf("请输入你要修改的职工号:\n");
	scanf("%ld",&temp_num);
	for(p=emp;p<emp+N;p++)
	{
		if(p->num==temp_num) break;
	}
	if(p>=N+emp) printf("无此职工号!\n");
	else 
	{
		printf("请输入你所要修改的信息:\n");
		printf("\n住址:");scanf("%s",p->add);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++仅修改电话!+++++++++++++++++++++++++++++//
void modion_tel()
{
	long temp_num;
	printf("请输入你要修改的职工号:\n");
	scanf("%ld",&temp_num);
	for(p=emp;p<emp+N;p++)
	{
		if(p->num==temp_num) break;
	}
	if(p>=N+emp) printf("无此职工号!\n");
	else 
	{
		printf("请输入你所要修改的信息:\n");
		printf("\n电话:");scanf("%ld",p->tel);
		printf("\n修改成功!");
	}
}


//++++++++++++++++++++++++++全部修改!+++++++++++++++++++++++++++++//
void modion()
{
	long temp_num;
	printf("请输入你要修改的职工号:\n");
	scanf("%ld",&temp_num);
	for(p=emp;p<emp+N;p++)
	{
		if(p->num==temp_num) break;
	}
	if(p>=N+emp) printf("无此职工号!\n");
	else 
	{
		printf("请输入你所要修改的全部信息:\n");
		printf("姓名:"); scanf("%s",p->name);
		printf("\n职工号:");scanf("%ld",&p->num);
		printf("\n年龄:");scanf("%d",&p->age);
		printf("\n学历:");scanf("%s",p->edu);
		printf("\n住址:");scanf("%s",p->add);
		printf("\n电话:");scanf("%ld",p->tel);
		printf("\n修改成功!");
	} 
}




//++++++++++++++++++++++++++输出程序+++++++++++++++++++++++++++++//
void output()
{
	int i,j,k;
	struct employee temp;
	for(i=0;i<N-1;i++)
	{
		k=i;for(j=i+1;j<N;j++) 
			if(emp[k].num>emp[j].num) k=j;
		{
			temp=emp[k];emp[i]=emp[k];emp[k]=temp;
		}
	}
	printf("职工号\t\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");
	for(p=emp;p<emp+N;p++)
		printf("%ld\t%s\t%s\t%d\t%s\t%.1f\t%s\t%ld\n",p->num,p->name,p->sex,p->age,p->edu,p->sal,p->add,p->tel);
	printf("\n");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值