毕业生就业管理系统课程设计.docx
《毕业生就业管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《毕业生就业管理系统课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
毕业生就业管理系统课程设计
学号:
112928
成都航空职业技术学院
课程设计
题目
毕业生就业信息管理系统
教学院
计算机学院
专业
计算机科学与技术
班级
611321
姓名
周金龙
指导教师
张强
2012
年
11
月
29
日
课程设计任务书
2010~2011学年第2学期
学生姓名:
周金龙专业班级:
611321
指导教师:
张强工作部门:
华迪公司
一、课程设计题目
毕业生就业信息管理系统主要研究及实现以下功能:
(1)基本信息管理:
可以对毕业学生基本信息的添加、修改、删除,并支持学生姓名和学号的查询。
(2)院系信息管理:
对院系信息进行添加、修改、删除和查看。
此功能为学生档案的分类管理提供依据。
(3)单位信息管理:
对用人单位的信息进行添加、修改、删除和查询等操作。
(4)就业信息管理:
可以对学生的就业资料进行添加、修改、删除和查看等操作。
(5)招聘信息管理:
可以对来校进行招聘的信息进行添加、修改、删除和查询等操作。
(6)系统设置:
对操作员信息进行管理。
二、课程设计内容(含技术指标)
1.问题分析和任务定义:
根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么,限制条件是什么;
2.逻辑设计:
确定数据库结构,及各个主要模块的功能,并明确模块之间的调用关系;
3.详细设计:
设计数据库及操作界面,并给出每个功能模块的实现算法;
4.程序编码:
把详细设计的结果进一步求精为程序设计语言程序,同时加入一些注解和断言,使程序中逻辑概念清楚;
5.程序调试与测试:
采用自底向上,分模块进行调试,调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;
6.结果分析:
程序运行结果包括正确的输入及其输出结果,含有错误的输入及其输出结果。
7.编写课程设计报告。
三、进度安排
1.软件功能分析与设计;
2.数据库及操作界面设计;
3.具体代码实现及调试;
4.撰写课程设计论文。
四、基本要求
1.学生能够按照老师的要求正确的设计数据库;
2.学生在老师的指导下,能够设计出相应功能模块;
3.学生在阅读参考资料后,能够编写出相应的代码,具备软件开发的能力。
1概述1
1.1课程设计的目的1
1.2课程设计的要求1
2总体方案设计2
2.1总体模块图2
2.2具备功能3
2.3整体设计思路3
2.3主要解决的关键性问题4
3详细设计5
3.1功能模块设计5
2模块流程图6
3.3数据库设计7
4程序的调试与运行结果说明13
4.1就业记录管理窗体设计13
4.2就业记录管理主要实现代码13
4.3就业记录管理运行结果20
5课程设计总结21
参考文献22
1概述
1.1课程设计的目的
1.问题分析和任务定义:
根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么,限制条件是什么;
2.逻辑设计:
确定数据库结构,及各个主要模块的功能,并明确模块之间的调用关系;
3.详细设计:
设计数据库及操作界面,并给出每个功能模块的实现算法;
4.程序编码:
把详细设计的结果进一步求精为程序设计语言程序,同时加入一些注解和断言,使程序中逻辑概念清楚;
5.程序调试与测试:
采用自底向上,分模块进行调试,调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;
6.结果分析:
程序运行结果包括正确的输入及其输出结果,含有错误的输入及其输出结果。
7.编写课程设计报告。
1.2课程设计的要求
1.学生能够按照老师的要求正确的设计数据库;
2.学生在老师的指导下,能够设计出相应功能模块;
3.学生在阅读参考资料后,能够编写出相应的代码,具备软件开发的能力。
2总体方案设计
2.1总体模块图
2.2具备功能
①.院系信息的添加、修改、删除、和查看。
②.学生基本信息的添加、修改、删除,并支持学生姓名和学号的查询。
③.学生就业信息的添加、修改、删除和查询。
④.就业单位信息管理,可以根据单位名称进行查询。
⑤.招聘信息管理的添加、修改、删除和查询。
2.3整体设计思路
1.系统输出对象包括高校毕业生的基本信息(姓名、性别、身份证号码、毕业院校、专业)、就业单位需求信息和最近更新的招聘信息等等。
2.系统输入对象主要是输入高校毕业生的学号(来源于学生信息数据库,其数据类型属于字符串),椐此来搜寻学生信息,此外,输入用人单位的名称(来源于就业资源信息数据库,其数据类型属于字符串),椐此来搜寻单位信息等。
3.系统流程分析如下:
(简化如下)
2.3主要解决的关键性问题
1.开发工具选择:
前台开发工具选择Delphi7
后台数据库选择SQLServer
中间层采用ADO数据访问技术,将对数据库的操作以类的形式封装
2.关键性技术:
所选开发工具的基本编程方法。
基本的后台数据库管理方法,例如创建数据库、创建表、创建视图、备份和还原数据库等。
常用SQL语句的使用。
ADO数据库访问技术。
3详细设计
3.1功能模块设计
(一)学生就业记录信息管理模块设计
1模块说明表
功能描述:
此模块用于管理员和操作员对学生就业记录管理模块中的学生就业记录进行添加、编辑、删除和查询。
性能要求:
服务器响应时间:
5秒
数据的转换和传送时间:
10秒
系统出错概率不超过万分之一
限制条件:
只有具有管理员权限的人才可以登录,只有在需要行添加、编辑、删除和查找学生的就业信息时,才能使用本模块,本模块属于后台管理模块的子模块。
输入:
1)在查看学生就业信息时,需要输入学生学号
2)在添加学生就业信息时,需要输入学生学号,单位,职位,时间
3)在修改学生就业信息时,输入数据同2)
4)在删除学生就业信息时,输入数据同2)
5)所有数据项的输入介质均为键盘或鼠标。
输出:
1)查看学生就业信息时,显示所要查询的学生的就业信息,点击即可查看。
若没有符合要求的查询结果显示“对不起,没有符合要求的信息”
1)添加学生就业信息时,显示“添加成功!
”,若添加信息的内容格式不正确或学号重复,则显示“对不起,添加失败”
2)修改学生就业信息时,显示“修改成功!
”,若修改信息的内容格式不正确或学号重复,则显示“对不起,修改失败”
2)删除学生就业信息时,显示对话框“ok,此次删除成功”。
存储分配:
应分配足够的空间来维持模块的运行
尚未解决的问题:
算法逻辑的一些细节需要进一步完善。
2模块流程图
准备
添加学生就业信息
Y
N
填写查询条件
条件是否存在
没有符合要求的查询
编辑、删除和查看学生就业信息
结束
建立与数据库连接提交数据
注:
系统主界面和登录窗体设计、学生基本信息管理模块、学生就业记录管理模块、就业单位信息管理模块、招聘信息管理模块由小组其他人员完成。
3.3数据库设计
数据库设计是开发数据库及其应用系统的技术,也是信息系统开发和建设的重要组成部分。
具体的说,数据库设计是要在一个给定的应用环境中,通过合理的逻辑设计和有效的物理设计,构造较优的数据库模式,建立数据库及其应用系统,满足用户的各种信息需求。
3.3.1数据库E-R图设计
用户实体及属性
院系实体及属性
学生实体及属性
单位实体及属性
就业信息及属性
招聘信息及属性
3.3.2数据库逻辑结构设计
用户信息表
列名
数据类型
可否为空
说明
Id
int(4)
NOTNULL
编号,主键
User_ID
nvarchar(20)
NULL
操作员ID
User_Name
nvarchar(10)
NULL
操作员姓名
User_Passwd
nvarchar(20)
NULL
密码
User_Limit
nvarchar(10)
NULL
权限
User_Remark
nvarchar(100)
NULL
备注
院系班级信息表
列名
数据类型
可否为空
说明
Id
int(4)
NOTNULL
记录编号,主键
IS_Name
nvarchar(30)
NULL
院系名
IS_ID
int(4)
NULL
上级id
学生信息表
列名
数据类型
可否为空
说明
Student_ID
nvarchar(20)
NOTNULL
学生学号,主键
Student_Name
nvarchar(20)
NULL
姓名
Student_Photo
nvarchar(200)
NULL
照片
Student_Sex
char
(2)
NULL
性别
Student_Nation
nvarchar(20)
NULL
民族
Student_Birth
smalldatetime(4)
NULL
生日
Student_NaPlace
nvarchar(50)
NULL
籍贯
Student_ICNum
nvarchar(20)
NULL
身份证号
Student_HTel
nvarchar(30)
NULL
家庭电话
Student_Adre
nvarchar(100)
NULL
居住地址
Student_Post
char(6)
NULL
邮编
Student_InDate
smalldatetime(4)
NULL
入校日期
Student_IS
nvarchar(30)
NULL
所在院系
Student_Job
nvarchar(20)
NULL
职务
Student_Remark
nvarchar(100)
NULL
备注
就业信息表
列名
数据类型
可否为空
说明
Id
int(4)
NOTNULL
记录编号,主键
Student_ID
nvarchar(20)
NULL
学生学号
Unit_ID
int(4)
NULL
单位id
Unit_Job
nvarchar(20)
NULL
职务
Work_Time
smalldatetime(4)
NULL
职务
单位信息表
列名
数据类型
可否为空
说明
Id
int(4)
NOTNULL
编号,主键
Unit_Name
nvarchar(50)
NULL
单位名称
Unit_Nature
nvarchar(20)
NULL
单位性质
Unit_Adr
nvarchar(100)
NULL
单位地址
Unit_Linkman
nvarchar(50)
NULL
单位联系人
Unit_Linkway
nvarchar(100)
NULL
单位联系方式
Unit_Remark
nvarchar(100)
NULL
备注
招聘信息表
列名
数据类型
可否为空
说明
Id
int(4)
NOTNULL
记录编号,主键
Unit_ID
int(4)
NULL
单位id
Invite_Time
smalldatetime(4)
NULL
招聘时间
Invite_count
int(4)
NULL
招聘人数
Invite_Job
nvarchar(20)
NULL
招聘职位
Invite_Adr
nvarchar(100)
NULL
招聘地点
Invite_Remark
nvarchar(100)
NULL
备注
4程序的调试与运行结果说明
4.1就业记录管理窗体设计
4.2就业记录管理主要实现代码
就业记录公共模块
usesDAHelper,ClassesU,ADODB,SysUtils;
//添加就业记录
functionAddEmploy(Employ:
TEmploy):
boolean;
//修改就业记录
functionEditEmploy(Employ:
TEmploy):
boolean;
//删除就业记录
functionDelEmploy(EmployID:
integer):
boolean;
//得到就业记录
functionGetEmployArray:
TADOQuery;
//查找就业记录,如果没有查找到该就业记录,返回空值
functionGetEmploy(OpID:
integer):
TEmploy;
//根据学号查找学生就业记录
functionGetEmployByStdNO(StdNO:
string):
TADOQuery;
implementation
functionGetEmployByStdNO(StdNO:
string):
TADOQuery;
var
sql:
string;
begin
sql:
='selecta.id,b.姓名,c.单位名称,a.职位,a.时间,a.学生证号from就业记录a'+
'join学生信息bona.学生证号=b.学生证号join单位信息c'+
'onc.id=a.单位id';
ifStdNO<>''then
sql:
=sql+'wherea.学生证号='+''''+StdNO+'''';
result:
=DAHelper.ExeSqlQuery(sql);
end;
functionGetEmploy(OpID:
integer):
TEmploy;
var
Employ:
TEmploy;
sql:
string;
Adoquery:
TADOQuery;
begin
{sql:
='selecta.id,b.姓名,c.单位名称,a.职位,a.时间from就业记录a'+
'join学生信息bona.学生证号=b.学生证号join单位信息c'+
'onc.id=a.单位idanda.id='+inttostr(OpID);
Adoquery:
=DAHelper.ExeSqlQuery(sql);
ifAdoquery.RecordCount<1then
begin
result:
=nil;
end
else
begin
Employ:
=TEmploy.Create;
Employ.id:
=ADOQuery.Fields[0].Value;
Employ.stdNo:
=ADOQuery.Fields[1].Value;
EpanyID:
=ADOQuery.Fields[2].Value;
Employ.duty:
=ADOQuery.Fields[3].Value;
Employ.date:
=DateToStr(ADOQuery.Fields[4].Value);
result:
=Employ;
end;}
end;
functionGetEmployArray:
TADOQuery;
var
sql:
string;
begin
sql:
='selecta.id,b.姓名,c.单位名称,a.职位,a.时间,a.学生证号from就业记录a'+
'join学生信息bona.学生证号=b.学生证号join单位信息c'+
'onc.id=a.单位id';
result:
=DAHelper.ExeSqlQuery(sql);
end;
functionDelEmploy(EmployID:
integer):
boolean;
var
sql:
string;
begin
sql:
='deletefrom就业记录whereid='+inttostr(EmployID);
result:
=DAHelper.ExeSqlNoQuery(sql);
end;
functionEditEmploy(Employ:
TEmploy):
boolean;
var
sql:
string;
begin
sql:
='update就业记录set学生证号='+''''+Employ.stdNo+''''+
',单位id='+inttostr(EpanyID)+
',职位='+''''+Employ.duty+''''+
',时间='+''''+Employ.date+''''+
'whereid='+inttostr(Employ.id);
result:
=DAHelper.ExeSqlNoQuery(sql);
end;
functionAddEmploy(Employ:
TEmploy):
boolean;
var
sql:
string;
begin
sql:
='insertinto就业记录(学生证号,单位id,职位'+
',时间)'+'values('+''''+Employ.stdNo+''''+
','+inttostr(EpanyID)+
','+''''+Employ.duty+''''+
','+''''+Employ.date+''''+')';
result:
=DAHelper.ExeSqlNoQuery(sql);
end;
end.
1.学号查询功能
procedureTfrm_Employ.btn_search_stdNoClick(Sender:
TObject);
begin
inherited;
self.DataSource_info.DataSet:
=
Control_EmployU.GetEmployByStdNO(self.edt_stdNo_s.Text);
self.DBGrid_info.Columns[0].Visible:
=false;
end;
2.就业记录添加功能
procedureTfrm_Employ.btn_addClick(Sender:
TObject);
var
Employ:
TEmploy;
Student:
TStudent;
Company:
TCompany;
begin
inherited;
if((edt_stdNo.Text='')or(edt_company.Text='')
or(edt_duty.Text=''))then
begin
MessageBox(Handle,'内容填写不正确!
','信息',MB_ICONEXCLAMATION);
exit;
end;
Student:
=TStudent.Create;
Student:
=Control_StudentU.GetStudentByStudentNo(self.edt_stdNo.Text);
ifStudent=nilthen
begin
MessageBox(Handle,'学号填写不正确!
','信息',MB_ICONEXCLAMATION);
edt_stdNo.SetFocus;
exit;
end;
Company:
=TCompany.Create;
Company:
=Control_CompanyU.GetCompanyByName(self.edt_company.Text);
ifCompany=nilthen
begin
MessageBox(Handle,'单位填写不正确!
','信息',MB_ICONEXCLAMATION);
edt_company.SetFocus;
exit;
end;
Employ:
=TEmploy.Create;
Employ.stdNo:
=Student.stdNo;
EpanyID:
=Company.id;
Employ.duty:
=self.edt_duty.Text;
Employ.date:
=DateToStr(self.DTP_date.Date);
if(Control_EmployU.AddEmploy(Employ))then
begin
MessageBox(Handle,'添加成功!
','信息',MB_ICONASTERISK);
//刷新内容
FillData;
ifself.DBGrid_info.Fields[0].IsNullthen
begin
self.edt_stdNo.Tag:
=0;//保存id
self.edt_stdNo.Text:
='';
self.edt_company.Tag:
=0;
self.edt_company.Text:
='';
self.edt_duty.Text:
='';
self.DTP_date.Date:
=now;
end
else
begin
self.edt_stdNo.Tag:
=self.DBGrid_info.Fields[0].Value;
self.edt_stdNo.Text:
=self.DBGrid_info.Fields[5].Value;
self.edt_company.Text:
=self.DBGrid_info.Fields[2].Value;;
self.edt_duty.Text:
=self.DBGrid_info.Fields[3].Value;;
self.DTP_date.Date:
=self.DBGrid_info.Fields[4].Value;;
end;
end
else
begin
MessageBox(Handle,'添加失败!
','信息',MB_ICONEXCLAMATION);
exit;
end;
end;
4.3就业记录管理运行结果
(1)就业记录添加和查询结果
(2)就业记录删除结果
5课程设计总结
毕业生就业信息管理系统的设计不仅可以提高管理人员的工作效率,便于工作人员对信息进行管理,同时也加强了信息的安全性和可靠性。
系统开发的数据库利用ADO数据访问技术,针对每个数据库表建立了数据实体类,并为每个数据实体类定义了相应的操作方法,从而成功地将面向对象的程序设计思想应用到数据库应用程序设计中。
根据对本系统各功能模块的分析,院系信息、学生基本信息、就业记录管理、单位信息、招聘信息和操作员管理等在功能和界面都十分相似,因此可以对上述功能模块的界面进行范化,得到Tfrm_info父窗体类,以便各功能模块的继承。
在系统开发的开发过程中,我充分体会到了软件开发过程中的辛苦,软件设计中的每一个细节都必须十分的注意,系统结构的设计,数据库的设计都关系到系统开发的成败,很多时候都是因为一个小的错误,而导致程序编译过程中出现错误。
程序在错误的查找,一定要细心,否则很难找出错误。
由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。
在不断的开发学习中,终于完成软件的基本功能,虽然这个软件的功能还不是很完善,但是我已经最最