人才招聘信息管理软件设计软件综合课程设计.docx
《人才招聘信息管理软件设计软件综合课程设计.docx》由会员分享,可在线阅读,更多相关《人才招聘信息管理软件设计软件综合课程设计.docx(53页珍藏版)》请在冰豆网上搜索。
人才招聘信息管理软件设计软件综合课程设计
沈阳航空航天大学
课程设计报告
课程设计名称:
软件综合课程设计
课程设计题目:
人才招聘信息管理软件设计
院(系):
计算机学院
专业:
计算机科学与技术
班级:
学号:
姓名:
指导教师:
说明:
结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。
报告和电子数据必须作为实验现象重复的关键依据。
学术诚信声明
本人声明:
所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。
尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。
与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。
报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。
本人签名:
日期:
年月日
沈阳航空航天大学
课程设计任务书
课程设计名称
软件综合课程设计
专业
计算机科学与技术
学生姓名
班级
学号
题目名称
人才招聘信息管理软件设计
起止日期
2016
年
12
月
19
日起至
2017
年
1
月
13
日止
课设内容和要求:
一、课程设计内容
设计一个简单的人才招聘信息管理软件,实现自然情况、求职要求的录入修改及自动匹配等功能。
要求:
1、建立人才信息档案;
2、建立招聘信息表;
3、按多种方式对人才信息及用人单位信息进行查询;
4、实现匹配功能;
5、界面要优化,直观、大方、美观;
6、实现部分模糊查询、组合查询功能;
二、课程设计要求
1、界面要优化,直观、大方、美观;
2、采用面向对象程序设计方法;
3、用数据库保存各项信息;
4、独立完成系统的设计、编码和调试工作并通过指导老师的检查;
5、按课程设计规范撰写课程设计报告。
参考资料:
[1]王珊.数据库原理[M].北京:
高等教育出版社,2005
[2]钱能.C++程序设计[M].北京:
清华大学出版社,2005
[3]严蔚敏.数据结构(C语言版)[M].北京:
清华大学出版社,2002
教研室审核意见:
教研室主任签字:
指导教师(签名)
年
月
日
学生(签名)
年
月
日
课程设计总结:
这次课程设计我的题目是人才招聘信息管理软件设计,我采用的是C#语言编写,连接MySql本地数据库,使用Navicat可视化数据库编辑软件来实现。
课程设计从需求分析到概要设计(数据库表设计,ER图设计,流程图设计)再到实际编写,一步一步走下来,走的很完整。
由于在外实习,公司软件有用C#语言编写的,所以我就采用了这种语言,总共实现了求职人员、用人单位的账号注册,信息修改,用户登录以及针对不同类型的用户实现适合用户需求的界面功能。
按照课程设计任务书要求,实现了自然情况、求职要求的录入修改及自动匹配等功能。
建立了人才信息档案盒招聘信息表。
能够按照多种方式对人才信息及用人单位信息进行查询、有模糊查询和组合查询等功能。
在外实习了4个多月了,对于Sql文的拼写也有一定的能力,数据的增删改查也能驾驭的住,这次课程设计我独立完成了设计、编码和调试工作。
独自建立了数据库表结构,并创建虚拟数据用以测试。
C#语言对界面的友好性远远大于Java,这个题目的界面要求很高,所以除了传统的控件外,我另从公司项目中引入了Fpspead控件,对于表格的操作很方便也很人性化。
感觉这个课程设计用了很多以往课程设计没有涉及到的新知识,所以有前所未有的成就感。
对我以后的职业道路也很有帮助。
1需求分析
1.1需求概述
人才招聘网络化管理系统主要用于快捷、高效地处理招聘管理活动,使企业的招聘工作得以高速运行。
管理趋于正规化、系统化、信息化。
随着信息化技术的不断发展,互联网正在融入我们的生活,影响和改变着我们的生活。
网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网络在人们生活中的应用越来越广泛。
人才在各行各业都是发展的关键,如何能够聘到具有真才实学的求职者是各企业非常关心的问题。
而找不到理想的工作、不能发挥自己聪明才智也让求职者烦恼,对于大多数人来说踏入社会的第一节课就是求职。
近年来由于求职者数量的增加以及求职者学位普遍提高的原因,越来越多的求职者面临着找工作难的问题。
虽然招聘会是目前人才交流的主要途径之一,但是它还远远不能满足现实的需求。
招聘会都是在有限的几天内企业与求职者面对面的交流,虽然有的招聘会提前贴出海报或进行其他方式的宣传,但还是会有很多的企业和求职者错过,还有一部分人,为了参加招聘会不得不放弃一些重要的事情。
由于参加招聘会的人员繁多,而且整个过程人员的流动性非常强,这给管理增加了很大的难度,并且招聘会人数众多,而且展位有限,想要实现企业与求职者一会面很困难,这样就不能更好地分配人力资源。
现实社会中急需一个第三者为企业与人才牵线搭桥,来弥补招聘会存在的种种不足。
这次课程设计的课题就是设计开发一个人才招聘管理系统,招聘企业也不需要花费大量的人力物力在招聘会上大张旗鼓地抢占招聘摊位了。
该就业信息系统为求职者及招聘公司带来了很大的方便和经济。
1.2题目分析
招聘工作是人力资源管理中不可或缺的一个重要环节,它是人力资源管理的第一关口。
招聘管理是企业人力资源管理系统中的核心工作,担负着从经营战略和目标出发,为企业选人用人的重任。
从以往的招聘管理的方式看,企业一般通过在报纸、杂志刊登招聘广告,以及参加人才招聘会等方式进行招聘,或者委托人才服务机构代为招聘等,这些方式耗资、耗时,甚至贻误了企业的生产经营。
近些年来,由于计算机技术的发展,通过软件进行招聘也渐成趋势。
但这些方式都没有将人力资源经理从繁重的拆阅信件、挑选简历的工作中彻底解放出来,仍然存在一些局限性,例如面对打印出来的简历和收到的邮件,他们仍然要进行大量的二次处理工作。
招聘网站虽不能提供招聘及相关工作中的所有解决方案,但为企业的招聘方式提供了一种全新的思路。
基于以上原因,本次课程设计在对基于软件的人力资源招聘管理系统的研究和实现中,选择招聘管理作为突破口,旨在对基于软件的招聘管理系统进行研究的同时,为基于软件的人力资源管理系统的实现进行有益的探索。
1.2设计思路
我准备采用C#面向对象语言进行开发,链接MySql本地数据库进行数据的增删改查,使用Navicat可视化数据库编辑软件来实现。
登录模块:
供使用者登陆并选择身份信息(求职人员和用人单位)。
注册模块:
根据不同人员身份进行跳转,从而提供不同的注册界面。
基本信息模块:
基本信息,求职人员显示简历,用人单位显示招聘信息,可编辑修改。
招聘信息模块:
招聘信息界面有查询招聘信息,不同条件可实现模糊查询和组合查询,并且求职人员可以进行简历投递。
求职信息模块:
求职信息界面有投递该用人单位的求职人员信息,可以根据不同条件筛选查看,并给不同人员设置不同状态,未投递、已投递、已录用和已拒绝等。
2概要设计
2.1数据库设计E-R图
图2.1E-R图
E-R图描述:
一个用人单位可以招聘多名求职人员,而一个求职人员可以投递多个用人单位,所以实体关系为多对多的关系。
2.2数据库表结构
图2.2数据库表结构图
2.3系统功能模块
图2.3系统功能模块图
3详细设计
3.1数据库表结构
用户账号表(UserInfo)
属性名称
属性类型
长度
属性含义
ID
int
100
自动递增主键
UserName
char
100
用户名
PassWord
char
100
密码
Type
Int
10
用户类型,1是用人单位,0是应聘人员
注:
ID为自增主键,插入数据时插NULL,系统会自动分配主键ID。
该表
为用户账号表,存储了所有用户的用户名密码信息,通过Type字段区分用
户类型,即1是用人单位,0是应聘人员。
求职人员信息表(Employee)
属性名称
属性类型
长度
属性含义
UserName
char
100
用户名(主键)
Name
char
100
姓名
Sex
char
10
性别
Post
char
100
应聘岗位
Age
char
100
性别
注:
该表为求职人员信息表,存储了所有求职人员的具体信息,其中将用
户名作为主键。
用人单位信息表(Company)
属性名称
属性类型
长度
属性含义
UserName
char
100
用户名(主键)
Company
char
100
用人单位名称
Post
char
100
招聘岗位
注:
该表为用人单位信息表,存储了所有用人单位的具体信息,其中将用
户名作为主键。
投递记录信息表(History)
属性名称
属性类型
长度
属性含义
Company
char
100
用人单位名称
Employee
char
100
申请人姓名
Status
char
10
应聘状态
Emp_UserName
char
100
申请人用户名
Com_UserName
char
100
用人单位用户名
注:
该表为投递记录信息表,存储了所有用人单位和求职人员的往来投递信
息,其中应聘状态Status字段会随着用户不同操作而动态改变,从而修改具
体投递状态。
3.2模块设计
3.2.1登录模块
此模块会根据用户类型的不同而校验不同的用户名密码,且登录跳转不同的基本信息界面。
3.2.2注册模块
此模块会根据不同用户类型提供不同的注册界面,完善信息,界面友好提示后,插入不同的数据库表中。
3.2.3基本信息模块
此模块会显示注册时填写的基本信息,求职人员显示姓名性别年龄,用人单位显示用人单位名称和招聘岗位,此模块可以对上述数据进行修改并保存。
3.2.4招聘信息模块
此模块为应聘人员专属模块,会使用Fpspread控件显示所有已注册的所有用人单位的招聘信息,并且应聘人员可以在此模块进行简历投递,可以限制不同的条件进行信息查询,并且可以显示投递状态等信息。
3.2.5求职信息模块
此模块为用人单位专属模块,同样用表格显示已投递该用人单位的所有人员的信息,用人单位管理者可以在此模块进行对应聘人员的筛选,不同组合的查询条件可以供管理者迅速锁定所需人才,并对其进行录用或者拒绝等操作。
图3.1总流程图
4调试分析
4.1数据库问题
4.1.1连接数据库问题
刚刚开始搭建环境时遇到了无法访问数据库连接的问题,经排查和上网搜索问题等方法,最终发现是访问数据库时参数设置不正确。
图4.1.1正确参数图
4.1.2编码格式问题
刚开始建表时没有在意编码格式,导致在访问时采用的utf8格式,而数据库内部存储是采用的是latin1格式,在存入数据时会存乱码,出现错误。
图4.1.2编码格式图
4.2代码问题
在使用Fpspread控件时,需要有勾选操作,要给单元格赋值为checkbox类型,刚刚开始不会操作,学习了很久才学会。
图4.2.1设置Fpspread图
5用户手册
5.1登录界面
第一次使用需要注册,点击登录界面下方的注册按钮。
5.2注册跳转界面
该界面会提供选择用户类型,先注册求职人员账号。
5.3求职人员注册界面
填写信息,注册账号
5.4用人单位注册界面
继续注册用人单位账号。
5.5求职人员基本信息界面
使用刚刚注册的求职人员账号登录后,显示如下。
此界面可以对简历信息修改。
5.6招聘信息界面
该界面显示所有用人单位的招聘信息。
可以在此投递简历,也可以按不同条件查询。
找到刚刚创建的用人单位的招聘信息进行简历投递。
5.7用人单位基本信息界面
投递完成之后使用用人单位的账号重新登录。
同理,此界面可以对信息进行修改保存。
5.8人才信息界面
此界面可以看到投递本公司的所有人才信息,从而进行筛选和录用。
参考文献
[1]王宝华,王宝石.人力资源管理[M].机械工业出版社2006.11
[2]谢兆平等,ERP人力资源管理系统的设计[J],长沙大学学报1998
[3]谢晋宇等.企业人力资源开发与管理创新.北京经济管理出版社2007
[4]杨友河,基于XML的ERP环境下的人力资源管理系统研究2003.10
[5]振法,申恒献,面向供应链管理的ERP出探[J],山东工程学院学报1999.09
[6]葛玉辉,田经兵,唐伦刚.人力资源管理模式比较研究[J].商业研究1998
[7]田红敏等.人力资源管理系统的设计与实现.江西教育学院学报2010.10
[8]王锋,张景,何文娟等,基于Internet的人力资源管理系统,微机发展1999.12
[9]廖泉文,人力资源招聘系统[M].山东人民出版社2013.01
[10]郭瑞军等著数据库开发实力精粹[M].北京:
电子工业出版社,2006.11
附录(关键部分程序清单)
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingMySql.Data.MySqlClient;
namespaceRecruit
{
publicpartialclassLogin:
Form
{
publicLogin()
{
InitializeComponent();
}
#regionMySql属性
#region建立MySql数据库连接
///
///建立数据库连接.
///
///返回MySqlConnection对象
publicMySqlConnectiongetmysqlcon()
{
stringM_str_sqlcon="server=192.168.1.234;userid=root;database=mysql;CharSet=utf8;pooling=false;port=3306";//根据自己的设置
MySqlConnectionmyCon=newMySqlConnection(M_str_sqlcon);
returnmyCon;
}
#endregion
#region执行MySqlCommand命令
///
///执行MySqlCommand
///
///SQL语句
publicvoidgetmysqlcom(stringM_str_sqlstr)
{
MySqlConnectionmysqlcon=this.getmysqlcon();
mysqlcon.Open();
MySqlCommandmysqlcom=newMySqlCommand(M_str_sqlstr,mysqlcon);
mysqlcom.ExecuteNonQuery();
mysqlcom.Dispose();
mysqlcon.Close();
mysqlcon.Dispose();
}
#endregion
#region创建MySqlDataReader对象
///
///创建一个MySqlDataReader对象
///
///SQL语句
///返回MySqlDataReader对象
publicMySqlDataReadergetmysqlread(stringM_str_sqlstr)
{
MySqlConnectionmysqlcon=this.getmysqlcon();
MySqlCommandmysqlcom=newMySqlCommand(M_str_sqlstr,mysqlcon);
mysqlcon.Open();
MySqlDataReadermysqlread=mysqlcom.ExecuteReader(CommandBehavior.CloseConnection);
returnmysqlread;
}
#endregion
#endregion
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
inttype=0;
if(this.rbtCompany.Checked)
{
type=1;
}
stringsqlSearch="select*fromuserinfouwhereu.username='"+this.txtUserName.Text+"'andu.password='"+this.txtPassWord.Text+"'andu.type='"+type+"'";
MySqlDataReaderdataReader=getmysqlread(sqlSearch);
if(!
dataReader.HasRows)
{
MessageBox.Show("用户名、密码不匹配","系统提示");
return;
}
this.Hide();
if(type==0)
{
BaseInfo1baseInfo=newBaseInfo1();
baseInfo.strUserName=this.txtUserName.Text;
baseInfo.ShowDialog();
}
else
{
BaseInfo2baseInfo=newBaseInfo2();
baseInfo.strUserName=this.txtUserName.Text;
baseInfo.ShowDialog();
}
this.Show();
}
privatevoidbtnReg_Click(objectsender,EventArgse)
{
Registerregister=newRegister();
register.ShowDialog();
}
privatevoidrbtCompany_Click(objectsender,EventArgse)
{
if(this.rbtCompany.Checked)
{
this.rbtEmployee.Checked=false;
}
}
privatevoidrbtEmployee_Click(objectsender,EventArgse)
{
if(this.rbtEmployee.Checked)
{
this.rbtCompany.Checked=false;
}
}
privatevoidLogin_Load(objectsender,EventArgse)
{
}
}
}
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingMySql.Data.MySqlClient;
namespaceRecruit
{
publicpartialclassRegister1:
Form
{
publicRegister1()
{
InitializeComponent();
}
#regionMySql属性
#region建立MySql数据库连接
///
///建立数据库连接.
///
///返回MySqlConnection对象
publicMySqlConnectiongetmysqlcon()
{
stringM_str_sqlcon="server=192.168.1.234;userid=root;database=mysql;CharSet=utf8;pooling=false;port=3306";//根据自己的设置
MySqlConnectionmyCon=newMySqlConnection(M_str_sqlcon);
returnmyCon;
}
#endregion
#region执行MySqlCommand命令
///
///执行MySqlCommand
///
///SQL语句
publicvoidgetmysqlcom(stringM_str_sqlstr)
{
MySqlConnectionmysqlcon=this.getmysqlcon();
mysqlcon.Open();
MySqlCommandmysqlcom=newMySqlCommand(M_str_sqlstr,mysqlcon);
mysqlcom.ExecuteNonQuery();
mysqlcom.Dispose();
mysqlcon.Close();
mysqlcon.Dispose();
}
#endregion
#region创建MySqlDataReader对象
///
///创建一个MySqlDataReader对象
///
///