首页

文章

C语言程序设计 《招聘信息管理系统》

发布网友 发布时间:2022-04-19 12:54

我来回答

1个回答

热心网友 时间:2023-07-03 04:15

#include<stdio.h>
#include<stdlib.h>
/*对于学历和工作要求都是用数字来替代*/
typedef struct worker
{
int num; //编号
char id[20]; //身份证号,过长,所以所以用字符串
char name[15]; //姓名
int degree; //学历
int job; //需要的工作
worker *next;
worker *pre;
}worker,*Lworker;
/*需求记录*/
typedef struct want
{
int n; //单位的编号
int job; //需求的岗位
int num; //需求的人数
want *next;
want *pre;
}want,*Lwant;
/*输出说明信息的函数*/
void info()
{
printf("输入说明如下:\n");
printf("学历说明:\n1:高中毕业 2:大学毕业 3:研究生 4:更高学历\n");
printf("职位说明如下:\n1:程序员 2:管理人员 3:会计 4:兽医\n");
printf("当输入求职者信息的时候,求职者编号为-1时,输入结束\n");
printf("当输入供职单位信息的时候,当供职的数量为-1的时候,输入结束\n");
}
/*输入人才信息*/
void input_worker(Lworker head)
{
int i=1;
Lworker x=head;
x->pre=NULL;
while(1)
{
printf("输入第%d个求职者的信息,顺序为编号,姓名,身份证号,需要的工作,学历\n",i);
scanf("%d",&x->num);
if(x->num==-1)
break;
getchar();//回车会被读入到gets()函数中,所以必须有一个getchar()把回车收回
gets(x->name);
gets(x->id);
scanf("%d",&x->job);
scanf("%d",&x->degree);
Lworker y=(worker *)malloc(sizeof(worker));
x->next=y;
y->pre=x;
x=y;
i++;
}
x->pre->next=NULL;
free(x);
}
/*输入求职信息*/
void input_want(Lwant head)
{
Lwant x=head;
int i=1;
x->pre=NULL;
while(1)
{
printf("第%d个供职单位的信息,顺序为编号,工作,数量\n",i);
scanf("%d",&x->n);
scanf("%d",&x->job);
scanf("%d",&x->num);
if(x->num==-1)
break;
i++;
Lwant y=(want*)malloc(sizeof(want));
x->next=y;
y->pre=x;
x=y;
}
x->pre->next=NULL;
free(x);
}
/*查询人才信息函数*/
//参数num就是员工的编号,查询是是什么工作
int find_worker(Lworker head,int num)
{
Lworker x=head;
for(;;x=x->next)
{
if(x->num==num)
{
return(x->job);
}
}
return(-1); //表示没有这个人
}
/*查询工作信息函数*/
//num就是编号
int find_want(Lwant head,int num)
{
Lwant x=head;
for(;;x=x->next)
{
if(x->n==num)
return(x->job);
}
return(-1); //表示没有这个单位的信息
}
/*修改求职者的信息*/
//参数num就是员工的编号
void change_worker(Lworker head,int num)
{
int m=0;
Lworker x=head;
for(;;x=x->next)
{
if(x->num==num)
{
break;
}
}
printf("输入要修改的内容:\n1:工作 2:学历 3:身份证号 4:姓名\n");
scanf("&d",&m);
switch(m)
{
case 1:
printf("输入更正后的工作\n");
scanf("%d",&x->job);
break;
case 2:
printf("输入更正后的学历\n");
scanf("%d",&x->degree);
break;
case 3:
printf("输入更正后的身份证号\n");
gets(x->id);
break;
case 4:
printf("输入更正后的姓名\n");
gets(x->name);
break;
}
}
/*更改用人单位信息*/
//num就是编号
void change_want(Lwant head,int num)
{
int n;
Lwant x=head;
for(;;x=x->next)
{
if(x->n==num)
break;
}
printf("输入要修改的内容\n1:工作 2:人数");
scanf("%d",&n);
switch(n)
{
case 1:
printf("输入新的工作\n");
scanf("%d",&x->job);
break;
case 2:
printf("输入新的人数\n");
scanf("%d",&x->num);
break;
}
}
/*删除求职者信息*/
Lworker del_worker(Lworker head,int num)
{
Lworker x=head;
if(head->num==num)
{
x=head->next;
x->pre=NULL;
free(head);
return(x);
}
else
{
for(;;x=x->next)
{
if(x->num==num)
{
break;
}
}
Lworker y=x->pre;
Lworker z=x->next;
if(z==NULL)
{
y->next=NULL;
free(x);
}
else
{
y->next=z;
z->pre=y;
free(x);
}
return(head);
}
}
/*删除用人单位信息*/
Lwant del_want(Lwant head,int num)
{
Lwant x=head;
if(head->n==num)
{
x=x->next;
x->pre=NULL;
free(head);
return(x);
}
else
{
for(;;x=x->next)
{
if(x->n==num)
{
break;
}
}
Lwant y=x->pre;
Lwant z=x->next;
if(z==NULL)
{
y->next=NULL;
free(x);
return(head);
}
else
{
y->next=z;
z->pre=y;
free(x);
return(head);
}
}
}
/*统计需求量最大的工作*/
void tongji_need(Lworker head,int *n)
{
int i,m=0;
for(i=1;i<5;i++)
n[i]=0;
Lworker x=head;
for(;x!=NULL;x=x->next)
{
switch(x->job)
{
case 1:
n[1]++;
break;
case 2:
n[2]++;
break;
case 3:
n[3]++;
break;
case 4:
n[4]++;
break;
}
}
}
/*统计供给量最大的工作*/
void tongji_serve(Lwant head,int *m)
{
int i;
for(i=1;i<5;i++)
m[i]=0;
Lwant x=head;
for(;x!=NULL;x=x->next)
{
switch(x->job)
{
case 1:
m[1]=m[1]+x->num;
break;
case 2:
m[2]=m[2]+x->num;
break;
case 3:
m[3]=m[3]+x->num;
break;
case 4:
m[4]=m[4]+x->num;
break;
}
}
}
void main()
{
int i;
int x,num;
info();
int n[5],m[5];
Lworker head1=(worker *)malloc(sizeof(worker));
Lwant head2=(want *)malloc(sizeof(want));
while(1)
{
printf("输入要进行的操作\n");
printf("1:输入求值人员信息 2:输入用人单位信息 3:删除求值人员信息 4:删除用人单位信息 5:修改求职人员信息 6:修改用人单位信息\n");
printf("7:查询某个求职人员信息 8:查询某个用人单位信息 9:统计需求的工作信息 10:统计提供工作的信息 0:退出\n");
printf("注意:1和2如果重复执行的话,会覆盖以前的而结果,所以不可以重复选择,只可以做一次\n");
scanf("%d",&x);
if(x==0)
break;
switch(x)
{
case 1:
input_worker(head1);
break;
case 2:
input_want(head2);
break;
case 3:
printf("输入要删除的人员的编号\n");
scanf("%d",&num);
head1=del_worker(head1,num);
break;
case 4:
printf("输入要删除的单位的编号\n");
scanf("%d",&num);
head2=del_want(head2,num);
break;
case 5:
printf("输入要修改的人员的编号\n");
scanf("%d",&num);
change_worker(head1,num);
break;
case 6:
printf("输入要修改的单位的编号\n");
scanf("%d",&num);
change_want(head2,num);
break;
case 7:
printf("输入要查询的人员的编号\n");
scanf("%d",&num);
find_worker(head1,num);
break;
case 8:
printf("输入要查询的单位的编号\n");
scanf("%d",&num);
find_want(head2,num);
break;
case 9:
tongji_need(head1,n);
for(i=1;i<5;i++)
{
printf("第%d种工作的需求量是%d\n",i,n[i]);
}
break;
case 10:
tongji_serve(head2,m);
for(i=1;i<5;i++)
{
printf("第%d种工作的提供量是%d\n",i,m[i]);
}
break;
}
}
}
乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 变形金刚08动画的问题 变形金刚08动画日语版剧情介绍 高分!换显卡nvidia控制面板被我卸了,重新安装显卡驱动后没了nvidia控... 我的nvidia控制面板被卸载了 怎么找回啊 卸载后 这个画面看着很奇怪_百 ... 李卓彬工作简历 林少明工作简历 广东工业职业技术学院怎么样 郑德涛任职简历 唐新桂个人简历 土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 网络诈骗定罪标准揭秘 “流水不争先”是什么意思? mc中钻石装备怎么做 为什么我的MC里的钻石块是这样的?我想要那种。是不是版本的问题?如果是... 带“偷儿”的诗句 “君不见巴丘古城如培塿”的出处是哪里 带“奈何”的诗句大全(229句) 程序员的招聘要求 学什么计算机语言好找工作啊 C 程序员面试?? 现在还有没有单纯招聘C语言程序员的,如果有具体都是 怎么在word中把字旋转90°(把字倒过来90°) WORD2003中怎么改变数字和字母的方向让文字转90度 如何设置WORD中的字体方向? 如何将字体在Word2003中旋转90度 谁能给我翻译翻译,这什么意思啊,是什么字呢,word打开是这些字,怎么能翻译呢 word怎么让字体翻转 如何将Word文档里的字体倒过来? 在word文档中如何把文字翻转180度 word2003怎么改变文字方向 在word文档中怎样让文字任意旋转、任意倾斜? 在Word中怎样把文字旋转90度,180度 在word文档中怎样让文字旋转 在WORD中如何将文字旋转360度 怎样使用word2003翻转文字方向 在Microsoft Office Word 2003里面文字怎么90度旋转? word中如何将文字旋转180度 什么才算是“高级”c/c++程序员? 客户想雇佣高级程序员,不是公司,怎么找? 70分招聘C语言高手,就9个问题,3道编程,其余小题(在线等) 寻找程序员。程序员进来瞧瞧 C , C++ , C语言 程序员的求职意向怎么写 c语言程序员 招聘计算机编程开发人员需要的知识 C程序员工资多少 用英文写招聘软件程序员广告 如何评价二三线城市的C/C++程序员招聘 想成为一名C程序员 58上的程序员招聘信息可信度高吗 国内招聘C语言程序员的单位一般做什么项目 excel怎么按照某一列排序 EXCEL按条件填充? excel怎么按列排序 EXCEL按条件统计个数 excel按那个键保存 excel如何按要求排序 excel 按多个条件如何引用??
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com