C 语言——企业员工管理系统
代码部分:
#include
#include
#include
typedef struct employee
{
int num;
char duty[10];
char name[10];
char sex[3];
unsigned char age;
char edu[10];
int salary;
char tel_office[13];
char tel_home[13];
char mobile[13];
char qq[11];
char address[31];
struct employee *next;
}EMP;
char password[9];
EMP *emp_first,*emp_end;
char gsave,gfirst;
void addemp(void);
void findemp(void);
void listemp(void);
void modifyemp(void);
void summaryemp(void);
void delemp(void);
void resetpwd(void);
void readdata(void);
void savedata(void);
int modi_age(int s);
int modi_salary(int s);
char *modi_field(char *field,char *s,int n);
EMP *findname(char *name);
EMP *findnum(int num);
EMP *findtelephone(char *name);
EMP *findqq(char *name);
void displayemp(EMP *emp,char *field,char *name);
void checkfirst(void);
void bound(char ch,int n);
void login();
void menu();
void addemp()
{
FILE *fp;
EMP *emp1;
int i=0;
char choice='y';
if((fp=fopen("employee.dat","ab"))==NULL)
{
printf(" 打开文件 employee.dat 出错! \n");
getch();
return;
}
do{
i++;
emp1=(EMP *)malloc(sizeof(EMP));
if(emp1==NULL)
{
printf(" 内存分配失败,按任意键退出! \n");
getch();
return;
}
printf(" 请输入第 %d 个员工的信息, \n",i);
bound('_',30);
printf(" 工号: ");
scanf("%d",&emp1->num);
printf(" 职务: ");
scanf("%s",&emp1->duty);
printf(" 姓名: ");
scanf("%s",&emp1->name);
printf(" 性别: ");
scanf("%s",&emp1->sex);
printf(" 年龄: ");
scanf("%d",&emp1->age);
printf(" 文化程度: ");
scanf("%s",&emp1->edu);
printf(" 工资: ");
scanf("%d",&emp1->salary);
printf(" 办公电话: ");
scanf("%s",&emp1->tel_office);
printf(" 家庭电话: ");
scanf("%s",&emp1->tel_home);
printf(" 移动电话: ");
scanf("%s",&emp1->mobile);
printf("QQ:");
scanf("%s",&emp1->qq);
printf(" 地址: ");
scanf("%s",&emp1->address);
emp1->next=NULL;
if(emp_first==NULL)
{
emp_first=emp1;
emp_end=emp1;
}else {
emp_end->next=emp1;
emp_end=emp1;
}
fwrite(emp_end,sizeof(EMP),1,fp);
gfirst=0;
printf("\n");
bound('_',30);
printf("\n 是否继续输入 ?(y/n)");
fflush(stdin);
choice=getch();
if(toupper(choice)!='Y'