#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SIZE 2
struct worker_type
{int number;
char name[20];
char sex;
char xueli[20];
int wage;
char address[30];
char phone_num[20];
}worker[SIZE]; int i=0;
void input()
{FILE *fp;
int i;
printf("信息输入\n");
for(i=0;i<SIZE;i++)
{
printf("\n请输入职工的姓名:");
scanf("%s",worker[i].name);
printf("\n请输入职工的编号:");
scanf("%d",&worker[i].number);
printf("\n请输入职工的学历:");
scanf("%s",worker[i].xueli);
printf("\n请输入职工的工资:");
scanf("%d",&worker[i].wage);
printf("\n请输入职工的性别:");
getchar();//注意消除多余字符
scanf("%c",&worker[i].sex);
printf("\n请输入职工的地址:");
scanf("%s",worker[i].address);
printf("\n请输入职工的电话:");
scanf("%s",worker[i].phone_num);
}
if((fp=fopen("D:\\worker.dat", "w"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
if(fwrite(&worker[i],sizeof(struct worker_type),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void scan()
{
FILE *fp;
int i;
printf(" 信息浏览\n\n");
printf(" 编号 姓名 性别 学历 工资 地址 电话 \n ");
printf("********************************************************************************\n");
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{
fread(&worker[i],sizeof(struct worker_type),1,fp);
printf(" %4d%15s%4c%15s%8d%15s%15s\n\n", worker[i].number, worker[i].name, worker[i].sex, worker[i].xueli, worker[i].wage, worker[i].address, worker[i].phone_num);}
fclose(fp);
}
void find()
{ FILE *fp;
int i,n,a;char name[20];
printf(" 请输入您的查询方式:\n\n 1.按编号查询\n 2.按姓名查询\n");
scanf("%d",&n);
switch(n)
{case 1:
printf(" 请输入要查找职工的编号:\n");
scanf("%d",&a);
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{fread(&worker[i],sizeof(struct worker_type),1,fp);
if(a==worker[i].number)
{ printf(" 编号 姓名 性别 学历 工资 地址 电话 \n ");
printf("********************************************************************************\n");
printf(" %4d%15s%4c%15s%8d%15s%15s\n\n", worker[i].number, worker[i].name, worker[i].sex, worker[i].xueli, worker[i].wage, worker[i].address, worker[i].phone_num);
fclose(fp);}}break;
case 2:
printf("请输入要查找职工的姓名:\n");
scanf("%s",name);
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{fread(&worker[i],sizeof(struct worker_type),1,fp);
if(strcmp(worker[i].name,name)==0)
{
printf(" 编号 姓名 性别 学历 工资 地址 电话 \n ");
printf("********************************************************************************\n");
printf(" %4d%15s%4c%15s%8d%15s%15s\n\n", worker[i].number, worker[i].name, worker[i].sex, worker[i].xueli, worker[i].wage, worker[i].address, worker[i].phone_num);
fclose(fp);}}break;
fclose(fp);break;
default:printf("您输入的指令有误!\n");
}
}
void change()
{FILE*fp;
int n,i;
printf(" 请浏览职工信息表,然后输入需要修改信息职工的编号\n\n");
scan();
printf(" 请输入需要修改信息职工的编号\n");
scanf("%d",&n);
if((fp=fopen("D:\\worker.dat", "r+"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{
fread(&worker[i],sizeof(struct worker_type),1,fp);
if(n==worker[i].number)
break;
}
fseek(fp,-sizeof(worker_type),SEEK_CUR);
printf("请输入修改后的信息:\n");
printf("\n请输入职工的姓名:");
scanf("%s",worker[i].name);
printf("\n请输入职工的编号:");
scanf("%d",&worker[i].number);
printf("\n请输入职工的学历:");
scanf("%s",worker[i].xueli);
printf("\n请输入职工的工资:");
scanf("%d",&worker[i].wage);
printf("\n请输入职工的性别:");
getchar();
scanf("%c",&worker[i].sex);
printf("\n请输入职工的地址:");
scanf("%s",worker[i].address);
printf("\n请输入职工的电话:");
scanf("%s",worker[i].phone_num);
fwrite(&worker[i],sizeof(struct worker_type),1,fp);
fclose(fp);
}
void delate()
{FILE *fp;
int i,a,j;
printf(" 请输入要删除信息职工的编号\n");
scanf("%d",&a);
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{fread(&worker[i],sizeof(struct worker_type),1,fp);}
fclose(fp);
for(i=0;i<SIZE;i++)
if(a==worker[i].number)break;
{
for(j=i;j<SIZE;j++)
{strcpy(worker[j].name,worker[j+1].name);
worker[j].number=worker[j+1].number;
strcpy(worker[j].xueli,worker[j+1].xueli);
worker[j].wage=worker[j+1].wage;
worker[j].sex=worker[j+1].sex;
strcpy(worker[j].address,worker[j+1].address);
strcpy(worker[j].phone_num,worker[j+1].phone_num);}
}
if((fp=fopen("D:\\worker.dat", "w"))==NULL)
{printf("cannot open file\n");
return;}
fclose(fp);
if((fp=fopen("D:\\worker.dat", "w"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE-1;i++)
if(fwrite(&worker[i],sizeof(struct worker_type),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void menu()
{ int n;
printf(" *************主菜单**************\n");
printf(" * 1、信息输入 *\n");
printf(" * 2、信息浏览 *\n");
printf(" * 3、信息查询 *\n");
printf(" * 4、信息修改 *\n");
printf(" * 5、信息删除 *\n");
printf(" * 6、退出系统 *\n");
printf(" *********************************\n");
scanf("%d",&n);
switch (n)
{case 1: input(); break;
case 2: scan(); break;
case 3: find(); break;
case 4: change();break;
case 5: delate();break;
case 6: exit(0); break;
default: printf("操作错误!");}
printf(" 返回主菜单请按1,结束操作请按0\n");
scanf("%d",&n);
switch(n)
{case 1: menu();break;
case 0: ; break;
default:printf("您输入的指令有误!\n");}
}
void main()
{printf(" *********************************\n");
printf(" ******职工信息管理系统******\n");
printf(" *********************************\n\n");
menu();
}
#include<string.h>
#include<stdlib.h>
#define SIZE 2
struct worker_type
{int number;
char name[20];
char sex;
char xueli[20];
int wage;
char address[30];
char phone_num[20];
}worker[SIZE]; int i=0;
void input()
{FILE *fp;
int i;
printf("信息输入\n");
for(i=0;i<SIZE;i++)
{
printf("\n请输入职工的姓名:");
scanf("%s",worker[i].name);
printf("\n请输入职工的编号:");
scanf("%d",&worker[i].number);
printf("\n请输入职工的学历:");
scanf("%s",worker[i].xueli);
printf("\n请输入职工的工资:");
scanf("%d",&worker[i].wage);
printf("\n请输入职工的性别:");
getchar();//注意消除多余字符
scanf("%c",&worker[i].sex);
printf("\n请输入职工的地址:");
scanf("%s",worker[i].address);
printf("\n请输入职工的电话:");
scanf("%s",worker[i].phone_num);
}
if((fp=fopen("D:\\worker.dat", "w"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
if(fwrite(&worker[i],sizeof(struct worker_type),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void scan()
{
FILE *fp;
int i;
printf(" 信息浏览\n\n");
printf(" 编号 姓名 性别 学历 工资 地址 电话 \n ");
printf("********************************************************************************\n");
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{
fread(&worker[i],sizeof(struct worker_type),1,fp);
printf(" %4d%15s%4c%15s%8d%15s%15s\n\n", worker[i].number, worker[i].name, worker[i].sex, worker[i].xueli, worker[i].wage, worker[i].address, worker[i].phone_num);}
fclose(fp);
}
void find()
{ FILE *fp;
int i,n,a;char name[20];
printf(" 请输入您的查询方式:\n\n 1.按编号查询\n 2.按姓名查询\n");
scanf("%d",&n);
switch(n)
{case 1:
printf(" 请输入要查找职工的编号:\n");
scanf("%d",&a);
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{fread(&worker[i],sizeof(struct worker_type),1,fp);
if(a==worker[i].number)
{ printf(" 编号 姓名 性别 学历 工资 地址 电话 \n ");
printf("********************************************************************************\n");
printf(" %4d%15s%4c%15s%8d%15s%15s\n\n", worker[i].number, worker[i].name, worker[i].sex, worker[i].xueli, worker[i].wage, worker[i].address, worker[i].phone_num);
fclose(fp);}}break;
case 2:
printf("请输入要查找职工的姓名:\n");
scanf("%s",name);
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{fread(&worker[i],sizeof(struct worker_type),1,fp);
if(strcmp(worker[i].name,name)==0)
{
printf(" 编号 姓名 性别 学历 工资 地址 电话 \n ");
printf("********************************************************************************\n");
printf(" %4d%15s%4c%15s%8d%15s%15s\n\n", worker[i].number, worker[i].name, worker[i].sex, worker[i].xueli, worker[i].wage, worker[i].address, worker[i].phone_num);
fclose(fp);}}break;
fclose(fp);break;
default:printf("您输入的指令有误!\n");
}
}
void change()
{FILE*fp;
int n,i;
printf(" 请浏览职工信息表,然后输入需要修改信息职工的编号\n\n");
scan();
printf(" 请输入需要修改信息职工的编号\n");
scanf("%d",&n);
if((fp=fopen("D:\\worker.dat", "r+"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{
fread(&worker[i],sizeof(struct worker_type),1,fp);
if(n==worker[i].number)
break;
}
fseek(fp,-sizeof(worker_type),SEEK_CUR);
printf("请输入修改后的信息:\n");
printf("\n请输入职工的姓名:");
scanf("%s",worker[i].name);
printf("\n请输入职工的编号:");
scanf("%d",&worker[i].number);
printf("\n请输入职工的学历:");
scanf("%s",worker[i].xueli);
printf("\n请输入职工的工资:");
scanf("%d",&worker[i].wage);
printf("\n请输入职工的性别:");
getchar();
scanf("%c",&worker[i].sex);
printf("\n请输入职工的地址:");
scanf("%s",worker[i].address);
printf("\n请输入职工的电话:");
scanf("%s",worker[i].phone_num);
fwrite(&worker[i],sizeof(struct worker_type),1,fp);
fclose(fp);
}
void delate()
{FILE *fp;
int i,a,j;
printf(" 请输入要删除信息职工的编号\n");
scanf("%d",&a);
if((fp=fopen("D:\\worker.dat", "r"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE;i++)
{fread(&worker[i],sizeof(struct worker_type),1,fp);}
fclose(fp);
for(i=0;i<SIZE;i++)
if(a==worker[i].number)break;
{
for(j=i;j<SIZE;j++)
{strcpy(worker[j].name,worker[j+1].name);
worker[j].number=worker[j+1].number;
strcpy(worker[j].xueli,worker[j+1].xueli);
worker[j].wage=worker[j+1].wage;
worker[j].sex=worker[j+1].sex;
strcpy(worker[j].address,worker[j+1].address);
strcpy(worker[j].phone_num,worker[j+1].phone_num);}
}
if((fp=fopen("D:\\worker.dat", "w"))==NULL)
{printf("cannot open file\n");
return;}
fclose(fp);
if((fp=fopen("D:\\worker.dat", "w"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;i<SIZE-1;i++)
if(fwrite(&worker[i],sizeof(struct worker_type),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void menu()
{ int n;
printf(" *************主菜单**************\n");
printf(" * 1、信息输入 *\n");
printf(" * 2、信息浏览 *\n");
printf(" * 3、信息查询 *\n");
printf(" * 4、信息修改 *\n");
printf(" * 5、信息删除 *\n");
printf(" * 6、退出系统 *\n");
printf(" *********************************\n");
scanf("%d",&n);
switch (n)
{case 1: input(); break;
case 2: scan(); break;
case 3: find(); break;
case 4: change();break;
case 5: delate();break;
case 6: exit(0); break;
default: printf("操作错误!");}
printf(" 返回主菜单请按1,结束操作请按0\n");
scanf("%d",&n);
switch(n)
{case 1: menu();break;
case 0: ; break;
default:printf("您输入的指令有误!\n");}
}
void main()
{printf(" *********************************\n");
printf(" ******职工信息管理系统******\n");
printf(" *********************************\n\n");
menu();
}