#include
#include
#include
struct worker
{
char name[30]; //name职工姓名
char ID[10]; //ID职工编号
char sex[3];
int birth;
int tel;
char educ[10];
char addr[30];
char zhicheng[10];
int year;
};
int dq(struct worker wo[]);
void show();
void bc(struct worker wo[]);
void add();
void see();
void search();
void ghcz();
void xmcz();
void del();
void ghxg();
void reserve();
//void back();
struct worker wo[100]; //保存所有的职工信息
int Number=0; //记录总的职工人数
int main()
{
int choose=0;
system("color 1e");//更改背景颜色
while(1)
{
show();
printf("\t\t====>请选择:");
scanf("%d",&choose);
system("cls");//清屏
switch(choose)
{
case 0: exit(0);//退出
break;
case 1: add();
back();//添加职工信息
break;
case 2: see();
back();//查看职工信息
break;
case 3: search();
back();
break;
case 4: del();
back();
break;
case 5:ghxg();
back();
break;
case 6:reserve();
back();
break;
default:
back();
break;
}
fflush(stdin);//?清空输入缓冲区,通常是为了确保不影响后面的数据读取
getchar();
system("cls");//清屏
}
}
int dq(struct worker wo[])//怎么初始化?打开文件出现乱码。这个不肯定,可能是二进制文件,而你是用文本文档的方式打开的
{
FILE *fp=NULL;
int i=0;
fp=fopen("C://worker.dat","rb");
while(fread(&wo[i],sizeof(struct worker),1,fp))//?从woker.dat文件读取数据到结构体数组wo[], 一次读取一个工人的全部数据
i++;
fclose(fp);
return i;
}
void show() //程序主界面函数
{
printf("\n");
printf("\t****************职工工资管理系统****************\n\n");
printf("\t***************[1] 添加职工信息*****************\n");
printf("\t***************[2] 查看职工信息*****************\n");
printf("\t***************[3] 查找职工信息*****************\n");
printf("\t***************{4] 删除职工信息*****************\n");
printf("\t***************[5] 修改职工信息*****************\n");
printf("\t***************[6] 保 存 数 据*****************\n");
printf("\t***************[7] 作 者 信 息*****************\n");
printf("\t***************[0] 退 出 系 统*****************\n\n");
}
void bc(struct worker *wo)
{
FILE *fp=NULL;
fp=fopen("C://worker.dat","ab+");
fwrite(wo,sizeof(struct worker),1,fp);
fclose(fp);
}
//添加职工信息
void add()
{
int numberTemp=0;
int i=0;
struct worker temp;
printf("请输入要添加职工个数:");
scanf("%d",&numberTemp);
for(i=0;i
printf("输入第%d个职工信息\n",i+1);
printf("姓名:");
scanf("%s",temp.name);
printf("职工编号:");
scanf("%s",temp.ID);
printf("性别:");
scanf("%s",temp.sex);
printf("出生日期:");
scanf("%d",&temp.birth);
printf("电话:");
scanf("%d",&temp.tel);
printf("学历:");
scanf("%s",&temp.educ);
printf("住址:");
scanf("%s",&temp.addr);
printf("职称:");
scanf("%s",&temp.zhicheng);
wo[Number++]=temp; //写入到数组
bc(&temp); //写入到文件
}
printf("添加成功\n");
}
//查看职工信息
void see()
{
int i=0;
printf("以下是全部职工\n");
//printf("姓名\n职工编号\n性别\n出生日期\n电话\n学历\n住址\n职称\n");
while(i
printf("姓名;%s\n职工编号:%s\n性别:%s\n出生日期:%d\n电话:%d\n学历:%s\n住址:%s\n职称:%s\n",wo[i].name,wo[i].ID,wo[i].sex,wo[i].birth,wo[i].tel,wo[i].educ,wo[i].zhicheng);
i++;
}
}
//查找职工信息
void search()
{
int n=0;
printf("1 按姓名查找\n");
printf("2 按职工编号查找\n");
scanf("%d",&n);
switch(n)
{
case 1: xmcz();
break;
case 2: ghcz();
break;
default: printf("输入错误!\n");
break;
}
}
void xmcz()//按姓名查找
{
char name[30];
int i=0;
printf("请输入要查找职工姓名:");
scanf("%s",name);
system("cls");
for (i=0;i
if (strcmp(name,wo[i].name)==0)
{
printf("姓名;%s\n职工编号:%s\n性别:%s\n出生日期:%d\n电话:%d\n学历:%s\n住址:%s\n职称:%s\n",wo[i].name,wo[i].ID,wo[i].sex,wo[i].birth,wo[i].tel,wo[i].educ,wo[i].zhicheng);
i++;
}
}
}
void ghcz()//按职工编号查找
{
char id[10];
int i=0;
printf("请输入要查找职工职工编号:");
scanf("%s",id);
system("cls");
for (i=0;i
if (strcmp(id,wo[i].ID)==0)
{
printf("姓名;%s\n职工编号:%s\n性别:%s\n出生日期:%d\n电话:%d\n学历:%s\n住址:%s\n职称:%s\n",wo[i].name,wo[i].ID,wo[i].sex,wo[i].birth,wo[i].tel,wo[i].educ,wo[i].zhicheng);
i++;
}
}
}
//删除职工信息
void del()
{
FILE *fp=NULL;
char id[60];
int i=0;
int j=0;
printf("请输入要删除的职工职工编号:");
scanf("%s",id);
for(i=0;i
if (strcmp(id,wo[i].ID)==0)
{
for (j=i;j
wo[j]=wo[j+1];
}
Number--;
}
}
//将剩余数据写入文件 擦除以前的数据
fp=fopen("C://worker.dat","wb");
for (i=0;i
fwrite(&wo[i],sizeof(struct worker),1,fp);
}
fclose(fp);
printf("删除成功;\n");
}
//修改职工信息
void ghxg()//按职工编号修改
{
FILE *fp=NULL;
char id[30];
int i=0;
printf("请输入要修改的职工职工编号:");
scanf("%s",id);
for (i=0;i
if (strcmp(id,wo[i].ID));
else
break;
}
printf("姓名;%s\n职工编号:%s\n性别:%s\n出生日期:%d\n电话:%d\n学历:%s\n住址:%s\n职称:%s\n",wo[i].name,wo[i].ID,wo[i].sex,wo[i].birth,wo[i].tel,wo[i].educ,wo[i].zhicheng);
i++;
printf("请重新输入该职工信息");
printf("职称:");
scanf("%s",wo[i].zhicheng);
printf("姓名");
scanf("%s",wo[i].name);
printf("性别");
scanf("%s",wo[i].sex);
printf("职工编号");
scanf("%s",wo[i].ID);
printf("出生日期");
scanf("%d",&wo[i].birth);
printf("电话");
scanf("%d",&wo[i].tel);
printf("学历");
scanf("%s",wo[i].educ);
printf("住址");
scanf("%s",wo[i].addr);
fp=fopen("C://worker.dat","wb");
for (i=0;i
fwrite(&wo[i],sizeof(struct worker),1,fp);
}
fclose(fp);
printf("\t=======>修改成功\n");
}
//保存数据
#include
#include
#include
struct worker
{
char name[30]; //name职工姓名
char ID[10]; //ID职工编号
char sex[3];
int birth;
int tel;
char educ[10];
char addr[30];
char zhicheng[10];
int year;
};
int dq(struct worker wo[]);
void show();
void bc(struct worker wo[]);
void add();
void see();
void search();
void ghcz();
void xmcz();
void del();
void ghxg();
void reserve();
//void back();
struct worker wo[100]; //保存所有的职工信息
int Number=0; //记录总的职工人数
int main()
{
int choose=0;
system("color 1e");//更改背景颜色
while(1)
{
show();
printf("\t\t====>请选择:");
scanf("%d",&choose);
system("cls");//清屏
switch(choose)
{
case 0: exit(0);//退出
break;
case 1: add();
back();//添加职工信息
break;
case 2: see();
back();//查看职工信息
break;
case 3: search();
back();
break;
case 4: del();
back();
break;
case 5:ghxg();
back();
break;
case 6:reserve();
back();
break;
default:
back();
break;
}
fflush(stdin);//?清空输入缓冲区,通常是为了确保不影响后面的数据读取
getchar();
system("cls");//清屏
}
}
int dq(struct worker wo[])//怎么初始化?打开文件出现乱码。这个不肯定,可能是二进制文件,而你是用文本文档的方式打开的
{
FILE *fp=NULL;
int i=0;
fp=fopen("C://worker.dat","rb");
while(fread(&wo[i],sizeof(struct worker),1,fp))//?从woker.dat文件读取数据到结构体数组wo[], 一次读取一个工人的全部数据
i++;
fclose(fp);
return i;
}
void show() //程序主界面函数
{
printf("\n");
printf("\t****************职工工资管理系统****************\n\n");
printf("\t***************[1] 添加职工信息*****************\n");
printf("\t***************[2] 查看职工信息*****************\n");
printf("\t***************[3] 查找职工信息*****************\n");
printf("\t***************{4] 删除职工信息*****************\n");
printf("\t***************[5] 修改职工信息*****************\n");
printf("\t***************[6] 保 存 数 据*****************\n");
printf("\t***************[7] 作 者 信 息*****************\n");
printf("\t***************[0] 退 出 系 统*****************\n\n");
}
void bc(struct worker *wo)
{
FILE *fp=NULL;
fp=fopen("C://worker.dat","ab+");
fwrite(wo,sizeof(struct worker),1,fp);
fclose(fp);
}
//添加职工信息
void add()
{
int numberTemp=0;
int i=0;
struct worker temp;
printf("请输入要添加职工个数:");
scanf("%d",&numberTemp);
for(i=0;i修改成功\n");
}
//保存数据