这是之前写的简单的教职工管理系统,分享一下,给初学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");
}