求解!职工信息管理系统中,小弟我的文件操作出现有关问题,第九项功能无法实现,麻烦帮忙看下有关文件的部分
求解!职工信息管理系统中,我的文件操作出现问题,第九项功能无法实现,麻烦帮忙看下有关文件的部分
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
//职工信息结构体
struct employee_Info
{
char num;
char name[20];
char sex[20];
int age;
char xueli[30];
int wage;
char tel[20];
};
typedef struct employee_Info EMP;
//链表结构体节点
struct message_Info
{
EMP employee_data;
struct message_Info *next;
};
typedef struct message_Info MES;
//录入数据模块
void Creat_linklist (MES *head)
{
MES *tail,*pnew;
int i,m;
printf("请输入需要创建信息的职工人数:");
scanf("%d",&m);
tail=head;
printf("请输入职工信工信息:\n");
for (i=0;i<m;i++)
{
pnew=(MES*)malloc(sizeof(MES));
if(head==NULL)
{
printf("no enough memory!\n");
exit (0);
}
printf("请输入职工号:");
scanf("%d",&pnew->employee_data.num);
printf("请输入姓名:");
scanf("%s",&pnew->employee_data.name);
printf("请输入性别:");
scanf("%s",&pnew->employee_data.sex);
printf("请输入年龄:");
scanf("%d",&pnew->employee_data.age);
printf("请输入学历:");
scanf("%s",&pnew->employee_data.xueli);
printf("请输入工资:");
scanf("%d",&pnew->employee_data.wage);
printf("请输入电话:");
scanf("%s",&pnew->employee_data.tel);
pnew->next=NULL;
tail->next=pnew;
tail=pnew;
}
}
//浏览数据
void Display_Linklist(MES *head)
{
MES *p;
for(p=head->next;p!=NULL;p=p->next)
{
printf("职工号:%d\n",p->employee_data.num);
printf("姓名:%s\n",p->employee_data.name);
printf("性别:%s\n",p->employee_data.sex);
printf("年龄:%d\n",p->employee_data.age);
printf("学历:%s\n",p->employee_data.xueli);
printf("工资:%d\n",p->employee_data.wage);
printf("电话:%s\n",p->employee_data.tel);
}
printf("\n");
}
//删除数据
void Delete_Linklist (MES *head)
{
MES *p,*q;
int i,j;
printf("请输入你想要删除的职工号:");
scanf("%d",&i);
if(i==0)
return;
p=head;
for(j=1;j<i&&p->next!=NULL;j++)
p=p->next;
if(p->next==NULL)
{
printf("查无此职工号!");
exit(0);
}
q=p->next;
p->next=q->next;
free(q);
}
//添加数据
void Insert_Linklist (MES *head)
{
MES *p,*pnew;
p=head;
pnew=(MES*)malloc(sizeof(MES));
if(pnew==NULL)
{
printf("no enough memory!\n");
exit (0);
}
printf("请输入职工号:");
scanf("%d",&pnew->employee_data.num);
printf("请输入姓名:");
scanf("%s",&pnew->employee_data.name);
printf("请输入性别:");
scanf("%s",&pnew->employee_data.sex);
printf("请输入年龄:");
scanf("%d",&pnew->employee_data.age);
printf("请输入学历:");
scanf("%s",&pnew->employee_data.xueli);
printf("请输入工资:");
scanf("%d",&pnew->employee_data.wage);
printf("请输入电话:");
scanf("%s",&pnew->employee_data.tel);
pnew->next=NULL;
pnew->next=p->next;
p->next=pnew;
}
//修改数据
void Modify (MES *head)
{
MES *p;
int a;
printf("请输入你想修改的职工号:");
scanf("%d",&a);
for(p=head->next;p!=NULL;p=p->next)
{
if(p->employee_data.num==a)
{
printf("已找到职工信息:\n");
printf("原职工号:%d,现职工号:",p->employee_data.num);
scanf("%d",&p->employee_data.num);
printf("原职工姓名:%s,现职工姓名:",p->employee_data.name);
scanf("%s",&p->employee_data.name);
printf("原职性别:%s,现职性别:",p->employee_data.sex);
scanf("%s",&p->employee_data.sex);
printf("原职工年龄:%d,现职工年龄:",p->employee_data.age);
scanf("%d",&p->employee_data.age);
printf("原职工学历:%s,现职工学历:",p->employee_data.xueli);
scanf("%s",&p->employee_data.xueli);
printf("原职工工资:%d,现职工工资:",p->employee_data.wage);
scanf("%d",&p->employee_data.wage);
printf("原职工电话:%s,现职工电话:",p->employee_data.tel);
scanf("%s",&p->employee_data.tel);
}
if(p==NULL)
printf("对不起,您需要修改的信息不存在!");
}
}
//按工号查找数据
void Search_num (MES *head)
{
MES *p;
int a;
printf("请输入你要查询的职工号:");
scanf("%d",&a);
for(p=head->next;p!=NULL;p=p->next)
{
if(p->employee_data.num==a)
printf("已找到,其记录为:\n");
printf("工号:%d\n",p->employee_data.num);
printf("姓名:%s\n",p->employee_data.name);
printf("性别:%s\n",p->employee_data.sex);
printf("年龄:%d\n",p->employee_data.age);
printf("学历:%s\n",p->employee_data.xueli);
printf("工资:%d\n",p->employee_data.wage);
printf("电话:%s\n",p->employee_data.tel);
}
if(p==NULL)
printf("对不起,查无此人!");
}
//按姓名查找数据
void Search_name (MES *head)
{
MES *p;
char name[20];