毕业设计-网上人才招聘系统论文.doc_第1页
毕业设计-网上人才招聘系统论文.doc_第2页
毕业设计-网上人才招聘系统论文.doc_第3页
毕业设计-网上人才招聘系统论文.doc_第4页
毕业设计-网上人才招聘系统论文.doc_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

装订线毕业设计(论文)说明书网上人才招聘系统摘要网上人才招聘系统是一个单位不可缺少的部分,它的内容对于决策者和管理者来说都至关重要。该系统完全是根据我校的实际情况制作的关于网上人才招聘系统人事流程处理方面(属于后台部分)的软件,主要是实现学校对简历的处理。学校对简历的处理是一个流水作业,人事处、各学院都要参与,先是人事处初步处理,再到学院审核,再由人事处反馈求职者。除此之外,人事处还要处理原始资料,管理招聘信息等。以计算机代替完全人工的方式,会改善我校招聘工作的复杂度,提高工作效率,大大缩短工作时间。本论文主要介绍了本课题后台管理部分的开发背景,所要完成的功能和开发过程,重点的说明了系统设计的思想。关键词:招聘,php,mysql,人事处 abstractas the employing system on line, an indispensable part for a unit, whose contents is very important to both decision makers and mangers.this system is a software of the employing system on line about dealing with the personnel conveyor (belong to the part of background),which is developed according to condition of our school.it is used for dealing with resumes. dealing with resumes is a conveyor system,with personnel department and every college taking part in. personnel department deals with the resumes first,then,every college checks them.finaly, personnel department will offer feedback to the people who hunt jobs. personnel department should deal with former data and manage hunting information,too.its heavy work.the way of computer instead of work done all by man will make the hunting job easier,improve the efficiency and shorten the time taken by this job.the paper mainly introduces the developing background, the functions that should be accomplished and the process of the development, and the more important is the introduction of the designing ideas of this system. keywords : employing ,php , mysql, personnel department 目录前言11. 需求分析21.1 任务概述21.1.1 系统功能要求21.1.2 运行环境21.1.3 系统性能要求31.2 分析过程31.2.1 数据流图31.2.2 数据字典31.3 e-r图42. 总体设计62.1 引言62.2 系统结构63. 详细设计73.1 引言73.2 编程环境简介73.2.1 php简介73.2.2 mysql简介113.3 数据库的建立123.3.1 数据库理论基础123.3.2 数据库结构143.4 具体设计153.4.1 系统登录153.4.2 超级管理员主页163.4.3 系统主页163.4.4 人事处管理163.4.5 学院审核173.4.6 密码更改173.4.7 在线查询和在线应聘174. 编码设计184.1 编码目的184.2 系统实现184.2.1 连接mysql数据库184.2.2 sql语句的使用185. 软件测试205.1 什么是软件测试205.2 软件测试的目的和规则205.3 软件测试结果205.3.1 系统登录205.3.2 管理员信息设置215.3.3 系统主页225.3.4 人事处管理225.3.5 学院审核245.3.6 密码更改255.3.7 在线查询和在线应聘25结束语26致 谢27参考文献28附录i 部分程序源代码29附录ii 英文资料40共 53 页 第 66 页前言随着信息技术的迅速发展以及计算机在社会中的广泛运用,我国国民经济信息化建设进程的步伐也在加快。普通家庭的计算机普及率已经达到相当高的水平,人们都开始使用计算机进行开发和管理工作。我校每年大概要处理2000份求职信息,一直以来的人工处理方式存在着许多缺点,如效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。而使用计算机进行管理,具有手工管理所无法比拟的优点。如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事处的效率,也是企业的科学化、正规化管理的重要途径,所以网上人才招聘系统的建立刻不容缓。本人是利用php、dreamweaver作为系统的开发工具的,用mysql作为后端数据库,服务器是apache。本论文分为五个部分,从问题提出到需求分析,从总体设计、详细设计再到编码设计、软件测试,每一部分都从实际出发,详细地介绍了系统设计的整个过程,相信读者能从这篇论文对整个系统有个全面的了解。1. 需求分析1.1 任务概述需求分析不仅是软件定义时期的最后一个阶段,而且是软件开发期的第一个阶段,也是关系到软件开发成败的关键步骤。它的基本任务是准确的回答“系统必须做什么”。1.1.1 系统功能要求针对我校对简历的处理流程,本人将网上人才招聘系统人事流程处理分为如下功能模块:1人事管理功能:求职简历初步处理:对求职者简历进行初步审核,认为基本符合条件的提交学院进一步审核,否则提交到原始资料库,以备以后审阅。学院审核结果的反馈:将学院审核的结果反馈给求职者,不同意面试的提交到原始资料库并反馈求职者,以备以后审阅。原始资料查询:人事处对每年处理过的简历要查阅一下,看看我校求职者大体情况的趋势如何,对于早期的资料可以直接删除。如果发现比较合适的人选,还可以重新调出由学院再次审核。招聘信息管理:实现对学校招聘信息的添加,删除和修改。2学院审核功能:决定求职者哪些可以面试,哪些暂不考虑,并将决定反馈人事处,由人事处通知求职者。3密码更改功能:管理者可以随时修改密码,提高密码安全性。4超级管理员管理功能:在登录模块以超级管理员身份登录后可进入管理员信息管理模块,实现对所有管理员信息的添加、删除和修改。5在线查询:连接到前台招聘信息查询模块。6在线应聘:连接到前台在线应聘模块。说明:我向学校人事处的丁科长做了具体的需求分析,学校的招聘信息是长年有效的,没有具体的职业分配,只有人才类型的大体概括(包括紧缺专业人才、硕士研究生、高层次人才)。学校收到简历后,先由人事处根据求职者所属分类,将求职者与其相应的条件做比较,符合要求者才提交到相应学院,是否有面试机会完全由各学院决定,面试后再谈其它事项。1.1.2 运行环境支持系统运行的系统软件:服务器可以是iis和apache等,数据库可以任意,语言是php、jsp或asp,系统可以是windows2000、windowsxp、windows98、windowsnt等。1.1.3 系统性能要求基本功能齐全,操作简单直观,能顺利执行流水作业,用户界面友好,运行速度较快,便于管理员进行维护。1.2 分析过程1.2.1 数据流图 1人事流程处理会员信息招聘信息管理员信息人事处管理员会 员图1.1顶层图 图1.2 1层图1.1人事处初步处理1.2学院审核会 员 信 息 文 件会员信息合格会员不合格会员合格会员同意面试会员暂不考虑会员管理员信息文件1.3添加1.4修改1.5删除 管理员信息招聘信息文件1.6添加1.7修改1.8删除 招聘信息 1.2.2 数据字典人事流程处理信息信息=管理员表|招聘信息表|会员表管理员表信息信息=管理员id+管理员名+管理员密码+管理员帐号+所在学院+权限招聘信息表信息信息=人才类型编号+人才类型+具体对象+条件+优惠政策会员表信息信息=会员id+会员密码+会员帐号+会员姓名+会员性别+出生年月+政治面貌+婚姻状况+籍贯+专业+外语水平+专业方向+计算机水平+联系地址+联系电话+邮箱+邮编+手机号+教育背景+区别流程状态符+科研项目+发表的论文+所学课程+简历提交时间1.3 e-r图说明:本系统只涉及到管理员、招聘信息、简历三个实体,概念结构比较简单,各实体的属性图如下管理员姓名管理员帐号管理员密码管理员权限管理员所在学院管 理 员图1.3管理员信息招聘信息人才类型编号人才类型具体对象条 件优 惠 政 策图1.4管理员信息区别流程状态符所学课程婚姻状况科研项目简历提交时间简 历会员编号会员帐号会员密码会员姓名会员性别出生年月政治面貌会员专业计算机水平外语水平主攻方向会员籍贯联系电话联系地址会员邮编会员邮箱教育背景会员手机发表的论文图1.5 会员信息2. 总体设计2.1 引言经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候。总体设计的基本目的就是回答“从总体上说,系统应该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设计。通过这个阶段的工作将划分出组成系统的物理元素-程序、文件、数据库、人工过程和文档等等。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。2.2 系统结构管理员信息的添加人才招聘人事流程处理简历的进一步审核简历初步处理模块学院审核结果的反馈招聘信息管理模块原始资料查询模块管理员密码修改模块学院管理模块密码修改模块人事处管理模块超级管理员模块管理员信息的删除管理员信息的修改 图2.1 系统结构3. 详细设计3.1 引言总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计是软件开发时期的第三个阶段,也是软件设计的第二步。其任务就是把解法具体化,也就是回答下面这个关键的问题:“应该怎样具体地实现这个系统呢?”,通过详细设计应该得出对目标系统的精确描述,给出各个模块的详细过程性描述。从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。3.2 编程环境简介3.2.1 php简介(一) 语法基础 1 如何在页面嵌入php代码 php可以嵌入到html的代码中间,也就是说可以把html和php代码混合在一起使用,这样写起代码会很惬意的。当然要有能区分php代码和html的方法,可以使用以下4种方法: a. b. c. echo (“指定脚本语言的方式”); d. 上面第1种第4种方式在windows 98下需要单独设置才能使用。 2 程序的注释和如何结束语句 在php程序里,注释有如下三种注释方式: a./* 第一行 第二行 多行注释 */ b./ 单行注释 c.# 单行注释 上面这三种注释可以混合使用,读者可以根据习惯选用,需要注意的是多行注释不能嵌套多行注释。php语句之间使用“;” 分隔,它也是语句结束符。 (二) 常量和变量 1 常量 php有很多的常量,象“true”、“false”等,如果觉得常量不够使用的话,也可以自己定义常量。 2 变量 php的变量是非常有意思的,变量前面都有一个“$”(美元)符号,所以非常好区分变量和程序里别的语句,同时php中的变量是可以不用预先定义而直接在代码里引用的,而且使用了“$”这样的符号,可以使我们的程序获得更大的自由,不但可以象平常一样引用变量,还可以在一个字符串里直接写,而php能自动获得变量的值,但是php对大小写区分很严格。 变量的作用范围 php里的变量可以直接引用,我们定义了一个页面级的变量,它和在函数里的同名变量之间有什么关系?这就是变量的作用范围问题。php如果直接在函数中引用与页面变量同名的变量,它会认为函数的变量是一个新的变量,当然什么也不输出,但如果我们在其前面增加一个“global”的话,就可以得到页面的同名变量的值,另一种同样的方法是$globalsstrtest; 变量的变量 在php中变量与许多常用语言最大的区别就是增加了一个$前缀,为什么单独拿出来讲呢?因为有了这一个前缀,同样增加了php的独特的一种处理方式,一个前缀代表普通的变量,但是两个前缀呢?这就是变量的变量,php的标准定义则是$name。我们有了变量的变量就可以实现动态增加变量了,这简直就是神奇。 变量的类型 学过其它语言的读者会发现php定义的变量怎么没有定义类型呢?实际上php定义的变量缺省是没有类型的,变量在使用时由php自动确定变量的类型。php支持五种变量类型:string、integer、floating-point numbers (double)、array、object。 (三) 运算符算术运算 (arithmetic operators) 符号,是用来处理四则运算的符号,这是最简单,也最常用的符号,几乎所有语言的算术运算符都差不多。 逻辑运算通常用来获得逻辑值的真假,在所有的编程语言里,逻辑运算符是非常重要的,逻辑运算符如00100010b所示。 关系运算就是比较大小用的。 不同的运算符在同一行程序里有不同的运算顺序,php程序里的运算顺序如00100010e,越往下表明运算符的优先级别越高,同时应注意结合规则。 (四) 流程控制语句编程人员最基本的工作之一就是要告诉计算机下一步的动作,而流程控制语句正是这方面让计算机做出选择,流程控制语句就象一个灌溉田地的水渠,在通过各个分岔时引导程序走向我们要求的地点。 1 if条件语句 if条件语句是我们最常用的一种分支语句,用法也符合人们思维的习惯。它在定义上有三种形式: 第一种最简单的形式:if (expression) statement; 第二种带有else(否则)的形式:if (expression) statement1; else statement2; 第三种带有elseif的形式: if (expression) statement1;elseif statement2;else statement3; if条件语句是允许嵌套的,也就是在if语句中含有另外的if语句,但要注意嵌套层次,否则不能得到想要的结果。 2 循环语句 有时我们需要一遍一遍的重复做相同的事,如果我们都要一次一次的去做的话,是非常头疼的事,在计算机中则有专门的循环语句来做这些事情,当然这也是计算机的一个强项。 循环语句象一个圆,从开始到结束可以一遍一遍的执行,但最好不能是圆,否则我们会陷入死循环。因此,我们使用循环语句的时候,要有一个良好的出入口。 循环一般可以分为以下几种。 a.while循环,也叫“当型循环”,就是说“当条件为真就执行循环体”。 这种循环先判断表达式为真再执行,可能一次也不执行。 b.do while循环叫做“直到型循环”,它最少执行一次,意思就是“先执行循环体直到条件为真才退出”。 上面两种循环都是不知道循环的次数,或者在条件比较模糊的情况下使用。 c.for循环,在php4中有两种for循环,一是for,另一是foreach循环。他们主要的区别在于:for循环用于循环次数已知的循环;foreach则是针对数组和散列的循环。 php有数组和散列,后面介绍它们的概念,数组元素个数没有固定,如果要访问每一个元素,用foreach可以从第一个元素访问到最后一个元素,这样我们可以不必求出元素的个数,就能遍历整个数组。 3 switch多条件语句 在学习if条件语句时,我们注意到如果条件非常复杂的时候,就象我们排一个日程表时,如果再使用if语句就会非常的麻烦,而且程序不易阅读,这时我们推荐使用switch语句,实际上一般只要是复合的条件都可以使用switch语句,因为它能帮助我们编出结构清晰和比较容易改变条件表达式。这时要介绍两个特殊的流程控制语句:break和continue。break是可以跳出当前循环体的语句,而continue则是从当前执行continue语句处跳到执行条件判断的地方继续执行。 4 引用文件 在我们编程的过程中,肯定会遇到很多的地方需要许多相同的模块或者函数,当然我们也可以使用复制和粘贴的方法把程序块放入到程序里,而一旦我们要修改这些语句中的一处,则必须修改所有粘贴的代码,这当然很累,所幸php提供了引用文件的方法,他们就是require,require-once,include,include-once。require方法程序在执行前先读入 require 所指定引用的文件,使它变成 php 程序网页的一部份。而php的include方法则是php 的网页在遇到 include 所指定的文件时,才将它读进来。这种方式,更符合人们的习惯。 在我们编程时有时还会遇到这样一个问题,在我们极力保证函数和类的独立性和公用性的同时,而如果在程序里面我们调用了一个非公用文件里的类,但我们的另一个处理文件也调用了这个文件里的这个类,那么程序将会出错,说是重定义了这个类,因此,我们将不得不去重写文件或者丢弃它的独立性,但在php4里不存在这个问题,因为php4可以使用require-once和include-once方法,顾名思义也就是他们只调用一次我们所需要的文件,如果有两次调用文件的话,第二次调用的文件不起作用。 (五) 数组经过上面的学习,我们基本具有了使用php编程的条件,而我们所学的也是一切编程的基础,但若想更进一步,就需了解更强大的数据类型:数组。 1 普通数组 我们在c、vb等语言里使用的数组,都是以数字作为下标来索引数组的值,在php中是这样表示的:$a1=1,$a2=2.$an,虽然php的普通数组比c语言在数据类型方面前进了一大步,而真正比c语言优越的是引入了哈希表(联合数组)。 2 哈希表(联合数组) 在c语言里我们使用了枚举的数据类型,就是譬如我们定义了星期的枚举变量,我们可以让这个枚举里含有星期一到星期日的名字,这样我们就可以直接引用星期的名字也能得到正确的值了,但是枚举需要预定义,数量也是定义好的,才能引用,在php将其归类到了这种联合数组,也就是说我们的下标不必非采用数字,这样数组的下标也成了我们可以发挥的地方。实际上数组的维数最好不要超过三维,否则会给服务器带来极大的负担,就有些得不偿失了。 (六) 函数函数就是能执行特定功能的语句块。函数在php运用非常广泛,也是各种php函数使php变为强大的web编程脚本语言的原因之一,我们可以通过用户定义的函数使程序结构变得更清晰、更合理以及代码更简洁。php已经预定义了大量的函数,而我们这里主要讲的是如何定义使用用户定义的函数。 1 用户定义函数 用户在解决一些问题时需要用户多次完成同样的工作,还有就是php没有解决的功能等这些问题,我们则提倡使用函数。php定义函数的方式,没有象变量定义那样非常严格,在这里大小写可以混用,可以在定义的时候使用大写,使用的时候用小写的函数名,从这点上可以看出php是非常地为编程人员着想。php的函数可以有返回值,也可以没有返回值,这样可以省略上面的返回语句。 2 参数 php的参数使用比较灵活,我们可以象c里面一样使用“”引用参数,在函数里改变参数的值的话,就直接改变了这个变量的值,也可定义参数的缺省值,这样可以在需要的时候省略参数。3.2.2 mysql简介mysql是一个真正的多用户、多线程sql数据库服务器。sql(结构化查询语言)是世界上最流行的和标准化的数据库语言。mysql是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。sql是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用sql语言为一个网站检索产品信息及存储顾客信息,同时mysql也足够快和灵活以允许你存储记录文件和图像。mysql主要目标是快速、健壮和易用。最初是因为我们需要这样一个sql服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,mysql就开发出来。尽管mysql仍在开发中,但它已经提供一个丰富和极其有用的功能集。下表描述mysql一些重要的特征: 使用核心线程的完全多线程。这意味着它能很容易地利用多cpu(如果有)。 c、c+、eiffel、java、perl、php、python、和tclapi。 可运行在不同的平台上。 多种列类型:1、2、3、4、和8字节长度的有符号/无符号整数、float、double、char、varchar、text、blob、date、time、datetime、 timestamp、year、set和enum类型。 利用一个优化的一遍扫描多重联结(one-sweep multi-join)非常快速地进行联结(join)。 在查询的select和where部分支持全部运算符和函数 通过一个高度优化的类库实现sql函数库并且像他们能达到的一样快速,通常在查询初始化后不应该有任何内存分配。 全面支持sql的group by和order by子句,支持聚合函数( count()、count(distinct)、avg()、std()、sum()、 max()和min() )。 支持ansi sql的left outer join和odbc语法。 你可以在同一查询中混用来自不同数据库的表。 一个非常灵活且安全的权限和口令系统,并且它允许基于主机的认证。口令是安全的,因为当与一个服务器连接时,所有的口令传送被加密。 odbc for windiws 95。所有的odbc2.5函数和其它许多函数。例如,你可以用access连接你的mysql服务器。 具备索引压缩的快速b树磁盘表。 每个表允许有16个索引。每个索引可以由116个列或列的一部分组成。最大索引长度是256个字节(在编译mysql时,它可以改变)。一个索引可以使用一个char或varchar字段的前缀。 定长和变长记录。 用作临时表的内存散列表。 大数据库处理。我们正在对某些包含50,000,000个记录的数据库使用mysql。 所有列都有缺省值,你可以用insert插入一个表列的子集,那些没用明确给定值的列设置为他们的缺省值。 用c和c+编写,并用大量不同的编译器测试。 一个非常快速的基于线程的内存分配系统。 没有内存漏洞。用一个商用内存漏洞监测程序测试过(purify)。 包括myisamchk,一个检查、优化和修复数据库表的快速实用程序。 所有数据以iso-8859-1latin1格式保存。所有正常的字符串比较是忽略大小写的。 根据iso-8859-1latin1字符集进行排序。通过在源代码中增加排序顺序数组可以改变它。mysql支持可在编译时指定的很多不同的字符集。 表和列的别名符合sql92标准。 delete、insert、replace和update 返回有多少行被改变(受影响)。 函数名不会与表或列名冲突。例如abs是一个有效的列名字。对函数调用的唯一限制是函数名与随后的“(”不能有空格。所有mysql程序可以用选项-help或-?获得联机帮助。 服务器能为客户提供多种语言的出错消息。 客户端使用tcp/ip连接或unix套接字(socket)或nt下的命名管道连接mysql。 mysql特有的show命令可用来检索数据库、表和索引的信息,explain命令可用来确定优化器如何解决一个查询。 3.3 数据库的建立3.3.1 数据库理论基础1. 数据库模型数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型” 。目前广泛作用的数据模型可分为两种类型。一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型” 。这其中著名的模型是“实体联系模型” 。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。 这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型” 。例如,层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。(1)层次模型。用树型结构表示实体类型及实体间联系的数据模型。层次模型的特点是记录之间的联系通过指针实现,查询效率较高。但层次模型有两个缺点:一是只能表示1n联系,虽然有多种辅助手段实现了mn联系,但都较复杂,用户不易掌握,二是由于树型结构层次顺序的严格和复杂,引起数据的查询和更新操作也很复杂,因此,编写应用程序也很复杂。(2)网状模型。用有向图结构表示实体类型及实体间联系的数据模型。网状模型的特点:记录之间联系通过指针实现,mn联系也容易实现,查询效率较高。网状模型的缺点是编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。(3)关系模型。关系模型的主要是用二维表格结构表达实体集,用外键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。sql语言是关系数据库的标准化语言,已得到了广泛的应用。关系模型和网状、层次模型的最大区别是:关系模型用表格数据而不是通过指针链来表示和实现实体间联系。关系模型的数据结构简单、易懂。只需用简单的查询语句就可对数据库进行操作。(4)面向对象模型。目前,关系数据库的使用已相当普遍,但是,现实世界中仍然存在着许多含有复杂数据结构的应用领域,因此,人们需要更高级的数据库技术来表达这类信息。面向对象数据库是面向对象概念与数据库技术相结合的产物。面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对较复杂,涉及的知识面也广,因此面向对象数据库尚未达到关系数据库那样的普及程度。2. 范式建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立db的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。在数据的规范化表达中,一般将一组相互关联的数据称为一个关系,而在这个关系下的每个数据指标项则被称为数据元素,这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字,它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:在表中的任意一列上,数据项应属于同一个属性。 表中所有行都是不相同的,不允许有重复组项出现。在表中,行的顺序无关紧要。 在表中,列的顺序无关紧要,但不能重复。 在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,依此类推。第一范式就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。第二范式是指每个表必须有一个(而且仅一个)数据元素为主关键字,其它数据元素与主关键字一一对应。通常我们称这种关系为函数依赖关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第三范式就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了第二范式的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。3.3.2 数据库结构在需求分析阶段与总体设计阶段我们已经基本了解了各个模块所要实现的功能,通过与用户更深刻的接触,现在可以开始创建数据库了。当然,建库需要根据需求分析阶段的数据字典。表3.1 管理员表(id为主键)字段名数据类型字段大小字段说明idint管理员编号uservarchar10管理员帐号passwordvarchar10管理员密码levelchar1管理员权限nametext管理员性名xueyuantext管理员所在学院说明:由于一般管理员来自各个学院管理招聘的负责人,所以管理员是按学院分类的,每个学院有一个一般管理员,他们根据自己所在的学院调用求职者信息并进行审核,超级管理员由人事处的工作者担任。表3.2 会员表(hyid为主键,且自动增加)字段名数据类型字段大小字段说明hyid bigint会员编号hyname varchar10会员帐号pwdvarchar10会员密码name text 会员姓名sextext会员性别birthdaydate出生年月mianmaotext政治面貌marrigetext婚姻状况addtext会员籍贯majortext会员专业foreigntext外语水平fangxtext主攻方向jsjtext计算机水平lxaddtext联系地址lxdhtext联系电话emailvarchar30会员邮箱youbianvarchar6会员邮编televarchar15会员手机backgroundtext教育背景statechar1区别流程状态符itemstext科研项目lunwentext发表的论文markstext所学课程ftimedate简历提交时间说明:state是标志流程进行到哪一步的。当求职者提交简历后,state默认为0,人事处初步审核后,若通过state设置为1,否则设置为4。学院进一步审核state为1的简历,同意面试的设置为2,否则设置为3。人事处将学院审核结果反馈给求职者后,再将所有简历设置为4。所有state为4的简历作为原始资料以备人事处以后查阅。表3.3 职业表(cid为主键,且自动增加)字段名数据类型字段大小字段说明cidint人才类型编号cnametext 人才类型careertext具体对象ciftext具体条件preferencetext优惠政策正确不正确输入用户名、密码是否正确登录系统选择权限(一般或超级管理员)3.4 具体设计3.4.1 系统登录图3.4系统登录当程序启动时,将出现系统登录窗口,此时输入用户名与密码,再选择匹配权限(即你是超级管理员还是一般管理员,只要你是管理员,就可以以一般管理员身份登录,但只有超级管理员才可以以超级管理员身份登录),单击确定按钮。当用户名和密码不为空时,将在密码表中进行查询是否存在此用户,如果此用户不存在,将提示“用户名或密码有误”,如果此用户存在,则进入相应的管理员界面,否则将提示用户“必填项不能为空”。3.4.2 超级管理员主页此部分界面只有超级管理员才可以进入,超级管理员可以添加、删除和修改一般管理员和其他超级管理员的信息。系统自动从数据库调出管理员信息,并按每页三条记录进行分页显示,每条记录后面都跟有删除、修改按钮(即两个超链接),添加按钮用button按钮单独列出。单击添加按钮,进入添加管理员信息的填加窗体,输入必填信息,单击确定按钮,出现信息框,提示添加成功后返回超级管理员窗体。如果该用户名已有人使用,则程序将提示帐号或密码已有人使用的信息框,要求重新输入。单击删除超链接,管理员信息便可删除,不用再进入其它窗体。单击修改超链接,系统自动调出管理员信息,你可以修改要修改的部分,再点击保存即可。3.4.3 系统主页该模块是进入其它系统模块的过度模块,他的主要部分就是几个连接其它模块的超链接,分别是:人事处模块,学院审核模块,密码更改模块,在线查询模块,在线应聘模块。人事处、学院审核、密码更改、在线查询、在线应聘作为主菜单直接列出,初步处理、信息反馈、资料查询、招聘信息管理作为人事处的子菜单,在鼠标点击人事处时显示出来。为使界面美观,要添加一些图片,这些图片要能突出我校特色。所以本人选择校园风光。3.4.4 人事处管理人事处负责四个方面的任务:求职简历初步处理、学院审核结果的反馈、原始资料查询、招聘信息管理。求职简历初步处理:对求职者递交的原始简历进行初步审核,认为基本符合条件的简历提交学院进一步审核,否则提交到原始资料库,以备以后审阅。学院审核结果的反馈:人事处将学院进一步审核后的简历的结果反馈给求职者,并将所有反馈过的简历提交到原始资料库,以备以后审阅。原始资料查询:人事处对每年处理过的简历要查阅一下,看看我校求职者大体情况的趋势如何,对于早期的资料可以直接删除,如果发现比较合适的人选,还可以重新调出使用。招聘信息管理:可以实现对学校招聘信息的添加,删除和修改。招聘信息分页显示,每页显示一条,所以添加、删除和修改按钮都单独列出。功能实现同前面的管理员信息设置部分。3.4.5 学院审核决定求职者哪些可以面试,哪些暂不考虑,并将决定反馈人事处,由人事处通知求职者。由于我校有十几个学院,所以求职者简历按学院进行分类显示,由各学院的负责人根据自己所在的学院,从下拉列表框中搜索属于本学院的专业,即可调出提交到本学院的简历。简历每页显示一条,对求职者简历审核后,根据自己的意见(是否同意面试)将简历设置为不同的状态提交人事处。3.4.6 密码更改在此模块中,管理者可以随时修改自己的密码,以提高密码的安全性。由于系统登录时是以用户id号作为session变量注册的,所以无需重新输入用户名和密码,只需输入两遍新密码即可,若两次输入密码不一致,会出现信息提示框,要求再重新输入新密码。3.4.7 在线查询和在线应聘由于整个网上人才招聘系统是由四位同学来完成的,前台部分不在本人的毕业设计范围内,但为了保证系统的完整性,本人在后台部分添加了这两个超链接,分别连接到前台招聘信息查询界面和在线应聘界面。4. 编码设计编码设计问题是一个科学化管理的问题。设计出一个好的编码方案对于系统的开发工作是一件极为有利的事情。它可以使很多机器处理变得十分方便,另外还把一些现阶段计算机很难处理的工作变成很简单的处理。4.1 编码目的 编码就是以数或字符来代表各种客观实体。在系统开发过程中设计编码目的是:1 唯一化在现实世界中有很多东西如果我们不加标识是无法区分开的,这时机器处理就十分困难。所以能否将原来不能确定的东西,唯一地加以标识是编制代码的主要任务。2 规范化唯一化虽是编码设计的首要任务。但如果我们仅仅为了唯一化来编制代码,那么代码编出来后可能是杂乱无章的,使人无法辨认,而且使用起来也不方便。所以我们在唯一化的前提下还要强调编码的规范化。3 系统化系统所用代码应尽量标准化。在实际工作中,一般企业所用大部分编码都有国家或行业标准。4.2 系统实现在实际的编码过程中,本人遇到了很多问题,这里就对遇到的部分问题做一个简单的介绍。4.2.1 连接mysql数据库刚开始本人完全在msdos下管理mysql,这不但复杂,而且容易出错,后来改用mysqlcontrolcenter,最后改用phpmyadmin,因为本人认为它用起来最方便。4.2.2 sql语句的使用在实际的编码过程中,从头到尾都贯穿了sql语句。1.select语句在众多的sql命令中,select语句应该算是使用最频繁的。select语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。select语句的语法格式如下: select column1 , column2,etc from tablename where condition; ( 表示可选项) select语句中位于select关键词之后的列名用来决定那些列将作为查询结果返回。用户可以选择任意列,还可以使用通配符“*”来返回所有列。select语句中位于from关键词之后的表格名称用来决定将要进行查询操作的表格。select语句中的where可选从句用来规定哪些数据值或哪些行将被作为查询结果返回或显示。2.insert语句sql语言使用insert语句向数据库表格中插入或添加新的数据行。insert语句的使用格式如下: insert into table(a1,a2,a3) values (first_value,.last_value); 简单来说,当向数据库表格中添加新记录时,在关键词insert into后面输入所要添加的表格名称,然后在括号中列出将要添加新值的列的名称。最后,在关键词values的后面按照前面输入的列的顺序对应的输入所有要添加的记录值。3.update语句sql语言使用update语句更新或修改满足规定条件的现有记录。update语句的格式为: update tablename set columnname = newvalue , nextcolumn = newvalue2.where columnname operator value and|or column operator value;使用update语句时,关键一点就是要设定好用于进行判断的where条件从句。4.delete语句sql语言使用delete语句删除数据库表格中的行或记录。delete语句的格式为: delete from tablename where columnname operator value and|or colum

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论