#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 100
//结构体定义
typedef struct {
int number; //编号
char name[40]; //姓名
char sex[3];//性别
float salary; //工资
char department[40]; //部门
}Employee ;
Employee emp[MAX];
void init_list(); //初始化
int find_free();//查找未定义的成员
void enter();//输入
void del();//删除
void showlist(); //显示
void save();//保存到文件
void append();//添加数据到文件
void load();//从文件中读取
void salary();
int menu_select();//菜单
int main()
{ char choice;
init_list();
while (1)
{ choice = menu_select();
switch(choice)
{ case 1: enter(); break;
case 2: del(); break;
case 3: showlist(); break;
case 4: save(); break;
case 5: append(); break;
case 6: load(); break;
case 7: exit(0); break;
default: exit(0);
}
}
return 0;
}
//初始化
void init_list()
{ int i;
for (i=0; i<MAX; ++i)
{ emp[i].number = 0;
strcpy(emp[i].name,"");
emp[i].salary = 0.0;
strcpy(emp[i].department,"");
}
}
int menu_select(void)
{
int n;
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\t7,退出程序\n");
printf("\t\t===========\n");
do {
printf("\t\tEnter your choice:");
scanf("%d",&n);//printf(" %d\n",n);
}while (n<0 || n>8);
return n;
}
//未定义的成员的位置
int find_free()
{ int t;
for (t=0; (strlen(emp[t].name)) && t<MAX; ++t);
if (t == MAX) return -1;
return t;
}
//输入
void enter()
{
int i,slot,n;
printf("\n\t\t要输入的成员数量:"); scanf("%d", &n);
for(i=0;i<n;i++)
{ slot = find_free();
if (slot==-1) { printf("\n表已满!"); exit(1); }
printf("\n\t\t输入编号:"); scanf("%d",&emp[slot].number);
printf("\t\t输入姓名:"); scanf("%s",emp[slot].name);
printf("\t\t输入工资:"); scanf("%f",&emp[slot].salary);
printf("\t\t输入部门:"); scanf("%s",emp[slot].department);
}
}
//删除一个成员
void del()
{ int i,num;
char name[40];
printf("\n输入要删除的人员编号:"); scanf("%d",&num);
for(i=0;i<MAX;i++)
if (num==emp[i].number)
{ emp[i].number=0;
strcpy(emp[i].name,"");
emp[i].salary = 0.0;
strcpy(emp[i].department,"");
}
}