C语言程序设计招聘信息管理系统.docx

上传人:b****6 文档编号:14191192 上传时间:2023-06-21 格式:DOCX 页数:21 大小:321.41KB
下载 相关 举报
C语言程序设计招聘信息管理系统.docx_第1页
第1页 / 共21页
C语言程序设计招聘信息管理系统.docx_第2页
第2页 / 共21页
C语言程序设计招聘信息管理系统.docx_第3页
第3页 / 共21页
C语言程序设计招聘信息管理系统.docx_第4页
第4页 / 共21页
C语言程序设计招聘信息管理系统.docx_第5页
第5页 / 共21页
C语言程序设计招聘信息管理系统.docx_第6页
第6页 / 共21页
C语言程序设计招聘信息管理系统.docx_第7页
第7页 / 共21页
C语言程序设计招聘信息管理系统.docx_第8页
第8页 / 共21页
C语言程序设计招聘信息管理系统.docx_第9页
第9页 / 共21页
C语言程序设计招聘信息管理系统.docx_第10页
第10页 / 共21页
C语言程序设计招聘信息管理系统.docx_第11页
第11页 / 共21页
C语言程序设计招聘信息管理系统.docx_第12页
第12页 / 共21页
C语言程序设计招聘信息管理系统.docx_第13页
第13页 / 共21页
C语言程序设计招聘信息管理系统.docx_第14页
第14页 / 共21页
C语言程序设计招聘信息管理系统.docx_第15页
第15页 / 共21页
C语言程序设计招聘信息管理系统.docx_第16页
第16页 / 共21页
C语言程序设计招聘信息管理系统.docx_第17页
第17页 / 共21页
C语言程序设计招聘信息管理系统.docx_第18页
第18页 / 共21页
C语言程序设计招聘信息管理系统.docx_第19页
第19页 / 共21页
C语言程序设计招聘信息管理系统.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计招聘信息管理系统.docx

《C语言程序设计招聘信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计招聘信息管理系统.docx(21页珍藏版)》请在冰点文库上搜索。

C语言程序设计招聘信息管理系统.docx

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语言的文件操作(包括从磁盘读入与向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用与函数的调用等

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 中医中药

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2