毕业设计-校园招聘管理系统的开发与设计.doc
毕业设计(论文)课 题 名 称 校园招聘管理系统的开发与设计 学 生 姓 名 张 海 兵 学 号 0941301400 系、年级专业 信息工程系 09级网络工程 指 导 教 师 雷 军 程 职 称 讲 师 2013 年 5 月 18 日摘 要网上招聘系统是一种具有交互功能的人才信息系统,是在网上建立的一个虚拟的招聘会。很多企业为了吸引人才,都创建了自己的网上人才管理系统,这是一个比较流行的网络应用系统。 本文介绍了一个通用人才管理系统的设计和实现过程,采用比较流行的ADO数据访问技术,并将每个数据库表的字段和操作封装到类中,从而成功地将面向对象的程序设计思想应用到数据库程序设计中。为了充分利用网络信息化的优势,招聘系统采用的是Browser/Server结构,运用ASP开发环境与SQL数据库相结合,设计开发动态网页形式的在线招聘系统。招聘信息的录入全部在网上进行,招聘过程中所涉及的数据都在招聘信息库中进行流转、维护,因此数据的填写、更新都不需要以纸质方式进行处理,而直接通过网络进行传递。介绍基于ASP设计开发的在线招聘系统的设计思想。详细阐述了在线招聘系统的体系结构、系统的开发环境和语言、所采用的开发方法、数据库系统的功能等。关键词 ASP;SQL Server;B/S结构;ADO数据访问技术ABSTRACTOnline Recruitment System is a kind of interactive features of the human resources information system, is set in a virtual online job fairs. Many enterprises in order to attract talent, have created their own online talent management system, which is a more popular network applications. This article will introduce a common talent management system design and implementation process, the more popular uses ADO data access technology, and the fields for each database table and operation of packages to the class, which successfully design object-oriented programming applied to the database programming. This is also the characteristics and advantages of this system. To take full advantage of the advantages of information technology, recruitment system uses the Browser/Server structure, the use of ASP and SQL database development environment, the combination of dynamic web page design and development of online recruitment system. Input of all jobs in the online recruitment process involved in the data repository for the recruitment of transfer, maintenance, thus completing the data, updates do not need to be processed in paper form, and passing directly through the network. ASP-based design and development introduced an online recruitment system design. Described in detail online recruitment system architecture, system development environment and language, development methodology used, the database system's functions. Keywords ASP;SQL Server;B/S structure;ADO data access technologyII目 录目录页码实际页码不对应摘 要IABSTRACTII第1章 绪论11.1 课题分析11.2 本课题研究的意义1第2章 系统开发工具与简介22.1 ASP的简介,特点及优势22.2 数据库MySQL的系统特性2第3章 系统分析与总体设计53.1网站功能的描述53.2 系统功能模块的划分63.3 系统流程分析63.4 数据库的设计73.4 .1数据库表的设计73.4 .2数据库访问类的设计10第4章 详细设计及编码184.1公共模块功能实现184.2个人用户功能实现184.3企业用户功能实现244.4管理员功能实现28第5章 总 结32参考文献33致 谢34建议在第5章前加上一章“系统测试及使用说明”第1章 绪论1.1课题分析 校园招聘会是大学生就业的一条重要途径。当前, 越来越多的用人单位变被动为主动, 把招聘现场搬到了学校, 而学生也对校园招聘活动寄予了厚望, 他们希望通过校园招聘活动一锤定音, 避免四处奔波之苦。对应届高校毕业生而言,校园招聘最主要的目的是进行求职前的实战热身,降低学生就业成本, 熟悉招聘的各个环节, 为毕业生顺利求职打下坚实的基础。而校园招聘网站是一种具有交互功能的人才信息系统,即在互联网上实现的虚拟招聘会,各个企业在网上发布招聘信息,求职者根据自己的求职要求在线递交简历。社会对人才的需求越来越迫切,求职者也越来越多,为了方便企业和求职者提高效率,利用基于B/S的招聘网站完成招聘会的功能,节省大量的人力、物力和财力。企业可以在线查看求职者的简历,并且根据自己的需要自动筛选并保留合适的简历,以发出面试通知。1.2本课题研究的意义招聘作为人力资源管理的一部分,在整个企业的人力资源管理中发挥了重大作用。传统招聘大多采用现场招聘、简历邮件投递、电子邮件简历投递等手段进行。这些方式往往都要耗费大量的人力,物力,财力和时间,而且招聘的成功率也比较低,限制了人才资源的充分利用。还容易造成招聘工作的随机性、监督机制不到位、信息呈现不直观、统计困难等问题。网上招聘系统是为企业提供优质人才,为应聘者提供合适职位的资源服务平台系统,求职招聘双方可利用此系统为自己提供方便快捷的服务,达到预定的招聘效果。网络招聘求职方式已经成为了招聘求职的一大重要手段,其招聘求职规模和招聘求职成功率已直逼传统招聘会,有的甚至超过了传统的招聘会。通过它应聘者和招聘单位可以通过Internet,突破空间的限制而实现工作求职和单位的人才招聘。网络招聘的崛起对传统的人才招聘流通体系产生了强烈的冲击,网络招聘较之传统招聘就有招聘范围广,信息量大,可挑选余地大,招聘效果良好,费用低,获得了越来越多的单位认可。同时,它有着经营成本低、信息反馈迅速、用户检索方便、地域限制少等特点。因此进行这方面的研究有着重要的现实意义。第2章 开发工具选用与简介开发数据库管理信息系统需要选择两种工具,即前台开发语言和后台数据库。选择开发工具时应该考虑客户需求、系统功能和性能要求以及开发人员的习惯等因素。本系统是B/S结构的网站系统。在系统的性能方面,B/S占有的优势是灵活性。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。前台开发环境选择Microsoft公司提出的经典网站开发语ASP,后台数据库择MySQL。2.1 ASP的简介,特点及优势1、ASP访问数据库的原理ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。 当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。2、ASP页面的结构ASP的程序代码简单、通用,文件名由.asp结尾,ASP文件通常由四部分构成:(1) 标准的HTML标记:所有的HTML标记均可使用。(2) ASP语法命令:位于<% %> 标签内的ASP代码。(3) 服务器端的include语句:可用#include语句调入其它ASP代码,增强了编程的灵活性。(4) 脚本语言:ASP自带JScript和VBScript两种脚本语言,增加了ASP的编程功能,用户也可安装其它脚本语言。2.2 数据库MySQL的系统特性MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。它使用的核心线程是完全多线程,支持多处理器。有多种列类型:1、2、3、4、和8字节长度自有符号无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、和ENUM类型。它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配。没有内存漏洞。全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN()。你可以在同一查询中混来自不同数据库的表。支持ANSI SQL的LEFT 0UTER JOIN和ODBC。所有列都有缺省值。你可以用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的决省值。MYSQL可以工作在不同的平台上。支持C、C+、Java、Perl、PHP、Python和TCL API。MySQL系统特性: (1)使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性 (2)支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统 (3)为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等 (4)支持多线程,充分利用CPU资源 (5)优化的SQL查询算法,有效地提高查询速度 (6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名 (7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径 (8)提供用于管理、检查、优化数据库操作的管理工具 (9)可以处理拥有上千万条记录的大型数据库 与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 第3章 系统分析与总体设计3.1网站功能的描述校园招聘系统分为前台管理和后台管理。前台管理包括浏览新闻、职位查询、查看企业信息、维护个人信息和维护用户信息等功能。后台管理包括新闻管、理企业信息管理、职位信息管理和应聘信息查询等模块。后台管理具体描述如下:(1)新闻管理 添加新闻,包括新闻标题和新闻内容。 修改新闻信息。 删除新闻信息。 查看新闻信息。 (2)企业信息管理 添加企业信息,包括企业名称、企业类型、企业简介等信息。 修改企业信息。 删除企业信息。 (3)职位管理 添加职位信息。 修改职位信息。 删除职位信息。 (4)应聘信息管理 查看应聘信息。 删除应聘信息。 (5)系统用户管理。 系统用户的录入,包括用户名、密码等信息。 修改自己的密码。 退出登录状态。 用户信息查看。 (6)系统用户管理功能 Admin用户修改自己的密码。 Admin用户创建或删除企业用户。 企业用户修改自己的密码。 企业用户修改自己的用户信息。 注册个人用户。 个人用户修改自己的密码。 个人用户修改自己的用户信息。3.2 系统功能模块的划分密码修改个人信息技能信息职位申请学生用户图3.1 学生用户功能模块密码修改企业信息招聘信息应聘信息企业用户图3.2企业用户功能模块3.3 系统流程分析图3.3学生职位申请流程图3.4企业用户管理流程3.4 数据库的设计3.4.1数据库表的设计在设计数据库时,关键步骤要确保数据正确分布到数据库的各表中。采用合适的数据类型,条理清楚的业务逻辑关系,正确进行表设计。本系统定义的数据库中包含以下7 个表:新闻信息表News 、个人信息表Person 、个人能力表Skill 、 企业信息表 Company 、 职位信息表 JobInfo 、申请职位表Applications和管理员表Admin 。(1)新闻信息表News新闻信息表News用来网站新闻信息。表结构如表3-1所示。编号字段名称数据结构说明1NewsIDInt新闻编号,主键2NtitleVarchar(50)新闻题目3NcontentText新闻内容4PostTimeDatetime提交时间表3.1表news的结构(2)个人信息表Person个人信息表Person用来保存注册个人用户的基本信息,表结构如表3-2所示。编号字段名称数据结构说明1UserNameVarchar(40)用户名,主键2UserPwdVarchar(40)用户密码3RealNameVarchar(50)真实姓名4SEXChar(2)性别5BirthVarchar(50)出生日期6IDCardVarchar(20)身份证号码7NatureVarchar(20)名族8HometownVarchar(20)籍贯9EducationVarchar(50)教育程度10CollegeVarchar(50)所在院校11MobilephoneVarchar(50)手机12E-mailVarchar(50)电子邮箱13AddressVarchar(200)联系地址14PostTimedatetime注册时间表3.2 表Person的结构(3)个人能力表Skill个人能力表Skill用来保存个人的基本能力信息,结构如表3-3所示。编号字段名称数据结构说明1SidInt编号,主键2ApptitleVarchar(200)应聘职位3EnglishVarchar(100)英语水平4ComputerVarchar(100)计算机能力5Mainskillteet主要技能6UserNameVarchar(20)用户名表3.3 表Skill的结构(4)企业信息表Company企业信息表Company用来保存注册企业的基本信息,表结构如表3-4所示。编号字段名称数据结构说明1CIDVarchar(40)用户名,主键2CPwdVarchar(40)密码3CnameVarchar(200)企业名称4CtypeVarchar(50)企业类型5FromTimeVarchar(50)成立时间6ContactorVarchar(50)联系人7EmpNumint员工人数8CityVarchar(50)所在地点9TelephoneVarchar(50)联系电话10FaxVarchar(50)传真号码11AddressVarchar(200)联系地址12ZipCodeVarchar(10)邮政编码13HttpVarchar(50)网址14E-mailVarchar(50)电子邮箱15IntroduceText企业简介16PostDateDatetime注册时间表3.4 表Company的结构(5)职位信息表Jobinfo职位信息表Jobinfo用来保存企业发布的职位信息,表结构如表3-5所示。编号字段名称数据结构说明1JobIdInt编号,主键2UserNameVarchar(40)用户名3JobTitleVarchar(100)职位名称4JobTypeVarchar(20)职位类别5EducationgVarchar(20)学历要求6SexVarchar(20)性别要求7AgeVarchar(50)年龄要求8WorkTimeVarchar(50)工作年限要求9WorkPlaceVarchar(50)工作地点10JobNumInt招聘人数11CommentText具体要求12PostTimeDattime发布时间表3.5表JobInfo的结构(6)职位申请表Application职位申请表Application用来保存额用户申请职位的信息,表结构如表3-6所示。编号字段名称数据结构说明1AppIDInt编号,主键2JobIDInt职位编号3UserNameVarchar(20)用户名4PostDateDatetime申请日期5ResponeVarchar(1000)回复内容6RspDateDatetime回复日期表3.6 表Applicatian的结构(7)管理员表Admin管理员表Admin用来保存系统管理员的基本信息,表结构如表3-7所示。编号字段名称数据结构说明1AdminIdVarchar(20)用户名,主键2AdminPwdVarchar(20)密码表3-7 表Admin 的结构3.4.2 数据库访问类的设计为了使 ASP 程序条理更加清晰,对数据库表的访问操作封闭为一个类,每个类对应一个 ASP 文件,文件名与对应的数据库表名相同。例如,表 “News”对应的类文件为 News.asp ,代码如下: <% '本类用于保存对表News的数据库访问操作 '表的每个字段对应类的一个成员变量 Class News Public NewsId '新闻编号 Public NTitle '新闻题目 Public NContent '内容 Public PostTime '提交时间 Public rs '结果集 Private strSql 'SQL语句 '读取单个新闻信息 public sub GetNewsInfo(nid) '创建Recordset对象,处理查询结果集 Set rs=Server.CreateObject("ADODB.Recordset") '设置rs的ActiveConnecti属性,绑定到连接 Set rs.ActiveConnection = Conn 设置游标类型 rs.CursorType = 3 '设置查询的SELECT语句 sql = "SELECT * FROM News WHERE NewsId=" & nid '打开记录集 rs.Open sql end sub '获取所有新闻信息 public sub GetNewslist() '创建Recordset对象,处理查询结果集 Set rs=Server.CreateObject("ADODB.Recordset") '设置rs的ActiveConnection属性,绑定到连接 Set rs.ActiveConnection = Conn '设置游标类型 rs.CursorType = 3 '设置查询的SELECT语句 sql = "SELECT * FROM News Order By PostTime DESC" '打开记录集 rs.Open sql End Sub '插入新闻信息 Public Sub InsertNews() strSql = "Insert Into News Values('" & NTitle & "','" & NContent & "','" & PostTime & "')" conn.Execute(strSql) End Sub '修改新闻信息 Public Sub UpdateNews(nid) strSql = "Update News Set NTitle='" & NTitle & "',NContent='" & NContent & _ "' Where NewsId=" & nid conn.Execute(strSql) End Sub '删除新闻信息 Public Sub DeleteNews(nids) strSql = "Delete From News Where NewsId In (" & nids & ")" conn.Execute(strSql) End Sub End Class %> 在类News中为表Bulletin的每个字段也定义了一个同名的成员变量,变量rs是ADODB.Recordest对象,用于保存批量查询返回的结果集。 所有数据库操作类都保存在class目录下,下面是这些类中定义的函数。(1) news类news类用来管理表news的数据库操作,类的成员函数如表3-8所示。函数名具体说明GetNewsInfo(nid)读取指定的新闻纪录,参数nid表示要读取的新闻记录的编号。GetNewslist返回所有新闻记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。GetRecentBulletinlist获取最近7天发布的新闻信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。 Deletenews(nids)批量删除指定的新闻记录。参数nid表示要删除的记录的编号列表。 InsertNews插入新的新闻记录。UpdataNews(nid)修改指定的新闻记录。参数nid表示要修改的记录编表3.8 News类成员函数表(2)Person类 Person类用来管理表Person的数据库操作,类的成员函数如表3-9所示。函数具体说明GetPersonInfo(uname)读取指定的个人记录。参数uname表示要读取记录编号。 GetPersonlist返回所有个人记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。 HaveGoodsType(name)判断指定的商品类别名称是否存在,参数name表示商品类别名称。 DeletePerson(uname)删除指定的个人记录。参数uname表示要删除的用户名。 HavePerson(uname)判断指定的用户名是否存在,如果存在则返回ture,否则返回false。参数uname表示用户名。HaveUser判断当前用户指定的用户名和密码是否存在,如果存在则返回ture,否则返回false。InsertPerson插入新的个人纪录 。UpdataPassword修改用户密码。UpdataPerson(uname)修改指定的个人记录,参数uname表示要修改的用户名。表3.9 Person类成员函数表(3)Skill类 Skill类用来管理表Skill的数据库操作,类的成员函数如表3-10所示。函数名具体说明GetSkillInfo(uname)读取指定用户的技能记录。参数uname表示用户名。GetSkilllist返回所有技能记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。 HaveUserName(uname)判断指定的用户是否存在技能信息,参数uname表示用户名。 DeleteSkill(sid)删除指定的技能记录。参数sid表示要记录编号。InsertSkill插入新的技能记录。UpdataSkill(uname)修改指定的技能记录,参数uname表示要修改的用户名。表3.10 Skill类成员函数表(4)Company类Company类用来管理表Company的数据库操作,类的成员函数如表3-11所示。函数具体说明GetCompanyInfo(cid)读取指定的公司记录。参数cid表示企业用户名。GetCompanylist返回所有公司记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。 HaveUser判断指定的用户名和密码是否存在,如果存在则返回ture,否则返回false。 DeleteCompany(cid)删除指定的公司记录。参数cid表示要删除的公司编号。HaveCompany(cid)判断指定的企业用户是否存在,如果存在则返回ture,否则返回false。参数cid表示用户名。InsertCompany插入新的公司记录。 UpdataPassword(cid)修改指定用户的密码,参数cid表示企业用户名。UpdataICompany(cid)管理员修改指定的公司记录,包括用户名和密码等信息,参数cid表示要修改的企业用户名。UpdataCompany(cid)企业用户修改自己公司的记录,参数cid表示要修改的企业用户名。表3.11 Company类成员函数表(5)JobInfo类 JobInfo类用来管理表JobInfo的数据库操作,类的成员函数如表3-12所示。GetJobInfo(jid)读取指定的职位记录。参数jid表示记录编号。GetDetail(uname,jid)返回指定公司的指定职位记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。参数uname表示企业用户名,jid表示职位记录编号。GetJoblist(uname)返回指定公司的所有职位记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。参数uname表示企业用户名。GetJobSearch(schsql)根据查询条件返回所有职位记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。参数schsql表示定义查询条件的SELECT语句。 HaveCID(cid)判断指定的企业是否存在职位信息,参数cid表示企业用户名。 DeleteJob(jid)删除指定的职位记录。参数jid表示要删除的记录编号。 nsertJob插入新的职位记录。UpdataJob(cid)修改指定的职位记录,参数cid表示要修改的记录编号。 表3.12 JobInfo类成员函数表(6)Applications类 Applications类用来管理表Applications的数据库操作,类的成员函数如表3-13所示。 函数具体说明GetApplicationInfo(aid)读取指定的应聘记录。参数aid表示记录编号。GetDetail(uname)返回指定个人的所有应聘记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。参数uname表示个人用户名。GetApplicationlist返回所有应聘记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。DeleteRespone(aid,uname)删除指定的职位记录。参数aid表示要删除的记录编号,uname表示用户名。InsertApplication插入新的应聘记录。UpdataPassword(cid)修改指定用户的密码,参数cid表示企业用户名。UpdatResponse(aid)修改指定的应聘记录,参数aid表示要修改的记录编号。 UpdataCompany(cid)企业用户修改自己公司的记录,参数cid表示要修改的企业用户名。表3.13 Applications类成员函数表 (7)Admin类 Admin类用来管理表Admin的数据库操作,类的成员函数如表3-14所示。函数具体说明GetAdminInfo(aid)读取指定的管理员记录。参数aid表示管理员用户名。GetAdminlist返回所有管理员用户记录信息,结果保存在公共变量rs中。rs是ADODB.Recordest对象。GetAdmin判断指定管理员用户名和密码是否存在,如果存在则返回ture,否则返回false。DeleteAdmin(aid)删除指定的管理员用户记录。参数aid表示要删除的管理员用户名。InsertAdmin插入新的管理员用户记录。UpdataPassword(aid)修改指定用户的密码,参数aid表示管理员用户名。 表3.14 Admin类成员函数表第4章 详细设计及编码4.1公共模块功能实现图4-1 系统主页面除了Admin用户外,企业用户和个人用户都要通过系统主页面登录,才能完成自己的特定功能。4.2 个人用户功能实现个人用户登录后,可以直接进入个人用户主界面。在个人主界面中,可以见到“个人简历”“技能信息”“职位申请”“密码修改”“退出管理”的超链接,用户可以填写自己的简历、创建多份简历、查看公司信息、搜索工作、查看职位信息、申请职位。图4-2 个人用户注册界面定义表单代码如下:<form name="form1" method="POST" action="ResumeSave.asp?action=add" onsubmit="return CheckFlds()">当提交数据后,将执行CheckFlds()函数,对用户输入数据进行检查。用户名、密码和真实姓名是必须输入的。通过检查后,将执行ResumeSave.asp,保存个人简历。参数action表示当前的操作状态,action=add表示添加记录。 ResunleSave.asp也可以用来保存修改的个人简历。图4.3 个人信息管理界面在个人管理页面中,右侧网页默认显示当前个人用户的个人简历信息,用户可以编辑自己的简历,页面为resumeResumeEdit.asp,其主要代码如下:<% Set per = New Person per.GetPersonInfo(Session("UserName") If Not per.rs.EOF Then%>程序将根据Session (“UserName”)的值从表Person中读取当前用户的个人简历数据,示在页面中。当用户单击“提交”按钮时,将执行ResumeSave.asp,保存数据。图4.4查看个人信息程序将根据参数uid的值从表Person中读取指定用户的个人简历数据,并显示在页面中.代码如下:<% Dim uid uid = Request.QueryString("uid") Set per = New Person Set