Labview软件加密技术
LabVIEW中的网络通信和远程数据访问

LabVIEW中的网络通信和远程数据访问近年来,计算机网络的发展催生了不少基于网络通信和远程数据访问的应用。
而对于工程师和科学家们来说,如何利用网络通信技术在实验室中实现远程数据访问成为了一个重要的课题。
在这方面,LabVIEW(Laboratory Virtual Instrument Engineering Workbench)作为一种流行的工程软件平台,为我们提供了丰富的解决方案。
一、LabVIEW中的网络通信技术在LabVIEW中,网络通信技术主要通过TCP/IP协议实现。
通过TCP/IP协议,LabVIEW可以与远程设备或其他运行LabVIEW的主机进行通信。
这使得实验室内的测量仪器和设备可以通过网络进行远程控制和数据传输。
TCP/IP协议是一种面向连接的协议,它提供了可靠的数据传输机制。
在LabVIEW中,我们可以使用TCP/IP VIs(Virtual Instruments)来创建TCP/IP连接,并使用套接字(Socket)进行数据传输。
通过这种方式,LabVIEW程序可以通过网络连接到其他设备或程序,并实时接收或发送数据。
二、远程数据访问与共享远程数据访问是指通过网络连接到远程设备或主机,实时读取或控制其数据。
而LabVIEW中的网络通信技术为远程数据访问提供了强大的支持。
通过LabVIEW的远程数据模块,我们可以轻松地建立远程连接,并实现对远程设备的数据读取和控制。
这使得我们可以不受地域限制,通过网络远程访问实验室中的仪器设备,并获取实时的数据信息。
除了远程数据访问,LabVIEW还支持数据的共享。
通过网络通信技术,我们可以将实验室中的数据实时共享给其他LabVIEW程序或远程用户。
这对于多人协同实验或数据分析非常有帮助。
三、网络通信安全性在网络通信中,安全性是一个不可忽视的重要问题。
尤其是在实验室中,保护实验数据的安全至关重要。
LabVIEW在网络通信中提供了一些安全机制,以确保数据的机密性和完整性。
利用LabVIEW进行网络安全和数据加密

利用LabVIEW进行网络安全和数据加密LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一款图形化编程语言和开发环境,主要用于数据采集、控制和测试分析等领域。
在当今信息化时代,网络安全和数据加密是非常重要的议题。
本文将介绍如何利用LabVIEW来进行网络安全和数据加密的应用。
一、LabVIEW在网络安全中的应用网络安全是保护计算机系统和网络不受未经授权的访问、攻击、破坏等行为的一种技术手段。
LabVIEW可以通过以下几个方面来提高网络的安全性。
1. 基于LabVIEW的入侵检测系统利用LabVIEW的图形化编程能力和强大的数据采集、分析能力,可以设计并构建基于主机的入侵检测系统(Host-based Intrusion Detection System,HIDS)。
HIDS可以监控计算机系统中的各种活动,如系统日志、文件访问、网络连接等,以检测可能的入侵行为,并及时采取相应的措施。
LabVIEW的灵活性和可扩展性使得构建定制化的HIDS成为可能。
2. 网络流量分析与监控网络流量分析与监控是识别和监控网络传输信息,用以发现异常行为或潜在威胁的一种手段。
使用LabVIEW可以实时监控网络流量,并通过数据分析算法进行流量分析,以便检测和预防网络攻击、数据泄漏等安全威胁。
3. 协议安全性验证网络通信中使用的协议是进行数据交换和传输的基础。
LabVIEW 可以通过模拟网络环境,对协议进行测试和验证,以确保其安全性和稳定性。
实时监测网络通信数据,并进行协议数据的分析,可以帮助发现潜在的安全漏洞,并对协议进行改进和优化。
二、LabVIEW在数据加密中的应用数据加密是通过使用特定算法和密钥,将原始数据转换为密文的过程,以确保数据传输的机密性和安全性。
LabVIEW可以应用于以下几个方面来保护数据的安全。
1. 数据加密算法的实现利用LabVIEW的编程能力,可以实现各种数据加密算法,如对称加密算法(如DES、AES)、非对称加密算法(如RSA)以及哈希算法(如MD5、SHA-1)。
基于LabVIEW的用户权限管理系统

基于LabVIEW的用户权限管理系统随着信息技术的发展与应用,基于LabVIEW的用户权限管理系统逐渐成为各种行业和企事业单位不可或缺的一环。
本文将就该系统的基本原理、功能特点以及应用领域进行探讨。
一、引言随着信息化时代的到来,许多企业、学校和机构拥有大量的信息资料和数据,需要一个高效可靠的权限管理系统来维护数据的安全性和保密性,同时合理分配用户权限。
而基于LabVIEW的用户权限管理系统的出现,为这一需求提供了理想的解决方案。
二、基本原理LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程语言与开发环境,以图形化的方式连接各种硬件设备。
基于此,用户权限管理系统利用LabVIEW作为开发平台,通过图形化编程实现用户管理系统的各项功能。
用户权限管理系统的基本原理是通过建立用户账号数据库来存储和管理用户的相关信息,包括用户账号、密码、权限级别等。
通过登录系统,用户可以根据权限级别获得不同的操作权限,从而实现对系统资源的访问控制。
三、功能特点1. 用户注册与登录:用户可以通过注册账号和登录系统来使用相应的功能。
系统会对用户输入的账号及密码进行验证,并根据验证结果分配相应的权限。
2. 用户权限管理:系统管理员可以根据需求创建、修改或删除用户账号,并设定不同的权限级别。
权限级别可以是管理员、普通用户等,不同级别用户可以进行不同的操作。
3. 资源访问控制:系统会根据用户的权限级别对系统资源进行访问控制,确保只有拥有相应权限的用户可以访问和操作特定资源。
这样可以有效避免非授权用户的非法操作。
4. 用户活动记录:系统会记录用户的活动情况,包括登录记录、操作记录等。
这不仅可以作为安全管理的一部分,还可以提供对用户行为的审计和追溯功能。
四、应用领域1. 企事业单位:各类企业和机构可以利用基于LabVIEW的用户权限管理系统来对内部员工进行权限管控,确保各级人员只能进行其职责范围内的操作,提高工作效率和数据的安全性。
LabView 8.5下载、安装、破解及序列号、激活码生成方法

Posted by Coofish 2010昨天在狗狗里面搜索了LabView软件,结果给我推荐的是LabView 8.5版本,然后我即下载了。
然后按照下面步骤安装LabView 8.5:1、运行labview_85_ch.exe文件,进行自解压和安装,在解压由用户确定解压后的暂存文件存放目录,不是安装的目标文件路径;2、在安装过程中会要求你选择是安装试行版本还是正式版本,选择正式版本,这时要求输入产品序列,你可以填写F44G44444作为序列号,进入正式安装模块硬件驱动环节;3、安装完成后,会在目标路径和C:\Program Files\NationalInstruments\Shared\License Manager\Licenses产生试运行版本的许可证文件(如果你安装在D盘,只需改变最前面的盘符,即是许可证文件路径);4、运行LabView v8.5 KeyGen.exe文件(文章最后附件提供,你可以免费下载),你需要依次输入:1,回车;2,回车;3,回车...A,回车。
这样生成了11个许可证文件,再把这十个文件复制到C:\Program Files\NationalInstruments\Shared\License Manager\Licenses,覆盖原有的文件。
1.基础版开发系统2.完整版开发系统3.完整版开发系统MathSscript4.专业版开发系统5.专业版开发系统MathSscript6.调试版开发系统7.调试版开发系统MathSscript8.学生版9.学生版MathSscript0.远程面板A.工具包5、完成步骤4,再运行Labview程序,就会看到不会出现激活产品和30天的试用期文字了,免费的LabView 8.5即可使用。
附:LABVIEW 8.5激活码产生工具URL:file:///D:/My%20Documents/Downloads/LabView%208.5%E4%B8%8B%E8%BD%BD%E3%80 %81%E5%AE%89%E8%A3%85%E3%80%81%E7%A0%B4%E8%A7%A3%E5%8F%8A%E5 %BA%8F%E5%88%97%E5%8F%B7%E3%80%81%E6%BF%80%E6%B4%BB%E7%A0%81%E7%94%9F%E6%88%90%E6%96%B9%E6%B3%95%20-%20%E4%BA%92%E5%B8%AE %E5%90%88%E4%BD%9C%20-%20%E9%85%B7%E9%B1%BC%20-%20Coofish's%20Blog. htm。
labview功能介绍

LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NATIONAL INSTRUMENTS,简称NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。
LabVIEW是一种图形化编程语言,又称G语言。
其编写的程序称为虚拟仪器VI(Virtual Instrument),以.VI后缀。
LabVIEW模板:◆工具模板(Tools Palette)◆控件模板(Controls Palette)◆功能模板(Functions Palette)VI的组成:◆前面板(Panel)控制(Control),指示(Indicator),修饰(Decoration)。
将前面板中的控制和指示统称为前面板对象或控件。
◆框图程序(Diagram Programme)节点(Node),数据连线(Wire)节点有:功能函数(Functions),结构(Structures),代码接口节点(CIN),子VI(SubVI)。
数据端口有:控制端口和指示端口,节点端口。
LabVIEW编程又称为“数据流编程”。
◆图标/连接端口(Icon/Terminal)把VI作为一个SubVI在其它VI中调用。
常用术语:SubVI 子VI Chart 实时趋势图LLBs VI库Graph 事后记录图Objects 对象Functions 功能Panel 前面板Structures 结构Block Diagram 框图程序Cluster 簇Control 控制Bundle 打包Indicator 指示Unbundle 解包Control和Indicator 前面板对象或控件RefNum 枚举,标志号Palette 模板Local Variable 本地变量Functions Palette 功能模板Global Variable 全局变量Controls Palette 控件模板Constant 常量Tools Palette 工具模板Disable Indexing 无索引Terminal 端口Enable Indexing 有索引Wires 数据连线Read Local 本地读Bad Wires 错误数据连线Write Local 本地写Node 节点Read Global 全局读Attribute Node Write Global 全局写Property Node 属性节点Legend 图例Frame 框架Cursor 光标Channel 框架通道Bounds 边界范围Index 索引Data Acqisition(DAQ) 数据采集Shift Register 移位寄存器Label 标签运行VI1.运行VI(Run)2.连续运行VI(Run Continuously)3.停止运行VI(Abort Execution)4.暂停运行VI(Pause)调试VI1.单步执行单步(入),单步(跳),单步(出)2.设置端点3.设置探针4.显示数据流动画数据类型:基本数据类型:数字型(Numeric),布尔型(Boolean),字符串型(String)构造数据类型:数组(Array),簇(Cluster)其它数据类型:枚举(RefNum),空类型数组(Array):索引号从0开始一维数组(1D,列或向量),二维数组(2D,矩阵)组成:数据类型,数据索引(Index),数据创建:1.控制模板->Array & Cluster子模板2.根据需要将相应数据类型的前面板对象放入数组框架中使用:1.Array Size返回输入数组的长度2.Index Array返回输入数组由输入索引指定的元素3.Replace Array Element替换输入数组的一个元素4.Array Subset从输入数组取出指定的元素5.Reshape Array改变输入数组的维数6.Initialize Array初始化数组7.Build Array建立一个新数组8.Rotate 1D Array将输入数组的最后n个元素移至数组的最前面9.Sort 1D Array将数组按升序排列10.Reverse 1D Array将输入的1D数组前后颠倒,输入数组可以是任何类型的数组11.Transpose 2D Array转置输入的二维数组,也叫矩阵转置12.Search 1D Array搜索指定元素在一维数组中的位置13.Array Max & Min返回输入数组中的最大值和最小值14.Split 1D Array将输入的一维数组在指定的元素处截断,分成2个一维数组15.Interpolate 1D Array线性插值16.Threshold 1D Array一维数组阀值,是线性插值的逆过程17.Interleave 1D Arrays将从输入端口输入的一维数组插入到输出的一维数组中18.Decimate 1D Array将输入的一维数组分成数个一维数组,是Interleave 1D Arrays的逆过程簇(Cluster):类似于Pascal语言的record和C语言的struct组成:不同的数据类型创建:控制面板—>Array & Cluster子面板;向框架添加所需的元素;根据需要更改簇和簇中元素的名称使用:1.Unbundle解包。
使用LabVIEW进行数据通信实现可靠的数据传输和网络通信

使用LabVIEW进行数据通信实现可靠的数据传输和网络通信LabVIEW是一款强大的工程软件,可以用于实现数据通信以及网络通信。
在大数据时代,准确、可靠的数据传输和网络通信对于各行各业都至关重要。
本文将介绍如何使用LabVIEW来实现可靠的数据传输和网络通信。
一、LabVIEW简介LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化的开发环境,由美国国家仪器公司(National Instruments)开发。
它允许用户通过将函数和连接它们的线连接在一起创建程序。
这种可视化编程的方法使得非专业编程背景的人员也可以轻松地进行软件开发。
LabVIEW广泛应用于控制系统、数据采集、实验室仪器控制和数据分析等领域。
二、数据传输1. 数据读取与写入LabVIEW提供了丰富的函数库和工具箱,可以轻松地进行数据的读取和写入操作。
通过使用合适的模块和函数,我们可以连接各种传感器、设备或者数据库来实现数据的采集和存储。
2. 数据处理与分析LabVIEW提供了强大的数据处理和分析功能。
用户可以使用图形化编程的方式,通过拖拽和连接不同的函数块来实现数据的处理和分析。
这使得数据的处理变得更加直观、高效和可靠。
3. 数据传输协议LabVIEW支持多种常用的数据传输协议,包括TCP/IP、UDP、HTTP等。
用户可以根据具体需求选择合适的协议来进行数据传输。
同时,LabVIEW还支持自定义的数据传输协议,可以根据实际情况进行定制。
三、网络通信1. 建立网络连接LabVIEW提供了丰富的网络通信工具,可以方便地建立网络连接。
用户可以使用TCP/IP或者UDP协议来建立客户端和服务器之间的通信。
LabVIEW还支持Web服务,可以通过Web浏览器与LabVIEW程序进行交互。
2. 实时监控与控制LabVIEW可以实时监控和控制网络上的各种设备。
用户可以通过连接传感器和执行器等设备,实时地获取数据并进行控制。
LabVIEW中的面向对象编程技术

LabVIEW中的面向对象编程技术在LabVIEW中的面向对象编程技术LabVIEW是一种基于图形化编程的工程软件。
它以图形化的方法创建程序,主要用于测试、测量和控制应用。
除了其强大的数据采集和处理能力外,LabVIEW还提供了面向对象编程(Object-Oriented Programming,简称OOP)技术,使得开发人员能够更加高效和灵活地设计和实现复杂的应用。
本文将介绍LabVIEW中的面向对象编程技术及其应用。
一、面向对象编程技术简介面向对象编程是一种软件开发方法,它以对象为基本单位,通过封装、继承和多态等特性,将程序的数据和对数据的操作进行有机的结合,使得程序的设计更加模块化、可复用和易于维护。
在LabVIEW中,面向对象编程技术被应用于虚拟仪器对象(Virtual Instrument Object,简称VI)的设计和开发。
VI是LabVIEW 程序的基本单位,通过面向对象的思想,可以将VI的功能、数据和界面封装成一个独立的对象,从而实现对其进行灵活的组合和重用。
二、LabVIEW中的面向对象编程1. 类和对象在LabVIEW中,类是面向对象编程的基本概念。
类定义了对象的属性和方法。
对象是类的实例,每个对象都有自己的属性值和方法。
2. 封装封装是面向对象编程的核心思想之一,它可以隐藏对象的实现细节,使得对象的使用者只需关注对象的接口。
在LabVIEW中,封装可以通过访问控制功能来实现。
例如,可以将某些属性设置为只读或只写,以限制对属性的访问权限。
此外,还可以使用属性节点来对属性进行封装,只允许通过特定方法对属性进行访问。
3. 继承继承是面向对象编程的另一个核心概念,它可以通过扩展已有的类来创建新的类,从而实现代码的重用和扩展。
在LabVIEW中,可以通过创建派生类来实现继承。
派生类继承了基类的属性和方法,并可以在此基础上进行扩展和修改。
通过继承,可以实现对现有功能的改进和功能的复用。
LabVIEW中的数据压缩和加密技术

LabVIEW中的数据压缩和加密技术LabVIEW(Laboratory Virtual Instrumentation Engineering Workbench)是一种非常强大的工程平台,用于数据采集、处理和控制。
在实际应用中,数据的安全性和传输效率是不可忽视的问题。
因此,在LabVIEW中应用数据压缩和加密技术可以有效提高数据的传输效率和保护数据的安全性。
一、数据压缩技术数据压缩是一种通过消除重复数据和冗余信息来减少数据存储和传输空间的技术。
在LabVIEW中,可以使用多种数据压缩技术,如有损压缩和无损压缩。
1. 有损压缩有损压缩主要通过牺牲一部分数据的精度来实现数据量的压缩。
在某些实验或应用中,数据的精度要求并不高,因此可以选择有损压缩算法来达到较高的压缩比。
LabVIEW中常用的有损压缩算法包括离散余弦变换(DCT)和小波变换。
离散余弦变换是一种将波形信号从时域转换到频域的技术,具有较好的信号重建能力。
通过对信号进行DCT压缩,可以在保证较高的信号还原精度的同时,大幅减小数据量。
小波变换是另一种常用的有损压缩算法,它对于非平稳信号具有较好的时频分辨特性。
在LabVIEW中,可以通过内置的小波工具包来实现信号的小波压缩。
2. 无损压缩无损压缩是一种通过压缩算法,将数据压缩为更小的存储空间,同时保持数据的无失真特性。
在某些实验和应用中,数据的准确性非常重要,因此需要选择无损压缩算法。
在LabVIEW中,可以使用LZ77和LZ78等无损压缩算法。
这些算法通过查找重复的数据块,将其用较短的标记来代替,从而实现数据的压缩。
二、数据加密技术数据加密是一种将明文转化为密文的技术,在数据传输和存储过程中,可以保护数据不被未授权的访问和窃取。
在LabVIEW中,可以应用各种类型的加密算法来保护数据的安全。
1. 对称加密对称加密是一种使用相同密钥进行加密和解密的加密技术。
在LabVIEW中,可以使用DES、AES等对称加密算法来实现数据的保护。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深入浅出软件加密技术
引言—献给刚步入加密领域的工程师
自己辛辛苦苦做出来的软件轻轻松松被人盗版了,就像叶圣陶先生的小说《多了三五斗》中丰收了却高兴不起来的农民一样——闭上眼睛就是天黑。
所以,加密是一个软件工程师保护自己辛勤劳动成果的必备技术(开源软件和有其它盈利模式的软件除外)。
从技术角度来说,天下没有破不了的软件,只是破解难度不一而已。
从经济角度来看,只要破解的成本高于使用正版软件的成本,那么破解的工作便不会有人去做了——除非是纯技术兴趣。
当前市面上比较流行的软件保护技术有:序列号、软件狗和绑定系统硬件信息三种:序列号保护法常见于网络上的共享软件,破解比较容易。
软件狗是一个安装在并口、串口等接口上的硬件电路,同时有一套使用于各种语言的接口软件和工具软件。
复杂的软硬件技术结合在一起使破解非常难,许多有商业价值的软件一般都用软件狗来保护。
绑定系统硬件信息是用户在安装完软件后,获得一个与系统硬件信息(CPU ID,硬盘序列号等)相关的代码。
开发商通过这个软件生成一个激活码,用户输入激活码后便可正常使用软件了。
相比之下,序列号属于纯软件方法,破解比较容易;软件狗是软硬结合的方法,破解很难,但需要购买商业化的软件狗,费用高;绑定系统硬件信息的方式,安全性不错,而且不需要额外软件狗的费用。
图1.1 绑定系统硬件信息技术
下面的章节中,本文将针对绑定系统硬件信息技术,先讲述如何获得系统硬件信息,然后讲述生成系统ID和激活码的方法,最后给出一个完整的范例演示程序。
获取系统的硬件信息到哪里去找硬件信息
一套基于计算机的自动化系统必定包含许多硬件,比如CPU、硬盘、网卡、GPIB卡、数据采集卡、模块化仪器等等。
为了方便管理,厂家会给这些硬件一个唯一的标识号(id),或者序列号(SN),如图2.1所示。
如果厂家也提供相关的访问函数,我们就可以获得硬件的唯一标识号。
图2.1 硬件序列号
获取NI硬件序列号
NI公司硬件设备的序列号可以通过属性节点查知,如图2.2所示。
图2.2 用属性节点获取NI硬件序列号
关于数据采集卡,GPIB卡的硬件信息请参考范例程序GetDAQSN.vi和GetGPIBSN.vi。
获取计算机硬件信息
计算机的硬件信息通常包括:CPU ID,硬盘序列号,MAC地址和BIOS信息。
这些信息由于涉及硬件访问,需要调用许多底层函数,具体技术细节请参考Skyremember在CSDN发表的文章《获取网卡MAC、硬盘序列号、CPU ID、BIOS编号》。
本文将获取硬件信息的函数做成了GetHWInfo.dll,方便在LabVIEW下调用,如图2.3所示。
图2.3 Get CPU ID
其余硬件信息,请参考范例程序GetBIOSInfo.vi,GetHDDSN.vi和GetMAC.vi
生成系统ID和激活码
当获取系统硬件信息后,下一步就是生成系统ID和激活码。
从理论上来说,生成系统ID就是找出一个算法F1,使得SystemID = F1 (HardwareInfo);生成激活码就是找出一个算法F2,使得ActivationCode = F2 (SystemID)。
激活的过程就是找出一个算法F3,使得SystemID = F3 (ActivationCode),或者找出两个算法F3+F4,使得F3(SystemID) = F4(ActivationCode)。
最后激活过程的算法越复杂,其破解难度越高。
在计算机行业,已经有许多成熟的加密解密算法了,大家可以根据具体需要选用。
本文为了大家理解方便,将采用简单且直观的加密解密算法。
生成系统ID
在数学中,有很多可逆的算法,比如乘和除,傅里叶变换和反傅里叶变换,交织和节交织,调制和解调等等。
选用可逆算法可以降低激活算法的设计难度,当然,如果加密算法功底深厚的话,可以选用不可逆的算法。
由于硬件信息大多数由大写字母和数字组成,本文设计的可逆算法思路是:以十迚制数69为对称点,找出硬件信息字符的镜像字符,比如0的镜像字符为Z,由此形成的字符串作为系统ID,如图3.1所示:
图3.1生成系统ID
通过该算法,由NI硬件序列号EAB2F3生成的系统ID为EIHXDW,如图3.2所示。
图3.2 系统ID
当然,我们还可以把集中算法混合在一起,构成更加复杂的算法。
生成USB-Key激活码
给客户激活码的方式有很多种,本文推荐将激活码以二迚制流的方式写入U盘,以USB-Key 的形式给客户。
系统在运行时,USB-Key必须存在,否则系统不能运行。
本文算法的设计思路是:先把SystemID转换为二迚制流,然后以code.act文件名(文件名可自取)保存到U盘,如图3.3所示。
当然,可以增加一些使二迚制流复杂化的算法,比如交织,那么在解算二迚制流的时候,就需要增加对应的解算算法,比如解交织。
图3.3 USB-Key形式的激活码
做好了USB-Key形式的激活码后,就可以把这个USB-Key交付给客户了。
检测USB-Key
本文检测USB-Key的设计思路是:首先需要把二迚制流读出,然后恢复出SystemID,并与当前系统硬件的信息做比较,如所示。
图3.4 Check Dongle
完整加密程序演示
本文所有的代码包含在随附的演示程序中Encryption.lvproj,如图3.5所示。
图3.5 Encryption.lvproj
在运行Demo_GenerateUSBKey.vi程序时,需要先根据需求调用相应的硬件信息函数,然后制作USB-Key。
制作好USB-Key后,再运行Demo_CheckDongle.vi即可。
后记
“I hear and I forget;
I see and I remember;
I do and I understand.”
眼见为实,耳听为虚,仸何事都要亲自付以行动才能真真正正的理解。
在LabVIEW这样一个非常适合工程师和科学家的平台上,多尝试,多实践是工程能力增长的不二法门。
拙作肯定存在不少问题,有仸何问题,可以给我Email: jing.zhang.zju@,真心希望能与大家一起分享一起讨论。