C语言人事管理_第1页
C语言人事管理_第2页
C语言人事管理_第3页
C语言人事管理_第4页
C语言人事管理_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、c语言人事管理某高校要紧人员有:在职人员(行政人员,教师,一样职员),退休人员和临时工。现在 需要储备这些人员的人事档案借息,内容包括变好,姓名,性不年龄,职务,职称,政治 而貌,最高学历,任职时刻,来院时刻,人员类不。其中人员编号唯独,不能重复。添加删除功能:能依照学院人事的变动情形,添加删除记录査询功能:能依照编号和姓拿进行査询编辑功能(高级):依照査询对相应的记录进行修改并储备统il功能:能依照多种参数进行人员的统讣(在职人员,党员人数,女工人(1)(2)(3)(4)数,高学历高学历人员(硕士学位以上或者副教授以上),统计要求同时显示 被统计者的信息。(5) 排序功能:按照年龄,来院时刻

2、进行排丿了;。(6) 储存功能:能对输入的数据进行相应的储备。千口 ZUTTI桎序代码:ttinclude /*依照实际存放位置修改此路径水/*初始化双链表*/void init ()First= (TEACHER *)malloc(sizeof (TEACHER) : /*为头结点申请空间*/ Last二First; /*将尾指针指向头结点*/First-prior=Last: /*设置头结点的前驱指针*/ Last-next=First; /*设置头结点的后继指针水/ 尸First; /*设置当前记录指针为头结点*/*创建教师信息循环双链表权void create 0int unit, f

3、lag=0:float temp:TEACHER *info: /*新增结点*/ initO ;for(:)if (flag=l)break: /*标志为 b 不再输入*/clrscr 0 : /*清屏*/printf(Please enter teacher infomationn);printf (input end entern);inf0= (TEACHER *)malloc(sizeof (TEACHER) ;/*为新增结点申请空间*/ if (! info) /*没有空间出错处理*/printf(nout of memory); exit(O);printf (No:); /*开始

4、提示输入水/ scanf(%s, info-no);if (info-no0=* )/*输入终止输入*/flag=l:break: printf (Name:);scanfinfo-name);printf(Sex:);scanfinfo-sex); printf(Profess:);scanfinfo-profess);printf(Dept:);scanfinfo-dept);printf(Class:);scanfinfo-class); printf(Workload:);scanf(%f, &temp); info-workload=temp;if (strcmp (info-pro

5、fess, prof) unit=25; /*教授*/ 辻(strcmp (info-profess, aprof) unit=20; /*副教授*/ if (strcmp (info-profess, lect)unit=15; /*讲师*/ if (strcmp (info-profess, ass) unit=10; /*助教*/ info-lessonf=unit*info-workload: /* 依照职称运算代课费*/ info-next二Last-next; /*新插入结点插在表末尾*/ info-prior=Last: /*新结点的前驱为原先的尾结点*/ Last-next=i

6、nfo: /*原先尾结点的后继为新结点*/ Last=info: /*新的尾结点为新结点*/First-prior=Last: /*头结点的前驱为尾指针*/return: void firstr () if (First=Last)return: clear ();p=First-next: print(p);/*显示最后一条记录*/ void lastr ()if (First=Last)return: clear ();p=Last;print(p);/*显示前一条记录水/ void priorr ()if (First=Last)return:if (p-prior!=First)p=p

7、-prior:elsep=Last; clear (); print(p);/*显示下一条记录水/ void nextr ()if(First=Last) return:if(p=Last) p=First-next: elsep=p-next;clear ();print(p);/*从文件读数据权 void loadOTEACHER *pi;FILE *fp;辻(fp=fopen(data, txt,rb)=NULL)printf(can not open filen); return:wh订e (First-next! =First) /*假如当前表不空,删除当前表*/pl=First-n

8、ext: First-next=pl-next; free (pl);free(First);First= (TEACHER*)malloc (sizeof (TEACHER) ; /*创建头结点*/ if(!First)printf(out of memory!n); return:Last=First;First-prior=Last;Last-next=First;p=First: while(!feof(fp) /*当文件不为空时读数据*/pl=(TEACHER*)malloc(sizeof (TEACHER); if (!pl)printf(out of memory!n); ret

9、urn:if(l!=fread(pl, sizeof (TEACHER), l,fp) break: /*读数据*/pl-next=Last-next: /*将新读出的数据链在当前表尾*/ pl-prior=Last:Last-next=pl;Last=Last-next;First-prior=Last;fclose(fp) : /*关闭文件*/ /*储存数据到磁盘文件*/ void save ()FILE *fp; /*定义指向文件的指针权TEACHER *pi; /*定义移动指针水/if (fp=f open (data, txt,wb)=NULL) /* 为输出打开一个文本文件,如 没

10、有则建立权printf Ccan not open filen) ; /*如不能打开文件,显示提示信息, 终止程序*/*返回*/return:pl=First: /*移动指针从头指针开始水/ while(pl-next! =First) /*如 pl 不为空*/fwrite (pl-next, sizeof (TEACHER), 1, fp) ; /*写入一条记录水/ pl=pl-next: /*指针后移,处理下一条记录*/fclose(fp) : /*关闭文件*/ /*删除记录权void delete 0TEACHER *pl:if(First=Last) return;/* 表为空*/辻(

11、p=First) /*p为头结点*/ p=First-next:辻(p=Last) /*p为尾结点*/ Last=p-prior: pl=p: /*一样悄形*/ p=p-next;pl-prior-next=pl-next; pl-next-prior=pl-prior; free (pl);/*输出记录水/ void print(TEACHER *p)int xl=70, yl=100:char str20:outtextxy(xl+110, yl+75, p-no); outtextxy(xl+360, yl+75, p-name);outtextxy(xl+110, yl+105, p-

12、sex); outtextxy (xl+360, yl+105, p-profess); outtextxy (xl+110, yl+135, p-dept);outtextxy(xl+360, yl+135, p-class); sprintf(str, , p-workload);outtextxy(xl+110, yl+165, str);sprintf(str, , p-lessonf); outtextxy(xl+360, yl+165, str);/*清除界面显示信息*/ void clear ()int xl=70, yl=100, m, n;for (m=0 :m4:m+)fo

13、r (n=0:nnext=First I I First-next-next=First)return: pO=First-next;pl=pO-next;First-prior=pO; pO-next=First: templast=pO:while(pl!=First) /*当pl没有转回到表头时*/pll=pl: /*将pll作为待插入结点水/ pl二pl-next; /*pl指向下一个待排序结点*/ pOO=First: /*从头结点开始查找插入位置*/ p0=p00-next; /*p0 是 pOO 的后继*/ while (pO!=First&pll-workloadpO-work

14、load)p00=p0:/*当新插入结点比当前表结点大时,指针后移权 pO=pO-next;if ( pO=First)/*假如pO移到了头结点*/pll-next=pOO-next; pll-prior=pOO: pOO-next=pll: pO-prior=pll: templast=pll:else /*新插入结点介于pOO和pO之间*/pll-next=pO: pll-prior=pOO: pO-prior=pll: pOO-next=pll:Last=templast; /*设置尾指针*/ p=First: /*设置当前记录指针*/流程图能bsJt期 wvM.ezprogxom . s

温馨提示

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

评论

0/150

提交评论