用c语言编写企业人事管理信息系统.doc_第1页
用c语言编写企业人事管理信息系统.doc_第2页
用c语言编写企业人事管理信息系统.doc_第3页
用c语言编写企业人事管理信息系统.doc_第4页
用c语言编写企业人事管理信息系统.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

企业人事管理信息系统(两种方法)方法一#include stdio.h#include stdlib.h#include string.hstruct dateint year,month,day;typedef struct manrecordint id;char name20;char sex10;char dept20;struct date worktime;struct manrecord *next;Elemtype;Elemtype *init()Elemtype *h;h=(Elemtype *)malloc(sizeof(Elemtype);if (h=NULL)printf(内存空间不足!n);return NULL;else h-next=NULL;return h;void term( Elemtype *h)Elemtype *p,*q;p=h;while (p!=NULL)q=p;p=p-next;free(q);Elemtype * isidExist(Elemtype *h,int id)Elemtype *p;p=h-next;while (p!=NULL)if (p-id=id)return p;elsep=p-next;return NULL;void inputStaff(Elemtype *h) Elemtype *p;int id;while (1)printf(输入员工编号(小于等于0,则结束输入):);scanf(%d,&id);if (idid=id;printf(输入姓名:n);scanf(%s,p-name);printf(输入性别:n);scanf(%s,p-sex);printf(输入部门:n);scanf(%s,p-dept);printf(输入员工工作时间:(yyyy-mm-dd):n);scanf(%d-%d-%d,&p-worktime.year,&p-worktime.month,&p-worktime.day); p-next=NULL;h-next=p;h=p;void outputHead()printf(编号t姓名t性别t部门t工作时间n);void outputOneStaff(Elemtype *p)printf(%dt%st%st%st,p-id,p-name,p-sex,p-dept);printf(%d-%d-%d,p-worktime.year,p-worktime.month,p-worktime.day);printf(n);void outputStaff(Elemtype *h)Elemtype *p;if (h-next=NULL)printf(链表为空!n);return;outputHead();p=h-next;while (p!=NULL)outputOneStaff(p);p=p-next;printf(数据输出结束!n);void saveStaff(Elemtype *h)FILE *fp;Elemtype *p;if (h-next=NULL)printf(无数据!n);return;fp=fopen(d:企业人事管理信息系统staff.txt,w);if (fp=NULL)printf(文件打开失败!n);return;p=h-next;while (p!=NULL)fprintf(fp,n);fprintf(fp,%dt%st%st%st,p-id,p-name,p-sex,p-dept); fprintf(fp,%d-%d-%d,p-worktime.year,p-worktime.month,p-worktime.day);p=p-next;fclose(fp);printf(已成功存盘!n);void readStaff(Elemtype *h) int n;FILE *fp;Elemtype *p;fp=fopen(d:企业人事管理信息系统staff.txt,r); if (fp=NULL)printf(文件打开失败!n);return;n=0;while (!feof(fp) p=(Elemtype *)malloc(sizeof(Elemtype);if (p=NULL)printf(内存空间不足。n);break;fscanf(fp,%dt%st%st%st,&p-id,p-name,p-sex,p-dept); fscanf(fp,%d-%d-%d,&p-worktime.year,&p-worktime.month,&p-worktime.day);n+;p-next=NULL;h-next=p;h=p;fclose(fp);printf(已从文件成功读取%d条记录!n,n);void insertOneStaff(Elemtype *h)Elemtype *p;p=(Elemtype *)malloc(sizeof(Elemtype);if (p=NULL)printf(内存空间不足.n);return;printf(请输入要插入的员工信息。n);do printf(输入员工编号:n);scanf(%d,&p-id);if (p-ididname);printf(输入性别:n);scanf(%s,p-sex);printf(输入部门:n);scanf(%s,p-dept);printf(输入员工工作时间:(yyyy-mm-dd):n);scanf(%d-%d-%d,&p-worktime.year,&p-worktime.month,&p-worktime.day);p-next=h-next;h-next=p;printf(已成功插入一个员工记录。n);void deleteOneStaff(Elemtype *h)Elemtype *p;if (h-next=NULL)printf(链表为空!n);return;p=h-next; h-next=p-next;printf(编号为(%d)的员工记录已从链表中删除。n,p-id);free(p);void straightInsertSortById(Elemtype *h)Elemtype *t,*s,*u,*v;if (h-next=NULL)printf(链表中无数据!n);return;s=h-next-next;h-next-next=NULL;while (s !=NULL)t=s;s=s-next;u=h;v=h-next;while (v!=NULL& v-idid)u=v;v=v-next;u-next=t;t-next=v; printf(已按照员工的编号进行排序。排序后的结果为:n);outputStaff(h);void searchById(Elemtype *h,int id)Elemtype *p;p=isidExist(h,id);if (p=NULL)printf(查找失败!编号为%d的员工不存在!n,id);elseprintf(查找成功!查找结果如下:n);outputHead();outputOneStaff(p);void searchByName(Elemtype *h,char name)int flag=0;Elemtype *p;p=h-next;while (p!=NULL)if (strcmp(p-name,name)=0)if (flag=0)flag=1;printf(查找成功!查找结果如下:n);outputHead();outputOneStaff(p);p=p-next;if (flag=0)printf(查找失败!姓名为%s的员工不存在.n,name);void searchStaff(Elemtype *h)int id;char name20;int subMenuItem=1;while (subMenuItem!=0)printf(nn);printf(*查找子菜单*n);printf(* 1.根据员工编号查找 *n);printf(* 2.根据员工姓名查找 *n);printf(* 0.返回主菜单 *n);printf(*n);printf(请输入所选子菜单项序号:);scanf(%d,&subMenuItem);switch (subMenuItem)case 1:printf(输入要查找的员工编号:);scanf(%d,&id);searchById(h,id);break;case 2:printf(输入要查找的员工姓名:);scanf(%s,name);searchByName(h,name);break;case 0:break;default:printf(输入超出范围!n);break;void main()int menuItemCode;Elemtype *head;head=init();if (head=NULL)return;menuItemCode=1;while (menuItemCode!=0)printf(nn);printf(*人事管理信息系统*n); printf(* 1.输入员工信息 *n); printf(* 2.输出员工信息 *n); printf(* 3.将员工信息写入文件 *n); printf(* 4.从文件读取员信息 *n); printf(* 5.插入一个员工信息 *n); printf(* 6.删除一个员工信息 *n); printf(* 7.对员工信息进行排序 *n); printf(* 8.对员工信息进行查找 *n); printf(* 0.退出系统 *n); printf(*n); printf(请输入所选菜单项序号:); scanf(%d,&menuItemCode); switch (menuItemCode) case 1:inputStaff(head); break; case 2:outputStaff(head); break; case 3:saveStaff(head); break; case 4:readStaff(head); break; case 5:insertOneStaff(head); break; case 6:deleteOneStaff(head); break; case 7:straightInsertSortById(head); break; case 8:searchStaff(head); break; case 0:break; default:printf(输入超出范围!n); break; term(head);方法二#include stdio.h#include string.h#define MAXSIZE 100struct date int year,month,day;typedef struct manrecord int id; char name20; char sex10; char dept20; struct date worktime;Elemtype;struct sequence Elemtype elemMAXSIZE; int len;struct sequence v;void inputstaff() int i,n; printf(请输入员工个数:n); scanf(%d,&n); if (n0) return; for (i=0;in;i+) printf(输入第%d个企业人员的编号:n,i+1); scanf(%d,&v.elemi.id); printf(输入企业人员姓名:n); scanf(%s,); printf(输入企业人员性别:n); scanf(%s,v.elemi.sex); printf(输入企业人员部门:n); scanf(%s,v.elemi.dept); printf(输入企业人员工作时间(yyyy-mm-dd):n); scanf(%d-%d-%d,&v.elemi.worktime.year,&v.elemi.worktime.month,&v.elemi.worktime.day); v.len=n;void outputstaff() int i; if (v.len=0) printf(n无数据!n); return; printf(编号t姓名t性别t部门t工作时间n); for (i=0;iv.len;i+) printf(%d t%s t %st %st ,v.elemi.id,,v.elemi.sex,v.elemi.dept); printf(%d-%d-%dn,v.elemi.worktime.year,v.elemi.worktime.month,v.elemi.worktime.day); void savestaff() int i; FILE *fp; if (v.len=0) printf(n无数据!n); return; fp=fopen(d:人事管理信息系统staff.txt,w); if (fp=NULL) printf(文件打失败!n); return; for (i=0;iv.len;i+) fprintf(fp,n); fprintf(fp,%dt%st%st%st,v.elemi.id,,v.elemi.sex,v.elemi.dept); fprintf(fp,%d-%d-%d,v.elemi.worktime.year,v.elemi.worktime.month,v.elemi.worktime.day); fclose(fp); printf(已成功存盘!n);void readstaff() int i; FILE *fp; fp=fopen(d:人事管理信息系统staff.txt,r); if (fp=NULL) printf(文件打开失败!n); return; i=0; while (!feof(fp) fscanf(fp,%d%s%s%s,&v.elemi.id,,v.elemi.sex,v.elemi.dept); fscanf(fp,%d-%d-%d,&v.elemi.worktime.year,&v.elemi.worktime.month,&v.elemi.worktime.day); i+; v.len=i; fclose(fp); printf(已从文件成功读取%d条记录!n,v.len);void insertOneStaff() Elemtype s; int i,pos; if (v.len=MAXSIZE) printf(表已满!n); return; printf(请输入插入位置:); scanf(%d,&pos); if (posMAXSIZE)printf(插入位置出错!n); return; printf(请输入要插入的员工记录。n); printf(输入企业人员编号:n); scanf(%d,&s.id); printf(输入企业人员姓名:n); scanf(%s,); printf(输入企业人员性别:n); scanf(%s,s.sex); printf(输入企业人员部门:n); scanf(%s,s.dept); printf(输入企业人员工作时间(yyyy-mm-dd):n); scanf(%d-%d-%d,&s.worktime.year,&s.worktime.month,&s.worktime.day); for (i=v.len-1;i=pos;i-) v.elemi+1=v.elemi; v.elempos=s; v.len=v.len+1; printf(插入成功!n);void deleteOneStaff()int i,pos;if (v.len=0)printf(表空!n);return;printf(请输入要删除的员工记录的位置:);scanf(%d,&pos);if (pos v.len-1)printf(删除的位置出错!n);return;for (i=pos+1;i=v.len-1;i+)v.elemi-1=v.elemi;v.len=v.len-1;printf(删除成功!n);void bubbleSortById()int i,j,n;Elemtype temp;int tag;n=v.len;for (tag=1,i=0;ii;j-)if (v.elemj.idv.elemj-1.id)temp=v.elemj;v.elemj=v.elemj-1;v.elemj-1=temp;tag=1;printf(已按照员工编号递增排序。排序后的结果为:n);outputstaff();void outputHead()printf(编号t姓名t性别t部门t工作时间n);void outputOneStaff(Elemtype w)printf(%dt%st%st%st,w.id,,w.sex,w.dept);printf(%d-%d-%d,w.worktime.year,w.worktime.month,w.worktime.day);printf(n);int isIdExist( int id)int n,i=0;n=v.len;while(in & v.elemi.id!=id)i+;if (in)return i;else return -1;void seqSearchById(int id)int pos;pos=isIdExist(id);if (pos!=-1)printf(查找成功!查找结果如下:n);outputHead();outputOneStaff(v.elempos);elseprintf(查找失败!编号为%d的员工不存在。n,id);void seqSearchByName(char name)int flag=0;int n,i;n=v.len;i=0;while (in)if (strcmp(,name)=0)if (flag=0)flag=1;printf(查找成功!查找结果如下:n);outputHead();outputOneStaff(v.elemi);i+;if (flag=0)printf(查找失败!姓名为%s的员工不存在。n,name);void searchStaff()int id;char name20;int subMenuItem=1;while (subMenuItem!=0)printf(nn);printf(*查找子菜单*n);printf(* 1.根据员工编号进行查找 *n);printf(* 2.根据员工姓名进行查找 *n);printf(* 0.返回主菜单 *n);printf(*n);printf(请输入所选子菜单项序号:);scanf(%d,&subMenuItem);switch(subMenuItem)case 1:printf(请输入要查找的员工编号:);scanf(%d,&id);seqSearchById(id);break;case 2:printf(请输入要查找的员工姓名:);scanf(%s,name);seqSearchByName(name);break;case 0:break;default :printf(输入超出范围!n);break;void main() int menuItemCode=1; v.len=0; while (menuItemCode!=0) printf(nn); printf(*人事管理信息系统*n); printf(* 1.输入员工信息 *n); printf(* 2.输出员工信息 *n); printf(* 3.将员工信息写入文件 *n); printf(* 4.从文件读取员信息 *n); printf(* 5.插入一个员工信息 *n); printf(* 6.删除一个员工信息 *n); printf(* 7.对员工信息进行排序 *n); printf(* 8.对员工信息进行查找 *n); printf(* 0.退出系统 *n); printf(*n); printf(请输入所选菜单项序号:); scanf(%d,&menuItemCode); switch (menuItemCode) case 1:inputstaff(); break; case 2:outputstaff(); break; case 3:savestaff(); break; case 4:readstaff(); break; case 5:insertOneStaff(); break; case 6:deleteOneStaff(); break; case 7:bubbleSortById(); break; case 8:searchStaff(); break; case 0:break; default:printf(输入超出范围!n); break; 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论