#include <stdio.h>
#include <stdlib.h>
struct workertype{
long workno;
char workname[20];
char worksex;
float workwages;
struct workertype *next;
};
void appendnewnode();
void listall();
struct workertype*head=NULL,*currnode,*newnode;
void main(){
char ch;
int flag=1;
while (flag)
{
printf("\n输入E新建一个数据");
printf("\n输入L列出所有:");
fflush(stdin);
scanf("%c",&ch);
switch(ch)
{
case ‘e’:
case ‘E’:appendnewnode();break;
case ‘l’:
case ‘L’:;listall();break;
default:flag=0;
}
}
}
void appendnewnode(){
char numstr[20];
newnode=(struct workertype*)malloc(sizeof(struct workertype));
if(head==NULL) head=newnode;
else {currnode=head;
while (currnode->next!=NULL)
currnode=currnode->next;
currnode->next=newnode;
}
currnode=newnode;
printf("\n输入员工号");
scanf("%d",&currnode->workno);
printf("\n输入员工姓名");
scanf("%s",currnode->workname);
printf("\n输入员工性别");
//getchar();
scanf("%c",currnode->worksex);
getchar();
printf("\n输入职工工资");
scanf("%f",&currnode->workwages);
currnode->next=NULL;
}
void listall()
{
int i=0;
if(head==NULL)
{
printf("\n 空列表\n");
return;
}
currnode=head;
do
{
printf("\n 数字:%d",++i);
printf("\n 职工号:%ld",currnode->workno);
printf("\n 职工姓名:%s",currnode->workname);
printf("\n 职工性别:%c",currnode->worksex);
printf("\n 职工工资:7.2f\n",currnode->workwages);
currnode=currnode->next;
}while(currnode!=NULL);
}