c语言实现职工管理系统.doc
《c语言实现职工管理系统.doc》由会员分享,可在线阅读,更多相关《c语言实现职工管理系统.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、简单的职工管理系统主要实现以下功能:(1) 新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。(2) 删除一名职工:从职工管理文件中删除一名职工对象。(3) 查询:从职工管理文件中查询符合某些条件的职工。(4) 修改:检索某个职工对象,对其某些属性进行修改。(5) 排序:按某种需要对职工对象文件进行排序。要求:职工信息包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。实现提示:(1) 由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。(2) 对职工对象中的姓名按字典顺序进行排序。(3) 对排序后的职工对象进行增、删、查询、修改、排序等操作。源代码:#in
2、clude#include#include#include #define I 100static char tempstr20; /*用于临时存储输入信息的数组*/static struct staff int num; char name20; char sex; long byear;/birth year 出生年月 long iyear;/imploy year 工作年月 char education20; char duty20; char address20; char phone20; struct staff *next;*head=NULL,*thisn,*newn,staI
3、=0,temp; /*temp用于交换的中间量*/void cin(void); /*输入信息*/int identify(int num); /*对职工号是否重复进行验证*/void cout(void); /*输出信息*/void sort(void); /*查询排序*/void del(void); /*删除职工信息*/int record(void); /*将文件中的数据录入结构体数组中*/void iyear(int j); /*按工作年月排序*/void education(int j); /*按学历排序*/void modify(void); /*修改职工信息*/ void de
4、scending(void); /*学历降序输出*/ void ascending(void); /*学历升序输出*/void printmsg(int i); /*输出信息*/void seek(void); /查询员工信息 int main(void) int flag=1; while(flag) system(cls); /*清屏*/ printf( 欢迎登陆职工信息管理系统!n); printf( 【1】 输入职工信息 【2】 输出职工信息n); printf( 【3】 信息查询排序 【4】 删除职工信息n); printf( 【5】 修改职工信息 【6】 查询职工信息n); pri
5、ntf(请输入以上数字,选择相应的功能: ); switch (getchar() case 1:cin();break; /*调用输入信息的函数*/ case 2:cout();break; /*调用输出信息的函数*/ case 3:sort();break; /*调用排序的函数*/ case 4:del();break; /*调用删除职工信息函数*/ case 5:modify();break; /*调用修改职工信息的函数*/ case 6:seek();break; /查询员工信息 default:flag=0;break; /*跳出循环体,结束程序*/ return 0;void ci
6、n(void) /*输入信息的函数*/ FILE *fp; int receive; /*接收返回值*/ if(fp=fopen(information.txt,a+)=NULL) /*为读写打开一个文本文件*/ printf(文件打开错误n); exit(1); /*关闭所有文件,终止正在执行的程序,待用户检查出错误,修改后再运行*/ newn=(struct staff *)malloc(sizeof(struct staff); if(head=NULL) /*连接链表*/ head=newn; thisn=newn; thisn-next=NULL; else thisn=head;
7、while(thisn-next!=NULL) thisn=thisn-next; thisn-next=newn; thisn=newn; getchar(); /*接收缓冲区中选择菜单时多余的回车*/ fputc(n,fp); /*每次记录信息前先换行*/ printf(请输入职工号:); gets(tempstr);thisn-num=atoi(tempstr); /*atoi()将字符串转换成整型数*/ receive=identify(thisn-num); while(receive) printf(请输入职工号:); gets(tempstr);thisn-num=atoi(te
8、mpstr); receive=identify(thisn-num); fputs(tempstr,fp); fputs( ,fp); /*信息排版的需要*/ printf(请输入姓名:); gets(thisn-name); fputs(thisn-name,fp); fputs( ,fp); printf(请输入性别(填F或M):); thisn-sex=getchar();getchar(); fputc(thisn-sex,fp); fputs( ,fp); printf(请输入出生年月(如):); gets(tempstr);thisn-byear=atoi(tempstr); f
9、puts(tempstr,fp); fputs( ,fp); printf(请输入工作年月(如):); gets(tempstr);thisn-iyear=atoi(tempstr); fputs(tempstr,fp); fputs( ,fp); printf(请输入学历(博士、硕士、本科、大专、高中、中专、初中、小学、其他):); gets(thisn-education); fputs(thisn-education,fp); fputs( ,fp); printf(请输入职务:); gets(thisn-duty); fputs(thisn-duty,fp); fputs( ,fp);
10、 printf(请输入地址:); gets(thisn-address); fputs(thisn-address,fp); fputs( ,fp); printf(请输入电话号码:); gets(thisn-phone); fputs(thisn-phone,fp); thisn-next=NULL; fclose(fp); system(cls); /*清屏*/int identify(int num) /*对职工号是否重复进行验证*/ FILE *fp; int i; if(fp=fopen(information.txt,r)=NULL) printf(文件打开错误); exit(1)
11、; for(i=0;iI;i+) /*将文件中的信息按行写入结构体数组中 */ fscanf(fp,%d %s %c %ld %ld %s %s %s %sn,&stai.num,&stai.name,&stai.sex,&stai.byear, &stai.iyear,&stai.education,&stai.duty,&stai.address,&stai.phone); if(stai.num=num) system(cls); printf(账号已存在 【1】重新输入 【2】退出系统n); printf(请输入以上数字,选择相应的功能: ); switch(getchar() cas
12、e 1:getchar();return(1); /*输入不成功,返回值作为循环条件*/ case 2:exit(1); /*退出系统*/ if(stai.num=0) /*动态限制循环输出的次数*/ break; fclose(fp); return (0); /*输入成功,返回值作为循环条件*/void cout(void) /*输出信息*/ FILE *fp; int s,i,j; system(cls); if(fp=fopen(information.txt,r)=NULL) printf(文件打开错误); exit(1); for(i=0;iI;i+) /*将文件中的信息按行写入结
13、构体数组中并输出 */ fscanf(fp,%d %s %c %ld %ld %s %s %s %sn,&stai.num,&stai.name,&stai.sex,&stai.byear, &stai.iyear,&stai.education,&stai.duty,&stai.address,&stai.phone); if(stai.num=0) /*动态限制循环输出的次数*/ break; s=record(); setlocale (LC_COLLATE, ); for (j=0;js-1;j+) for(i=0;i0) temp=stai; stai=stai+1; stai+1=
14、temp; printf(工号 姓名 性别 出生年月 工作年月 学历 职务 地址 电话n);printf(-n); for(i=0;is;i+) printmsg(i); fclose(fp); getchar(); /*接收回车*/ printf(nnnnn回到主界面请按r 退出系统请按其他键n); switch (getchar() case r:getchar();system(cls);break; /*getchar()接收回车*/ default:exit(0); void sort(void) /*查询排序*/ int j; getchar(); /*接收回车*/ j=recor
15、d(); printf( 【1】 按工作年月排序 【2】按学历排序n); printf(请输入以上数字,选择相应的功能: ); switch (getchar() case 1:iyear(j);break; case 2:education(j);break; getchar(); /*接收回车*/ getchar(); /*接收回车*/ system(cls); printf( 【1】 回到主界面 【2】退出系统n); printf(请输入以上数字,选择相应的功能: ); switch(getchar() case 1:getchar();system(cls);break; defaul
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实现 职工 管理 系统
限制150内