#include
#include
#include
/*********************定义结构体**************************/
struct RuC_data
{
int nian,yue,ri;//生产日期:年,月,日
};
struct ZhiG_inf//定义一个类型名为SHANGP 的结构体类型
{
int member;//工号
char name[20];//名字
char xingb[20];//性别
double gongz;//工资
struct RuC_data data;//生产日期
}PRESON[1000];
/*********************使用函数的定义**************************/
int num=0;
void TianG();
void ZhanX();
void Display();
void Read_file();
void Write_file();
void XiuG();
void ShanC();
void ZhuiG();
void PaiX();
/**********************主菜单******************************/
void main()
{
while(1)
{
int option;
system("cls"); /****清除屏幕****/
printf("\t\t----------------------主菜单-----------------------\n");
printf("\t\t------------------职工信息加载------------------\n");
printf("\t\t------------------职工信息添加------------------\n");
printf("\t\t------------------职工信息查看------------------\n");
printf("\t\t------------------职工信息修改------------------\n");
printf("\t\t------------------职工信息查找删除------------------\n");
printf("\t\t------------------职工信息排序------------------\n");
printf("\t\t------------------职工信息追加------------------\n");
printf("\t\t------------------职工信息保存------------------\n");
printf("\t\t------------------退出程序----------------------\n");
printf("\t\t请选择: ");
scanf("%d",&option);
switch (option) //选择
{
case 1: Read_file();//读入文件
break;
case 2: TianG();//初始添加
break;
case 3: ZhanX();//查看职工信息
break;
case 4: XiuG();//修改职工信息
break;
case 5: ShanC();//查看和删除记录
break;
case 6: PaiX();//进行排序
break;
case 7: ZhuiG();//追加职工信息
break;
case 8: Write_file();//保存文件
break;
case 0: exit(0);
}
}
}
/*****************************添加记录**********************************/ void TianG()
{
int number,i,flag=0;
system("cls");
printf("\t\t--------------------职工信息添加-----------------------\n");
printf("\t\t请输本次录入记录个数:");
scanf("%d",&number);
for(i=0;i
{
printf("\t\t请输第%d职工的序号:",i+1);
scanf("%d",&PRESON[i].member);
getchar();
printf("\t\t职工姓名:\t");
scanf("%s",&PRESON[i].name);
getchar();
printf("\t\t职工性别:\t");
scanf("%s",&PRESON[i].xingb);
getchar();
printf("\t\t职工工资:\t");
scanf("%lf",&PRESON[i].gongz);
getchar();
printf("\t\t入厂日期:\t");
scanf("%d%d%d",&PRESON[i].data.nian,&PRESON[i].data.yue,&PRESON[i].data.ri); getchar();
if(PRESON[i].data.yue12) /***判断数据是否正确***/ {
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
if(PRESON[i].data.yue==4||PRESON[i].data.yue==6||PRESON[i].data.yue==9||PRESON[i].data.yue==11)
{
if(PRESON[i].data.ri30)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
}
if(PRESON[i].data.yue==1||PRESON[i].data.yue==3||PRESON[i].data.yue==5||PRESON[i].data.yue==7||PRESON[i].data.yue==8||PRESON[i].data.yue==10||PRESON[i].data.yue==12) {
if(PRESON[i].data.ri31)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
}
if(PRESON[i].data.yue==2)//判断2 月的天数
{
if((PRESON[i].data.nian%4==0)&&(PRESON[i].data.nian%100!=0)||(PRESON[i].data.nian%400==0))//判断是否是闰年
{
flag=1;
}
else flag=0;
if(flag==1)//闰年2月超过29天报错
{
if(PRESON[i].data.ri29)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
}
if(flag==0)//平年2 月超过28天报错
{
if(PRESON[i].data.ri28)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
}
}
}
printf("\t\t是否存储?(Y/N):");
if (getchar()=='y' || getchar()=='Y')
{
for(i=0;i
{
num++; /*增加一组数据***/
getchar();
}
}
}
/******************************查询菜单********************************/ void ZhanX()
{
int option;
printf("\t\t----------------------查询菜单---------------------\n");
printf("\t\t-查看所有记录:\n\t\t返回主菜单\n\t\t请选择: ");
scanf("%d",&option);
getchar();
switch (option)
{
case 1:
system("cls");
Display();ZhanX();
case 2:
main();
default:
ZhanX();
}
}
/******************************显示所有信息****************************/ void Display()
{
int i;
system("cls");
printf("\t\t职工序号 职工姓名 职工性别 职工工资 入厂日期\n\t\t---------------------------------------------------\n");
for (i=0;i
{
printf("\t\t%-11d %-11s %-11s %-11lf %d-%d-%d\n",PRESON[i].member,PRESON[i].name,PRESON[i].xingb,PRESON[i].gongz,PRESON[i].data.nian,PRESON[i].data.yue,PRESON[i].data.ri);
}
}
/*********************按照职工名称是否相同返回下标*************************/ int back_i(char name[])
{
int i;
for (i=0;i
if( strcmp(PRESON[i].name,name)==0) /***判断字符是否相同*****/ {
return i;
}
return -1;
}
/*****************************修改记录*****************************/
void XiuG()
{
char name[20];
int index,flag;
char x;
Display();
printf("\t\t---------------------修改职工信息------------------\n");
printf("\n\t\t请输入要修改的职工姓名:");
scanf("\t\t%s",name);
index=back_i(name); /*****调用(按照职工名称是否相同返回下标)函数*****/ if (index==-1)
printf("\n该职工不存在!\n");
else
{
printf("\t\t你要修改的信息为:\n");
printf("\n\t\t职工序号 职工姓名 职工性别 职工工资 入厂日期\n");
printf("\t\t%-11d %-11s %-11s %-11lf %d-%d-%d\n",PRESON[index].member,PRESON[index].name,PRESON[index].xingb,PRESON[index].gongz,PRESON[index].data.nian,PRESON[index].data.yue,PRESON[index].data.ri);
printf("\t\t---------------------请输入新值--------------------\n");
printf("\n\t\t请输入职工序号:");
scanf("%d",&PRESON[index].member);
printf("\n\t\t请输入职工性别:");
scanf("%s",&PRESON[index].xingb);
printf("\n\t\t请输入职工工资:");
scanf("%lf",&PRESON[index].gongz);
printf("\n\t\t请输入职工入厂期:");
scanf("%d%d%d",&PRESON[index].data.nian,&PRESON[index].data.yue,&PRESON[index].data.ri);
if(PRESON[index].data.yue12) /***判断数据是否正确***/
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
if(PRESON[index].data.yue==4||PRESON[index].data.yue==6||PRESON[index].data.yue==9||PRESON[index].data.yue==11)
{
if(PRESON[index].data.ri30)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
}
if(PRESON[index].data.yue==1||PRESON[index].data.yue==3||PRESON[index].data.yue==5||PRESON[index].data.yue==7||PRESON[index].data.yue==8||PRESON[index].data.yue==10||PRESON[index].data.yue==12)
{
if(PRESON[index].data.ri31)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
}
if(PRESON[index].data.yue==2)//判断2 月的天数
{
if((PRESON[index].data.nian%4==0)&&(PRESON[index].data.nian%100!=0)||(PRESON[index].data.nian%400==0))//判断是否是闰年
{
flag=1;
}
else flag=0;
if(flag==1)//闰年2月超过29天报错
{
if(PRESON[index].data.ri29)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
}
if(flag==0)//平年2 月超过28天报错
{
if(PRESON[index].data.ri28)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
}
}
getchar();
}
}
/****************************查找删除相关信息*****************************/ void ShanC()
{
int i;
char name[20];
int index;
Display();
printf("\n\t\t请输入要查找的职工姓名:");
scanf("\t\t%s",name);
index=back_i(name);
if (index==-1)
printf("\n该职工不存在!\n");
else
{
char p;
printf("\n\t\t你要查找的记录为:\n");
printf("\t\t---------------------------------------------");
printf("\n\t\t职工序号 职工姓名 职工性别 职工工资 入厂日期\n" );
printf("\t\t%-11d %-11s %-11s %-11lf %d-%d-%d\n",PRESON[index].member,PRESON[index].name,PRESON[index].xingb,PRESON[index].gongz,PRESON[index].data.nian,PRESON[index].data.yue,PRESON[index].data.ri);
printf("\n\t\t是否要删除? (y/n)");
scanf("\n%c",&p);
if (p=='Y'||p=='y')
{
for (i=index;i
{
PRESON[i]=PRESON[i+1]; /****将该条记录后面的数据前移***/ }
num--;
}
getchar();
}
}
/*******************************从文件读取记录*****************************/ void Read_file()
{
FILE *fp;
int i=0;
int flag=0;
char x;
if ((fp=fopen("c:\\zhigong.txt","rb"))==NULL)
{
printf("职工信息不存在,请按回车重新建立!\n");
return;
}
else
printf("\t\t\t\t职工信息已加载!\n");
while(fread(&PRESON[i],sizeof(struct ZhiG_inf),1,fp)!=NULL)
{
num++;
i++;
}
fclose(fp);
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
scanf("%c",&x);
}
/***************************保存文件******************************/ void Write_file()
{
FILE *fp;
int i;
char x;
if ((fp=fopen("c:\\zhigong.txt","wb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
for (i=0;i
if (fwrite(&PRESON[i],sizeof(struct ZhiG_inf),1,fp)!=1)
printf("写入文件错误!\n");
fclose(fp);
printf("\t\t\t\t职工信息保存成功!\n");
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
}
/**********************************排序*********************************/ void PaiX()
{
char x;
struct ZhiG_inf temp;
int i,j;
for(i=0;i
{
for(j=i+1;j
{
if(PRESON[i].gongz>PRESON[j].gongz) /*******按照工资进行排序******/
{
temp=PRESON[i];
PRESON[i]=PRESON[j];
PRESON[j]=temp;
}
}
}
printf("\t\t职工序号 职工姓名 职工性别 职工工资 入厂日期\n\t\t---------------------------------------------------\n");
for (i=0;i
{
printf("\t\t%-11d %-11s %-11s %-11lf %d-%d-%d\n",PRESON[i].member,PRESON[i].name,PRESON[i].xingb,PRESON[i].gongz,PRESON[i].data.nian,PRESON[i].data.yue,PRESON[i].data.ri);
}
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
scanf("%c",&x);
}
/********************************信息追加*****************************/ void ZhuiG()
{
int site,i;
Display();
printf("\t\t您想插入的位置:");
scanf("%d",&site);
for(i=num-1;i>=site-1;i--)
PRESON[i+1]=PRESON[i]; /*********先空出一个位置***********/ num++;
printf("\t\t请输追加职工的序号:");
scanf("%d",&PRESON[site-1].member);
getchar();
printf("\t\t职工姓名:\t");
scanf("%s",&PRESON[site-1].name);
getchar();
printf("\t\t职工性别:\t");
scanf("%s",&PRESON[site-1].xingb);
getchar();
printf("\t\t职工工资:\t");
scanf("%lf",&PRESON[site-1].gongz);
getchar();
printf("\t\t入厂日期:\t");
scanf("%d%d%d",&PRESON[site-1].data.nian,&PRESON[site-1].data.yue,&PRESON[site-1].data.ri);
getchar();
}
#include
#include
#include
/*********************定义结构体**************************/
struct RuC_data
{
int nian,yue,ri;//生产日期:年,月,日
};
struct ZhiG_inf//定义一个类型名为SHANGP 的结构体类型
{
int member;//工号
char name[20];//名字
char xingb[20];//性别
double gongz;//工资
struct RuC_data data;//生产日期
}PRESON[1000];
/*********************使用函数的定义**************************/
int num=0;
void TianG();
void ZhanX();
void Display();
void Read_file();
void Write_file();
void XiuG();
void ShanC();
void ZhuiG();
void PaiX();
/**********************主菜单******************************/
void main()
{
while(1)
{
int option;
system("cls"); /****清除屏幕****/
printf("\t\t----------------------主菜单-----------------------\n");
printf("\t\t------------------职工信息加载------------------\n");
printf("\t\t------------------职工信息添加------------------\n");
printf("\t\t------------------职工信息查看------------------\n");
printf("\t\t------------------职工信息修改------------------\n");
printf("\t\t------------------职工信息查找删除------------------\n");
printf("\t\t------------------职工信息排序------------------\n");
printf("\t\t------------------职工信息追加------------------\n");
printf("\t\t------------------职工信息保存------------------\n");
printf("\t\t------------------退出程序----------------------\n");
printf("\t\t请选择: ");
scanf("%d",&option);
switch (option) //选择
{
case 1: Read_file();//读入文件
break;
case 2: TianG();//初始添加
break;
case 3: ZhanX();//查看职工信息
break;
case 4: XiuG();//修改职工信息
break;
case 5: ShanC();//查看和删除记录
break;
case 6: PaiX();//进行排序
break;
case 7: ZhuiG();//追加职工信息
break;
case 8: Write_file();//保存文件
break;
case 0: exit(0);
}
}
}
/*****************************添加记录**********************************/ void TianG()
{
int number,i,flag=0;
system("cls");
printf("\t\t--------------------职工信息添加-----------------------\n");
printf("\t\t请输本次录入记录个数:");
scanf("%d",&number);
for(i=0;i
{
printf("\t\t请输第%d职工的序号:",i+1);
scanf("%d",&PRESON[i].member);
getchar();
printf("\t\t职工姓名:\t");
scanf("%s",&PRESON[i].name);
getchar();
printf("\t\t职工性别:\t");
scanf("%s",&PRESON[i].xingb);
getchar();
printf("\t\t职工工资:\t");
scanf("%lf",&PRESON[i].gongz);
getchar();
printf("\t\t入厂日期:\t");
scanf("%d%d%d",&PRESON[i].data.nian,&PRESON[i].data.yue,&PRESON[i].data.ri); getchar();
if(PRESON[i].data.yue12) /***判断数据是否正确***/ {
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
if(PRESON[i].data.yue==4||PRESON[i].data.yue==6||PRESON[i].data.yue==9||PRESON[i].data.yue==11)
{
if(PRESON[i].data.ri30)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
}
if(PRESON[i].data.yue==1||PRESON[i].data.yue==3||PRESON[i].data.yue==5||PRESON[i].data.yue==7||PRESON[i].data.yue==8||PRESON[i].data.yue==10||PRESON[i].data.yue==12) {
if(PRESON[i].data.ri31)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
}
if(PRESON[i].data.yue==2)//判断2 月的天数
{
if((PRESON[i].data.nian%4==0)&&(PRESON[i].data.nian%100!=0)||(PRESON[i].data.nian%400==0))//判断是否是闰年
{
flag=1;
}
else flag=0;
if(flag==1)//闰年2月超过29天报错
{
if(PRESON[i].data.ri29)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
}
if(flag==0)//平年2 月超过28天报错
{
if(PRESON[i].data.ri28)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
i--;//如果输入错误重新输入
}
}
}
}
printf("\t\t是否存储?(Y/N):");
if (getchar()=='y' || getchar()=='Y')
{
for(i=0;i
{
num++; /*增加一组数据***/
getchar();
}
}
}
/******************************查询菜单********************************/ void ZhanX()
{
int option;
printf("\t\t----------------------查询菜单---------------------\n");
printf("\t\t-查看所有记录:\n\t\t返回主菜单\n\t\t请选择: ");
scanf("%d",&option);
getchar();
switch (option)
{
case 1:
system("cls");
Display();ZhanX();
case 2:
main();
default:
ZhanX();
}
}
/******************************显示所有信息****************************/ void Display()
{
int i;
system("cls");
printf("\t\t职工序号 职工姓名 职工性别 职工工资 入厂日期\n\t\t---------------------------------------------------\n");
for (i=0;i
{
printf("\t\t%-11d %-11s %-11s %-11lf %d-%d-%d\n",PRESON[i].member,PRESON[i].name,PRESON[i].xingb,PRESON[i].gongz,PRESON[i].data.nian,PRESON[i].data.yue,PRESON[i].data.ri);
}
}
/*********************按照职工名称是否相同返回下标*************************/ int back_i(char name[])
{
int i;
for (i=0;i
if( strcmp(PRESON[i].name,name)==0) /***判断字符是否相同*****/ {
return i;
}
return -1;
}
/*****************************修改记录*****************************/
void XiuG()
{
char name[20];
int index,flag;
char x;
Display();
printf("\t\t---------------------修改职工信息------------------\n");
printf("\n\t\t请输入要修改的职工姓名:");
scanf("\t\t%s",name);
index=back_i(name); /*****调用(按照职工名称是否相同返回下标)函数*****/ if (index==-1)
printf("\n该职工不存在!\n");
else
{
printf("\t\t你要修改的信息为:\n");
printf("\n\t\t职工序号 职工姓名 职工性别 职工工资 入厂日期\n");
printf("\t\t%-11d %-11s %-11s %-11lf %d-%d-%d\n",PRESON[index].member,PRESON[index].name,PRESON[index].xingb,PRESON[index].gongz,PRESON[index].data.nian,PRESON[index].data.yue,PRESON[index].data.ri);
printf("\t\t---------------------请输入新值--------------------\n");
printf("\n\t\t请输入职工序号:");
scanf("%d",&PRESON[index].member);
printf("\n\t\t请输入职工性别:");
scanf("%s",&PRESON[index].xingb);
printf("\n\t\t请输入职工工资:");
scanf("%lf",&PRESON[index].gongz);
printf("\n\t\t请输入职工入厂期:");
scanf("%d%d%d",&PRESON[index].data.nian,&PRESON[index].data.yue,&PRESON[index].data.ri);
if(PRESON[index].data.yue12) /***判断数据是否正确***/
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
if(PRESON[index].data.yue==4||PRESON[index].data.yue==6||PRESON[index].data.yue==9||PRESON[index].data.yue==11)
{
if(PRESON[index].data.ri30)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
}
if(PRESON[index].data.yue==1||PRESON[index].data.yue==3||PRESON[index].data.yue==5||PRESON[index].data.yue==7||PRESON[index].data.yue==8||PRESON[index].data.yue==10||PRESON[index].data.yue==12)
{
if(PRESON[index].data.ri31)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
}
if(PRESON[index].data.yue==2)//判断2 月的天数
{
if((PRESON[index].data.nian%4==0)&&(PRESON[index].data.nian%100!=0)||(PRESON[index].data.nian%400==0))//判断是否是闰年
{
flag=1;
}
else flag=0;
if(flag==1)//闰年2月超过29天报错
{
if(PRESON[index].data.ri29)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
}
if(flag==0)//平年2 月超过28天报错
{
if(PRESON[index].data.ri28)
{
printf("\t\t很抱歉! 你输入的职工信息错误!(0
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
XiuG();//如果输入错误重新输入
}
}
}
getchar();
}
}
/****************************查找删除相关信息*****************************/ void ShanC()
{
int i;
char name[20];
int index;
Display();
printf("\n\t\t请输入要查找的职工姓名:");
scanf("\t\t%s",name);
index=back_i(name);
if (index==-1)
printf("\n该职工不存在!\n");
else
{
char p;
printf("\n\t\t你要查找的记录为:\n");
printf("\t\t---------------------------------------------");
printf("\n\t\t职工序号 职工姓名 职工性别 职工工资 入厂日期\n" );
printf("\t\t%-11d %-11s %-11s %-11lf %d-%d-%d\n",PRESON[index].member,PRESON[index].name,PRESON[index].xingb,PRESON[index].gongz,PRESON[index].data.nian,PRESON[index].data.yue,PRESON[index].data.ri);
printf("\n\t\t是否要删除? (y/n)");
scanf("\n%c",&p);
if (p=='Y'||p=='y')
{
for (i=index;i
{
PRESON[i]=PRESON[i+1]; /****将该条记录后面的数据前移***/ }
num--;
}
getchar();
}
}
/*******************************从文件读取记录*****************************/ void Read_file()
{
FILE *fp;
int i=0;
int flag=0;
char x;
if ((fp=fopen("c:\\zhigong.txt","rb"))==NULL)
{
printf("职工信息不存在,请按回车重新建立!\n");
return;
}
else
printf("\t\t\t\t职工信息已加载!\n");
while(fread(&PRESON[i],sizeof(struct ZhiG_inf),1,fp)!=NULL)
{
num++;
i++;
}
fclose(fp);
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
scanf("%c",&x);
}
/***************************保存文件******************************/ void Write_file()
{
FILE *fp;
int i;
char x;
if ((fp=fopen("c:\\zhigong.txt","wb"))==NULL)
{
printf("不能打开文件!\n");
return;
}
for (i=0;i
if (fwrite(&PRESON[i],sizeof(struct ZhiG_inf),1,fp)!=1)
printf("写入文件错误!\n");
fclose(fp);
printf("\t\t\t\t职工信息保存成功!\n");
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
}
/**********************************排序*********************************/ void PaiX()
{
char x;
struct ZhiG_inf temp;
int i,j;
for(i=0;i
{
for(j=i+1;j
{
if(PRESON[i].gongz>PRESON[j].gongz) /*******按照工资进行排序******/
{
temp=PRESON[i];
PRESON[i]=PRESON[j];
PRESON[j]=temp;
}
}
}
printf("\t\t职工序号 职工姓名 职工性别 职工工资 入厂日期\n\t\t---------------------------------------------------\n");
for (i=0;i
{
printf("\t\t%-11d %-11s %-11s %-11lf %d-%d-%d\n",PRESON[i].member,PRESON[i].name,PRESON[i].xingb,PRESON[i].gongz,PRESON[i].data.nian,PRESON[i].data.yue,PRESON[i].data.ri);
}
printf("\t\t输入任意字符继续:");
scanf("%c",&x);
scanf("%c",&x);
}
/********************************信息追加*****************************/ void ZhuiG()
{
int site,i;
Display();
printf("\t\t您想插入的位置:");
scanf("%d",&site);
for(i=num-1;i>=site-1;i--)
PRESON[i+1]=PRESON[i]; /*********先空出一个位置***********/ num++;
printf("\t\t请输追加职工的序号:");
scanf("%d",&PRESON[site-1].member);
getchar();
printf("\t\t职工姓名:\t");
scanf("%s",&PRESON[site-1].name);
getchar();
printf("\t\t职工性别:\t");
scanf("%s",&PRESON[site-1].xingb);
getchar();
printf("\t\t职工工资:\t");
scanf("%lf",&PRESON[site-1].gongz);
getchar();
printf("\t\t入厂日期:\t");
scanf("%d%d%d",&PRESON[site-1].data.nian,&PRESON[site-1].data.yue,&PRESON[site-1].data.ri);
getchar();
}