没什么大问题,就是结构体定义的时候没有定义好,在加上结构体不是很了解,结构体相互赋值是可以直接赋值的。
#include
#include
#include
struct EI //Employee information职工信息//
{
int Eid;
char EN[20];
char ES;
char EDOB[20]; //字符串
char EE[30];
char EJ[20]; //字符串
int EW;
char EA[30];
char ET[20];
}Ei[100];
void face(); //使用主界面函数//
void save(int a) //保存函数//
{
int i;
FILE *fp;
if((fp=fopen("ei.dat","wb"))==NULL)
{
printf("无法打开\n");
exit(0);
}
for(i=0;i
if(fwrite(&Ei[i],sizeof(struct EI),1,fp)!=1) printf("错误"); fclose(fp); } void Input() //录入函数// { int i,a; system("cls"); printf("输入要录入的人数:\n"); scanf("%d",&a); printf("按顺序输入职工基本信息.\n"); for(i=0;i
{ printf("输入职工号:"); scanf("%d",&Ei[i].Eid); printf("输入姓名:"); scanf("%s",&Ei[i].EN); getchar(); printf("输入性别:(W或者M)"); scanf("%c",&Ei[i].ES); printf("输入出生年月:(格式XXXX-XX)"); scanf("%s",&Ei[i].EDOB); printf("输入学历:"); scanf("%s",&Ei[i].EE); printf("输入职务:"); scanf("%s",&Ei[i].EJ); printf("输入工资:"); scanf("%d",&Ei[i].EW); printf("输入住址:"); scanf("%s",&Ei[i].EA); printf("输入电话:"); scanf("%s",&Ei[i].ET); } save(a); face(); } int load() //导入函数// { FILE*fp; int i=0; if((fp=fopen("ei.dat","rb"))==NULL) { printf ("无法打开\n"); exit(0); } else { do { fread(&Ei[i],sizeof(struct EI),1,fp); i++; } while(feof(fp)==0); } fclose(fp); return(i-1); } void All() //显示所有职工信息函数// { int i; int m=load(); printf("全部职员信息如下:\n"); printf("职工号\t姓名\t性别\t出生年月\n"); for(i=0;i printf("%d\t%s\t%c\t%s\n",Ei[i].Eid,Ei[i].EN,Ei[i].ES,Ei[i].EDOB); printf("学历\t职位\t工资\t住址\t电话\n"); for(i=0;i printf("%s\t%s\t%d\t%s\t%s\n",Ei[i].EE,Ei[i].EJ,Ei[i].EW,Ei[i].EA,Ei[i].ET); system("pause"); face(); } void IDfind() //职工号查询函数// { int n,i,a=load(); system("cls"); printf("输入员工工号:"); scanf("%d",&n); system("cls"); for(i=0;i
if(n=Ei[i].Eid) { printf("职工号\t姓名\t性别\t出生年月\n"); printf("%d\t%s\t%c\t%s\n",Ei[i].Eid,Ei[i].EN,Ei[i].ES,Ei[i].EDOB); printf("学历\t职位\t工资\t住址\t电话\n"); printf("%s\t%s\t%d\t%s\t%s\n",Ei[i].EE,Ei[i].EJ,Ei[i].EW,Ei[i].EA,Ei[i].ET); system("pause"); } face(); } void EIrepair() //修改函数// { FILE *fp; int i,n,a=load(); system("cls"); if((fp=fopen("ei.dat","wb+"))==NULL) { printf("无法打开\n"); exit(0); } printf("输入想修改的员工号:"); scanf("%d",&n); system("cls"); for(i=0;i
{ if(Ei[i].Eid==n) { printf("1.职工号2.姓名3.性别4.出生年5.学历6.职务7.工资8.住址9.电话\n"); printf("输入想修改的序号:"); scanf("%d",&n); system("cls"); switch(n) { case 1:printf("输入新数据:");scanf("%d",&Ei[i].Eid);break; case 2:printf("输入新数据:");scanf("%s",&Ei[i].EN);break; case 3:printf("输入新数据:");scanf("%s",&Ei[i].ES);break; case 4:printf("输入新数据:");scanf("%s",&Ei[i].EDOB);break; case 5:printf("输入新数据:");scanf("%s",&Ei[i].EE);break; case 6:printf("输入新数据:");scanf("%s",&Ei[i].EJ);break; case 7:printf("输入新数据:");scanf("%d",&Ei[i].EW);break; case 8:printf("输入新数据:");scanf("%s",&Ei[i].EA);break; case 9:printf("输入新数据:");scanf("%s",&Ei[i].ET);break; } } } save(a); system("pause"); face(); } void EIdelete() //删除函数// { FILE *fp; int i,n,p,a=load(); system("cls"); if((fp=fopen("ei.dat","wb+"))==NULL) { printf("无法打开\n"); exit(0); } printf("输入想删除的职工号:"); scanf("%d",&n); system("cls"); for(i=0;i
{ if(Ei[i].Eid==n) break; } if(i >= a) printf("未找到对应工号!\n"); else {