C语言程序的设计招聘信息管理系统方案.docx
- 文档编号:26783144
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:22
- 大小:437.25KB
C语言程序的设计招聘信息管理系统方案.docx
《C语言程序的设计招聘信息管理系统方案.docx》由会员分享,可在线阅读,更多相关《C语言程序的设计招聘信息管理系统方案.docx(22页珍藏版)》请在冰豆网上搜索。
C语言程序的设计招聘信息管理系统方案
一、概要设计内容--------------------------------------------2
二、总体设计分析--------------------------------------------2
三、各模块实现方法-----------------------------------------3
四、模块的程序设计分析-----------------------------------3
五、模块的程序的源代码-----------------------------------4
六、程序运行结果及系统使用说明-----------------------13
七、结束语及心得体会--------------------------------------15
1、概要设计内容
题目:
招聘信息管理系统
设计“招聘信息管理系统”,使其可以查找对应的工作与对应的资料的功能。
1)数据包括:
学历说明,职位说明,求职个人信息,用人单位信息。
2)可以对求职人员的信息进行记录。
3)可以对用人单位的信息进行记录。
4)可以增加或删除记录。
5)可以显示所有保存的记录。
6)可以按个人需要进行查询。
2、总体设计分析
数据结构图如下:
3、各模块实现方法
(1)能够查询招聘信息系统的程序,以帮助完成招聘查找情况。
◆求职人员信息
当查询用人单位招聘用人信息时,将自动告诉单位用人情况。
◆用人单位信息
当用人单位预备招聘人手是,将自动弹出招聘者信息。
(2)统计信息
统计出全部的工作信息和提供工作的信息。
给予全部的人来参考提供。
4、模块的程序设计分析
(1).主菜单及头文件设计:
我们按照老师所给的示例我们首先编译了一个头文件,在头文件里,编译了主函数需要用到的一些函数,如#include"stdio.h"等,因为需要录入便条的所有信息,所有用一个数据结构来实现信息的储存方式,用数组方式,把每条信息都编译成一个数组,如销售员代号用name[4]记录。
头文件还包括了定义常数记录数typedefstruct,主函数原型
intmenu_select();/*声明函数*/
intenter(RECODEt[]);/*声明函数*/
voidsalor(RECODEt[],intn);/*声明函数*/
intsum(RECODEt[],intn,intm);/*声明函数*/
voidlist1(RECODEt[],intn);/*声明函数*/
voidlist2(RECODEt[],intn);/*声明函数*/
voidlist3(RECODEt[],intn);/*声明函数*/
voidsave(RECODEt[],intn);/*声明函数*/
intload(RECODEt[]);/*声明函数*/
这些的都是主函数需要用到的数据,因此放入头文件当中,在主程序开始之前直接引用#include"pro.h"。
(2).输入信息:
根据要求,招聘信息以文本文件存放在文件中,故需要提供文件的输入、输出等操作;还需要保存记录以进行修改,删除,查找等操作;另外还应提供键盘式选择菜单实现功能选择。
如下为程序设计流程图:
5、模块的程序源代码
头文件:
#include
#include
/*对于学历和工作要求都是用数字来替代*/
typedefstructworker
{
intnum;//编号
charid[20];//身份证号,过长,所以所以用字符串
charname[15];//姓名
intdegree;//学历
intjob;//需要的工作
worker*next;
worker*pre;
}worker,*Lworker;
/*需求记录*/
typedefstructwant
{
intn;//单位的编号
intjob;//需求的岗位
intnum;//需求的人数
want*next;
want*pre;
}want,*Lwant;
/*输出说明信息的函数*/
voidinfo()
{
printf("输入说明如下:
\n");
printf("学历说明:
\n1:
高中毕业2:
大学毕业3:
研究生4:
更高学历\n");
printf("职位说明如下:
\n1:
程序员2:
管理人员3:
会计4:
兽医\n");
printf("当输入求职者信息的时候,求职者编号为-1时,输入结束\n");
printf("当输入供职单位信息的时候,当供职的数量为-1的时候,输入结束\n");
}
/*输入人才信息*/
voidinput_worker(Lworkerhead)
{
inti=1;
Lworkerx=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);
Lworkery=(worker*)malloc(sizeof(worker));
x->next=y;
y->pre=x;
x=y;
i++;
}
x->pre->next=NULL;
free(x);
}
/*输入求职信息*/
voidinput_want(Lwanthead)
{
Lwantx=head;
inti=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++;
Lwanty=(want*)malloc(sizeof(want));
x->next=y;
y->pre=x;
x=y;
}
x->pre->next=NULL;
free(x);
}
/*查询人才信息函数*/
//参数num就是员工的编号,查询是是什么工作
intfind_worker(Lworkerhead,intnum)
{
Lworkerx=head;
for(;;x=x->next)
{
if(x->num==num)
{
return(x->job);
}
}
return(-1);//表示没有这个人
}
/*查询工作信息函数*/
//num就是编号
intfind_want(Lwanthead,intnum)
{
Lwantx=head;
for(;;x=x->next)
{
if(x->n==num)
return(x->job);
}
return(-1);//表示没有这个单位的信息
}
/*修改求职者的信息*/
//参数num就是员工的编号
voidchange_worker(Lworkerhead,intnum)
{
intm=0;
Lworkerx=head;
for(;;x=x->next)
{
if(x->num==num)
{
break;
}
}
printf("输入要修改的内容:
\n1:
工作2:
学历3:
身份证号4:
姓名\n");
scanf("&d",&m);
switch(m)
{
case1:
printf("输入更正后的工作\n");
scanf("%d",&x->job);
break;
case2:
printf("输入更正后的学历\n");
scanf("%d",&x->degree);
break;
case3:
printf("输入更正后的身份证号\n");
gets(x->id);
break;
case4:
printf("输入更正后的姓名\n");
gets(x->name);
break;
}
}
/*更改用人单位信息*/
//num就是编号
voidchange_want(Lwanthead,intnum)
{
intn;
Lwantx=head;
for(;;x=x->next)
{
if(x->n==num)
break;
}
printf("输入要修改的内容\n1:
工作2:
人数");
scanf("%d",&n);
switch(n)
{
case1:
printf("输入新的工作\n");
scanf("%d",&x->job);
break;
case2:
printf("输入新的人数\n");
scanf("%d",&x->num);
break;
}
}
/*删除求职者信息*/
Lworkerdel_worker(Lworkerhead,intnum)
{
Lworkerx=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;
}
}
Lworkery=x->pre;
Lworkerz=x->next;
if(z==NULL)
{
y->next=NULL;
free(x);
}
else
{
y->next=z;
z->pre=y;
free(x);
}
return(head);
}
}
/*删除用人单位信息*/
Lwantdel_want(Lwanthead,intnum)
{
Lwantx=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;
}
}
Lwanty=x->pre;
Lwantz=x->next;
if(z==NULL)
{
y->next=NULL;
free(x);
return(head);
}
else
{
y->next=z;
z->pre=y;
free(x);
return(head);
}
}
}
/*统计需求量最大的工作*/
voidtongji_need(Lworkerhead,int*n)
{
inti,m=0;
for(i=1;i<5;i++)
n[i]=0;
Lworkerx=head;
for(;x!
=NULL;x=x->next)
{
switch(x->job)
{
case1:
n[1]++;
break;
case2:
n[2]++;
break;
case3:
n[3]++;
break;
case4:
n[4]++;
break;
}
}
}
/*统计供给量最大的工作*/
voidtongji_serve(Lwanthead,int*m)
{
inti;
for(i=1;i<5;i++)
m[i]=0;
Lwantx=head;
for(;x!
=NULL;x=x->next)
{
switch(x->job)
{
case1:
m[1]=m[1]+x->num;
break;
case2:
m[2]=m[2]+x->num;
break;
case3:
m[3]=m[3]+x->num;
break;
case4:
m[4]=m[4]+x->num;
break;
}
}
}
voidmain()
{
inti;
intx,num;
info();
intn[5],m[5];
Lworkerhead1=(worker*)malloc(sizeof(worker));
Lwanthead2=(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)
{
case1:
input_worker(head1);
break;
case2:
input_want(head2);
break;
case3:
printf("输入要删除的人员的编号\n");
scanf("%d",&num);
head1=del_worker(head1,num);
break;
case4:
printf("输入要删除的单位的编号\n");
scanf("%d",&num);
head2=del_want(head2,num);
break;
case5:
printf("输入要修改的人员的编号\n");
scanf("%d",&num);
change_worker(head1,num);
break;
case6:
printf("输入要修改的单位的编号\n");
scanf("%d",&num);
change_want(head2,num);
break;
case7:
printf("输入要查询的人员的编号\n");
scanf("%d",&num);
find_worker(head1,num);
break;
case8:
printf("输入要查询的单位的编号\n");
scanf("%d",&num);
find_want(head2,num);
break;
case9:
tongji_need(head1,n);
for(i=1;i<5;i++)
{
printf("第%d种工作的需求量是%d\n",i,n[i]);
}
break;
case10:
tongji_serve(head2,m);
for(i=1;i<5;i++)
{
printf("第%d种工作的提供量是%d\n",i,m[i]);
}
break;
}
}
}
6、程序运行结果及系统使用说明
1、进入主菜单:
2、选择“1”,输入供值单位:
输入7,可以查询人员编号:
3、选择“8”,保存到文件:
4、选择“8”,读取文件:
7、结束语及心得体会
通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。
它是计算机程序设计的重要理论技术基础,在我们信息与计算科学专业的学习中占据着十分重要的地位。
同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践。
而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。
通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 设计 招聘 信息管理 系统 方案