读取文件source.txt中的5个职工信息并创建链表,编写程序实现新进员工的插入,离职员工的删除,并查找出名字叫”wang zi”的员工修改他的工作年限为10年。
source.txt中文件具体是什么样子的,不然读取不知道怎么解析出数据项啊
typedef struct _worker
{
char name[20];
char wid[20];
int years;
_worker *next;
}WORKER;
WORKER * head = NULL;
void read()
{
FILE *fp = fopen("sorce.txt","r");
if(fp == NULL)
return;
head = (WORKER*)malloc(sizeof(WORKER));
head->next = NULL;
WORKER *p = head;
char buf[100] = {0};
while(fgets(buf,100,fp) != NULL)
{
WORKER *q = (WORKER*)malloc(sizeof(WORKER));
sscanf("%s\t%s\t%d",q->wid,q->name,&q->years);
q->next = NULL;
p->next = q;
p = q;
}
fclose(fp);
}
void find(char *name)
{
if(head == NULL)
return;
WORKER *p = head->next;
while(p != NULL)
{
if(strcmp(p->name,name) == 0)
{
p->years = 10;
printf("修改完成\n");
return;
}
}
printf("查无此人\n");
}
void add()
{
printf("请输入新人工号、名字和工龄(用TAB键分隔):");
WORKER * q = (WORKER*)malloc(sizeof(WORKER));
q->next = NULL;
scanf("%s\t%s\t%d",q->wid,q->name,&q->years);
if(head == NULL)
{
head = q;
return;
}
WORKER *p = head;
while(p->next!=NULL)
p = p->next;
p->next = q;
}
void main()
{
read();
find("wang zi");
}
之前写个一个学生管理的,跟你这个就是结构体不一样,改改就行。https://blog.csdn.net/qfl_sdu/article/details/118326835?utm_source=app&app_version=4.11.0&code=app_1562916241&uLinkId=usr1mkqgl919blen