ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:61.75KB ,
资源ID:2039844      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2039844.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言人事管理.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言人事管理.docx

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

2、功能: 按照年龄,来院时间进行排序。(6) 保存功能: 能对输入的数据进行相应的存储。程序代码:#include /*根据实际存放位置修改此路径*/*初始化双链表*/void init() First=(TEACHER *)malloc(sizeof(TEACHER); /*为头结点申请空间*/ Last=First; /*将尾指针指向头结点*/ First-prior=Last; /*设置头结点的前驱指针*/ Last-next=First; /*设置头结点的后继指针*/ p=First; /*设置当前记录指针为头结点*/*创建教师信息循环双链表*/void create() int uni

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

4、*开始提示输入*/ scanf(%s,info-no); if(info-no0=)/*输入结束输入*/ flag=1;break; printf(Name:); scanf(%s,info-name); printf(Sex:); scanf(%s,info-sex); printf(Profess:); scanf(%s,info-profess); printf(Dept:); scanf(%s,info-dept); printf(Class:); scanf(%s,info-class); printf(Workload:); scanf(%f,&temp); info-worklo

5、ad=temp; if(strcmp(info-profess,prof)unit=25; /*教授*/ if(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; /*新结点的前驱为原来的尾结点*/ L

6、ast-next=info; /*原来尾结点的后继为新结点*/ 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

7、-prior!=First) p=p-prior; else p=Last; clear(); print(p);/*显示下一条记录*/void nextr() if(First=Last) return; if(p=Last) p=First-next; else p=p-next; clear(); print(p);/*从文件读数据*/void load() TEACHER *p1; FILE *fp; if(fp=fopen(data.txt,rb)=NULL) printf(can not open filen); return; while(First-next!=First) /

8、*如果当前表不空,删除当前表*/ p1=First-next; First-next=p1-next; free(p1); 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) /*当文件不为空时读数据*/ p1=(TEACHER*)malloc(sizeof(TEACHER); if(!p1)

9、 printf(out of memory!n); return; if(1!=fread(p1,sizeof(TEACHER),1,fp) break; /*读数据*/ p1-next=Last-next; /*将新读出的数据链在当前表尾*/ p1-prior=Last; Last-next=p1; Last=Last-next; First-prior=Last; fclose(fp); /*关闭文件*/*保存数据到磁盘文件*/void save() FILE *fp; /*定义指向文件的指针*/ TEACHER *p1; /* 定义移动指针*/ if(fp=fopen(data.txt,

10、wb)=NULL) /*为输出打开一个文本文件,如没有则建立*/ printf(can not open filen); /*如不能打开文件,显示提示信息,结束程序*/ return; /*返回*/ p1=First; /*移动指针从头指针开始*/ while(p1-next!=First) /*如p1不为空*/ fwrite(p1-next,sizeof(TEACHER),1,fp); /*写入一条记录*/ p1=p1-next; /*指针后移,处理下一条记录*/ fclose(fp); /*关闭文件*/*删除记录*/void delete() TEACHER *p1; if(First=L

11、ast) return;/*表为空*/ if(p=First) /*p为头结点*/ p=First-next; if(p=Last)/*p为尾结点*/ Last=p-prior; p1=p; /*一般情况*/ p=p-next; p1-prior-next=p1-next; p1-next-prior=p1-prior; free(p1);/*输出记录*/void print(TEACHER *p) int x1=70,y1=100; char str20; outtextxy(x1+110,y1+75, p-no); outtextxy(x1+360,y1+75,p-name); outte

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

13、4;m+) for(n=0;nnext=First|First-next-next=First)return; p00=First; /*作排好序表的表头和第一个结点*/ p0=First-next; p1=p0-next; First-prior=p0; p0-next=First; templast=p0; while(p1!=First) /*当p1没有转回到表头时*/ p11=p1; /*将p11作为待插入结点*/ p1=p1-next; /*p1指向下一个待排序结点*/ p00=First; /*从头结点开始寻找插入位置*/ p0=p00-next; /*p0是p00的后继*/ while(p0!=First&p11-workloadp0-workload) p00=p0;/*当新插入结点比当前表结点大时,指针后移*/ p0=p0-next; if( p0=First)/*如果p0移到了头结点*/ p11-next=p00-next; p11-prior=p00;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1