课 程 设 计
题 目 教 学 院 专 业 班 级
毕业生就业信息管理系统
计算机学院 计算机科学与技术
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.2课程设计的要求 ................................................. 2 总体方案设计.......................................................
2.1总体模块图 ..................................................... 2.2具备功能 ....................................................... 2.3整体设计思路 ................................................... 2.3主要解决的关键性问题 ........................................... 3 详细设计 ..........................................................
3.1功能模块设计 ................................................... 2模块流程图 ....................................................... 3.3数据库设计 ..................................................... 4 程序的调试与运行结果说明 ...........................................
4.1就业记录管理窗体设计 ........................................... 4.2就业记录管理主要实现代码 ....................................... 4.3就业记录管理运行结果 ........................................... 5 课程设计总结....................................................... 参考文献 ............................................................
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.开发工具选择:
前台开发工具选择Delphi 7 后台数据库选择SQL Server
中间层采用ADO数据访问技术,将对数据库的操作以类的形式封装 2.关键性技术:
所选开发工具的基本编程方法。
基本的后台数据库管理方法,例如创建数据库、创建表、创建视图、备份和还原数据库等。
常用SQL语句的使用。 ADO数据库访问技术。
3 详细设计
3.1功能模块设计
(一)学生就业记录信息管理模块设计 1 模块说明表
功能描述: 性能要求: 限制条件: 输入: 此模块用于管理员和操作员对学生就业记录管理模块中的学生就业记录进行添加、编辑、删除和查询。 服务器响应时间:5秒 数据的转换和传送时间:10秒 系统出错概率不超过万分之一 只有具有管理员权限的人才可以登录,只有在需要行添加、编辑、删除和查找学生的就业信息时,才能使用本模块,本模块属于后台管理模块的子模块。 1)在查看学生就业信息时,需要输入学生学号 2)在添加学生就业信息时,需要输入学生学号,单位,职位,时间 3)在修改学生就业信息时,输入数据同2) 4)在删除学生就业信息时,输入数据同2) 5)所有数据项的输入介质均为键盘或鼠标。 1) 查看学生就业信息时,显示所要查询的学生的就业信息,点击即可查看。若没有符合要求的查询结果 显示“对不起,没有符合要求的信息” 1) 添加学生就业信息时,显示“添加成功!”,若添加信息的内容格式不正确或学号重复,则显示“对不起,添加失败” 2) 修改学生就业信息时,显示“修改成功!”,若修改信息的内容格式不正确或学号重复,则显示“对不起,修改失败” 2) 删除学生就业信息时,显示对话框“ok,此次删除成功”。 应分配足够的空间来维持模块的运行 输出: 存储分配: 尚未解决的问题: 算法逻辑的一些细节需要进一步完善。 2模块流程图
准备 填写查询条件 建立与数据库连接 提交数据 N 条件是否存在 没有符合要求的查询 Y 添加学生就业信息 编辑、删除和查看学生就业信息 结束
注:系统主界面和登录窗体设计、学生基本信息管理模块、学生就业记录管理模块、就业单位信息管理模块、招聘信息管理模块由小组其他人员完成。
3.3数据库设计
数据库设计是开发数据库及其应用系统的技术,也是信息系统开发和建设的重要组成部分。具体的说,数据库设计是要在一个给定的应用环境中,通过合理的逻辑设计和有效的物理设计,构造较优的数据库模式,建立数据库及其应用系统,满足用户的各种信息需求。
3.3.1数据库E-R图设计
用户实体及属性
院系实体及属性
学生实体及属性 单位实体及属性 就业信息及属性 招聘信息及属性
3.3.2 数据库逻辑结构设计
用户信息表
列名 Id User_ID User_Name User_Passwd User_Limit User_Remark 数据类型 int(4) nvarchar(20) nvarchar (10) nvarchar (20) nvarchar (10) nvarchar (100) 可否为空 NOT NULL NULL NULL NULL NULL NULL 院系班级信息表
列名 Id IS_Name IS_ID 数据类型 int(4) nvarchar (30) int(4) 可否为空 NOT NULL NULL NULL 学生信息表
列名 Student_ID Student_Name Student_Photo Student_Sex Student_Nation Student_Birth 数据类型 nvarchar (20) nvarchar (20) nvarchar(200) char(2) nvarchar (20) smalldatetime(4) 可否为空 NOT NULL NULL NULL NULL NULL NULL 说明 学生学号,主键 姓名 照片 性别 民族 生日 说明 记录编号,主键 院系名 上级id 说明 编号,主键 操作员ID 操作员姓名 密码 权限 备注 Student_NaPlace Student_ICNum Student_HTel Student_Adre Student_Post Student_InDate Student_IS Student_Job Student_Remark nvarchar (50) nvarchar(20) nvarchar(30) nvarchar(100) char(6) smalldatetime(4) nvarchar(30) nvarchar(20) nvarchar(100) NULL NULL NULL NULL NULL NULL NULL NULL NULL 就业信息表
籍贯 身份证号 家庭电话 居住地址 邮编 入校日期 所在院系 职务 备注 列名 Id Student_ID Unit_ID Unit_Job Work_Time 数据类型 int(4) nvarchar (20) int(4) nvarchar(20) smalldatetime(4) 可否为空 NOT NULL NULL NULL NULL NULL 说明 记录编号,主键 学生学号 单位id 职务 职务 单位信息表
列名 Id Unit_Name Unit_Nature Unit_Adr Unit_Linkman Unit_Linkway Unit_ Remark 数据类型 int(4) nvarchar(50) nvarchar(20) nvarchar(100) nvarchar(50) nvarchar(100) nvarchar(100) 可否为空 NOT NULL NULL NULL NULL NULL NULL NULL 招聘信息表
列名 Id Unit_ID Invite_Time Invite_count Invite_Job Invite_Adr Invite_Remark 数据类型 int(4) int(4) smalldatetime(4) int(4) nvarchar(20) nvarchar(100) nvarchar(100) 可否为空 NOT NULL NULL NULL NULL NULL NULL NULL 说明 记录编号,主键 单位id 招聘时间 招聘人数 招聘职位 招聘地点 备注 说明 编号,主键 单位名称 单位性质 单位地址 单位联系人 单位联系方式 备注 4 程序的调试与运行结果说明
4.1就业记录管理窗体设计
4.2就业记录管理主要实现代码
就业记录公共模块
uses DAHelper,ClassesU,ADODB,SysUtils; //添加就业记录
function AddEmploy(Employ:TEmploy):boolean; //修改就业记录
function EditEmploy(Employ:TEmploy):boolean; //删除就业记录
function DelEmploy(EmployID:integer):boolean; //得到就业记录
function GetEmployArray:TADOQuery;
//查找就业记录,如果没有查找到该就业记录,返回空值 function GetEmploy(OpID:integer):TEmploy; //根据学号查找学生就业记录
function GetEmployByStdNO(StdNO:string):TADOQuery; implementation
function GetEmployByStdNO(StdNO:string):TADOQuery; var sql:string; begin
sql:='select a.id,b.姓名,c.单位名称,a.职位,a.时间,a.学生证号 from 就业记录 a '+ ' join 学生信息 b on a.学生证号=b.学生证号 join 单位信息 c '+ ' on c.id=a.单位id' ; if StdNO<>'' then
sql:=sql+' where a.学生证号='+''''+StdNO+''''; result:=DAHelper.ExeSqlQuery(sql); end;
function GetEmploy(OpID:integer):TEmploy; var
Employ:TEmploy; sql:string;
Adoquery:TADOQuery; begin
{ sql:='select a.id,b.姓名,c.单位名称,a.职位,a.时间 from 就业记录 a '+ ' join 学生信息 b on a.学生证号=b.学生证号 join 单位信息 c '+ ' on c.id=a.单位id and a.id='+inttostr(OpID); Adoquery:=DAHelper.ExeSqlQuery(sql); if Adoquery.RecordCount<1 then begin result:=nil; end
else begin
Employ:=TEmploy.Create;
Employ.id:=ADOQuery.Fields[0].Value; Employ.stdNo:=ADOQuery.Fields[1].Value; Employ.companyID:=ADOQuery.Fields[2].Value; Employ.duty:=ADOQuery.Fields[3].Value;
Employ.date:=DateToStr(ADOQuery.Fields[4].Value); result:=Employ; end; } end;
function GetEmployArray:TADOQuery; var sql:string; begin
sql:='select a.id,b.姓名,c.单位名称,a.职位,a.时间,a.学生证号 from 就业记录 a '+ ' join 学生信息 b on a.学生证号=b.学生证号 join 单位信息 c '+ ' on c.id=a.单位id' ;
result:=DAHelper.ExeSqlQuery(sql); end;
function DelEmploy(EmployID:integer):boolean; var sql:string; begin
sql:='delete from 就业记录 where id='+inttostr(EmployID); result:=DAHelper.ExeSqlNoQuery(sql); end;
function EditEmploy(Employ:TEmploy):boolean; var sql:string;
begin
sql:='update 就业记录 set 学生证号='+''''+Employ.stdNo+''''+ ',单位id='+inttostr(Employ.companyID)+ ',职位='+''''+Employ.duty +''''+ ',时间='+''''+Employ.date+''''+ ' where id='+inttostr(Employ.id); result:=DAHelper.ExeSqlNoQuery(sql); end;
function AddEmploy(Employ:TEmploy):boolean; var sql:string; begin
sql:='insert into 就业记录(学生证号,单位id,职位'+ ',时间)'+' values('+''''+Employ.stdNo+''''+ ','+inttostr(Employ.companyID)+ ','+''''+Employ.duty+''''+ ','+''''+Employ.date+''''+')'; result:=DAHelper.ExeSqlNoQuery(sql); end; end.
1.学号查询功能
procedure Tfrm_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.就业记录添加功能
procedure Tfrm_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); if Student=nil then begin
MessageBox(Handle, '学号填写不正确!', '信息', MB_ICONEXCLAMATION); edt_stdNo.SetFocus; exit; end;
Company:=TCompany.Create;
Company:=Control_CompanyU.GetCompanyByName(self.edt_company.Text); if Company=nil then begin
MessageBox(Handle, '单位填写不正确!', '信息', MB_ICONEXCLAMATION); edt_company.SetFocus; exit;
end;
Employ:=TEmploy.Create; Employ.stdNo:=Student.stdNo; Employ.companyID:=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;
if self.DBGrid_info.Fields[0].IsNull then 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父窗体类,以便各功能模块的继承。
在系统开发的 开发过程中,我充分体会到了软件开发过程中的辛苦,软件设计中的每一个细节都必须十分的注意,系统结构的设计,数据库的设计都关系到系统开发的成败,很多时候都是因为一个小的错误,而导致程序编译过程中出现错误。程序在错误的查找,一定要细心,否则很难找出错误。由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。
在不断的开发学习中,终于完成软件的基本功能,虽然这个软件的功能还不是很完善,但是我已经最最大努力做好,提高了自己开发系统的能力。通过这次开发的总结,在以后的开发过程中,我会注意这次开发过程的中遇到的问题,尽量避免,争更好的完成软件的开发。
参考文献
软件综合 课程设计成绩评定表
姓 名 专业班级 xxx 611321 性 别 男 课程设计题目:毕业生就业信息管理系统 课程设计答辩或质疑记录: 成绩评定依据: 最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日
因篇幅问题不能全部显示,请点此查看更多更全内容