C语言人事管理(附加流程图)_第1页
C语言人事管理(附加流程图)_第2页
C语言人事管理(附加流程图)_第3页
C语言人事管理(附加流程图)_第4页
C语言人事管理(附加流程图)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、题目: 某高校主要人员有:在职人员(行政人员,教师,一般员工),退休人员和临时工。现在需要存储这些人员的人事档案信息,内容包括变好,姓名,性别,年龄,职务,职称,政治面貌,最高学历,任职时间,来院时间,人员类别。其中人员编号唯一,不能重复。 (1) 添加删除功能:能根据学院人事的变动情况,添加删除记录 (2) 查询功能: 能根据编号和姓名进行查询 (3) 编辑功能(高级): 根据查询对相应的记录进行修改并存储 (4) 统计功能: 能根据多种参数进行人员的统计(在职人员,党员人数,女工人数,高学历高学历人员(硕士学位以上或者副教授以上),统计要求同时显示被统计者的信息。(5) 排序功功能: 按照

2、年年龄,来来院时间间进行排排序。(6) 保存功功能: 能对输输入的数数据进行行相应的的存储。程序代码码: HTMLCONTROL Forms.HTML:Hidden.1 HTMLCONTROL Forms.HTML:Hidden.1 HTMLCONTROL Forms.HTML:Hidden.1 HTMLCONTROL Forms.HTML:Hidden.1 HTMLCONTROL Forms.HTML:Hidden.1 HTMLCONTROL Forms.HTML:Hidden.1 HTMLCONTROL Forms.HTML:Hidden.1 #inccludde /*根根据实际际存放位位

3、置修改改此路径径*/*初始始化双链链表*/voidd innit() FFirsst=(TEAACHEER *)maallooc(ssizeeof(TEAACHEER); /*为头头结点申申请空间间*/ LLastt=Fiirstt; /*将尾尾指针指指向头结结点*/ FFirsst-priior=Lasst; /*设设置头结结点的前前驱指针针*/ LLastt-nnextt=Fiirstt; /*设置置头结点点的后继继指针*/ pp=Fiirstt; /*设置置当前记记录指针针为头结结点*/*创建建教师信信息循环环双链表表*/voidd crreatte() iint uniit,fflag

4、g=0; ffloaat ttempp; TTEACCHERR *iinfoo; /*新增增结点*/ iinitt(); ffor(;) iif(fflagg=11)brreakk; /*标志志为1,不再输输入*/ cclrsscr(); /*清清屏*/ pprinntf(Plleasse eenteer tteaccherr innfommatiionn); pprinntf(innputt endd ennterrn); iinfoo=(TTEACCHERR *)malllocc(siizeoof(TTEACCHERR);/*为为新增结结点申请请空间*/ iif(!inffo) /*没没有

5、空间间出错处处理*/ prrinttf(noout of memmoryy); exxit(0); pprinntf(Noo:); /*开始始提示输输入*/ sscannf(%s,innfo-noo); iif(iinfoo-nno00=)/*输入结束输输入*/ fllag=1;bbreaak; prrinttf(Namme:); sccanff(%s,inffo-namme); prrinttf(Sexx:); sccanff(%s,inffo-sexx); prrinttf(Proofesss:); sccanff(%s,inffo-proofesss); prrinttf(Deppt:)

6、; sccanff(%s,inffo-deppt); prrinttf(Claass:); sccanff(%s,inffo-claass); prrinttf(Worrklooad:); sccanff(%f,&teemp); innfo-woorklloadd=teemp; iff(sttrcmmp(iinfoo-pproffesss,pproff)uniit=225; /*教教授*/ iff(sttrcmmp(iinfoo-pproffesss,aaproof)unnit=20;/*副副教授*/ iff(sttrcmmp(iinfoo-pproffesss,llectt)uniit=11

7、5;/*讲师师*/ iff(sttrcmmp(iinfoo-pproffesss,aass)uunitt=100;/*助教*/ innfo-leessoonf=uniit*iinfoo-wworkkloaad;/*根据据职称计计算代课课费*/ innfo-neext=Lasst-nexxt;/*新插插入结点点插在表表末尾*/ innfo-prriorr=Laast; /*新结点点的前驱驱为原来来的尾结结点*/ Laast-neext=inffo; /*原原来尾结结点的后后继为新新结点*/ Laast=inffo; /*新新的尾结结点为新新结点*/ Fiirstt-pprioor=LLastt;

8、/*头结点点的前驱驱为尾指指针*/ rretuurn;/*显示示第一条条记录*/voidd fiirsttr() iif(FFirsst=Lasst)rretuurn; ccleaar(); pp=Fiirstt-nnextt; pprinnt(pp);/*显示示最后一一条记录录*/voidd laastrr() iif(FFirsst=Lasst)rretuurn; ccleaar(); pp=Laast; pprinnt(pp);/*显示示前一条条记录*/voidd prriorrr() iif(FFirsst=Lasst) rretuurn; iif(pp-pprioor!=Firrst

9、) pp=p-prriorr; eelsee pp=Laast; ccleaar(); pprinnt(pp);/*显示示下一条条记录*/voidd neextrr() iif(FFirsst=Lasst) rretuurn; iif(pp=LLastt) pp=Fiirstt-nnextt; eelsee pp=p-neext; ccleaar(); pprinnt(pp);/*从文文件读数数据*/voidd looad() TTEACCHERR *pp1; FFILEE *ffp; iif(fp=foppen(daata.txtt,rb)=NUULL) pprinntf(caan nnot

10、 opeen ffileen); rretuurn; wwhille(FFirsst-nexxt!=Firrst) /*如果当当前表不不空,删删除当前前表*/ pp1=FFirsst-nexxt; FFirsst-nexxt=pp1-nexxt; ffreee(p11); ffreee(Fiirstt); FFirsst=(TEAACHEER*)malllocc(siizeoof(TTEACCHERR); /*创建头头结点*/ iif(!Firrst) pprinntf(ouut oof mmemoory!n); rretuurn; LLastt=Fiirstt; FFirsst-priior

11、=Lasst; LLastt-nnextt=Fiirstt; pp=Fiirstt; wwhille(!feoof(ffp) /*当文件件不为空空时读数数据*/ pp1=(TEAACHEER*)malllocc(siizeoof(TTEACCHERR); iif(!p1) prrinttf(outt off meemorry!n); reeturrn; iif(11!=ffreaad(pp1,ssizeeof(TEAACHEER),1,ffp) brreakk; /*读数数据*/ pp1-nexxt=LLastt-nnextt; /*将新新读出的的数据链链在当前前表尾*/ pp1-priior

12、=Lasst; LLastt-nnextt=p11; LLastt=Laast-neext; FFirsst-priior=Lasst; ffcloose(fp); /*关闭闭文件*/*保存存数据到到磁盘文文件*/voidd saave() FFILEE *ffp; /*定义指指向文件件的指针针*/ TTEACCHERR *pp1; /* 定义移移动指针针*/ iif(fp=foppen(daata.txtt,wb)=NUULL) /*为输出出打开一一个文本本文件,如没有有则建立立*/ pprinntf(caan nnot opeen ffileen); /*如如不能打打开文件件,显示示提示信

13、信息,结结束程序序*/ rretuurn; /*返回回*/ pp1=FFirsst; /*移移动指针针从头指指针开始始*/ wwhille(pp1-nexxt!=Firrst) /*如p11不为空空*/ ffwriite(p1-neext,sizzeoff(TEEACHHER),1,fp); /*写入入一条记记录*/ pp1=pp1-nexxt; /*指针后后移,处处理下一一条记录录*/ ffcloose(fp); /*关闭闭文件*/*删除除记录*/voidd deelette() TTEACCHERR *pp1; iif(FFirsst=Lasst) rretuurn;/*表表为空*/ ii

14、f(pp=FFirsst) /*pp为头结结点*/ pp=Fiirstt-nnextt; iif(pp=LLastt)/*p为尾尾结点*/ LLastt=p-prriorr; pp1=pp; /*一般般情况*/ pp=p-neext; pp1-priior-neext=p1-neext; pp1-nexxt-priior=p1-prriorr; ffreee(p11);/*输出出记录*/voidd prrintt(TEEACHHER *p) iint x1=70,y1=1000; ccharr sttr220; ooutttexttxy(x1+1100,y11+755, pp-nno); oo

15、utttexttxy(x1+3600,y11+755,p-naame); ooutttexttxy(x1+1100,y11+1005,pp-ssex); ooutttexttxy(x1+3600,y11+1005,pp-pproffesss); ooutttexttxy(x1+1100,y11+1335,pp-ddeptt); ooutttexttxy(x1+3600,y11+1335,pp-cclasss); sspriintff(sttr,%f,p-woorklloadd); ooutttexttxy(x1+1100,y11+1665,sstr); sspriintff(sttr,%f,p

16、-leessoonf); ooutttexttxy(x1+3600,y11+1665,sstr);/*清清除界面面显示信信息*/voidd cllearr() iint x1=70,y1=1000,m,n; ffor(m=00;m4;mm+) ffor(n=00;nnexxt=Firrst|Fiirstt-nnextt-nnextt=FFirsst)rretuurn; pp00=Firrst; /*作排好好序表的的表头和和第一个个结点*/ pp0=FFirsst-nexxt; pp1=pp0-nexxt; FFirsst-priior=p0; pp0-nexxt=FFirsst; ttempp

17、lasst=pp0; wwhille(pp1!=Firrst) /*当p11没有转转回到表表头时*/ pp11=p1; /*将将p111作为待待插入结结点*/ pp1=pp1-nexxt; /*pp1指向向下一个个待排序序结点*/ pp00=Firrst; /*从头结结点开始始寻找插插入位置置*/ pp0=pp00-neext; /*p0是是p000的后继继*/ wwhille(pp0!=Firrst&p111-worrklooadp0-woorklloadd) p000=pp0;/*当新新插入结结点比当当前表结结点大时时,指针针后移*/ p00=p00-nnextt; iif( p0=Fiirstt)/*如果pp0

温馨提示

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

评论

0/150

提交评论