学校人事管理系统c语言编写.docx
《学校人事管理系统c语言编写.docx》由会员分享,可在线阅读,更多相关《学校人事管理系统c语言编写.docx(19页珍藏版)》请在冰豆网上搜索。
![学校人事管理系统c语言编写.docx](https://file1.bdocx.com/fileroot1/2022-12/27/a374c9c2-0601-4ba7-a913-4fbd69ba49b3/a374c9c2-0601-4ba7-a913-4fbd69ba49b31.gif)
学校人事管理系统c语言编写
学校人事管理系统
注:
开始输入的管理员的姓名和学号是,xx2013
#include〈stdio。
h>
#include#includetypedefstructteacher{
charname[20];
charsex[20];
charbirth[20];
charpost[20];//职称
intage;
chartimein[20];//入校时间
}teac;
teactea[1000];
intcount=0,flag1=0;
charstr[20],Administrator[20]=”xx”,accounts[20]=”2013";
voidenter();//进入
voidinit();//初始化
voidscan();//查看
voidfind();//查找
voidchange();//修改
voidsum();//统计
voiddel();//删除
voidadd();//添加
voidrank();//排序
voidsave();//保存
voidcopy(teac*t1,teac*t2);//赋值
voidmain()
{
intm;
enter();
init();
while
(1)
{
system("cls");//清屏
printf(”\n\n*********学校人事管理系统*********”);
printf(”\n________________________________________________\n");
printf(”\n*1.查看职工信息表\n”);
printf("\n*2。
查找职工\n");
printf("\n*3.修改职工信息\n");
printf("\n*4。
统计同一类型职工的人数\n");
printf("\n*5。
删除某职工\n");
printf("\n*6。
添加职工\n");
printf(”\n*7。
按职工的某项信息排序\n");
printf(”\n*8。
保存\n”);
printf(”\n*0。
退出系统\n”);
printf("\n________________________________________________\n");
printf(”请输入你的选择:
”);
scanf(”%d”,&m);
switch(m)
{
case1:
system("cls”);
scan();
getchar();
getchar();
break;
case2:
system(”cls”);
find();
getchar();
getchar();
break;
case3:
system("cls”);
change();
getchar();
getchar();
break;
case4:
system("cls");
sum();
getchar();
getchar();
break;
case5:
system("cls");
del();
getchar();
getchar();
break;
case6:
system("cls");
add();
getchar();
getchar();
break;
case7:
system(”cls”);
rank();
getchar();
getchar();
break;
case8:
system("cls");
save();
getchar();
getchar();
break;
case0:
if(flag1)
{
printf(”职工信息已改动,是否保存?
(Y/N)");
if((getchar()=='Y')||(getchar()=='y'))
save();
}
exit
(1);
break;
default:
printf(”输入有误,请重新输入……”);
system(”cls”);
break;
}
}
}
voidenter()
{
inti,flag=0;
charstr1[20],str2[20];
printf("请输入管理员的名字和帐号:
");
scanf("%s%s”,str1,str2);
if((strcmp(str1,Administrator)!
=0)||(strcmp(accounts,str2)!
=0))
{
for(i=0;i<3;i++)
{
printf("用户名或帐号有误,还有%d次机会,请重新输入:
”,3—i);
scanf("%s%s",str1,str2);
if((strcmp(str1,Administrator)==0)||(strcmp(accounts,str2)==0))
return;
}
printf(”你的输入有问题,为本系统的安全,系统将自动退出,欢迎下次使用……\n");
exit(0);
}
}
voidinit()//程序初始化
{
FILE*fp;
inti;
fp=fopen(”职工信息表.txt”,”r");
if(fp==NULL)
{
printf("打开文件失败,请查找问题");
exit(0);
}
for(i=0;!
feof(fp);i++)
{
fscanf(fp,”%s%s%s%s%d%s\n”,tea[i].name,tea[i]。
sex,tea[i].birth,tea[i]。
post,&tea[i].age,tea[i]。
timein);
}
count=i;
}
voidscan()//浏览职工信息表
{
inti;
printf(”姓名性别出生日期职称年龄入校时间\n”);
for(i=0;i{
printf(”%d:
%s%s%s%s%d%s\n”,i+1,tea[i]。
name,tea[i].sex,tea[i].birth,tea[i].post,tea[i].age,tea[i]。
timein);
}
}
voidfind()//查找职工
{
inti,num=0;
printf(”请输入要查找的职工的名字:
");
scanf("%s”,str);
for(i=0;i{
if(strcmp(str,tea[i]。
name)==0)
{
num++;
if(num==1)
{
printf(”你要查找的职工的信息为:
\n”);
printf("姓名性别出生日期职称年龄入校时间\n”);
}
printf(”%d:
%s%s%s%s%d%s\n",num,tea[i]。
name,tea[i].sex,tea[i]。
birth,tea[i]。
post,tea[i]。
age,tea[i]。
timein);
}
}
if(num==0)
printf(”没有找到你要查找的职工或输入错误,请核对后再输入!
");
}
voidchange()
{
inti,j=0,x,nianling,arr[50];
printf("请输入要修改的职工的名字:
”);
scanf("%s",str);
for(i=0;i{
if(strcmp(str,tea[i].name)==0)
{
printf(”%d:
%s%s%s%s%d%s\n”,j+1,tea[i]。
name,tea[i].sex,tea[i]。
birth,tea[i]。
post,tea[i].age,tea[i]。
timein);
arr[j]=i;
j++;
}
}
if(j==0)
{
printf("没有你要查找的职工,请核对后再输入……”);
return;
}
elseif(j==1)
{
xg:
printf(”情输入要修改的选项:
\n1姓名\n2性别\n3出生日期\n4职称\n5年龄\n6入校时间\n7全部\n”);
printf(”请选择:
");
scanf(”%d",&x);
if(x==5)
{
printf(”请输入年龄:
");
scanf(”%d",&nianling);
tea[arr[j-1]]。
age=nianling;
}
elseif(x==7)
{
printf("请重新输入各项信息,输入顺序为:
\n”);
printf(”姓名性别出生日期职称年龄入校时间\n");
scanf(”%s%s%s%s%d%s”,tea[arr[j—1]].name,tea[arr[j-1]].sex,tea[arr[j-1]]。
birth,tea[arr[j-1]].post,&tea[arr[j—1]].age,tea[arr[j-1]]。
timein);
}
elseif(x<1||x>7)
{
printf(”输入有误,请重新操作……");
return;
}
else
{
printf(”请输入新的信息:
”);
scanf("%s",str);
switch(x)
{
case1:
strcpy(tea[arr[j—1]]。
name,str);
break;
case2:
strcpy(tea[arr[j-1]]。
sex,str);
break;
case3:
strcpy(tea[arr[j—1]].birth,str);
break;
case4:
strcpy(tea[arr[j-1]].post,str);
break;
case6:
strcpy(tea[arr[j—1]]。
timein,str);
break;
}
}
}
else
{
printf(”请选择要修改的职工的:
”);
scanf(”%d",&j);
gotoxg;
}
printf("修改成功……\n”);
flag1=1;
}
voidsum()//统计同一类型的职工的信息
{
inti,j,x,sum=0;
printf("\n1.性别2出生日期3职称4年龄5入校时间\n请输入统计的类型:
");
scanf(”%d",&x);
if(x〈1||x〉5)
{
printf(”输入有误,请重新操作……”);
return;
}
elseif(x==4)
{
printf("请输入需统计的年龄:
");
scanf("%d",&j);
for(i=0;i〈count;i++)
{
if(tea[i].age==j)
{
sum++;
if(sum==1)
{
printf(”统计结果为:
\n”);
printf("姓名性别出生日期职称年龄入校时间\n”);
}
printf(”%d:
%s%s%s%s%d%s\n",sum,tea[i].name,tea[i].sex,tea[i].birth,tea[i]。
post,tea[i].age,tea[i].timein);
}
}
}
elseif(x==5)
{
printf("请输入需统计的信息:
”);
scanf(”%s",&str);
for(i=0;i〈count;i++)
{
if(strcmp(tea[i].timein,str)==0)
{
sum++;
if(sum==1)
{
printf("统计结果为:
\n”);
printf("姓名性别出生日期职称年龄入校时间\n”);
}
printf("%d:
%s%s%s%s%d%s\n”,sum,tea[i]。
name,tea[i].sex,tea[i].birth,tea[i]。
post,tea[i].age,tea[i]。
timein);
}
}
}
else
{
printf(”请输入需统计的信息:
");
scanf(”%s",&str);
for(i=0;i{
if((strcmp(tea[i]。
sex,str)==0)||(strcmp(tea[i]。
birth,str)==0)||(strcmp(tea[i].post,str)==0))
{
sum++;
if(sum==1)
{
printf("统计结果为:
\n”);
printf(”姓名性别出生日期职称年龄入校时间\n");
}
printf("%d:
%s%s%s%s%d%s\n",sum,tea[i]。
name,tea[i].sex,tea[i]。
birth,tea[i]。
post,tea[i].age,tea[i]。
timein);
}
}
}
if(sum==0)
{
printf("没有找到有关信息或输入有误,请核对后在输入……");
return;
}
printf("总人数为:
%d\n",sum);
}
voiddel()//删除职工
{
inti,j=0,y,num=0,arr[50];
printf(”请输入要删除的教师的名字:
”);
scanf(”%s",str);
for(i=0;i{
if(strcmp(str,tea[i]。
name)==0)
{
arr[j]=i;
j++;
if(j〈=1)
{
printf("姓名性别出生日期职称年龄入校时间\n”);
}
printf("%d:
%s%s%s%s%d%s\n”,j,tea[i]。
name,tea[i].sex,tea[i]。
birth,tea[i].post,tea[i]。
age,tea[i].timein);
}
}
num=j;
if(j==0)
{
printf("没有你要查找的职工,请核对后再输入……”);
return;
}
elseif(j==1)
{
y=arr[0];
sc:
printf("请确认是否删除(Y/N)");
if((getchar()==’Y’)||(getchar()=='y’))
{
for(i=y;i{
strcpy(tea[i]。
name,tea[i+1]。
name);
strcpy(tea[i]。
sex,tea[i+1]。
sex);
strcpy(tea[i].birth,tea[i+1]。
birth);
strcpy(tea[i]。
post,tea[i+1]。
post);
strcpy(tea[i].timein,tea[i+1]。
timein);
tea[i].age=tea[i+1]。
age;
}
}
else
return;
}
else
{
printf(”请选择要删除的职工:
");
scanf(”%d”,&j);
if(j〈1||j〉num)
{
printf(”输入有误,请重新操作……");
return;
}
y=arr[j—1];
gotosc;
}
count--;
printf(”删除成功……”);
flag1=1;
}
voidadd()
{
printf(”请按如下格式输入需要增加的职工信息:
\n");
printf(”姓名性别出生日期职称年龄入校时间\n");
scanf("%s%s%s%s%d%s”,tea[count].name,tea[count]。
sex,tea[count].birth,tea[count]。
post,&tea[count].age,tea[count]。
timein);
count++;
printf(”添加成功……”);
flag1=1;
}
voidrank()//按某种顺序排序
{
inti,j,a,min=0;
teactea1[1000],tmp;
for(i=0;i〈count;i++)
{
copy(&tea1[i],&tea[i]);
}
printf(”\n1姓名\n2出生日期\n3年龄\n4入校时间\n");
printf("请输入需要排序的项目:
");
scanf("%d”,&a);
switch(a)
{
case1:
printf("\n________________________________________________\n”);
printf("排序结果为:
\n");
printf("姓名性别出生日期职称年龄入校时间\n”);
for(i=0;i〈count;i++)
{
min=i;
for(j=i+1;j〈count;j++)
{
if(strcmp(tea1[j]。
name,tea1[min].name)<0)
{
min=j;
}
}
printf("%d:
%s%s%s%s%d%s\n",i+1,tea1[min]。
name,tea1[min].sex,tea1[min]。
birth,tea1[min]。
post,tea1[min].age,tea1[min]。
timein);
copy(&tmp,&tea1[i]);
copy(&tea1[i],&tea1[min]);
copy(&tea1[min],&tmp);
}
break;
case2:
printf("\n________________________________________________\n”);
printf("排序结果为:
\n");
printf("姓名性别出生日期职称年龄入校时间\n”);
for(i=0;i〈count;i++)
{
min=i;
for(j=i+1;j{
if(strcmp(tea1[j].birth,tea1[min]。
birth)<0)
{
min=j;
}
}
printf("%d:
%s%s%s%s%d%s\n",i+1,tea1[min].name,tea1[min]。
sex,tea1[min].birth,tea1[min].post,tea1[min].age,tea1[min].timein);
copy(&tmp,&tea1[i]);
copy(&tea1[i],&tea1[min]);
copy(&tea1[min],&tmp);
}
break;
case3:
printf(”\n________________________________________________\n”);
printf(”排序结果为:
\n");
printf("姓名性别出生日期职称年龄入校时间\n”);
for(i=0;i{
min=i;
for(j=i+1;j〈count;j++)
{
if(tea1[j]。
ageage)
{
min=j;
}
}
printf(”%d:
%s%s%s%s%d%s\n”,i+1,tea1[min]。
name,tea1[min].sex,tea1[min]。
birth,tea1[min]。
post,tea1[min].age,tea1[min]。
timein);
copy(&tmp,&tea1[i]);
copy(&tea1[i],&tea1[min]);
cop