1、职工信息管理系统源代码#in c l u d e #include #include int N=2; struct worker /* int num; /* char name20; /*char sex10; /char birth20; /char deta20; /char education20; / double salary; /char work30; /char addr20; /char tel20; /worker100; / void menu(); void input(); void save(); void read(); void display(); voi
2、d add(); void search(); void search_education(); void search_num(); void del(); void modify(); void main() char s;system(color 3f); printf(nn); printf( t n);printf(n);printf( tn);printf( t定义一个职工信息的结构体*/定义一个职工信息的结构体 */定义一个职工信息的结构体 */用字符串存放职工的性别数据用字符串存放职工的出生年月数据 用字符串存放职工的工作年月数据 用字符串存放职工的学历数据 用字符串存放职工的
3、性别数据 用字符串存放职工的职务数据 用字符串存放职工的地址数据 用字符串存放职工的电话数据 用结构体数组存放职工的所有信息t*I* I* *n);printf(t 1*1 *1 *n);printf( t1 *1 *欢迎使用职工信息管理系统 *1 *n);printf(t1*1 *n);printf( t1 *1 *1 *n);printf( t1 *1 *制作人 吴青伶 *1 *n);printf(t1*1 *n);printf( t1 *1 *2013.12.28 *1 *n);printf( t1 *1 *1 *n);printf(t1 *1 *1 *n);t1 *11*printf(
4、1n);printf(t1 *n);t11printf(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);pr
5、intf(t|4.职工信息查询|n);printf(t|5.职工信息删除|n);printf(t|6.职工信息修改|n);printf(t|0.退出 |n);printf(t n);printf(n 输入你的选择项 (06):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 : / 查询职工信息
6、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;iN;i+)loop:printf( 职工号
7、 :);scanf(%d,&workeri.num); fflush(stdin);flag=1;if(workerN.num0)printf( 请输入正整数: n);elsefor(j=0;ji;j+)if(workeri.num=workerj.num)flag=0;printf( 工号重复,请重新输入 !n);goto loop;printf( 姓名 :);scanf(%s,workeri.name); fflush(stdin);printf( 性别 :);scanf( %s,workeri.sex); fflush(stdin);printf( 出生年月 :);scanf(%d,&w
8、orkeri.birth); fflush(stdin);printf( 工作年月 :);scanf(%lf,&workeri.deta); fflush(stdin);printf( 请输入学历(中专=zz,大专=dz,本科=bk,研究生=yjs):n);scanf(%s,workeri.education);fflush(stdin);printf( 工资:);sca nf(%lf,workeri.salary); fflush(stdi n);prin tf( 职务:);sca nf(%s,workeri.work); fflush(std in);prin tf( 住址:);sca n
9、f(%s,workeri.addr); fflush(stdi n);prin tf( 电话:);sca nf(%s,workeri.tel); fflush(stdi n);printf(n 创建完毕 !n);void save() / 保存函数FILE *fp;int i;if(fp=fopen(worker.txt,wb)=NULL)/ 以只写方式打开一个二进制文件printf(ncannot open filen); exit(0); for(i=0;iN;i+)fwrite(&workeri,sizeof(struct worker),1,fp);/ 将内存中的职工信息数据输出 到磁
10、盘文件中去(二进制)fclose(fp);void read() / 读入函数FILE *fp;int i=0;if(fp=fopen(worker.txt,rb)=NULL) / 以只读方式为输出打开磁盘文件中的 一个二进制文件 printf(ncannot open filen); exit(0);dofread(&workeri,sizeof(struct worker),1,fp);/ 从 worker.txt 文件向内存读 入数据(二进制)i+;while(!feof(fp);fclose(fp);N=i-1;void display() / 信息浏览函数int i;for(i=0;
11、iN;i+)printf( 职工号 :%dn,workeri.num);printf( 姓名 :%sn,workeri.name);printf( 性别 :%sn,workeri.sex);printf( 出生年月 :%dn,workeri.birth);printf( 工作年月 :%dn,workeri.deta);printf( 学历 :%sn,workeri.education);printf( 工资 :%lfn,workeri.salary);printf( 职务 :%dn,workeri.work);printf( 住址 :%sn,workeri.addr);printf( 电话 :%sn,workeri.tel);void add() / 添加函数FILE *fp;int i;struct worker p;double t;printf(n 请输入新增加职工的信息 :n); printf( 请输入职工号 :n); scanf(%d,&p.num);for(i=0;iN;i+) while(workeri.num=p.num)printf(