摘要
在日常的工作和学习生活中,门禁和考勤是一项重要内容。门禁对于公司和学校的安全有着至关重要的作用,而出勤率直接影响着单位部门的风气问题。因为传统的门禁和考勤主要采用人工核查点名或者刷卡的方式,既降低了工作效率又有被他人冒名顶替的风险,所以传统的门禁考勤方式不适合于现代化的工作需求。而随着近几年科学技术的发展,通过指纹来解锁设备已经有了非常高的安全性。除此之外,相比于数字、字母等密码形式,指纹识别有着更高便捷性。因此被全球范围内大力推广,逐渐成为目前最常用的解锁方式之一。
指纹作为每个人身体特征的一部分,有着如同DNA一样的每个人的指纹都是唯一的特点。且人的指纹一生都不会有太大的变化。因为其沟沟壑壑凹凸不平的图案,使得它他虽然只占据人体的极小一部分,但其蕴含的信息量却非常大。正因为指纹的这个特性,因而采用它作为生活中解锁的凭证,有着得天独厚的优势。
本文设计了一个基于51单片机的智能门禁考勤系统。通过串口通信控制指纹模块来读取指纹图案,将指纹的特征信息记录在数据库内。解锁时指纹若匹配成功,便通过电机的运转来模拟门禁系统的开启。然后对打卡时间、缺勤次数、缺勤时间等进行记录。本设计有着稳定性高、运行速度快、成本低等特点,适合在大部分场景下使用。
关键词:单片机;指纹识别;考勤系统;智能门禁
1概述
1.1指纹识别技术的发展
正如不存在两片完全相同的雪花一样,世界上也没有两组一模一样的指纹。如同DNA检验一样,我们可以通过DNA的检测来确定一个人,因为每个人的DNA信息都是独一无二的,指纹也同样如此。
很长一段时间以来,指纹一直被用作识别个人身份的手段。众所周知,早期的埃及人和中国人曾用它们来识别罪犯和记录商业交易。在许多应用中,在指纹匹配过程中使用计算机是非常可取的。例如建立安全系统和警察工作,在后者中,计算机可以用来简化搜索大量指纹文件的任务。
指纹是手指上高低起伏的纹路,它们在人类还处于胚胎时就已经确定了其固定的形状。纹路的走向、弧度,沟壑间的高低差值,这些不同的特征值组合起来,就成了独一无二的指纹。也正是通过这些特征值与数据库中的记录相匹配,在设定好一定的误差范围内,特征值相符便代表指纹认证成功,即可确定这是我们预设的指纹数据。指纹识别的历史非常悠久,早在几千年前的古代就曾被当作过识别的工具。十九世纪末期,PC和光学扫描仪的诞生使得指纹扫描识别成为了显示。数字验证慢慢地被一些要求安全性高的机构所抛弃,采用了指纹识别。久而久之,人们看到了其独特的便捷性和创新型,指纹识别也被推向了其他很多领域并取得成功。如今,人们已经研究出了高精度的图像采集设备,使之更加成熟。配以可靠比对算法的开发,指纹识别技术有了更大的发展空间。
在全球范围内,仅有19例由于数据采集不全的原因导致无法认定。换言之,世界已出现的指纹数据中,没有任何一对有着很高的相似性,更别说相同了。因此在刑侦手段中,现场指纹的提取是重中之重。指纹就像是人体自带的身份证件,可以稳定、无误差的确定身份。大多数在工作中使用和看到生物识别技术的人都认为,识别是在使用指纹读取器时发生的。事实上,目前使用的指纹生物识别系统有两种截然不同的类型。
第一种被称为自动指纹识别系统(AFIS),主要用于XX和执法部门根据指纹图像识别个人。AFIS产品用于边境过境点、海关和警察的指纹识别系统,通过其独特的指纹识别邪恶的个人。
正在使用的第二种指纹生物识别系统,适当地称为非AFIS指纹系统,用于验证用户进入软件应用程序和产品的身份,并提供对建筑物或安全区域的访问。
非AFIS指纹生物识别系统不使用指纹图像;取而代之的是,这些系统捕捉指纹图像,然后利用指纹的独特特征(称为生物识别模板)将其数学转换为数字模型。
然后,可以在计算机中使用生物识别模板对个人进行身份验证。在这些非AFIS系统中,指纹图像不会存储,而是在创建生物特征模板后丢弃。然后,可以将按压在指纹读取器上的手指的生物识别模板与先前捕获的图像(注册模板)进行比较,以验证候选手指模板与注册模板匹配。这个简单的过程称为验证或认证。验证过程是一种统计方法,用于确保候选模板与存储的注册模板准确匹配。
1.2指纹识别原理
指纹被用作长时间识别个人的意思因为指纹是独一无二的在个人一生中不变。两个人甚至是同卵双胞胎具有相同指纹的可能性都要小于十亿分之一。
指纹是由沟壑分明高低起伏的皮脂条纹组合而成。理想的指纹就像一张黑白二值图像的图片。可是在日常生活中获取指纹时,由于人体汗液的分泌,加上外界环境的干扰,会对形成的指纹造成一定的影像。使其变得模糊,条纹走向出现断裂或者细小的改变。这些小的改变很可能对指纹识别产生很大的误差。另外,在使用指纹传感器时,尤其是光学指纹传感器,由于光照在手指上会形成漫反射,导致采集的指纹会比真实的指纹有所改变。且即便是同一个人的指纹,在不同环境下采集,也会有所不同。这些都是由于机器误差或环境改变导致的误差。使得生成的指纹数据含有或多或少的噪声。从而使得灰度图像不能直接用来识别。从而,人们设定了一套专用的指纹识别特征。
经常采用的两种特征如下文所述:
1)全局特征。理解起来比较简单,就是整体纹路的样式。如图1.1所示。在我们日常生活中,我们将其大致分为3个形状:弓型、箕型、螺旋型。这三种形状是所有纹路的基本形状,其余形状也都有这些基础形状演变而来。
图1.1指纹基本纹路图案
2)局部特征。最常见的局部特征主要是包括一些不同的点。例如就像是一条曲线的端点,和曲线相交分叉位置的交点。这些特征在我们分析时有着非常重要的作用。也正与由于这一系列的特征,使得没有两个纹路是相同的。
指纹识别通常使用如图1.2中的小桥、三角点、分叉点、端点和环等特征。
图1.2指纹图像
人们根据大量的数据往复筛选验证,最终确立了大概150种的细节特点。但一般来说,我们主要使用分叉点和断点。我们可以理解为将指纹图案放置在一个像素点很多的格子纸上。将有纹路的印记部分和没有纹路的空白部分按照阴阳绘画的方式,如果该像素点有纹路出现则将该像素点记为1,否则记为0。如此一来,在一定误差的范围内,将指纹旋转至正放的形态,只需要与已采集指纹的特征信息进行比对即可。匹配过程,无论是手动还是自动,都是基于指纹细节点的识别和匹配。这些是不规则的,例如脊端和接缝,其类型和位置对于每个人都是独一无二的。在大多数现有的指纹匹配系统中,编码步骤从识别给定指纹中存在的所有细节点开始,其方法可能不是完全自动的。而网格上的E-E是一个相对叠加的方向。然后,匹配由一个算法处理,该算法确定两个指纹中的细节位置和方向之间的关联度。
1.3系统设计目的及意义
随着信息技术的不断发展,智能二字似乎成为了当今时代的标配。几乎在任何领域都有了计算机的介入而无需很多的人力参与。智能门锁作为智能监控中的一员,避免了传统门锁出现的易盗取、易复制等问题,具有保密性强、应用需求度高、成本低廉、使用便捷等特点,给人们的生活带来了极大的安全保障。由于密码容易泄漏、门卡容易丢失等缺陷,基于指纹识别的智能门禁考勤系统安全性较高。根据皮肤印痕对此人进行法医鉴定是必要的。
生物识别是一门通过生理特征(指纹、手部几何结构和面部)或行为特征(笔迹、语音、签名、步态)来验证和确定个人身份的科学。生物识别技术是一种快速发展的技术,已广泛应用于刑事识别和监狱安全等法医学领域,并有可能被广泛应用于银行安全、物理访问控制、信息系统安全、海关和移民、国家身份证系统、选民和司机登记等非常广泛的民用应用领域。指纹是最可靠的人体识别指标。Ross等人认为,仅使用一种表示形式或仅使用一种匹配算法,很难以相关方式提高系统的精度。
基于真皮纹路设计的科学特性:独特性(个性)、固定性(稳定性)和不可更改性。
指纹领域的研究人员根据在这一领域开展的研究和实际经验发现了皮肤纹路的独特性,他们得出了一个无可争议的结论,即不可能遇到两个指纹设计完全相同的人,每个手指都有独特的形态。
通过发育人体,由于年龄和某些疾病,会发生一些变化,但真皮嵴模式的形式保持不变,这表明了指纹的纹路不易改变。
进行的实验表明,每隔很长一段时间从一个人身上提取指纹并相互比较,它们的结构似乎保持不变,只是大小不同。
有些情况下,烧伤和深切口会影响真皮,因此,愈合后,真皮嵴图案不再可见,留下疤痕,这是指纹识别中非常重要的特征,考虑到它们的形状及其在图案形态中所占的位置。
在罗马尼亚,验尸官尼古拉·米诺维奇(Nicolae Minovici)在1896年进行了第一次手指镜检查研究,指纹记录和分类系统在1914年取代了人体测量。自1923年以来,安德烈·伊奥尼斯库博士结合VUCETICH、OLORITZ和DAEE的方法建立了指纹分类系统。
随着科学技术的不断发展和提升,锁的形态、样式都已经发生了多样的变化,结合嵌入式技术的电子锁正逐渐成为主流。目前看来,指纹解锁取代机械锁几乎是一个必然的发展趋势。对于密码开锁的方式,密码遗忘、密码泄露都是常见的问题,针对于密码泄露问题,虽然目前市场上的电子锁普遍可以使用虚位密码来进行开锁,但是本质上只是降低了密码泄漏的风险,只需要记住一组完整的虚位密码,依旧能够进行开锁。相较于这种开锁方式,通过指纹识别技术进行开锁的方式,具备开锁人员唯一性的特点,有效解决了钥匙管理上的问题。虽然在发展前期,在技术不成熟的情况下,也出现过可以使用假指模开锁、照片开锁等不安全的情况。但是,目前已经对该方法进行了优化,可以将错误率降低到0.001%以下。
1.4工作流程
以STC89C52单片机作为主控芯片,当按下识别键后,单片机发送开启识别的指令,指纹模块开始记录指纹数据。若此时为添加指纹模式,则将改数据加入到数据库中,若此时为解锁模式,则将该指纹数据与数据库中的指纹信息做比对,查看此数据是否有相应的权限。如果通过验证,将传回真值给单片机,此时单片机发送控制电机旋转的指令来模拟门禁的开启。
考虑到可能是由于外界因素引起的指纹识别失败。如果识别失败,将可以继续进行指纹识别,直到认证成功门禁开启。或者使用者按下退出按键,来退出当前的模式。系统总体框图如下图所示。
2硬件介绍和设计
2.1单片机及最小系统
主控制器是智能门禁考勤系统的核心。STC89C52是51系列单片机的一种,采用STC89C52作为主控制器。STC89C52具有8个CPU和8K ISP Flash,可以为嵌入式控制系统提供更有效的解决方案。此单片机的I/O口可以与各模块相连接,对模块进行指令的传递。
STC89C52RC引脚如下图2-1所示。
图2.1 STC89C52引脚图
主要接口介绍:
EA引脚是一个输入信号,用户通过它选择是否使用内部ROM存储器或整个程序是否存储在外部。P3端口还用于执行某些特殊功能:
P3.1-TxD/时钟-异步串行端口传输或时钟输出p/
同步数据;
P3.2-INT0-中断输入0或控制位
o分光器/计数器0;
P3.3-INT1-中断输入1或控制位
计时器/计数器;
P3.4-T0-定时器/计数器0的外部时钟输入;
P3.5-T1-定时器/计数器1的外部时钟输入;
P3.6-WR-外部数据存储器中的写入信号;
P3.7-RD-读取外部数据存储器中的信号。
(5V)由引脚40制成,GND为引脚20;内部振荡器的晶体是连接至引脚18和19。最后,引脚9 RST/VPD是复位输入。
P3口的定义如表2-1所示。
2.2门禁模块
本设计的门禁部分仿真采用通过电机的运转来模拟门禁的工作。电机运转代表门禁正常开启,不运转则代表门禁不工作。如图2.2所示。
图2.2电机模块
在验证完指纹之后,采集的指纹如果与数据库中的指纹相匹配,则绿色LED等会闪烁,用来表示指纹识别成功,继而单片机像电机模块发送运转的指令。如果指纹识别不符合,则红色LED等会闪烁亮起,表示指纹识别失败。如图2.3所示。
图2.3 LED灯
2.3指纹与按键控制电路
指纹模块主要是DSP芯片模型AS606,加上外部芯片。芯片主要“照片”指纹生成指纹特征。如下图所示,这是一个指纹模板,输入指纹特征和指纹模板生成。如图2.4所示。具体工作过程是:扫描指纹,生成特性和合成模板。
图2.4指纹模版
由于在Proteus软件中没有相应的指纹识别的仿真模块,但由于指纹识别模块的是否成功识别,其基本工作原理可以简单的理解为,如果识别成功,则向单片机发送真值,如果识别不成功,则像单片机发送假值。例如1和0。在单片机接收到这一数据之后,根据是否成功进而控制电机是否工作。因此我采用了按键控制来模拟指纹识别是否成功。当代表指纹识别成功的按键按下并松开时,会向单片机传送真的值,反之传送假的值。此外,为防止由于指纹识别机器的损坏而导致无法正常识别指纹,特地设置了一个内部解锁的按钮,供损坏情况出现时使用。且在成功解锁后蜂鸣器会发出滴滴声。如图2.5所示。
图2.6按键闭合及断开前后的电压
独立式按键各键相独立,每个按键各接入一根输入线,只要检测输入线的电平就可以识别按键状态。这种方法电路配置灵活,软件结构简单,但每个按键需占用一根输入口。由于本设计中的按键较少,故采用独立按键的方式。
3系统软件的设计
3.1系统程序工作分析
主要的程序开发就是使用Keil软件进行C语言程序的编译。将生成的.hex文件烧录到单片机中。在程序的编写过程中,主要就是对指纹解锁方面的程序进行编写并反复的调试。其次就是对考勤方面的逻辑进行构思并实现。例如缺勤时间、打卡时间等关键信息进行记录。
中断是指暂停主程序、将控制权传递给外部源并执行其任务的事件。然后,它将控制传递给它停止的主程序。8051有5个中断信号,即、、、TF1、。每个中断可以通过设置寄存器的位来启用或禁用,整个中断系统可以通过清除同一寄存器的位来禁用。
中断启用寄存器负责启用和禁用中断。EA寄存器设置为1用于启用中断,设置为0用于禁用中断。
3.2主程序流程图
根据分析后,制定如下图的程序流程图。主程序设计流程如图3.1所示。
系统上电开启之后,首先是对各模块进行初始化。然后不断的扫描是否有按键被按下。当按键被按下时,进行对应的键值确认,来确认使用者按下的按键。当按键B按下时,系统进入指纹对比模块,此时数据库中已经含有指纹数据,可以直接与其中的数据进行对比。如果有液晶的辅助,还会再液晶中显示当前的操作提示。在对比完之后按任意键即可返回主页面。当按键A被按下时,页面会来到输入密码的界面,输入完密码后按下#键结束。当密码输入错误是会提示重新输入,若密码输入正确则会进入管理员的管理页面。在此页面内,管理员可以进行添加删除指纹、对密码进行修改等操作。
图3.1主程序流程图
3.2.1键盘管理程序设计流程
键盘模块的工作流程图如图3.2所示:
在独立按键的编程过程中,一开始我没有注意到消抖的操作,而直接进行按键识别,从而在仿真调试的过程中引起了导致误识别的结果。后来查阅资料才知道,在编写按键程序的过程中有一部消除抖动的操作。过程为检测是否有按键被按下,延迟大概10ms时间,再次检测是否被按下。如此一来便消除了人体按键时带来的抖动。
图3.2键盘程序流程图
部分按键程序如下:
if(K1_zhiwen==0)
{
Delay1ms(10);
if(K1_zhiwen==0)
{
led_Green=0;
lock_jdq=0;
bell=0;
Delay1ms(20);
led_Green=1;
bell=1;
Delay1ms(20);
led_Green=0;
bell=0;
lock_jdq=1;
Delay1ms(20);
led_Green=1;
bell=1;
Delay1ms(20);
lock_jdq=1;
while(!K1_zhiwen);
}
}
其中第一句的if(K1_zhiwen==0)就是第一次检测键值,假设当前按下K1,被系统检测到之后,不会立马进行相应按键下的操作,而是通过Delay1ms(10);语句,进行一个小的延时操作,然后再次进行if(K1_zhiwen==0)语句的检测,如果第二次检测依然被检测到,此时才会执行下面的程序体。
3.2.2指纹模块的通信程序设计流程
串口通信数据发送、接收流程图如图3.3。
图3.3串口通信数据发送、接收流程图
3.3 Keil编程
Keil uVision软件将项目管理、运行环境、构建的工具、代码编辑和程序调试结合在一起,使之成为一个系统的整体。因此Keil软件非常易于使用,可加速嵌入式软件开发。除此之外,它支持多个屏幕,并允许在视觉表面的任何位置创建单独的窗口布局。uVision调试器提供了一个单一的环境,可以在其中测试、验证和优化应用程序代码。调试器包括简单和复杂断点、监视窗口和执行控制等传统功能,并提供对设备外设的全面可见性。
使用Keil软件的主要工作流程为:
1、uVision启动后,在主菜单栏中选择Project>>New uVision Project。如果项目已经存在,首先通过选择Project>>Close Project关闭项目。
2、新建文件并将名字命名为titi.c,然后在任务组中将titi.c文件加入到项目组中。
3、点击下图中箭头所指的图标,弹出如下对话框,在Xtal后输入9600。[12]
图3.4设置波特率
4、点击Output标签,在Create HEX前的方框内勾选。
uVision拥有许多用于评估应用软件状态和性能的功能在Cortex中运行。以下是可用于查看和控制您的实用功能的列表应用程序。它们只能在调试模式下访问。
3.4可扩展性创新
当前的门禁系统已经可以准确的实现上述功能,且错误率很低。为了让本设计具有可扩展性和创新性,可以为设备增加外部接口,为使用者提供二次开发的环境。
1、具备网络接口,通过TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)协议与国家安保部门的上位机进行通信。在添加了摄像头后,可以通过面部识别来监测来往的人员。由于国家嫌犯数据信息大多数都已经上网公开,在不占用资源的情况下可以实时将采集到的信息与嫌犯数据比对,自动筛选出可疑人员。
2、数据自动上传云端,该功能可以保证在断电情况下,数据不会丢失。由于运行内存的断电丢失的特性,导致了在断电的时候数据可能会出现丢失。因此当设备内部数据每次进行更新的时候,设备都会向云端自动添加一份新数据,以保证数据的完整。
4仿真测试
一般在进行制作硬件之前,首先会在计算机的仿真平台上搭建硬件电路。查看在计算机的虚拟硬件环境下是否可以正常运行。这就是仿真。这可以让我们省去了反复焊电路板调试的时间,便于修改。在仿真上成功运行之后,再进行真实硬件的焊接调试,可以事半功倍。Proteus就是我选择的仿真平台。
4.1 Proteus软件介绍
Proteus的功能非常强大,适用于所有单片机的仿真工作。如同我们在实际生活中购买焊接电路板一样。该软件可以理解为将实际生活中硬件制作变为了在在软件的虚拟环境下进行制作。我们直接选择需要的元器件,然后连接线路,选择相应的程序进行烧录。一个具备完整功能的仿真就构建成功了。
4.2搭建仿真电路
图4.1选择并放置元器件
打开软件之后,点击左上角文件,新建工程,在选择了工程的位置等一系列参数之后,便会出现一张空白的电路图纸。将我们需要的一些电阻、电容、单片机、LED灯元器件放置在图纸上。如果没有找到需要的元器件,可以点击最下方的From Libraries。这是所有的元器件库。如图4.1所示。
在元器件库界面,可以按照类别进行寻找元器件,也可以直接搜索名字。如图4.2所示,直接搜索at89c52,右侧界面便会出现相应的单片机,点击确定就可以将其放置在电路图纸上。
图4.2搜索元器件
在放置好需要的元器件后,对其进行正确的连线。如图4.3所示。
图4.3连线
在连接好线路之后,双击放置的单片机,在元件编辑页面选择Program File,将16进制文件也就是生成的hex文件烧录到单片机中。这一步如同我们使用烧录软件,对上电的单片机芯片进行烧录的原理一样。如图4.4所示。
图4.4添加hex文件
在做好以上工作之后,便可运行该仿真。
4.3运行仿真
点击图4.5中菜单栏中的调试,再选择运行仿真。该系统便可正常运行。
在仿真运行过程中,如果指纹正确的按键被按下,可以看到LED灯绿灯亮起,电机接收到开锁信号后转动开锁,蜂鸣器发出响声提示开锁成功。
如果接收到的指纹信号不正确,可以看到LED灯红灯闪烁,提示指纹验证不成功,并且电机不会有任何反应。
为了防止外部开锁出现机器损坏或无法识别等原因,本系统还设计了一个內部开锁装置,当内部开锁按键被按下后,可以清楚看到右侧电机进行转动,LED灯闪烁绿光进行提示,开关显现打开状态。
图4.7电机运转和LED灯闪烁
除了以上三种不同的情况,在设计过程中还考虑到如果这个系统出现卡顿或者死机等不可控的因素,内部管理人员可以通过重启(Reset)本系统来使系统恢复正常,重新进入运行状态。
5结论
本文设计开发了一款智能门禁考勤系统。通过串口通信控制指纹模块来读取指纹图案,将指纹的特征信息记录在数据库内。解锁时指纹若匹配成功,便通过电机的运转来模拟门禁系统的开启。
在程序中编写的是使用真正的指纹识别模块,通过该模块将采集到的指纹与已经录入的指纹进行比对。通过继电器、LED灯等原件来实现识别成功后的一系列工作。
在仿真中由于在Proteus软件中没有相应的指纹识别的仿真模块,但由于指纹识别模块的是否成功识别,其基本工作原理可以简单的理解为,如果识别成功,则向单片机发送真值,如果识别不成功,则像单片机发送假值。例如1和0。在单片机接收到这一数据之后,根据是否成功进而控制电机是否工作。
指纹识别模块的功能和应用领域还有很多,本设计只完成了比较基础的部分,还有很多部分有待提高。
参考文献
[1]袁进.智能门锁指纹识别方法设计[J].电子世界,2021(21):148-149.DOI:10.19353/j.cnki.dzsj.2021.21.061.
[2]TIAN Jie,CHEN Xinjian,et al.Recent progress in fingerprint recognition.Progress in Natural Science.2006,vol.03:231-240.
[3]毛巨勇.指纹识别还“香”吗?[J].中国安防,2021(09):29-33.
[4]赵晓玲.单片机在指纹保险柜中的应用[J].微计算机信息.2006,20(20):134-136.
[5]刘小华,王燕生.指纹识别技术的发展[J].光学技术.1998,23(04):78-80.
[6]郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009:60-400.
[7]张毅刚.单片机原理与应用[M].北京:高等教育出版社,2006:56-234.
[8]赵建领.51单片机开发与应用技术详解[M].北京:电子工业出版社,2009:75-124.
[9]陈光新.自动指纹识别技术及其应用[J].江苏船舶.2004,24(03):32-35.
[10]Kazuharu Yamato,et al.Problems of Fingerprint Lookup Devices and How to Resolve Them.Gazo Denshi Gakkaishi.1995,vol.24:382-391.
[11]郑春来,韩团军,李鑫.编译软件Keil在单片机教学中的应用[J].高教论坛.2009,15(12):96-97.
[12]Prata.S.C Primer Plus中文版[M].北京:人民邮电出版社,2005:74-99.
[13]吴凌燕.基于Proteus的单片机仿真设计[J].仪表技术.2011,17(07):31-37.
[14]唐钱辉,丁明亮.Proteus ISIS和Keil在单片机教学中的应用[J].重庆电力高等专科学校学报.2006,8(04):46-49.
[15]林三宝.高效焊接[M].北京:机械工业出版社,2012:45-78.
[16]张翔宇.基于指纹识别的认证方法研究[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2021.002591.
致谢
在这次的毕业设计作品过程中,让我学到很多。看是简单的东西,其中还是有小细节需要注意,不能马虎。经历了这些时间,我的毕业论文终于成功的结束。在这段时间里,我遇到了很多自己无法短时间内解决的问题。是那些热心的同学们耐心的帮我解答,教我如何去做,为我省下了很多时间。特别地,我要感谢我的导师,为他的无私指导和帮助表示感谢。
1、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“文章版权申述”(推荐),也可以打举报电话:18735597641(电话支持时间:9:00-18:30)。
2、网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
3、本站所有内容均由合作方或网友投稿,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务。
原创文章,作者:1158,如若转载,请注明出处:https://www.447766.cn/chachong/202916.html,