ASP网络求职招聘系统的设计与实现

本文主要介绍了ASP,数据库等相关知识,同时较为详尽的阐述了网络求职招聘系统的实现。本系统是使用基于HTML语言,嵌套JavaScript源代码的ASP编程技术来开发,并以IIS为服务平台实现网络求职招聘系统的构建。后台数据库选用的是ACCESS,利用ASP 动态网页编程技术,通过ADO与ACCESS数据库建立链接,并且运用SQL语言实现对其数据库进行操作。

网络求职招聘即基于Web的求职招聘系统,是利用包含WWW各种特性和资源的超媒体求职招聘程序来创造一种有意义的求职招聘环境,在这种求职招聘环境中求职招聘得到促进和支持。随着Internet的普及,网络及其应用已经渗透到社会的各个领域,并发挥着越来越重要的作用。网络技术以及现代Web技术的发展,国家政策的扶持等给网络求职招聘带来了良好的发展契机。在这种情况下,开发了网络求职招聘系统。

    1. 1.1  研究现状

网络求职招聘系统是利用互联网技术进行的求职招聘活动,包括招聘信息和求职信息的发布、人才简历的搜集整理等。中国的网络招聘兴起于1997年,进入二十一世纪以后,随着中国互联网技术的不断提升和电脑网络的迅速逐步普及,网络求职招聘在中国得到了飞速发展。对于时下大多数企业和求职者来说,网络求职招聘的意义已经远远超出了传统招聘业务的局限,它以其费用低,信息量大,操作便捷,招聘效果好,无地域限制且具备远程服务功能等优点获得了越来越多的求职者和企业的认可,成为一种与传统求职招聘方式并驾齐驱的全新求职招聘模式。

如何快速找到求职者所需要的职位和企业所需要的人才,是求职招聘系统的一个关键问题。网络求职招聘系统在求职者填写求职信息,招聘者发布招聘信息时要求填写人才类型,所求职位类型和工作地点等相关信息。因为在网上求职招聘的应聘者和招聘公司是经常变化的,所以就要求想出一个好办法,不要改变ASP程序和网页,只改变数据库文件就可以解决问题。由于不同的招聘单位可能放在不同的页面里,因此如何知道应聘者在不同的页面里向哪个招聘单位投放简历就很重要了。也就是让应聘者共同拥有管理页,把不同页面的招聘单位放在一起,且对应聘者选择的单位进行分排。为了满足用户的各种需求,网络求职招聘系统对所有的应聘者信息,招聘单位,招聘职位,最新人才等都会不断的更新,但不能经常变更ASP程序和网页,所以在该系统中用到的大都是传统的数据库访问技术。

  1.  系统功能分析

通过以上对系统的需求分析,求职招聘系统的功能模块应分为会员管理,求职招聘信息和系统管理3个模块。系统功能模块图如下:

ASP网络求职招聘系统的设计与实现_第1张图片

  1. 用户功能

⑴用户注册:用户注册后可进入会员中心,填写、修改基本信息,个人用户可查看招聘单位的详细信息、招聘职位以及发送个人简历给满意的招聘单位;企业用户可发布和修改招聘信息、查看详细的个人简历并接受简历;

⑵发布求职招聘信息:用户进行求职招聘职位的信息发布和更新,以及修改其中的职位内容,求职要求和招聘要求等;

⑶职位搜索:按所设置的搜索条件进行符合要求的用人单位及招聘职位的搜索,帮助求职人员及时发现合适的职业机会;

⑷人才查询:按所设置的搜索条件进行现有简历库的查询,查找满足职位要求的候选人员;

⑸职位收藏:个人用户对于多个意向职位可以放入个人的职位收藏夹进行保存,以进行以后的逐个处理;

⑹人才收藏:企业用户对于多个满足职位要求的人才可以放入个人库中进行保存。

  1. 管理员功能

管理员有操作所有功能模块的权限,可以对所有用户的基本信息录入、修改、查询、删除以及查看、修改和删除发布的求职信息和招聘信息,并可以修改自己的用户名和密码。

  1.  系统流程图

本系统为用户提供了求职者及用人单位的会员注册,通过注册,用户可登陆自己的管理页面进行资料的填写,删除和修改,求职者可通过系统功能查看所有用人单位,招聘职位的信息及投放简历,用人单位也可查看所有求职者及应聘本公司的用户信息及应聘者简历。而未注册的用户则只可以查看所有人才求职信息及企业招聘信息。

本求职招聘系统的流程图如下:

ASP网络求职招聘系统的设计与实现_第2张图片 

ASP网络求职招聘系统的设计与实现_第3张图片 

  1.  数据库设计
      1. 数据库的需求分析

根据网络求职招聘系统的功能设计要求和模块划分,本系统的数据库主要存储个人用户信息、企业用户信息、求职信息、招聘信息和管理员信息。因此对网络求职招聘系统的各组成部分的数据项和数据结构进行如下划分:

个人用户信息:ID(自动编号)、用户名(ac)、密码(pwd)、姓名(name)、性别(sex)、电子邮件(email)、身高(shenggao)、体重(tizhaong)、民族(minzu)、身份证号(code)、出生年月(bdate)、政治面貌(zzmm)、毕业学校(school)、毕业日期(bydate)、学历(edu)、工作经历(kgzjl)、注册日期(rdate)等;

企业用户信息:ID(自动编号)、用户名(ac)、密码(pwd)、企业名称(name)、所属行业(trade)、公司性质(cxz)、注册资金(fund)、员工人数(yuangong)、所属地区(area)、成立日期(fdate)、公司简介(jianj)、通讯地址(address)、联系人(pname)、联系电话(phone)、传真(fax)、公司网站(web)等;

求职信息:求职类型(jobtype)、应聘职位(job)、工作地点(gzdd)、工资要求(yuex)、联系地址(address)、联系电话(phone)等;

招聘信息:招聘职位(jtzw)、职位描述(zptext)、招聘人数(zpnum)、薪水(moneys)、工作性质(jobtypes)、年龄要求(nianlings)、学历要求(edus)、性别要求(sexs)、有效期(youxiaos)等;

管理员信息:ID(自动编号)、用户名(name)、密码(pwd)等。

      1. 数据库概念结构设计实体图

数据库概念结构设计是数据库应用程序开发一个非常关键的环节,它具有一定的独立性,通常采用实体图的方法进行设计,它能将用户的数据要求明确地表达出来。根据本系统所使用的数据库以及系统的功能结构,规划出的实体有:管理员实体,个人用户实体,企业用户实体,求职信息,招聘信息等实体。其主要的实体图如下:

ASP网络求职招聘系统的设计与实现_第4张图片

ASP网络求职招聘系统的设计与实现_第5张图片 

ASP网络求职招聘系统的设计与实现_第6张图片 

ASP网络求职招聘系统的设计与实现_第7张图片 

  1. 详细设计与实现
    1.  用户功能模块

 求职招聘系统的用户功能模块包括用户的注册和登陆,人才和招聘职位的查看和搜索,企业用户发布招聘信息,个人用户发布求职信息,收藏满意的人才和招聘信息以及发送站内信息。

      1. 用户注册

本系统的用户包括个人用户和企业用户,用户注册后可进入会员中心,填写、修改基本信息以及发布求职招聘信息。

使用Request 对象读取从表单传递来的用户数据,建立到数据库的链接,确定用户名不存在。其中用request("user")="1"表示个人用户,request("user")="2"表示企业用户。部分代码为:

If request("name")=""or request("pwd")="" or (request("user")<>"1"and request("user")<>"2") or request("question")="" or request("answer")=""or request("email")="" then

response.write ""

Response.End

end if

下面代码通过select查询语句查询数据表in_user,判断该个人用户名是否已注册。

if request("user")="1" then

sql="select id from in_user where ac='"&name&"'"

rs.open sql,conn,1,1

if rs.recordcount<>0 then

response.write ""

Response.End

else

rs.close

下面代码使用insert 语句插入新用户名、密码,电子邮箱、注册时间等信息,注册完成后系统将发送站内信息,提示注册成功。

sql="insert into in_user(ac,pwd,question,answer,email,ltime) values('"&name&"','"&pwd&"','"&question&"','"&answer&"','"&email&"','"&now()&"')"

rs.open sql,conn,1,1

sql="select id from in_user where ac='"&name&"'"

rs.open sql,conn,1,1

id=rs("id")

rs.close

sql="insert into message(ttype,tid,ftype,content,title) values('1',"&id&",'0','"&content&"','恭喜您成功注册求职招聘系统!')"

rs.open sql,conn,1,1

      1. 发布招聘信息

企业用户注册后可进入会员中心发布招聘信息,通过session对象返回的值判断是否是企业用户,如果不是将会提示“您不具备此权限”。代码片断如下:

if session("id")="" or session("ac")="" or session("user")<>"2" then

response.write ""

Response.End

end if

下面代码为企业用户在注册成功后,发布招聘职位,使用insert 语句插入招聘职位类型,工作地点,招聘人数,招聘要求等招聘职位的详细信息。

sql="insert into job(enid,job,jtzw,hka,city,zpnum,nianlings,zyes,hkas,edus,hkbs, languages, pthuas, sexs, jobtypes, computers,shisus, moneys,youxiaos,zptext) values("&session("id")&",'"&request("job")&"','"&request("jtzw")&"','"&request("hka")&"','"&request("city")&"','"&request("zpnum")&"','"&request("nianlings")&"','"&request("zyes")&"','"&request("hkas")&"','"&request("edus")&"','"&request("hkbs")&"','"&request("languages")&"','"&request("pthuas")&"','"&request("sexs")&"','"&request("jobtypes")&"','"&request("computers")&"','"&request("shisus")&"','"&request("moneys")&"','"&request("youxiaos")&"','"&request("zptext")&"')"

rs.open sql,conn,1,1

set rs=nothing

set conn=nothing

response.write ""

      1. 职位搜索

用户可以按所设置的搜索条件进行符合要求的用人单位及招聘职位的搜索,为求职者及时发现合适的职位提供了方便,部分代码如下:

sql="select id,enid,jtzw,hka,city,addtime,sexs,edus from job where enid in (select id from en_user where name<>'')"

if request("gzdd")<>"0" and request("gzdd")<>"" then sql=sql+" and hka='"&request("gzdd")&"'"

if request("job")<>"0" and request("job")<>"" then sql=sql+" and job='"&request("job")&"'"

if request("date")<>"不限" and request("date")<>"" then sql=sql+" and datediff('d',addtime,Now())<"&request("date")

sql=sql+" order by addtime desc"

rs.open sql,conn,1,1

上诉代码通过select查询语句查询企业用户数据表en_user,搜索符合条件的职位信息。

<%

rs.pagesize=20

if request("action")="n" then

session("page")=session("page")+1

else

if request("action")="p" then

session("page")=session("page")-1

else

if request("action")="f" then

session("page")=1

else

if request("action")="l" then

session("page")=rs.pagecount

else

if isnumeric(request("page1"))=true then

session("page")=clng(request("page1"))

else

session("page")=1

end if

end if

end if

end if

end if

if session("page")>rs.pagecount then session("page")=rs.pagecount

if session("page")<1 then session("page")=1

rs.absolutepage=session("page")

%>

上面代码为搜索职位的分页显示。

个人用户在看到满意的职位信息时,便可将此职位加入到自己的职位库中保存,代码片断如下:

sql="insert into indepot(inid,jobid) values("&session("id")&","&request("jobid")&")"

rs.open sql,conn,1,1

set rs=nothing

set conn=nothing

response.write ""

      1. 发送站内信息

注册的个人用户和企业用户对满意的职位和人才可以通过发送站内信息来进行交流,部分代码如下:

if session("id")="" or session("ac")="" or session("user")="" then

response.write ""

Response.End

end if

上诉代码通过session对象返回的值判断用户是否为注册用户,未注册的用户不具备发送站内信息的权限。

if trim(request("title"))="" then

response.write ""

Response.End

end if

if trim(request("content"))="" then

response.write ""

Response.End

end if

sql="insert into message(ttype,tid,ftype,fid,content,title) values ('"&ttype&"', "&request("tid")&",'"&session("user")&"',"&session("id")&",'"&request("content")&"','"&request("title")&"')"

rs.open sql,conn,1,1

set rs=nothing

set conn=nothing

response.write ""

上面代码通过Request 对象读取从数据表单传递来的数据,针对不同的情况为用户给出提示,帮助用户完成站内信息的正确发送。

    1.  管理员功能

系统管理员进入后显示的是控制台和所有员工的基本信息,此页面是采用框架来实现的,框架分为左右两部分,左边是操作控制台,右边是显示操作的结果。当管理员在控制台选择了某个操作,就去调用相对应的页面来处理并把结果显示在框架的右边。

管理员登录后默认页面显示内容为:在框架的左边显示的是控制台信息。控制台信息包括:管理首页、职位信息设置、个人用户管理、企业用户管理以及管理员密码的修改。框架的右边显示的内容为:管理首页。代码片段如下:

if session("login")<>"yes" then

response.write ""

response.end

end if

上诉代码判断管理员是否登陆。

   

    管理首页 

   

     职位信息设置 

      

      个人用户管理  

       

企业用户管理  

 

我的密码修改

(1)用户管理:

管理员可以对所有用户的信息进行查看,修改,删除以及发送站内信息。下面是管理员删除企业用户信息的代码片断:

if request("ttype")="2" then

sql="DELETE FROM en_user where id="&clng(request("id"))

rs.Open sql,conn,1,1

sql="DELETE FROM endepot where enid="&clng(request("id"))

rs.Open sql,conn,1,1

set rs1=server.createobject("adodb.recordset")

sql1="select id from job where enid="&clng(request("id"))

rs1.Open sql1,conn,1,1

if rs1.recordcount<>0 then

rs1.movefirst

for i=1 to rs1.recordcount

sql="DELETE FROM indepot WHERE jobid="&rs1("id")

rs.Open sql,conn,1,1

rs1.movenext

next

end if

sql="DELETE FROM job WHERE enid="&clng(request("id"))

rs.Open sql,conn,1,1

sql="DELETE FROM message WHERE tid="&clng(request("id"))&" and ttype='2'"

rs.Open sql,conn,1,1

sql="DELETE FROM message WHERE fid="&clng(request("id"))&" and ftype='2'"

rs.Open sql,conn,1,1

set rs=nothing

set conn=nothing

response.write ""

end if

(2)职位信息设置

管理员可以对招聘职位、企业类别、工作地区等相关信息进行添加,修改和删除。下面代码为管理员对职位信息的添加:

if trim(request("what"))="" then

response.write ""

Response.End

end if

sql="select id from "&request("how")&"list where "&request("how")&"class='"&request("what")&"'"

rs.open sql,conn,1,1

if rs.recordcount<>0 then

rs.close

set rs=nothing

set conn=nothing

response.write ""

Response.End

else

rs.close

sql="insert into "&request("how")&"list("&request("how")&"class) values('"&request("what")&"')"

rs.open sql,conn,1,1

set rs=nothing

set conn=nothing

response.write ""

end if

下面代码片断为管理员删除职位信息:

sql="delete from"&request("how")&"list where id="&clng(request("id"))

rs.Open sql,conn,1,1

set rs=nothing

set conn=nothing

response.write ""

(3)管理员信息的修改

管理员登陆后可以对自己的用户名和密码进行修改,代码片断如下:

if psw="" then

sql="update admin set name='"&name&"' where id=1"

else

sql="update admin set name='"&name&"',pwd='"& psw"' where id=1"

end if

rs.open sql,conn,1,1

response.write ""

set rs=nothing

  1. 开发难点与解决办法

网络求职招聘系统中常见的问题是如何给企业和个人提供相应需求信息,如何增强企业和个人的在线联系和信息的方便查询。本系统采用会员管理中的我的收藏夹和站内信箱满足了以上的需求。以下是本系统在开发时所用到的技巧和实现方法。

(1)用服务器端包含技术实现对文件的引用

系统中有许多页面都会引用相同的代码文件,所以使用include语句和script脚本将文件包含进来,就可以简化代码的编写。如果需要更改,只需要更改被包含的页面就可以达到所有调用的此页面也更改的目的。例如在regdata.asp页面中包含数据库连接文件conn.asp:

<%

if request("name")="" or request("pwd")="" or (request("user")<>"1" and request("user")<>"2") or request("question")="" or request("answer")=""or request("email")="" then

response.write ""

Response.End

end if

………

%>

(2)用信箱和收藏夹加强企业和个人的联系

当用户对看到的个人或者企业信息满意的时候,可以通过站内信箱发给对方信件来取得联系,还可以通过收藏夹收藏需要的求职和招聘信息,方便了个人用户和企业用户之间的交流。

例如企业用户在看到满意的人才时,便可将此人才加入到自己的人才库保存,以进行以后的逐个处理。

sql="insert into endepot(enid,inid) values ("&session("id")&","&request("inid")&")"

rs.open sql,conn,1,1

set rs=nothing

set conn=nothing

response.write ""

 网络求职招聘系统是采用Windows XP+ASP+ACCESS 的技术方案,实现了求职人员的工作求职和招聘企业的人才招聘,管理员可以直接在页面上进行后台数据库的相关操作。

 

你可能感兴趣的:(求职招聘,数据库,服务器)