C语言企业员工管理系统.doc

上传人:罗晋 文档编号:7194872 上传时间:2020-11-04 格式:DOC 页数:23 大小:137KB
返回 下载 相关 举报
C语言企业员工管理系统.doc_第1页
第1页 / 共23页
C语言企业员工管理系统.doc_第2页
第2页 / 共23页
C语言企业员工管理系统.doc_第3页
第3页 / 共23页
C语言企业员工管理系统.doc_第4页
第4页 / 共23页
C语言企业员工管理系统.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《C语言企业员工管理系统.doc》由会员分享,可在线阅读,更多相关《C语言企业员工管理系统.doc(23页珍藏版)》请在三一文库上搜索。

1、C语言企业员工管理系统代码部分:#include #include #include typedef struct employee int num; char duty10; char name10; char sex3; unsigned char age; char edu10; int salary; char tel_office13; char tel_home13; char mobile13; char qq11; char address31; struct employee *next; EMP; char password9; EMP *emp_first,*emp_en

2、d; char gsave,gfirst; void addemp(void); void findemp(void); void listemp(void); void modifyemp(void); void summaryemp(void); void delemp(void); void resetpwd(void); void readdata(void); void savedata(void); int modi_age(int s); int modi_salary(int s); char *modi_field(char *field,char *s,int n); EM

3、P *findname(char *name); EMP *findnum(int num); EMP *findtelephone(char *name); EMP *findqq(char *name); void displayemp(EMP *emp,char *field,char *name); void checkfirst(void); void bound(char ch,int n); void login(); void menu();void addemp() FILE *fp; EMP *emp1; int i=0; char choice=y; if(fp=fope

4、n(employee.dat,ab)=NULL) printf(打开文件employee.dat出错!n); getch(); return; do i+; emp1=(EMP *)malloc(sizeof(EMP); if(emp1=NULL) printf(内存分配失败,按任意键退出!n); getch(); return; printf(请输入第%d个员工的信息,n,i); bound(_,30); printf(工号:); scanf(%d,&emp1-num); printf(职务:); scanf(%s,&emp1-duty); printf(姓名:); scanf(%s,&em

5、p1-name); printf(性别:); scanf(%s,&emp1-sex); printf(年龄:); scanf(%d,&emp1-age); printf(文化程度:); scanf(%s,&emp1-edu); printf(工资:); scanf(%d,&emp1-salary); printf(办公电话:); scanf(%s,&emp1-tel_office); printf(家庭电话:); scanf(%s,&emp1-tel_home); printf(移动电话:); scanf(%s,&emp1-mobile); printf(QQ:); scanf(%s,&emp

6、1-qq); printf(地址:); scanf(%s,&emp1-address); emp1-next=NULL; if(emp_first=NULL) emp_first=emp1; emp_end=emp1; else emp_end-next=emp1; emp_end=emp1; fwrite(emp_end,sizeof(EMP),1,fp); gfirst=0; printf(n); bound(_,30); printf(n是否继续输入?(y/n); fflush(stdin); choice=getch(); if(toupper(choice)!=Y) fclose(f

7、p); printf(n输入完毕,按任意键返回n); getch(); return; system(cls); while(1);void bound(char ch,int n) while(n-) putch(ch); printf(n); return; /*首次使用,进行用户信息初始化*/void checkfirst() FILE *fp,*fp1; char pwd9,pwd19,pwd29,pwd39,ch; int i; char strt=8; if(fp=fopen(config.bat,rb)=NULL) printf(n新系统,请进行相应的初始化操作!n); boun

8、d(_,50); getch(); do printf(n设置密码,请不要超过8位:); for(i=0;i8&(pwdi=getch()!=13);i+) putch(*); printf(n再确认一次密码:); for(i=0;i8&(pwd1i=getch()!=13);i+) putch(*); pwdi=0; pwd1i=0; if(strcmp(pwd,pwd1)!=0) printf(n两次密码输入不一致,请重新输入!nn); else break; while(1); if(fp1=fopen(config.bat,wb)=NULL) printf(n系统创建失败,请按任意键退

9、出!); getch(); exit(1); i=0; while(pwdi) pwd2i=(pwdi strt); putw(pwd2i,fp1); i+; fclose(fp1); printf(nn系统初始化成功,按任意键退出后,再重新进入!n); getch(); exit(1); else i=0; while(!feof(fp)&i=8) i-; while(pwdi!=-1&i=0) i-; pwdi=0; strcpy(password,pwd); void delemp() int findok=0; EMP *emp1,*emp2; char name10,choice;

10、system(cls); printf(n输入要删除的员工姓名:); scanf(%s,name); emp1=emp_first; emp2=emp1; while(emp1) if(strcmp(emp1-name,name)=0) findok=1; system(cls); printf(员工:%s的信息如下:,emp1-name); bound(_,40); printf(工号:%dn,emp1-num); printf(职务:%sn,emp1-duty); printf(姓名:%sn,emp1-name); printf(性别:%sn,emp1-sex); printf(年龄:%d

11、n,emp1-age); printf(文化程度:%sn,emp1-edu); printf(工资:%dn,emp1-salary); printf(办公电话:%sn,emp1-tel_office); printf(家庭电话:%sn,emp1-tel_home); printf(移动电话:%sn,emp1-mobile); printf(QQ号码:%sn,emp1-qq); printf(住址:%ns,emp1-address); bound(_,40); printf(您真的要删除该员工吗?(y/n); fflush(stdin); choice=getchar(); if(choice!

12、=y & choice!=Y) return; if(emp1=emp_first) emp_first=emp1-next; else emp2-next=emp1-next; free(emp1); gsave=1; savedata(); return; else emp2=emp1; emp1=emp1-next; if(!findok) bound(_,40); printf(n没有找到姓名是:%s的信息!n,name); getch(); return;void displayemp(EMP *emp,char *field,char *name) if(emp) printf(n

13、%s:%s信息如下:n,field,name); bound(_,30); printf(工号:%dn,emp-num); printf(职务:%sn,emp-duty); printf(姓名:%sn,emp-name); printf(性别:%sn,emp-sex); printf(年龄:%dn,emp-age); printf(文化程度:%sn,emp-edu); printf(工资:%dn,emp-salary); printf(办公电话:%sn,emp-tel_office); printf(家庭电话:%sn,emp-tel_home); printf(移动电话:%sn,emp-mob

14、ile); printf(QQ号码:%sn,emp-qq); printf(住址:%sn,emp-address); bound(_,30); else bound(_,40); printf(资料库中没有%s为:%s的员工!请重新确认!,field,name); return;EMP *findname(char *name) EMP *emp1; emp1=emp_first; while(emp1) if(strcmp(name,emp1-name)=0) return emp1; emp1=emp1-next; return NULL;EMP *findnum(int num) EMP

15、 *emp1; emp1=emp_first; while(emp1) if(num=emp1-num) return emp1; emp1=emp1-next; return NULL; EMP *findtelephone(char *name) EMP *emp1; emp1=emp_first; while(emp1) if(strcmp(name,emp1-tel_office)=0)| (strcmp(name,emp1-tel_home)=0)| (strcmp(name,emp1-mobile)=0) return emp1; emp1=emp1-next; return NU

16、LL; EMP *findqq(char *name) EMP *emp1; emp1=emp_first; while(emp1) if(strcmp(name,emp1-qq)=0) return emp1; emp1=emp1-next; return NULL; void findemp() int choice,ret=0,num; char str13; EMP *emp1; system(cls); do printf(t查询员工信息n); bound(_,30); printf(t1.按姓名查询n); printf(t2.按工号查询n); printf(t3.按电话查询n);

17、printf(t4.按QQ号查询n); printf(t0.返回主菜单n); bound(_,30); printf(n请选择菜单:); do fflush(stdin); choice=getchar(); system(cls); switch(choice) case 1: printf(n输入要查询的员工姓名:); scanf(%s,str); emp1=findname(str); displayemp(emp1,姓名,str); getch(); break; case 2: printf(n请输入要查询的员工的工号); scanf(%d,&num); emp1=findnum(n

18、um); itoa(num,str,10); displayemp(emp1,工号,str); getch(); break; case 3: printf(n输入要查询员工的电话:); scanf(%s,str); emp1=findtelephone(str); displayemp(emp1,电话,str); getch(); break; case 4: printf(n输入要查询的员工的QQ号:); scanf(%s,str); emp1=findqq(str); displayemp(emp1,QQ号码,str); getch(); break; case 0: ret=1; br

19、eak; while(choice4); system(cls); if(ret) break; while(1); void listemp() EMP *emp1; printf(n资料库中的员工信息列表n); bound(_,40); emp1=emp_first; while(emp1) printf(工号:%dn,emp1-num); printf(职务:%sn,emp1-duty); printf(姓名:%sn,emp1-name); printf(性别:%sn,emp1-sex); printf(年龄:%dn,emp1-age); printf(文化程度:%sn,emp1-edu

20、); printf(工资:%dn,emp1-salary); printf(办公电话:%sn,emp1-tel_office); printf(家庭电话:%sn,emp1-tel_home); printf(移动电话:%sn,emp1-mobile); printf(QQ号码:%sn,emp1-qq); printf(住址:%sn,emp1-address); bound(_,40); emp1=emp1-next; printf(n显示完毕,按任意键退出!n); getch(); return;/*检测登录密码*/void login() int i,n=3; char pwd9; do p

21、rintf(请输入密码:); for(i=0;i0); if(!n) printf(请退出,你的三次输入密码错误!); getch(); exit(1); void menu() char choice; system(cls); do printf(t 企业员工管理系统n); bound(_,40); printf(t1.输入员工信息n); printf(t2.查询员工信息n); printf(t3.显示员工信息n); printf(t4.修改员工信息n); printf(t5.删除员工信息n); printf(t6.统计员工信息n); printf(t7.重置系统密码n); printf(

22、t0.退出系统n); bound(_,40); printf(n请选择您需要的操作!); do fflush(stdin); choice=getchar(); system(cls); switch(choice) case 1: addemp(); break; case 2: if(gfirst) printf(系统信息中无员工信息,请先添加员工信息!n); getch(); break; findemp(); break; case 3: if(gfirst) printf(系统信息中无员工信息,请先添加员工信息!n); getch(); break; listemp(); break

23、; case 4: if(gfirst) printf(系统信息中无员工信息,请先添加员工信息!n); getch(); break; modifyemp(); break; case 5: if(gfirst) printf(系统信息中无员工信息,请先添加员工信息!n); getch(); break; delemp(); break; case 6: if(gfirst) printf(系统信息中无员工信息,请先添加员工信息!n); getch(); break; summaryemp(); break; case 7: resetpwd(); break; case 0: savedat

24、a(); exit(0); while(choice7); system(cls); while(1); int modi_salary(int salary) int newsalary; printf(原来的工资数为:%d,salary); printf(新的工资数:); scanf(%d,&newsalary); return(newsalary);int modi_age(int age) int newage; printf(原来的年龄为:%d,age); printf(新的年龄:); scanf(%d,&newage); return(newage);char *modi_field(char *field,char *content,int len) char *str; str=malloc(sizeof(char)*len);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1