#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Maxsize 64
#define LEN sizeof(Info)
typedef struct node
{
int number;
char name[Maxsize];
char sex[Maxsize];
char degree[Maxsize];
char duty[Maxsize];
float wage;
char address[Maxsize];
char phone[Maxsize];
char birthdate[Maxsize];
}Info;
Info info[Maxsize];
int m;
int input();
int amend();
int del();
int find();
int save(int);
int print();
void menu();
void main()
{
int n;
menu();
while(1)
{
printf("请输入操作命令:");
scanf("%d",&n);
if(n >= 1 && n <= 7)
{
switch(n)
{
case 1:input();break;
case 2:print();break;
case 3:amend();break;
case 4:del();break;
case 5:find();break;
case 6:exit(0);
}
}
else
{
printf("输入错误重新输入.\n");
continue;
}
}
}
/*
输入职工信息
*/
int Input()
{
int i;
printf("请输入需要录入职工人数:");
scanf("%d",&m);
for (i=0;i<m;i++)
{
printf("请输入职工号: ");
scanf("%d",&info[i].number);
printf("请输入姓名: ");
scanf("%s",&info[i].name);
printf("请输入性别: ");
scanf("%s",&info[i].sex);
printf("请输入学历: ");
scanf("%s",&info[i].degree);
printf("请输入职务: ");
scanf("%s",&info[i].duty);
printf("请输入住址: ");
scanf("%s",&info[i].address);
printf("请输入电话: ");
scanf("%s",&info[i].phone);
printf("请输入出生日期: ");
scanf("%s",&info[i].birthdate);
printf("\n");
}
save(m);
return 0;
}
/*
修改职工信息
*/
int amend()
{
int i;
char name[Maxsize];
Info temp;
printf("请输入要修改的姓名:");
scanf("%s",name);
for(i=0;i<m;i++)
{
if(strcmp(name,info[i].name) == 0)
{
break;
}
}
if(i < m)
{
printf("请输入修改信息.\n");
printf("职工号改为:");
scanf("%d",&temp.number);
info[i].number = temp.number;
printf("名字改为:");
scanf("%s",&temp.name);
strcpy(info[i].name,temp.name);
printf("性别改为:");
scanf("%s",&temp.sex);
strcpy(info[i].sex,temp.sex);
printf("学历改为:");
scanf("%s",&temp.degree);
strcpy(info[i].degree,temp.degree);
printf("职务改为:");
scanf("%s",&temp.duty);
strcpy(info[i].duty,temp.duty);
printf("地址改为:");
scanf("%s",&temp.address);
strcpy(info[i].address,temp.address);
printf("电话号码改为:");
scanf("%s",&temp.phone);
strcpy(info[i].phone,temp.phone);
printf("出生日期改为:");
scanf("%s",&temp.birthdate);
strcpy(info[i].birthdate,temp.birthdate);
}
return 0;
}
/*
查询职工信息
*/
int find()
{
char name[Maxsize];
int i;
printf("请输入需要查找的姓名:");
scanf("%s",name);
for(i=0;i<m;i++)
{
if(strcmp(name,info[i].name) == 0)
{
break;
}
}
if(i < m)
{
printf("信息如下\n");
printf("职工号\t姓名\t性别\t学历\t职务\t地址\t电话号码\t出生日期\t");
printf("%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t",
info[i].number,info[i].name,info[i].sex,info[i].degree,info[i].duty,info[i].address,info[i].phone,info[i].birthdate);
}
else
{
printf("没有此人信息!\n");
}
return 0;
}
/*
信息输出
*/
int print()
{
int i;
i = 0;
printf("全部职工信息\n");
while(i < m)
{
printf("职工号\t姓名\t性别\t学历\t职务\t地址\t电话号码\t出生日期\t");
printf("%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t",
info[i].number,info[i].name,info[i].sex,info[i].degree,info[i].duty,info[i].address,info[i].phone,info[i].birthdate);
i++;
}
printf("\n");
return 0;
}
/*
职工信息删除
*/
int del()
{
int i = 0;
int j;
char name[Maxsize];
printf("输入要删除职工姓名:");
scanf("%s",name);
while(i < m)
{
if(strcmp(name,info[i].name) == 0)
{
break;
}
i++;
}
if(i < m)
{
for(j=i;j<m-1;j++)
{
strcpy(info[j].name,info[j+1].name);
strcpy(info[j].sex,info[j+1].sex);
strcpy(info[j].degree,info[j+1].degree);
strcpy(info[j].duty,info[j+1].duty);
strcpy(info[j].address,info[j+1].address);
strcpy(info[j].phone,info[j+1].phone);
strcpy(info[j].birthdate,info[j+1].birthdate);
info[j].number = info[j+1].number;
}
m--;
}
else
{
printf("没有此人信息!\n");
}
return 0;
}
int save(int m)
{
int i;
FILE *fp;
if((fp = fopen("eployee","wb")) == 0)
{
printf("文件打开失败!\n");
exit(0);
}
for(i=0;i<m;i++)
{
if(fwrite(&info[i],sizeof(LEN),1,fp) != 1)
{
printf("文件写入失败!\n");
}
}
fclose(fp);
return 0;
}
/*
菜单函数
*/
void menu()
{
printf(" *************职工信息管理*************\n");
printf(" 1.输入职工信息\n");
printf(" 2.输出职工信息\n");
printf(" 3.修改职工信息\n");
printf(" 4.删除职工信息\n");
printf(" 5.查询职工信息\n");
printf(" 6.退出\n");
printf(" *************职工信息管理*************\n");
}
#include <stdlib.h>
#include <string.h>
#define Maxsize 64
#define LEN sizeof(Info)
typedef struct node
{
int number;
char name[Maxsize];
char sex[Maxsize];
char degree[Maxsize];
char duty[Maxsize];
float wage;
char address[Maxsize];
char phone[Maxsize];
char birthdate[Maxsize];
}Info;
Info info[Maxsize];
int m;
int input();
int amend();
int del();
int find();
int save(int);
int print();
void menu();
void main()
{
int n;
menu();
while(1)
{
printf("请输入操作命令:");
scanf("%d",&n);
if(n >= 1 && n <= 7)
{
switch(n)
{
case 1:input();break;
case 2:print();break;
case 3:amend();break;
case 4:del();break;
case 5:find();break;
case 6:exit(0);
}
}
else
{
printf("输入错误重新输入.\n");
continue;
}
}
}
/*
输入职工信息
*/
int Input()
{
int i;
printf("请输入需要录入职工人数:");
scanf("%d",&m);
for (i=0;i<m;i++)
{
printf("请输入职工号: ");
scanf("%d",&info[i].number);
printf("请输入姓名: ");
scanf("%s",&info[i].name);
printf("请输入性别: ");
scanf("%s",&info[i].sex);
printf("请输入学历: ");
scanf("%s",&info[i].degree);
printf("请输入职务: ");
scanf("%s",&info[i].duty);
printf("请输入住址: ");
scanf("%s",&info[i].address);
printf("请输入电话: ");
scanf("%s",&info[i].phone);
printf("请输入出生日期: ");
scanf("%s",&info[i].birthdate);
printf("\n");
}
save(m);
return 0;
}
/*
修改职工信息
*/
int amend()
{
int i;
char name[Maxsize];
Info temp;
printf("请输入要修改的姓名:");
scanf("%s",name);
for(i=0;i<m;i++)
{
if(strcmp(name,info[i].name) == 0)
{
break;
}
}
if(i < m)
{
printf("请输入修改信息.\n");
printf("职工号改为:");
scanf("%d",&temp.number);
info[i].number = temp.number;
printf("名字改为:");
scanf("%s",&temp.name);
strcpy(info[i].name,temp.name);
printf("性别改为:");
scanf("%s",&temp.sex);
strcpy(info[i].sex,temp.sex);
printf("学历改为:");
scanf("%s",&temp.degree);
strcpy(info[i].degree,temp.degree);
printf("职务改为:");
scanf("%s",&temp.duty);
strcpy(info[i].duty,temp.duty);
printf("地址改为:");
scanf("%s",&temp.address);
strcpy(info[i].address,temp.address);
printf("电话号码改为:");
scanf("%s",&temp.phone);
strcpy(info[i].phone,temp.phone);
printf("出生日期改为:");
scanf("%s",&temp.birthdate);
strcpy(info[i].birthdate,temp.birthdate);
}
return 0;
}
/*
查询职工信息
*/
int find()
{
char name[Maxsize];
int i;
printf("请输入需要查找的姓名:");
scanf("%s",name);
for(i=0;i<m;i++)
{
if(strcmp(name,info[i].name) == 0)
{
break;
}
}
if(i < m)
{
printf("信息如下\n");
printf("职工号\t姓名\t性别\t学历\t职务\t地址\t电话号码\t出生日期\t");
printf("%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t",
info[i].number,info[i].name,info[i].sex,info[i].degree,info[i].duty,info[i].address,info[i].phone,info[i].birthdate);
}
else
{
printf("没有此人信息!\n");
}
return 0;
}
/*
信息输出
*/
int print()
{
int i;
i = 0;
printf("全部职工信息\n");
while(i < m)
{
printf("职工号\t姓名\t性别\t学历\t职务\t地址\t电话号码\t出生日期\t");
printf("%d\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t",
info[i].number,info[i].name,info[i].sex,info[i].degree,info[i].duty,info[i].address,info[i].phone,info[i].birthdate);
i++;
}
printf("\n");
return 0;
}
/*
职工信息删除
*/
int del()
{
int i = 0;
int j;
char name[Maxsize];
printf("输入要删除职工姓名:");
scanf("%s",name);
while(i < m)
{
if(strcmp(name,info[i].name) == 0)
{
break;
}
i++;
}
if(i < m)
{
for(j=i;j<m-1;j++)
{
strcpy(info[j].name,info[j+1].name);
strcpy(info[j].sex,info[j+1].sex);
strcpy(info[j].degree,info[j+1].degree);
strcpy(info[j].duty,info[j+1].duty);
strcpy(info[j].address,info[j+1].address);
strcpy(info[j].phone,info[j+1].phone);
strcpy(info[j].birthdate,info[j+1].birthdate);
info[j].number = info[j+1].number;
}
m--;
}
else
{
printf("没有此人信息!\n");
}
return 0;
}
int save(int m)
{
int i;
FILE *fp;
if((fp = fopen("eployee","wb")) == 0)
{
printf("文件打开失败!\n");
exit(0);
}
for(i=0;i<m;i++)
{
if(fwrite(&info[i],sizeof(LEN),1,fp) != 1)
{
printf("文件写入失败!\n");
}
}
fclose(fp);
return 0;
}
/*
菜单函数
*/
void menu()
{
printf(" *************职工信息管理*************\n");
printf(" 1.输入职工信息\n");
printf(" 2.输出职工信息\n");
printf(" 3.修改职工信息\n");
printf(" 4.删除职工信息\n");
printf(" 5.查询职工信息\n");
printf(" 6.退出\n");
printf(" *************职工信息管理*************\n");
}