没有合适的资源?快使用搜索试试~ 我知道了~
C语言人事管理(附加流程图).docx
0 下载量 196 浏览量
2022-11-17
16:03:12
上传
评论
收藏 64KB DOCX 举报
温馨提示
试读
13页
C语言人事管理(附加流程图).docx
资源推荐
资源详情
资源评论
题目:
某高校主要人员有:在职人员〔行政人员,教师,一般员工〕,退休人员和临时工。现在
需要存储这些人员的人事档案信息,内容包括变好,姓名,性别,年龄,职务,职称,政
治面貌,最高学历,任职时间,来院时间,人员类别。其中人员编号唯一,不能重复。
〔1〕 添加删除功能:能根据学院人事的变动情况,添加删除记录
〔2〕 查询功能: 能根据编号和姓名进行查询
〔3〕 编辑功能〔高级〕: 根据查询对相应的记录进行修改并存储
〔4〕 统计功能: 能根据多种参数进行人员的统计〔在职人员,党员人数,女工
人数,高学历高学历人员〔硕士学位以上或者副教授以上〕〕,统计要求同时
显示被统计者的信息。
〔5〕 排序功能: 按照年龄,来院时间进行排序。
〔6〕 保存功能: 能对输入的数据进行相应的存储。
程序代码:
#include <stdio.h> /*根据实际存放位置修改此路径*/
/*初始化双链表*/
void init()
{
First=(TEACHER *)malloc(sizeof(TEACHER)); /*为头结点申请空间*/
Last=First; /*将尾指针指向头结点*/
First->prior=Last; /*设置头结点的前驱指针*/
Last->next=First; /*设置头结点的后继指针*/
p=First; /*设置当前记录指针为头结点*/
}
/*创立教师信息循环双链表*/
void create()
{
int unit,flag=0;
float temp;
TEACHER *info; /*新增结点*/
init();
for(;;)
{
if(flag==1)break; /*标志为 1,不再输入*/
clrscr(); /*清屏*/
printf("Please enter teacher infomation\n");
printf("input @ end enter\n");
info=(TEACHER *)malloc(sizeof(TEACHER));/*为新增结点申请空间*/
if(!info) /*没有空间出错处理*/
{
printf("\nout of memory");
exit(0);
}
printf("No:"); /*开始提示输入*/
scanf("%s",info->no);
if(info->no[0]=='@')/*输入@结束输入*/
{
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->workload=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; /*新结点的前驱为原来的尾结点*/
Last->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->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)
剩余12页未读,继续阅读
资源评论
zzzzl333
- 粉丝: 693
- 资源: 7万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功