摘 要
随着信息技术的发展,网络在人们生活和交际中的应用越来越广泛。 招聘网站为应聘者提供了方便、快捷的应聘途径。对招聘单位来说,招聘网站也为他们提供了查询、检索应聘者信息的平台,使招聘工作变得轻松易行。应聘者和招聘公司/单位可以在网上通过Internet,突破时间和空间的实现工作求职和公司/单位的人才招聘。网上招聘与传统招聘相比具有招聘范围广,信息量大,可挑选余地大,有大量素质高、技术高的应聘人员,招聘效果好,费用低的优势,因此获得了越来越多公司的认可,同时它有着经营成本低、库存虚拟、用户检索方便、地域少等特点。
本系统是使用MS.NET平台中的ASP.NET开发基于B/S体系结构的Web应用程序,在Microsoft Visual Studio .NET 环境下,使用 C# 编程语言并结合Microsoft SQL Server 2000 数据库开发的一套网络招聘系统。可以根据登录身份而行使不同的权限实现了用户注册、登录、验证身份及用户数据的采集、搜索/查看用户信息,站内最新新闻信息发布。个人用户把简历提交给自己合意公司,企业用户通过简历提取自己合意人员的联系方式,管理员管理整个网站。
关键词:网上招聘;求职;ASP.NET;B/S体系;新闻发布
On-line Talent person employment advertise
System
Abstract
Along with the development of information technology, the application of network is more and more widespread in the people’s lives and the human relations. Recruitment Website provides the convenient and quick way for the applicant to find a job. Say to the employment advertise unit that, Recruitment Website also provides the platform for them to search and inquiry the applicant’s information, which causes the employment work to be relaxed and easy. The applicant and the employment advertise company/unit may through the Internet can seek employment and to employ talented person breakthrough time and the spatial limit. The on-line employment advertises compares with the traditional employment advertises, which have the employment advertise scope broadly ,information content largely, choose the leeway in a big way, the applicants who respond to a call for job has the high quality and well skilled, the employment advertise has the superiority of effect well, expense low, therefore it has obtained more and more companies approval, simultaneously it has characteristics of the cost of operation lowly, the stock hypothesized, the user retrieval is convenient, the region limits few and so on.
This system is a web application procedure, based on the the system structure of B/S, uses the ASP.NET which in MS.NET platform to develop. Under the Microsoft Visual Studio NET environment, uses the C# programming language and unifies Microsoft SQL the Server 2,000 databases to develop a set of networks employment advertise system. According to registers’s status that is allowed to act the different jurisdiction to realize the user’s registration, to land, to confirm status and gather users’ data, the search/examinee users’ information, the newest news information was issued in the website. Individual user submits the resume for oneself to one’s Satisfying company, the enterprise user withdraws the satisfying application's contact us through the resume; the manager manages the entire website.
Key words: the on-line employment advertises; seeks employment;
ASP.NET; the B/S system; the news issue
目 录
论文总页数:27页
1 引言 ..................................................................... 1 1.1 课题背景 ............................................................. 1 1.2 本课题研究路线 ....................................................... 1 1.3 本课题研究的意义 ..................................................... 1 2 网络招聘系统研究概述 ..................................................... 2 2.1 网络招聘的发展史 ..................................................... 2 2.2 我国网络招聘的发展现状 ............................................... 2 2.3 网络招聘求职的作用和优势 ............................................. 3 2.4 网络招聘存在的问题 ................................................... 3 3 系统需求分析 ............................................................. 3 3.1 功能和需求分析 ....................................................... 3 3.2 系统的结构和流程设计 ................................................. 4 3.3 数据库结构设计 ....................................................... 6 3.3.1 数据表的设计 ..................................................... 6 3.3.2 存储过程的设计 ................................................... 9 4 系统配置和通用模块介绍 .................................................. 10 4.1 WEB.CONFIG配置 ....................................................... 10 4.2 用于操作数据库的通用模块 ............................................ 10 4.3 管理员模块设计与实现 ................................................ 13 4.3.1 注册界面设计 .................................................... 13 4.3.2 登录界面设计 .................................................... 14 4.3.3 主界面设计 ...................................................... 15 4.3.4 撰写新闻界面设计 ................................................ 16 4.3.5 新闻管理界面设计 ................................................ 16 4.3.6 个人用户管理界面设计 ............................................ 16 4.4 个人用户模块设计 .................................................... 17 4.4.1 个人基本信息界面设计 ............................................ 17 4.4.2 查看招聘信息和在线提交简历 ...................................... 18 4.5 企业用户模块设计 .................................................... 20 4.5.1 企业收藏夹 ...................................................... 20 4.5.2 查看求职信息列表 ................................................ 21 4.6 新闻模块设计 ........................................................ 21
4.6.1 浏览新闻界面 .................................................... 21 结 论 .................................................................... 22 参考文献 .................................................................... 22 致 谢 ..................................................... 错误!未定义书签。 声 明 ..................................................... 错误!未定义书签。
1 引言
1.1 课题背景
在当前的市场环境中,随着社会的进步和技术的发展,知识经济也在迅猛发展,市场的竞争在很大程度上体现为人才的竞争。从而,找到合适的人才,成为企业提高竞争力的重要方法。同时,当今的市场环境又是一个快速变化的环境,市场需求在变,对人才的需求也相应处于变化之中。如何能快速适应这一变化,提高人才招聘流程的工作效率,进行快速定位,也就成为人才招聘公司/单位重点考虑的因素。
无论是对于企业的人力资源联系方式的招聘服务,还是职业中介的跨地域提供的人才需求信息,或是对外的劳务输出等等。作为一种服务类型,其服务对象均包含需方驱动特点。其所达到的招聘人员的效率和效果是其存在的价值和理由。对于中介服务的另一个服务对象即供方,寻求合适一定工作的各地人士。也同样关注是否能快速获得职位需求信息和条件要求等等。所有这些,都产生着对招聘信息系统的需求。
因此,根据市场对于人才招聘的需求,现开发‘网上人才招聘系统’。它具有的方便快捷的招聘/求职的专业业务流程,有效地提高人才招聘工作效率。
1.2 本课题研究路线
本网上招聘系统在管理中实现面对单个公司/用户注册后就能轻松的建立起自己个人的网上资料站点,公司将公司的情况,所要的招聘岗位等一些有关情况,详细的列出。应聘者通过此可轻松了解公司情况,便更容易找到自己适合的工作。同时应聘者可以轻松把自己的简历传到自己的网上存储资料站点或发到公司的网上招聘存储资料站点。公司可以分类,分别管理,能系统的,清晰的知道每个应聘者的详细情况,以便可以挑选出最合适的人、最好的利用人才,创造最大的价值。
1.3 本课题研究的意义
当今社会,很多有才能的人不能找到适合自己的工作,而公司又不能招聘到所需的人才。在人才市场求职过程中,应聘者通过简单的文字图表,无法全面了解公司的情况,同样公司通过个人简介也不能全面了解人才的全部。并且人才招聘市场经常是人山人海,“各式各样”的用人公司/单位又让人眼花缭乱,应聘到一个好的适合自己的公司得费好多时间和精力。再加上人才市场人才众多,应聘者的简历堆积如山,没有时间一一详看,公司也不好对应聘者的简历进行管理,出现少 、漏等现象,有一些应聘者的简历没有看就被堆在一边,让很
第 1 页 共 27 页
多适合做这项工作的人就无法应聘到该职位。面对传统招聘这种陷缺,网络招聘很好的解决了这些问题。
2 网络招聘系统研究概述
2.1 网络招聘的发展史
网络招聘求职方式已经成为了招聘求职的一大重要手段,其招聘求职规模和招聘求职成功率已直逼传统招聘会,有的甚至超过了传统招聘会。一两年前还处于新兴地位的网络招聘求职方式已经名符其实地走向了招聘求职的主流地位。网络招聘求职的快速发展,与网络招聘求职平台的建设和发展有着很大的关系。当然网络招聘求职的人群快速膨胀也促进了网络招聘求职平台的发展。这与市场上的生产和消费两者关系完全类似,消费促进生产,生产带动消费。
根据美国IDC公司的调查结果,2001年全球的网络招聘市场扩大了53%,就已经达到28亿美元的规模。IDC的高级分析师Marc Pramuk曾经表示:“从网络招聘市场扩大的事实可以看出,招聘服务市场正在发生根本的变化。”由于“雇用方正在寻找比传统的招聘方法更迅速、更廉价的招聘适当人选的方法”,因此到2006年,在经历连续几年超过40%的速度迅猛增长后,全球网络招聘市场的业务规模将超过157亿美元。
据介绍,在美国、日本和欧洲等互联网普及程度高的发达国家,自上世纪90年代初互联网出现以来,网络已经成为人才进行流动的最主要渠道,而那些单纯为企业、个人提供单一集会式招聘服务的人才市场几乎已经绝迹。
2.2 我国网络招聘的发展现状
如果说没有那场“非典”灾难,或许到现在,网络招聘求职还最多只能说成是招聘求职方式的重要补充。正是这场突入其来的灾难,让网络招聘求职方式已经成为了招聘求职的一大重要手段,其招聘求职规模和招聘求职成功率已直逼传统招聘会,有的甚至超过了传统招聘会。一两年前还处于新兴地位的网络招聘求职方式已经名符其实地走向了招聘求职的主流地位。
如果把时间往后推几年,国内招聘求职平台仅仅只有全国性的几家专业招聘求职网站,短短地三年间,全国的招聘求职网站已发展超过了1000个。伴随着我国企业信息化程度的日益提高和互联网家庭用户的迅猛增长,网络以成为越来越多企业、人才进行招聘和求职的最重要手段。而随着国内劳动力的增多、国内企业的国际化及国内网络的更加普及,网络招聘求职的主流地位将会越来越火。但网络招聘求职也不会像有的人说的那样将取代传统招聘会。在国外,都是将网络招聘与传统的招聘方式结合,构建一整套完善、多元的人才交流体系。而对于国内的情况,两种方式各有优势,对传统行业的招聘,如公交车司机、饭店侍者等服务业现场招聘可能更有效,而IT、电子等现代行业的招聘,
第 2 页 共 27 页
网上招聘效果就会更好。所以在今后很长的时间内,网络招聘求职和传统招聘求职将并行发展,谁也不会取代谁。
2.3 网络招聘求职的作用和优势
在求职的眼中,通过网络求职具有以下几个其它方式所不能及的作用和优势:其一、信息量大且更新快。这么大的求职队伍,招聘职位数量显然很吸引求职者的眼球,在人才网站里,可以随时查询数万条信息,而且信息更新速度很快,每天更新的职位都很多,关注招聘网站就能够第一时间掌握用人单位的需求;其二、招聘网络平台功能强大,提高效率。通过招聘网站可以轻松地对工作类别、地区和需求等条件进行全方位智能查询,快速准确地查询到所需要的包括行业、职能、工作地点、工资等信息,当查询到合适的招聘职位后还可以直接通过网站把简历提交给招聘单位,很大程度上节省了求职者的时间;其三、求职无地域。无地域无疑给求职者创造更多的就业机会,特别是对于异地求职者,如果采取传统的求职方式,恐怕还得来回奔波于两个城市之间。而且对于一般院校学生亲临知名企业校园招聘现象的机会也不是很多,但如果通过网络就可以获取与其它求职者同等竞争的机会;其四、经济实惠。如果通过现场招聘会求职,求职者要花不少钱制作精美的简历,外加交通、通讯等费用,而这些在网络求职中都可免去。而且各个证书只要一次扫描到计算机里,就可以发给多家网络招聘单位,免去了印刷的高成本费用。
正是网络求职具备上述几大优势和逐渐提高的求职成功率,因而受到了广大求职者的青睐。或许也正是求职者对网络求职的热捧,网络求职也变得也越来越火。
2.4 网络招聘存在的问题
网络招聘虽然发展很快,前景广阔,但也面临着一些问题:网络招聘的可信度不高,“成交率”颇低。究其原因,主要是招聘应聘双方都不够诚信。由于网上招聘,用人单位与求职者不见面,彼此只能通过电子简历来完成首次面试,于是一些求职者就肆无忌惮地给自己“镀金”:有的只是中专文凭,却毫无顾忌地在电子简历上填上“大学本科毕业”;有的连四级考试都没有通过,简历上却赫然写着“达到六级水平”。同时简历多次重复发送是网络招聘中的一个普遍问题。
3 系统需求分析
3.1 功能和需求分析
首先根据使用该系统的用户的角色的不同分为三种不同用户:
系统管理员:负责管理网站上的各种信息,包括发布新闻,管理新闻和查看删除所有的个人用户和企业用户。
第 3 页 共 27 页
个人用户:可以在线填写个人基本情况、发布求职信息、浏览新闻、查看招聘和求职信息,在线向自己满意的公司提交简历,在个人收藏夹里查看自己提交简历到哪几个公司。
企业用户:可以在线填写企业基本情况,发布企业招聘信息,浏览新闻,查看求职和招聘信息,在线查看和管理个人用户提交的简历功能。根据简历提取符合本公司人员的联系方式。
系统进行功能模块,主要分为用户管理、个人用户、企业用户和管理员四个模块,每个模块又分为若干功能模块,如图1所示:
发布新闻 管理员 管理新闻 管理个人用户 管理企业用户 发布求职信息 个人用户 提交简历 发布招聘信息 企业用户 招聘系统 管理提交简历 提取合格人员 浏览新闻 查看求职信息 查看招聘信息 注册 登陆 删除不合格人公用功能
图1系统功能模块图
3.2 系统的结构和流程设计
进入网站后,首先是登录界面,已经注册的用户可以直接登录,系统将根据用户选择区分是个人用户还是企业用户,个人用户又分为管理员和普通用户,系统根据用户的不同将用户分别链接到各自的主界面下。没有注册的用户可以单击链接到注册界面,并选择是个人用户还是企业用户以完成注册,最后链接到各自的用户界面。其过程模块图如图2所示:
第 4 页 共 27 页
企业用户 已注册用户登录 个人用户 管理员 开始 企业用户 未注册用户登录 个人用户
图2 登录和注册过程模块图
这里没有管理员用户的注册,由于管理员用户是不能随便注册的,他的登录所需要的信息在web.config文件中配置,而不用通过系统注册界面。
个人用户工作流程功能模块图如图3所示:
填写个人信息 填写个人简历 个人用户界面 浏览新闻 浏览招聘信息 提交简历 浏览应聘信息 查看提交了哪几个公司简历
图3个人用户工作流程模块图
企业用户的模块图如图4所示:
第 5 页 共 27 页
填写企业信息 发布招聘信息 查看应聘人列表 企业用户界面 浏览新闻 浏览招聘信息 浏览应聘信息 选择或删除简历
图4 企业用户模块图
管理员管理流程模块图如图5所示:
发布新闻 删除旧的新闻 查看/管理企业用户 查看/管理个人用户 浏览新闻 浏览招聘信息 管理员界面 浏览应聘信息
图5 管理员管理流程模块图
在实现中,它们可以使用同样的超链接,而没有必要重复编写功能基本一样的界面,而是可以根据用户的不同,给页面不同的权限。
3.3 数据库结构设计
3.3.1 数据表的设计
新闻信息表news、个人用户表person、企业用户表company、个人简历表getJobInfo、招聘信息表giveJobInfo、在线申请表resume,下面分别介绍这些表的结构。
第 6 页 共 27 页
(1)新闻信息表保存了该网站上所有新闻,包括新闻标题、来源,发布时间,主要内容等,主键Id,具体的描述如表1所示:
表1 表news的结构
编号 1 2 3 4 5 6 7 字段名称 Id Title Source publicDate Content Picture hits 数据结构 Int Varchar(100) Varchar(30) Datetime Text Image int 必填字段 是(主键) 否 否 否 否 否 否 说明 新闻编号 新闻标题 新闻来源 发布时间 新闻内容 新闻图片 新闻单击次数 (2)个人用户表保存了所有个人用户的用户名、密码、E_mail等基本用户信息,如表2所示:
表2 表person的结构 编号 1 2 3 4 字段名称 personID Name Password email 数据结构 int Varchar(50) Varchar(50) Varchar(50) 必填字段 是(主键) 是(外键) 否 否 说明 用户编号 用户名 用户密码 电子邮箱 (3)企业用户表保存了所有企业用户的用户名、密码和Email等基本用户信息。如表3所示:
表3 表company的结构
编号 1 2 3 4 字段名称 companyID Name Password email 数据结构 int Varchar(50) Varchar(50) Varchar(50) 必填字段 是(主键和外键) 否 否 否 说明 用户编号 用户名 用户密码 电子邮箱 (4)个人简历表保存了用户的个人基本信息如姓名、性别等,还有与求职相关的各种信息,如工作经验,所求职位等。它通过外键personID与表person相关联,与表person是一对一的关系,也就是一个人只能登录一份简历。表的具体内容如表4所示:
表4 表getJobInfo的结构
编号 1 2 3 4 5 6 7 字段名称 getJobInfo personID name Sex Email Phone address 数据结构 int int Varchar(10) Varchar(5) Varchar(50) Varchar(20 Varchar(50) 必填字段 是(主键) 是(外键) 否 否 否 否 否 说明 求职信息编号 用户编号 用户名 性别 电子邮件 电话 地址 第 7 页 共 27 页
8 9 10 11 12 13 14 15 16 17 18 19 addrNum Education Strong Experience Introduction Type workPosition workCity Wage Other pulicTime lookTimes Varchar(50) Varchar(50) text Text Text Varchar(50) Varchar(50) Varchar(50) Varchar(50) Text DateTime Int 否 否 否 否 否 否 否 否 否 否 否 否 邮政编码 教育程度 特长 工作经验 自我介绍 工作类型 工作职位 工作城市 期望工资 其他 发布时间 单击次数 (5)表giveJobInfo保存了企业发布招聘信息,包括工作要求、工作地点、招聘人数等信息,它通过与外键与company表相连,一个企业用户与一条招聘信息表相连,但是在里面可以发布不同的招聘职位和相关要求。表的具体结构如表5所示:
表5 表giveJobInfo的结构 编号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 字段名称 giveJobInfo companyID companyName vocation Email Phone address addrNum Workposition giveNum workCity descripe request pulicTime lookTimes 数据结构 int int Varchar(10) Varchar(5) Varchar(50) Varchar(20 Varchar(50) Varchar(50) Varchar(50) varchar Text Varchar(50) Varchar(50) DateTime Int 必填字段 是(主键) 是(外键) 否 否 否 否 否 否 否 否 否 否 否 否 否 说明 招聘信息编号 公司编号 公司名称 公司类型 电子邮件 电话 地址 邮政编码 工作职位 招收人数 工作城市 工作描述 工作要求 发布时间 单击次数 (6)在线申请表包括申请人的ID、名称,以便企业用户可以通过申请表中的personID查看到申请人的个人简历。它通过外键personID和外键companyID 分别与表person和表company联系。它实际上提供了个人和企业的交互,具体内容如表6 所示:
第 8 页 共 27 页
表6 表resume的结构
编号 1 2 3 4 5 6 7 字段名称 resumeID personID companyID personName companyName CWorkPosion PWorkPosion 数据结构 Int Int Int Varchar(50) Varchar(50) Varchar(50) Varchar(50) 必填字段 是(主键) 是(外键) 是(外键) 否 否 否 否 说明 提交简历编号 个人编号 企业编号 个人姓名 企业名称 招聘单位 应聘职位 3.3.2 存储过程的设计
(1)向news 表中添加新闻存储过程: create Proc AddNewss
@titlevarchar(100),@sourcevarchar(30),@publicDate
datetime,@content text,@hits int,@picture varchar(50) as insert into news(title,source,publicDate,content,hits,picture) values(@title,@source,@publicDate,@content,@hits,@picture) (2)创建个人简历的储存过程。 个人基本信息如姓名性别的存储过程: create proc updatePBaseInf
@personID int,@name varchar(10),@sex varchar(5),@email varchar(50),@phone varchar(20),@address varchar(50),@addNum varchar(10) as update getJobInfo set
name=@name,sex=@sex,email=@email,phone=@phone,address=@address,addNum=@addNum where personID=@personID 求职有关信息如工作经验、所求职位的存储过程: create proc updatePCareer
@personID int,@type varchar(50),@workPosition
varchar(50),@workCity char(10),@wage varchar(50),@other text,@publicTime datetime,@lookTimes int as update getJobInfo set type=@type,workPosition=@workPosition,workCity=@workCity wage=@wage,other=@other,publicTime=@publicTime,lookTimes=@lookTimes where personID=@personID (3)创建企业发布招聘信息的存储过程。 企业基本信息如公司名称、地址的存储过程: create proc updateCBaseInfo
第 9 页 共 27 页
@companyID int,@companyName varchar(50),@vocation
varchar(50),@email varchar(50),@phone varchar(50),@address varchar(50),@addNum varchar(50) as update giveJobInfo set companyName=@companyName,vocation=@vocation,email=@email,phone =@phone,address=@address,addNum=@addNum where companyID=@companyID
企业发布招聘信息如工作要求、招聘人数的储存过程: create proc updateCCareer
@companyID int,@workPosition varchar(50),@giveNum varchar(50),
@workCity varchar(50),@describe varchar(50),@request text, @publictime datetime,@lookTimes int As update gieveJobInfo Set workPosition=@workPosition,giveNum=@giveNum,workCity= @workCity,describe=@describe,request=@request,publictime= @publictime,lookTimes=@lookTimes where companyID=@companyID
4 系统配置和通用模块介绍
4.1 Web.config配置
ASP.NET提供了非常方便的Web.config配置文件来支持对网络应用程序的配置,可以帮助管理人员轻松,快速建立里自己的web 应用环境。
web.config文件可以支持一个完全编译的应用程序的配置。这样做的优势在于,源代码对管理员是不可见的。这样保证了系统的安全性。
下面为本系统的web.config文件配置。
4.2 用于操作数据库的通用模块 程序编写涉及大量与数据库有关的操作,为了便于开发和维护,可以把这些类数据库操作封装成一些类,然后页面操作可以直接调用这些类中的添加、查找或删除等函数。这体现了软件工程中代码复用的原则。 Base类在Base.cs文件中定义,是本系统中所有与数据库操作有关的类的基类,它定义了通用的数据库操作的几类函数。 namespace My.Hr.DbBase 第 10 页 共 27 页 {public abstract class Base {protected static string strConn=ConfigurationSettings.AppSettings[“strCon”]; //调用web.confing文件中配置的数据库连接 protected static string strSQL; private int m_ID; private string m_Name; public int ID { get {return m_ID; } Set {m_ID = value;} } public string Name { get {return m_Name; } set {m_Name = value;} } 下面的函数ExecuteSql代表了一类数据库的操作,也就是执行没有返回值的SQL语句。如果界面中的操作函数要执行一些无返回值的数据库操作,如插入、删除等只须调用这个函数,在strSQL中制定操作的字符串即可。 protected static int ExecuteSql(string strSQL) {SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(strSQL,myCn); try { myCn.Open(); //打开数据库 myCmd.ExecuteNonQuery(); //执行无返回值的数据库操作 return 0; } catch(System.Data.SqlClient.SqlException e) //抛出异常 { throw new Exception(e.Message);} finally{myCmd.Dispose(); //释放该组件占用的资源 myCn.Close(); //操作完毕关闭连接 } } 函数ExecuteSqlEx()封装了返回值为DataReader类型的操作,如果以后有需要执行返回值DataReader的操作时,只需要调用这个函数即可。 protected static int ExecuteSqlEx(string strSQL) { SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(strSQL,myCn); Try {myCn.Open(); SqlDataReader myReader = myCmd.ExecuteReader(); if(myReader.Read()) //调用一次,只能返回一行数据记录 {return 0; //执行成功返回0 } }}} 函数ExecuteSql4Ds()封装了返回值为DataSet类型的操作,这样如果以后有需要执行返回值DataSet的操作时候,只需要调用这个函数即可,而无须反复出 第 11 页 共 27 页 现下面的这段代码。 protected static DataSet ExecuteSql4Ds(string strSQL) { SqlConnection myCn = new SqlConnection(strConn); Try {myCn.Open(); SqlDataAdapter sda = new SqlDataAdapter(strSQL,myCn); DataSet ds = new DataSet(\"ds\"); sda.Fill(ds); return ds;} 函数ExecuteSql4Value()封装了返回值为int 类型的操作,这样如果以后有需要执行返回值int 的操作时,如返回具有所有用户的个数,或者企业应征者的个数等,只要调用这个函数即可。 protected static int ExecuteSql4Value(string strSQL) { SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(strSQL,myCn); try {myCn.Open(); object r = myCmd.ExecuteScalar();//返回查询得到的对象 if(Object.Equals(r,null))//如果对象为空,抛出异常 {throw new Exception(\"value unavailable!\"); } else{ //否则返回得到的数值 return (int)r;//强制类型转换,将对象型变为整型返回 }} catch(System.Data.SqlClient.SqlException e) {throw new Exception(e.Message);} finally { myCmd.Dispose(); myCn.Close(); } } 函数ExecuteSqls()的功能是执行多条无返回值的SQL数据库操作,它的参数 是一个字符串数组,每个字符串是一个SQL数据库脚本命令,如果都执行成功就返回0,它用到了SQLTransaction,先连续执行完字符串数组制定的一系列操作,然后再提交。如果这个过程出现异常,则需要将数据库回卷到原来的状态。 protected static int ExecuteSqls(string[] strSQLs) { SqlConnection myCn = new SqlConnection(strConn); SqlCommand myCmd = new SqlCommand(); int j=strSQLs.Length; try {myCn.Open(); } catch(System.Data.SqlClient.SqlException e) {throw new Exception(e.Message);} 第 12 页 共 27 页 SqlTransaction myTrans = myCn.BeginTransaction(); try { myCmd.Connection = myCn; foreach(string str in strSQLs) { myCmd.CommandText = str; myCmd.ExecuteNonQuery(); } return 0; } myTrans.Commit(); myCmd.Transaction = myTrans; catch(System.Data.SqlClient.SqlException e) { myTrans.Rollback();}} 页面操作类还有person.cspersonstore.cs、company.cs、companystore.cs、news.cs等操作类。这些类实现各种功能,由页面调用。从而能实现页面和代码分离。 4.3 管理员模块设计与实现 管理员负责整个系统的个人用户、企业用户,以及新闻信息的管理,主要包括登录界面、主界面、新闻管理界面、个人用户管理界面和企业用户管理界面。 4.3.1 注册界面设计 在本系统中管理员用户的个人登录信息保存在web.config配置文件中,他和其他个人用户一样登录。整个系统注册部分的如图6所示。 本系统的注册比较简单,是为了减少繁冗的信息登记,方便用户登录。注册成功后才在属于自己的页面登记详细信息。注册表单提交后,服务器就会对提交的内容进行验证,如果填写错误的项要给出出错提示信息,并允许重新填写提交。这里需要用到requiredfieldvalidator控件,所有的输入框都需要这个验证控件,它用来验证输入都不能为空,comparevalidator 验证控件用来验证用来验证两次输入的密码是否相同。RequiredFieldValidator控件用来验证输入的邮箱是否合法. 图6 注册页面 第 13 页 共 27 页 该页面代码调用的是person类的add()方法,当个人用户注册时候就调用它。它先检查新注册用户名是否已经存在,如果存在抛出“This name was registered”异常,否则在表getJonInfo中插入新的表项,以便该用户登录后可以在线填写和提交简历。代码如下: public void Add() { if(IsExist()) {throw new Exception(\"This name was registered!\");} else { strSQL = \"Insert into person (Name,Password,Email) Values(\"+ \"'\" + this.Name + \"',\"+ \"'\" + Functions.Encrypt(this.Password,1) + \"',\" + \"'\" + this.Mail + \"')\"; //密码加密后再插入数据库。 try{ExecuteSql(strSQL); } catch{throw new Exception(\"Register FAILED!\");} strSQL = \"Select Max(personID) From person\"; int personId; try {personId = ExecuteSql4Value(strSQL); } catch{throw new Exception(\"Register FAILED!\"); personId.ToString() +\"')\"; try {ExecuteSql(strSQL);} catch{throw new Exception(\"Register FAILED!\");} } } strSQL = \"Insert into getJobInfo (personID) Values(\"+\"'\"+ 函数IsExist()被前面的Add()函数调用,用来检查person表中是否已 public bool IsExist() { strSQL = \"Select personID from person Where Name=this.Name \"; 经存在一个用户名,如果存在则返回true,否则返回false.代码如下: Try {ExecuteSql4Value(strSQL);return true;} Catch {return false;} } 4.3.2 登录界面设计 用户登录需要验证用户的用户名和密码,从而保证用户可见和可使用的资 源。管理员和其他用户的登录界面是一样的,都是根目录的default.aspx和default.aspx.cs 文件。邦定代码default.aspx.cs文件的关键部分是单击“登录”按钮后的相应函数,它根据用户名和密码,以及用户种类将界面重定向到各类用户的主界面上,登录界面调用了Person 和Company类的Login() 函数判断用 第 14 页 共 27 页 户是否已经登录: public bool Login() { strSQl=”Select personID from person where name= ”+this.Name”’+\"AndPassword='\"+ Functions.Encrypt(this.Password,1) +\"'\"; Try {ExecuteSql4Value(strSQL); return true; } catch {return false; } } 4.3.3 主界面设计 所有的用户公用一个主界面,即Home.aspx,管理员用户也不例外,只是在该界面中,对不同的用户提供了不同的链接。提供给管理员的链接有撰写新闻、管理新闻、管理个人用户和管理企业用户。其界面如图7: 图7 管理员主界面 Home.aspx中包含了两个frame,分别是页面首部的Top.aspx文件和下面主窗口Main.aspx文件。页面首部的Top.aspx 文件描述了一些所有用户都公用的功能,如浏览新闻、浏览招聘信息、浏览应聘信息等。也就是说,Top上对于链接对于所用用户都是可见的。表7给出了顶部菜单中的各个超链接所对应的文件。 表7 顶部菜单对应的超链接文件 超链接名称 首页 求职 招聘 新闻 服务 退出 链接文件 Default.aspx GetJob.aspx GiveJob.aspx Main.aspx Hr.asmx Logout.aspx 代码邦定文件 Default.aspx.cs GetJob.aspx.cs GiveJob.aspx.cs Main.aspx.cs Hr.asmx.cs Logout.aspx.cs 第 15 页 共 27 页 下面的主界面Main.aspx分别为两个Frame,左边Frame对应的文件是Left.aspx和它邦定代码Left.aspx.cs。它对应每一种特定的用户提供不同的选项,如前所述,对于管理员用户它提供了撰写新闻、新闻管理、个人用户管理和企业用户管理选项,对于个人用户它提供了填写个人信息、填写个人简历选项;对于企业用户,它提供了填写企业信息,发布招聘信息,以及查看招聘结果等选项。右部的窗口是主窗口,用于显示和编写各种信息,左部菜单中各个超链接对应的文件如表8所示。 表8 左部菜单对应的超链接文件 用户类型 管理员 超链接名称 撰写新闻 新闻管理 个人用户管理 企业用户管理 企业用户 企业基本信息 企业招聘信息 企业收藏夹 个人用户 个人基本信息 求职简历 工作要求 链接文件 WriteNews.aspx NewsManage.aspx PersonManage.aspx CompanyManage.aspx CopanyBaseInfo.aspx CompanyJob.aspx CompanyStore.aspx personBaseInfo.aspx Resume.aspx Career.aspx 代码邦定文件 WriteNews.aspx.cs NewsManage.aspx.cs PersonManage.aspx.cs CompanyManage.aspx.cs CopanyBaseInfo.aspx.cs CompanyJob.aspx.cs CompanyStore.aspx.cs personBaseInfo.aspx.cs Resume.aspx.cs Career.aspx.cs 根据不同的用户类型,可以显示不同的超链接的部分。区分一个用户是管理员还是普通用户的方法是判断他的用户名是否在前面提到的web.config中指定aaa字符串中,person类中的函数IsSupervisor()完成了这个功能,它先从配置文件的aaa字符串中取出指定的管理员的用户名集合,然后将其保存在字符串数组names中,如果给定的用户名等于其中的一个字符串,说明这个用户是管理员用户,代码如下: Public bool IsSupervisor() {string strManager = ConfigurationSettings.AppSettings[\"aaa\"]; string [] names = strManager.Split(','); int i; for(i=0;i } return false; 4.3.4 撰写新闻界面设计 4.3.5 新闻管理界面设计 4.3.6 个人用户管理界面设计 个人用户管理该模块与企业用户管理模块与前面的新闻管理基本相同,是管 第 16 页 共 27 页 理员删除注册的用户。操作的时候删除表中的某一行时候需要注意,个人用户管理模块中表中的personID列是getJobInfo表的一个外键,需要先在getJObInfo 表中删除所有相关的行,再删除在person 表中的对应行。具体代码如下: public static void DeleteGroup(ArrayList group) { int j=group.Count*2; string[] strSQL=new string[j]; int k=0; for(int i=0;i< j;i++) { k=i/2; i++; strSQL[i]=\"delete from person where personID='\"+group[k] } ExecuteSqls( strSQL); } strSQL[i]=\"delete from GetJobInfo wherepersonID=group[k]; 4.4 个人用户模块设计 个人用户登录后,可以直接进入个人用户主界面,如图9所示: 图9 个人用户主界面 该界面的实现过程和前面的管理员主界面一样,它们是一个公用的文件, 只是左边的菜单栏中可见的超链接不同。在个人主界面中,可以见到“个人基本信息” 、“求职简历“、”工作要求“、”个人收藏夹“的超链接。 4.4.1 个人基本信息界面设计 个人基本信息用于个人用户填写、提交和查看个人基本信息,如姓名、联系方式等。界面效果如图10所示: 第 17 页 共 27 页 图10 个人基本信息界面 填好好单击下面的”submit”按钮,用户填写的数据将被提交到数据库中。这个提交过程主要由负责响应”submit”按钮弹机事件的这次函数btn_Replay_Click()处理,代码如下: private void btn_Replay_Click(object sender, System.EventArgs e) { ArrayList CommAry=new ArrayList(); CommAry.Add(int.Parse(Session[\"UserId\"].ToString())); CommAry.Add(tb_Name.Text.Trim()); CommAry.Add(tb_Sex.Text.Trim()); CommAry.Add(tb_Email.Text.Trim()); CommAry.Add(tb_Phone.Text.Trim()); CommAry.Add(tb_Address.Text.Trim()); CommAry.Add(tb_AddrNum.Text.Trim()); catch{Response.Redirect(\"Error.aspx\");} try{myInfo.UpdateMyBaseInfo(CommAry);} 该函数先将用户填写的信息用一个ArrayList对象保存,然后调用GetJobInfo()类的成员方法updateMyBaseInfo来讲用户更新的信息存储到数据库中,该方法利用一个存储过程来完成更新,代码和上面的撰写新闻用的存储过程类似。 4.4.2 查看招聘信息和在线提交简历 个人用户可以查看企业发布的招聘信息,如果看到自己满意的单位,可以直接在线提交简历。单击个人用户界面的“招聘”超链接,主窗口将显示招聘信息列表。如图11所示: 第 18 页 共 27 页 图11 招聘信息界面 招聘信息的列表中有一个搜索功能,用户在“搜索”按钮前的输入框中可以输入搜索的关键字,然后单击“搜索”按钮,页面将会显示搜索后的结果列表。比如输入“聚拢”,将出现如图12所示的搜索结果。 图12 搜索界面 搜索函数调用GiveJobInfo类的成员方法SearchCompanyInfo用于对三个指定的关键字在数据库中进行匹配,代码如下: public static DataSet SearchCompanyInfo(string Msg) { string str; str=\"select * from giveJobInfo where companyName like '%\" + Msg + \"%' or workPosition like '%\" + Msg + \"%' or workCity like '%\" + Msg + \"%' or request like '%\" + Msg + \"%' \"; DataSet myDs; myDs=ExecuteSql4Ds(str); return myDs; } 单击招聘信息列表中的任一行的公司名称,将会超链接到该公司的招聘信息界面,从而使用户看到该企业的基本信息,如图13所示: 第 19 页 共 27 页 图13 企业基本信息界面 如果用户对这个企业的招聘信息感兴趣,还可以直接单击“提交简历”按钮在线提交简历。提交简历用到将个人和企业的信息保存到了resume表,从数据库理论来讲Resume 表实际上是一个关系集,它建立了Person和Company表的一种多队对多的关系。用户每提交一次建立,就在表Resume中用该用户的PersonID和所申请的公司的CompanyID新加一项,这样就表示用户已经投了该公司的简历。 4.5 企业用户模块设计 企业用户模块设计,企业用户需要有填写企业基本信息,在线发布求职信息,接收个人用户的应聘简历的功能,同时可以选择合格应聘者的联系方式。 4.5.1 企业收藏夹 企业收藏夹界面显示的是应聘企业的所有人的列表,如图14所示: 图14 企业收藏夹界面 它利用当前企业用户信息来得到所有应聘者的数据库查询操作,代码如下: 第 20 页 共 27 页 Public static DataSet GetPerson(int companyId) { strSQL=”SELECT * FROM resume where companyID=”+companyID+”; Try{return ExecuteSql4Ds(strSQL};} 单击“显示合格人员按钮”就可以显示合格人员的联系方式如电话和电子邮件,然后公司可以选择任何一种方式来通知应聘人来公司面试或笔试。单击表中申请人的名字,可以链接到个人基本信息页面,查看个人简历,从而决定应聘人员是否符合本公司要求, 4.5.2 查看求职信息列表 企业用户不仅可以看到申请职位的用户的简历,还可以查看所有的求职信息,单击姓名,可以超链接到他的个人简历。并搜索想要的人才,如果找到,就可以用用户留下的联系方式直接与其联系。求职界面如图15所示: 图15 求职信息界面 4.6 新闻模块设计 4.6.1 浏览新闻界面 所有用户登录后的主界面的主窗口显示的都是新闻浏览界面如图16所示: 图16 新闻浏览界面 在新闻浏览页面中的近期新闻为最新发布的新闻,重要新闻点击率最高的 第 21 页 共 27 页 新闻,图片新闻中从图片新闻中选出最新发表的有图片新闻和点击率高的有图片的新闻。 从数据库中提取图片代码: String=”select top 10 “+id,title,dercr=+’ ’SUBSTRING (content,0,50)+’…..’,image=casewhen(notpictureisnull)then(‘ 上面SQL查询语句间news 表picture列的信息取出并内嵌在一个html的img 控件中,作为该控件的src字段的值,就完成了从数据库中取出图片并完成显示的功能。在前面的界面中,单击某条新闻标题可以查看新闻详细信息。 结 论 在具有良好的可视化的编程环境ASP.NET C(#)2.0下,在编程的过程中就可以对所做的模块进行运行调试,发现错误,就可以立即进行改正。经过不断地修改和更正,本系统已运行结果正常,系统达到了拥有丰富的信息容量、良好的人机交互界面、快捷的检索效果。 由于时间比较紧张,加上自己本身在编程方面的能力比较有限,该系统势还存在着一定的问题。作为一个短时间内完成的实用性软件,全面性方面肯定还有不少的欠缺。如本系统企业模块考虑到的方面就不是很全面,如还可以给企业加个留言板以便应聘者可以给企业留言。总的来讲,该系统能够完成简单的网上招聘/求职。但是不能算是一个功能很强大的系统,它和一个功能强大的网络招聘系统比较起来,还有一定的差距。希望可以通过以后的学习能够不断的完善和强大本系统的功能。通过本次课题的研究,我不但学习到了如何构建一个大型复杂的ASP.NET系统,在编程过程如何规范代码和如何有效的调试代码也积累了不少的经验。 参考文献 [1] 杨昆鹏,孟凡绮. ASP.NET+SQL Server动态网站开发[M].北京:电子工业出版社,2005。 [4]方睿,仁宏,吴四九.网络数据库原理及运用[M].成都:四川大学出版社,2005。 [3] 吴财军. C#经典范例50讲[M].北京:北京希望电子出版社,2003。 [4]曹斌,韩中孝.ASP.NET数据库项目开发实践[M].北京:科学出版社,2005。 [5] 王兴晶.Visual Basic.NET数据库开发典型实例[M].北京:电子工业出版社,2002.9。 [6] 孙三才,张智凯.C#与.net Framework实战演练[M].北京:中国铁道出版社,2002。 第 22 页 共 27 页 [7] 托特斯基[美]. C#.NET Web开发指南[M].北京:机械工业出版社 2003.1。 [8] 索传军. 中国网络招聘研究报告[J] .图书情报知识,2005,(5):50-53。 第 23 页 共 27 页 ’ else’
’end form news order by hits DESC”;
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务