#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#define N 100
struct employee //职工信息基本情况
{
char num[13];//工号
char name[20];//姓名
char sex[4];//性别
char age[3];//年龄
char xueli[20];//学历
char salary[10];//工资
char addr[55];//住址
char phnum[13];//电话号码
}em[N];
int paixu=0;
void jiemian();
void input();
void display();
void pailie();
void change();
void del();
void search();
void main()
{
char key;
{
jiemian();
do
{
printf("\t\t请你选择操作类型:\n"

;
printf("==============\t\t==============\n"

;
printf("\t\t1 进入录入职工信息管理\n"

;
printf("\t\t2 进入输出职工信息管理\n"

;
printf("\t\t3 进入查询职工信息管理\n"

;
printf("\t\t4 进入修改职工信息管理\n"

;
printf("\t\t5 进入删除职工信息管理\n"

;
printf("\t\t6 按工号排列职工信息\n"

;
printf("\t\t0 退出系统\n");
printf("==============\t\t==============\n");
key=getch();
switch(key)
{
case'0':
{
printf("谢谢你的使用\n再见!");
exit(0);
}
case'1':
input();//输入职工信息
break;
case'2':
display();//显示职工信息
break;
case'3':
search();//查询职工信息
break;
case'4':
change();//修改职工信息
break;
case'5':del();//删除
break;
case'6':pailie();//排列
break;
printf("输入有错误,请按操作要求进行操作");
}
}while(1);
}
}
void jiemian()//进入时的界面
{
int i;
for(i=1;i<=27;i++)
printf("%");//作者
printf("制作人:111\n");
printf("联系地址:11\n");
printf("联系电话:11\n");
for(i=1;i<=27;i++)
printf("%");
}
void input()//输入职工信息
{
FILE *fp;
char ch;
printf("你现在的位置是:\n\t\t输入职工信息栏\n");
if((fp=fopen("employee.txt","w"))==NULL)
{
printf("无法打开该文件\n");
printf("程序将被终止");
exit(1);
}
for(;paixu<=N;paixu++)//要输入的选项
{
printf("请输入职工号:\n");//职工号
scanf("%s",em[paixu].num);
printf("请输入职工姓名:\n");//职工姓名
scanf("%s",em[paixu].name);
printf("请输入职工性别:\n");//性别
scanf("%s",em[paixu].sex);
printf("请输入职工年龄:\n");//年龄
scanf("%s",em[paixu].age);
printf("请输入职工学历:\n");//学历
scanf("%s",em[paixu].xueli);
printf("请输入职工工资:\n");//工资
scanf("%s",em[paixu].salary);
printf("请输入职工地址:\n");//地址
scanf("%s",em[paixu].addr);
printf("请输入职工电话号码:");//电话号码
scanf("%s",em[paixu].phnum);
fwrite(&em[paixu],sizeof(struct employee),1,fp);
printf("按n键退出,其他键继续\n");//是否继续输入职工信息
ch=getch();
if(ch=='N'||ch=='n')
{
fclose(fp);
break;
}
else
printf("你的位置是:\n\t\t输入职工信息栏 \n");
}
}
void display()//显示职工信息
{
FILE *fp;
int i,j;
if((fp=fopen("employee.txt","r"))==NULL)
{
printf("不能打开该文件!");
exit(1);
}
printf("所有的职工信息如下:\n");
for(i=0;fread(&em
,sizeof(struct employee),1,fp)!=0;i++)
{
for(j=1;j<=80;j++)
printf("*");
printf("工号\t\t姓名\t\t性别\t年龄\n");
printf("%-16s%-16s%-8s%s\n",em.num,em.name,em.sex,em.age);
printf("学历\t\t\t工资\t电话号码\t\t\n");
printf("%-24s%-8s%-16s\n",em.xueli,em.salary,em.phnum);
printf("家庭住址:\n");
printf("%s\n",em.addr);
for(j=1;j<=80;j++)
printf("*");
printf("\n");
}
printf("所有职工信息如上;");
}
void change()//更改
{
FILE *fp;
char sh;
int i,j;
char nname[20];
do
{
printf("请输入要修改职工的姓名:\n");
scanf("%s",nname);
if((fp=fopen("employee.txt","r+"))==NULL)
{
printf("不能够打开该文件!");
exit(1);
}
for(i=0;i<=paixu;i++)
{
if(!strcmp(nname,em.name))
{
printf("该职工的信息如下,请对照修改:\n");
for(j=1;j<=80;j++)
printf("*");
printf("工号\t\t姓名\t\t性别\t年龄\n");
printf("%-16s%-16s%-8s%s\n",em.num,em.name,em.sex,em.age);
printf("学历\t\t\t工资\t电话号码\t\t\n");
printf("%-24s%-8s%-16s\n",em.xueli,em.salary,em.phnum);
printf("家庭住址:\n");
printf("%s\n",em.addr);
for(j=1;j<=80;j++)
printf("*");
printf("请输入职工号:\n");//职工号
scanf("%s",em[paixu].num);
printf("请输入职工姓名:\n");//职工姓名
scanf("%s",em[paixu].name);
printf("请输入职工性别:\n");//性别
scanf("%s",em[paixu].sex);
printf("请输入职工年龄:\n");//年龄
scanf("%s",em[paixu].age);
printf("请输入职工学历:\n");//学历
scanf("%s",em[paixu].xueli);
printf("请输入职工工资:\n");//工资
scanf("%s",em[paixu].salary);
printf("请输入职工地址:\n");//地址
scanf("%s",em[paixu].addr);
printf("请输入职工电话号码:");//电话号码
scanf("%s",em[paixu].phnum);
fwrite(&em[paixu],sizeof(struct employee),1,fp);
fclose(fp);
}
else
printf("该职工不存在!\n");
}
printf("是否继续对其他职工进行修改\n按Y键继续,其他键退\n");
sh=getchar();
getchar();
}while(sh=='y'||sh=='Y');
fclose(fp);
}
void search()//查询
{
FILE *fp;
int i;
char nnum[20];
char ch;
do
{
printf("请输入要查询的职工的工号:\n");
scanf("%s",nnum);
getchar();
if((fp=fopen("employee.txt","r"))==NULL)
{
printf("不能打开该文件:\n");
exit(1);
}
for(i=0;i<=paixu;i++)
{
if(strcmp(em.num,nnum)==0)
{
printf("该职工信息如下:\n");
printf("工号\t\t姓名\t\t性别\t年龄\n");
printf("%-16s%-16s%-8s%s\n",em.num,em.name,em.sex,em.age);
printf("学历\t\t\t工资\t电话号码\t\t\n");
printf("%-24s%-8s%-16s\n",em.xueli,em.salary,em.phnum);
printf("家庭住址:\n");
printf("%s\n",em.addr);
break;
}
else
printf("职工不存在啊!\n");
}
printf("请按y键继续查询其他职工的信息,其他键结束\n");
ch=getchar();
getchar();
}while(ch=='y'||ch=='Y');
fclose(fp);
}
void del()//删除
{
FILE *fp;
int i,m;
long offset1;
char nnum[20];
char ch;
do
{
printf("gonghao: \n");
scanf("%s",nnum);
getchar();
if((fp=fopen("employee.txt","w+"))==NULL)
{
printf("buneng: \n");
exit(1);
}
for(i=0;i<=paixu;i++)
{
offset1=ftell(fp);
if(strcmp(em.num,nnum)==0)
{
printf("该职工信息如下: \n");
printf("工号\t\t姓名\t\t性别\t年龄\n");
printf("%-16s%-16s%-8s%s\n",em.num,em.name,em.sex,em.age);
printf("学历\t\t\t工资\t电话号码\t\t\n");
printf("%-24s%-8s%-16s\n",em.xueli,em.salary,em.phnum);
printf("家庭住址:\n");
printf("%s\n",em.addr);
printf("\n确定1");
scanf("%d",&m);
if(1)
{
fseek(fp,offset1,SEEK_SET);
fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n","","","","","","","","","");
}
}
else
printf("\nchabudao");
fclose(fp);
}
void pailie()//按工号排列
{
FILE *fp;
int i,j,m,k;
char num[50]
(fp=fopen("employee.txt","r"));
for(i=0;fread(&num,sizeof(struct employee),1,fp)!=0;i==);
sum=i;
for(j=1;j<i;j++);
{k=j;
for(m=j=1;m<=i;j++)
if(num[m]<num[k])k=m;
if(j!=k)
{x=num[j];num[j]=num[k];a[k]=x;}
}
printf("angonghaopailieshi:\n");
for(j=1;j<i+1;j++)
printf("%d",num[j]);
fclose(fp);
}
开头没什么错了就是后面删除和排列哪里出了点问题求各路神仙帮忙啊后天就要交了