文档视界 最新最全的文档下载
当前位置:文档视界 › 职工信息管理系统源代码

职工信息管理系统源代码

职工信息管理系统源代码
职工信息管理系统源代码

#include

#include

#include

int N=2;

struct worker /*定义一个职工信息的结构体*/

{

int num; /*定义一个职工信息的结构体*/

char name[20]; /*定义一个职工信息的结构体*/

char sex[10]; //用字符串存放职工的性别数据

char birth[20]; //用字符串存放职工的出生年月数据

char deta[20]; //用字符串存放职工的工作年月数据

char education[20]; //用字符串存放职工的学历数据

double salary; //用字符串存放职工的性别数据

char work[30]; //用字符串存放职工的职务数据

char addr[20]; //用字符串存放职工的地址数据

char tel[20]; //用字符串存放职工的数据

}worker[100]; //用结构体数组存放职工的所有信息

void menu();

void input();

void save();

void read();

void display();

void add();

void search();

void search_education();

void search_num();

void del();

void modify();

void main()

{

char s;

system("color 3f");

printf("\n\n");

printf(" \t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");

printf(" \t┃**********************************************************┃\n");

printf(" \t┃***┏━━━━━━━━━━━━━━━━━━━━━━━━┓***┃\n");

printf(" \t┃***┃************************************************┃***┃\n");

printf(" \t┃***┃*** ****┃***┃\n");

printf(" \t┃***┃*** 欢迎使用职工信息管理系统****┃***┃\n");

printf(" \t┃***┃*** ****┃***┃\n");

printf(" \t┃***┃*** ****┃***┃\n");

printf(" \t┃***┃*** 制作人吴青伶****┃***┃\n");

printf(" \t┃***┃*** ****┃***┃\n");

printf(" \t┃***┃*** 2013.12.28 ****┃***┃\n");

printf(" \t┃***┃*** ****┃***┃\n");

printf(" \t┃***┃************************************************┃***┃\n");

printf(" \t┃***┗━━━━━━━━━━━━━━━━━━━━━━━━┛***┃\n");

printf(" \t┃**********************************************************┃\n");

printf(" \t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");

do

{

menu();

printf("Do you want to continue?(y/n)");

s=getchar();

}while(s=='Y'||s=='y');

}

void menu()/*菜单函数*/

{

int b;

printf("\t \n");

printf("\t \n");

printf("\t \n");

printf("\t \n");

printf("\t \n");

printf("\t 请选择\n");

printf("\t ------------------------------ \n");

printf("\t || || \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 || 0. 退出|| \n");

printf("\t ------------------------------- \n");

printf("\n 输入你的选择项(0~6):\n");

scanf("%d",&b);

switch(b)

{

case 1 : //职工信息录入、保存

input();

save();

getchar();

break;

case 2 ://读入职工信息并显示

read();

display();

getchar();

break;

case 3 : //添加职工信息

add();getchar();

break;

case 4 : //查询职工信息

search();getchar();

break;

case 5 : //读入职工信息并实现职工信息删除功能

read();

del();

getchar();

break;

case 6 : //读入职工信息并修改职工信息

read();modify();getchar();

break;

case 0 : exit(0);//退出

default:break;

}

}

void input() //录入职工信息

{

int i,flag,j;

printf("输入职工个数(默认个数为2):");

scanf("%d",&N);

fflush(stdin);//清除缓存

for(i=0;i

{

loop:

printf("职工号:");

scanf("%d",&worker[i].num); fflush(stdin);

flag=1;

if(worker[N].num<0)

printf("请输入正整数:\n");

else

for(j=0;j

{

if(worker[i].num==worker[j].num)

{

flag=0;

printf(" 工号重复,请重新输入!\n");

goto loop;

}

}

printf("姓名:");scanf("%s",worker[i].name); fflush(stdin);

printf("性别:");scanf(" %s",worker[i].sex); fflush(stdin);

printf("出生年月:");scanf("%d",&worker[i].birth); fflush(stdin);

printf("工作年月:");scanf("%lf",&worker[i].deta); fflush(stdin);

printf("请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs):\n");

scanf("%s",worker[i].education);fflush(stdin);

printf("工资:");scanf("%lf",worker[i].salary); fflush(stdin);

printf("职务:");scanf("%s",worker[i].work); fflush(stdin);

printf("住址:");scanf("%s",worker[i].addr); fflush(stdin);

printf(":");scanf("%s",worker[i].tel); fflush(stdin);

}

printf("\n创建完毕!\n");

}

void save() //保存函数

{

FILE *fp;

int i;

if((fp=fopen("worker.txt","wb"))==NULL)//以只写方式打开一个二进制文件

{

printf("\ncannot open file\n");

exit(0);

}

for(i=0;i

fwrite(&worker[i],sizeof(struct worker),1,fp);//将存中的职工信息数据输出到磁盘文件中去(二进制)

fclose(fp);

}

void read() //读入函数

{

FILE *fp;

int i=0;

if((fp=fopen("worker.txt","rb"))==NULL) //以只读方式为输出打开磁盘文件中的一个二进制文件

{

printf("\ncannot open file\n");

exit(0);

}

do{

fread(&worker[i],sizeof(struct worker),1,fp);//从worker.txt文件向存读入数据(二进制)

i++;

}while(!feof(fp));

fclose(fp);

N=i-1;

}

void display() //信息浏览函数

int i;

for(i=0;i

{

printf("职工号:%d\n",worker[i].num);

printf("姓名:%s\n",worker[i].name);

printf("性别:%s\n",worker[i].sex);

printf("出生年月:%d\n",worker[i].birth);

printf("工作年月:%d\n",worker[i].deta);

printf("学历:%s\n",worker[i].education);

printf("工资:%lf\n",worker[i].salary);

printf("职务:%d\n",worker[i].work);

printf("住址:%s\n",worker[i].addr);

printf(":%s\n",worker[i].tel);

}

}

void add() //添加函数

{

FILE *fp;

int i;

struct worker p;

double t;

printf("\n请输入新增加职工的信息:\n");

printf("请输入职工号:\n");

scanf("%d",&p.num);

for(i=0;i

{

while(worker[i].num==p.num)

{

printf(" 工号重复,请重新输入!\n");

scanf("%d",&p.num);

}

}

printf("请输入姓名:\n");scanf("%s",https://www.docsj.com/doc/bb14825485.html,);

printf("请输入性别:\n");scanf("%s",p.sex);

printf("请输入出生年月:\n");scanf("%d",&p.birth);

printf("请输入工作年月:\n");scanf("%d",&p.deta);

printf("请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs:):\n");scanf("%s",https://www.docsj.com/doc/bb14825485.html,cation);

printf("请输入工资:\n");scanf("%lf",&t);

p.salary=t;

printf("请输入职务:\n");scanf("%s",p.work);

printf("请输入住址:\n");scanf("%s",p.addr);

printf("请输入:\n");scanf("%s",p.tel);

printf("\n添加完毕!\n");

if((fp=fopen("worker.txt","ab"))==NULL)//以追加方式打开一个二进制文件尾部

printf("\ncannot open file\n");

exit(0);

}

fwrite(&p,sizeof(struct worker),1,fp);

fclose(fp);

}

void search() //查询函数

{

int c;

do

{

puts("\nsearch by=>\n1.学历2.职工号3.取消并返回");

printf("Which you needed?:\n");

scanf("%d",&c);

if(c>3||c<1)

{

puts("\nchoice error!please again!");

getchar();//此语句用于接受在执行上一句时最后输出的回车符}

}

while(c>3||c<1);

{

switch(c)

{

case 1:search_education();break;

case 2:search_num();break;

case 3:menu();break;

}

}

}

void search_education() //按学历查询函数

{

int i,flag=0;

char s[10];

printf("\n请输入你要查询的学历:\n");

scanf("%s",s);

for(i=0;i

{

if(strcmp(s,worker[i].education)==0)

{

printf("职工号:%d\n",worker[i].num);

printf("姓名:%s\n",worker[i].name);

printf("性别:%s\n",worker[i].sex);

printf("出生年月:%d\n",worker[i].birth);

printf("工作年月:%d\n",worker[i].deta);

printf("学历(中专=zz,大专=dz,本科=bk,研究生=yjs):%s\n",worker[i].education);

printf("工资:%lf\n",worker[i].salary);

printf("职务:%lf\n",worker[i].work);

printf("住址:%s\n",worker[i].addr);

printf(":%s\n",worker[i].tel);

flag++;

}

}

if(flag==0)

printf("\n对不起没有找到!\n");

getchar();

}

void search_num() //按工号查询函数

{

int i,s,flag=0;

printf("\n输入要查询的职工号!:\n");

scanf("%d",&s);

for(i=0;i

{

if(s==worker[i].num)

{

printf("职工号:%d\n",worker[i].num);

printf("姓名:%s\n",worker[i].name);

printf("性别:%s\n",worker[i].sex);

printf("出生年月:%d\n",worker[i].birth);

printf("工作年月:%d\n",worker[i].deta);

printf("学历(中专=zz,大专=dz,本科=bk,研究生=yjs):%s\n",worker[i].education);

printf("工资:%lf\n",worker[i].salary);

printf("职务:%lf\n",worker[i].work);

printf("住址:%s\n",worker[i].addr);

printf(":%s\n",worker[i].tel);

flag++;

}

}

if(flag==0)

printf("\n对不起没有找到! please");

getchar();

}

void del() //删除函数

{

int i,j;

FILE *fp;

char name[20];

char c;

if((fp=fopen("worker.txt","wb"))==NULL)//以只写方式打开一个二进制文件

{

printf("\ncannot open file\n");

exit(0);

}

printf("请输入要删除的职工的姓名:");

scanf("%s",name);

for(i=0;i

{

if(strcmp(name,worker[i].name)==0)//判断输入的姓名和原来的姓名是否相同

{

printf("找到该职工,是否删除?(y/n) ") ;

fflush(stdin);

scanf("%c",&c);

if(c =='Y'||c=='y')

{

for(j=i;j

worker[j]=worker[j+1];

printf("删除成功! \n");

//break;

}

}

}

if(i>=N)

{

printf("没有找到该职工!\n ");

return;

}

else

{

N=N-1;

for(i=0;i

if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)

{

printf("\ncannot save file\n");

getchar();

}

fclose(fp);

}

}

相关文档